Contributeurs Core

EDIT: Ce sujet a été scindé depuis celui-ci : Python en root
En effet, il a dérivé sur une discussion de fond sur les contributions aux core/plugins.

Je suis totalement d’accord avec la façon dont tu présentes les choses: il y a eu un soucis, on est tous d’accord qu’il y a risque que ce problème se généralise, il faut comprendre et agir (et en attendant ou à défaut de mieux, c’est la « solution »)

Petite proposition / bouteille à la mers: si on voulait encore améliorer notre collaboration (entre l’équipe et les beta-testeurs et dev tiers) on devrait plus partager les « problèmes » rencontrés, genre une liste d’issues qui doivent être gérées sur laquelle on pourrait avoir une discussion afin de déterminer la meilleur solution.

Je suis bien conscient que ça parait lourd, qu’on ne peut pas faire ça pour tous les problèmes et qu’on ne peut pas faire ça avec tous les utilisateurs jeedom etc mais pour certain cas ça me semble utile, surtout quand on ne comprend pas trop pourquoi chez l’un ça marche et pas chez l’autre comme ici (faut pas faire ça pour un bout de code dans le core que Loic maitrise et voit directement comment il peut corriger, on est d’accord)
et cela vous (l’équipe) permettrait de bénéficier de l’expérience d’autres ici: on a tous des compétences et affinités différentes…

Donc si on veut revenir sur le fond, je pense qu’il faudrait d’abord réussir à reproduire le cas ou au moins avoir la liste des cas et les logs liés (parce que reproduire un problème lors d’un upgrade système ca va pas être simple…) pour comprendre d’où cela vient

3 « J'aime »

J’ai rien à ajouter de plus que les remarques déjà formulées ici par beaucoup.

La collaboration ça marche dans les 2 sens : Pas de demande d’aide, pas d’éléments techniques suffisants = pas d’aide ou de propositions possibles. C’est en plus exactement ce qui est demandé aux utilisateurs du forum pour espérer obtenir un coup de main… (cf thread de @nebz).

Et on a déjà évoqué plusieurs fois le sujet (des changelogs, pas le temps, trop compliqué etc)… mais avec le commentaire ‹ test › dans le commit, ça à toutes les chances de passer sous les radars…

Et pour en revenir aux solutions techniques potentiels, voilà une piste venv — Création d'environnements virtuels — Documentation Python 3.10.5
C’est typiquement le genre de trucs qui éviterai ces ennuis, et qui en plus permettrai aux différents plugins de ne pas se marcher dessus les uns les autres avec du python 2 / 3 en fonction des préférences de chacun…

Le truc que je constate (je ne fais pas de dev, je ne fais que constater suivant les échanges que je vois, je peux donc être à côté de la plaque) c’est que dès qu’un membre de la communauté propose des améliorations (que ce soit en discutant en donnant des détails ou en faisait des PR), c’est refusé dès que ce n’est pas maitrisé par Loic (désolé, je pointe Loic mais c’est le seul de la team qui avait réagit sur les différents échanges que j’ai vu).

Donc là quoi bon proposer des améliorations si dès que ce n’est pas maitrisé, sont rejetées?
Je sais que certains bons éléments sont partis (pas bien loin) pour cette raison (car oui, on discute en dehors de community).

Bien évidemment, on ne peut pas être compétent partout. Ce n’est pas pour cela qu’il faut jeter la pierre sur une personne qui ne l’est pas. Je doute que quelqu’un le soit sur tous les domaines.
Demander de l’aide n’est pas une faiblesse!

Et il ne faut pas prendre le message des membres comme des attaques. Cela prouve juste qu’un certain nombre de membre apprécient cette solution.

Mais vous pensez réellement que cela soit sérieux de répondre : je n’ai pas d’explication du pourquoi je fais cela, je ne sais pas faire autrement alors c’est comme ça, un point c’est tout (pour résumer).

Pour quelqu’un qui n’est pas déjà investi dans Jeedom, cela ne donne vraiment pas envie. Vous voulez nuire à votre projet pour des problèmes de communications? Franchement, je n’ai pas envie de cela.

L’idée de @Mips est plutôt intéressante, non?
Et même si vous n’avez qu’une petite poignée de membre qui aident, c’est déjà mieux que rien.

Je ne souhaite qu’une longue vie à Jeedom… C’est pour cela que je pointe du doigt ce que je trouve destructeur pour l’image. Ce n’est pas du tout pour attaquer gratuitement, troller ou quoi que ce soit, sincèrement.

2 « J'aime »

Beaucoup de bonnes remarques, et de bonnes volontés :wink:

Je pense que le principal soucis est la vision et l’engagement à long terme.

Par exemple, je suis arrivé mi 2019 en mettant un peu les pieds dans le plat sur le sujet interface / ergonomie. S’en est suivit une collaboration, d’abord timide (surtout de ma part, je devais bien comprendre le fonctionnement du code, et où Jeedom souhaite aller, sans tout casser), puis plutôt très proche pour aboutir aux v4 et bientôt 4.1 sur lesquelles j’ai fini par taper un peu partout.

Mais à chaque fois que je fais quelque chose, je suis bien obligé de penser à l’après, et m’assurer que Loic, ou l’équipe au sens large, sera capable de reprendre des parties entières que j’ai faite. Donc souvent j’en parle avec Loic sur la meilleure méthode, qu’au moins lui puisse comprendre si un jour il doit remettre le nez dedans.

Tout çà pour dire que, je pense, l’équipe est très ouverte sur les contributions des uns et des autres. Mais il faut aussi avoir conscience qu’un jour ou l’autre, la personne qui a pondu l’algo ne sera plus là (pour diverses raisons propre à chacun), et qu’il faudra alors bien maitriser cette partie.

Pour çà que ma relation avec l’équipe c’est faite par étape et a pris du temps, et c’est très bien comme çà car moi le premier je ne voulais pas tout chambouler et à ma manière. Parce qu’un jour, moi aussi je lâcherai le Core petit à petit, ce que je leur ai dit dès le début. Vie de famille, boulot, passions, etc chacun a ses raisons pour s’investir et se désinvestir et on doit le respecter.

Tout çà pour dire que si Jeedom devient une addition de PRs que l’équipe ne comprend pas, çà finira mal un jour ou l’autre.

Un autre axe possible serait de réussir à fédérer une petite équipe de développeurs, qui après échanges et discussions connaitrons bien le core, et suffisamment nombreuse pour avoir plusieurs personnes sur chaque compétence. Ainsi le départ de l’un pourra être compensé par un autre puis par l’arrivé d’un nouveau, etc. Mais c’est complexe, et il faut suffisamment de personnes, qui maitrise le code, et qui accepte aussi la même vision et des objectifs communs, en mettant de coté son ego et ses bidouilles persos.

Personnellement, j’adore Jeedom depuis que je m’y suis mit, et j’ai toujours regretter le coté austère / vieillot de l’interface et pas mal de manque en terme d’ergonomie. J’ai donc souhaité donner un coup de main à une solution qui me facilite la vie au quotidien et qui ne m’a finalement pas couté grand chose. Un juste retour des choses. Mais je sais aussi que certaines partit du code peuvent paraitre obscure tellement on a poussé, chacun dans son domaine. Alors oui, du code çà se lit puis çà se comprend, c’est toujours faisable, mais quand un petit buginet finit par prendre des heures parce qu’on ne maitrise pas cette partie, c’est rageant.

Tout çà pour dire que je comprend les deux cotés, et que les solutions sont moins simples qu’il n’y parait.

Mais monter une équipe de tueurs pour pousser encore plus loin, je suis forcément partant :grin:

Together
Everyone
Achieve
More

J’avais même commencé une doc pour favoriser ceci : https://community.jeedom.com/t/core-contribute/33199
Sujet qui n’a pas eu beaucoup de succès d’ailleurs (en attendait il ?)

My 2cent! Et en tant que mercenaire du Core :cowboy_hat_face:
Et au passage, merci à toute l’équipe de Jeedom qui m’a très vite adopté et fait confiance, sans aucune garantie :wink: On a eu des arrachages de cheveux, des désaccords, mais toujours dans le respect des autres en tant que personne souhaitant améliorer les choses.

Voilà voilà, c’était le petit mot du vendredi soir, bon week-end à tous :kissing_closed_eyes:

2 « J'aime »

C’est de mon point de vue le point le plus important.

Probablement déjà le cas.

Jeedom à un historique et dérive. L’approche de la v4 était majoritairement graphique. La question ne serait-elle pas une revue complète du core pour une v5. Identifier tous les éléments qui posent des soucis qui pénalisent la maintenance, les évolutions et le développement de plugins au quotidien.

C’est hors sujet de ce post, et il faudrait plutôt un sujet ouvert à l’échange et à l’écoute. Il faut arrêter de prendre mal la critique (la critique est un examen raisonné, objectif, qui s’attache à relever les qualités et les défauts et donne lieu à un jugement de valeur).

Si quelqu’un se pense éligible à initier ce type d’examen des points d’amélioration, qu’il se lance. Si cela pouvait venir de la team Jeedom cela serait un gage d’ouverture d’esprit.

Cette démarche serait bénéfique au devenir de Jeedom et surtout permettrait probablement de reprendre la main, car aujourd’hui Jeedom stagne voir régresse sur certaines fonctionnalités qui disparaissent, car trop compliqué à maintenir. Une revue du core devrait permettre un meilleur maintien et faciliter le travail de tous.

1 « J'aime »

Je parlais d’éventuels mercenaires sur le core.
Pour moi y’a pas vraiment de soucis la dessus côté équipe Jeedom. D’où aussi ce que j’explique me concernant, étant mercenaire et pas jeedom.

Pour le reste, je pense en effet que c’est à jeedom d’ouvrir le débat et de porter une telle volonté si c’est le cas.

Pour ce qui est des PR et de codes non maintenu sincèrement on a taper partout sur le v4 et 4.1. Il n’y a à mon sens pas de zones d’ombre ou non maîtrisées côté code. D’où certains freins sur certaines directions pour ne justement pas perdre cette maîtrise.

On n’est un peu hors sujet en effet mais ça reste une discussion intéressant :wink:

Sur cette partie là, je suis pas tout à faire en accord :
Il y a plein des blocs entiers de copié/collé qui mériterai d’être passer sous forme de fonctions. ça rendrai aussi la maintenance vachement plus simple, et n’aurai pas besoin de porter N corrections à chaque bug.
ça rendrait les chose aussi plus uniformes, par exemple : il a y des fonctionnements étranges notamment dans tout ce qui est analyseur syntaxique… Ne pas avoir le même résultat dans le testeur et dans un scénario, c’est ni logique ni sain, mais comme le code n’est pas le même…
Et pour rendre le code accessible à plus grande échelle, il n’y a pas de solution miracle : des commentaires, des changelogs, des infos sur les évolutions/changements
Et je rejoins la remarque de @sbo quant à la stagnation/regression… La solution de simplicité en supprimant la fonctionnalité parce qu’elle bugge, c’est trop court-termiste et pas viable

Tout ça, c’est évidement plus simple à dire qu’à faire mais si c’est pas une réelle volonté de l’équipe Jeedom, toutes les bonnes volontés n’iront pas bien loin. Et personnellement je ne suis malheureusement pas très optimiste

1 « J'aime »

Tu aurai des exemples ? J’en ai déjà repris pas mal mais là dessus je suis d’accord avec toi. Si il en reste autant améliorer.

A l’intérieur des même classes par exemple…

  - /core/class/cmd.class.php:991-1022 (31 lines)
    /core/class/cmd.class.php:1017-1048

  - /core/php/utils.inc.php:494-521 (27 lines)
    /core/php/utils.inc.php:559-586

  - /core/class/cmd.class.php:658-677 (19 lines)
    /core/class/cmd.class.php:694-713

  - /core/ajax/object.ajax.php:132-151 (19 lines)
    /core/ajax/object.ajax.php:172-191

  - /core/ajax/dataStore.ajax.php:69-88 (19 lines)
    /core/ajax/dataStore.ajax.php:102-121

  - /core/php/jeeCron.php:134-149 (15 lines)
    /core/php/jeeCron.php:151-166

Des outils comme SonarSource aident vachement à ce genre de gymnastique… ça prends du temps au début et la mise en place, mais c’est un gain à la fin

Intéressant en effet, je vais jeter un œil et voir ce qu’on peut factoriser, merci :wink:

Si vous voyez d’autres points d’amélioration faut pas hésiter.

A voir avec @Alexandre si on peux avoir un sous forum style:
Salon des Développeurs → Contributions Core
Accessible que pour certaines personnes prêtes à donner un peu de leur temps sur ce sujet ?

On pourrait créer des sujets sur des mini-chantiers comme celui-là avec ceux qui souhaitent participer, et en discuter avant de proposer des PRs, que tout le monde soit raccord. Ce qui évite de découvrir un PR tombé de nulle part ?

@Alexandre @Loic vous en penser quoi ? Je veux bien essayer de suivre là dessus, si çà se passe dans la bonne humeur et de manière constructive bien sûr.

Je tiens à préciser qu’on fera pas grand chose je pense sur la 4.1. Elle est en fait stable, mais attend que la 4.0 passe officiellement en stable pour ensuite passer la 4.1 en beta. Mais pour la prochaine alpha 4.2 on peux déjà référencer plusieurs sujets. Si l’équipe Jeedom est ok bien sûr, je suis en mode mercenaire là :grin:

@David ? Je veux pas non plus pousser quelque chose si ce n’est pas souhaité par Jeedom :wink:

3 « J'aime »

Pour ma part ayant le core ouvert en permanence quasi pour soit vérifier des questions que je vois passer sur le forum soit vérifier ce que je peux faire dans mes plugins, je commence à bien le connaître et avoir explorer énormément dessus.

Et vu que j’ai ne fut ce que un linter actif, je relève assez régulièrement des variables qui n’existent pas (qui vont créer des bugs donc) ou juste plus utilisées (moins grave mais ça n’aide pas à la lisibilité) et parfois quelques points plus importants

Je serai content de pouvoir faire des PRs pour ca (pareil sur certain plugin officiel d’ailleurs) mais il faut plus d’interactions, que les PRs soient suivis relativement rapidement aussi: le problème quand c’est vérifié quelques semaines/mois plus tard c’est que le merge auto est plus forcément possible car la base a trop changée, du coup PR rejeté, on refait nos merges et hop nouveau PR reparti pour quelques semaines… c’est pas gérable en tant que contributeurs

Pourtant ce sont souvent des très petits PR donc facile à vérifier,
Exemple pour un truc tout con, dernière tentative que j’ai faite (sur blea), c’est toujours en cours: fix static function definition by Mips2648 · Pull Request #110 · jeedom/plugin-blea · GitHub depuis le 14 mai
Et c’est pas faute d’avoir fait des demandes pour le signaler…

2 « J'aime »

Pour les plugins je ne m’en occupe pas du tout donc je ne réagirai pas.
Mais ce que tu décris sur le core, je suis d’accord et trouve dommage qu’on n’en profite pas. Retour à mon post précédent avec un forum dédié pour en parler et quand le pr arrive on a qu’à merger car on en a déjà parlé. À voir donc si l’équipe est ok sur une telle faisa. On a pas besoin d’être 40 non plus mais une fine équipe d’initiés ce serait quand même top pour tout le monde, y compris pour Loïc qui est très chargé entre core/plugins/doc/infra etc.

1 « J'aime »

Petit tour de table si jamais:

Qui serait intéressé, et compétent bien sur, pour corriger, debugger, améliorer le Core de Jeedom ?
En précisant si vous êtes déjà à l’aise avec le code du Core, plutôt php, js, front, back etc ?

Le but ne serait pas de partir dans tous les sens chacun dans son coin, mais au contraire de discuter ensemble de points précis pour y répondre au mieux, dans l’intérêt de jeedom et de ses utilisateurs :pray:

:kissing_smiling_eyes:

2 « J'aime »

Hello,

Je suis prêt a debugger et améliorer le Core.
Je connais un peux le core. (Surtout pour dev mes plugin)
Cotée PHP, je ne saurais évaluer mon niveaux. (Appris sur le tat au fur et a mesure de mes envie)
Cotée JS, c’est la même chose.
Cotée Front, je peux faire, mais je suis moins fan
Cotée Backend, Je suis beaucoup plus fan :wink:
Je rajoute 2 point qui ne sont pas inutile :

  • Je suis moyen en francais
  • Et je suis null en anglais.

Cdt
Thibaut

Coté Core, j’ai pas mal compulsé le code, donc je suis pas perdu. Je veux bien apporter mon aide pour tester tout ça (j’ai de toute façon l’alpha qui tourne en prod depuis quasiment le début). Je n’aurai pas forcement de plus-value sur la partie JS (CSS, etc ça me branche moyen) mais je peux sans doute apporter quelques idées autant coté front, que back
Détail important tout de même, les beta-testeurs n’ont pas accès à la partie dev du forum

Donne nous le lien du sujet quand il sera créé. :wink:

Comme tous les devs, j’ai pas mal épluché le core, donc intéressé aussi sans connaître le temps que je pourrai y consacrer évidemment…

Je viens de faire un commit là dessus en alpha. :warning: Fonctions sensibles, merci de tester !!

Ah oui, à voir avec @Alexandre, peut etre faire cette partie dans le Salon beta testeurs alors.

Ce serait une nouvelle partie du forum, pas un sujet. Pour pouvoir discuter de plusieurs points différents.

Il vaut mieux être moins là plus longtemps que à fond quelques jours :smiley:

PS : on verra lundi avec l’équipe Jeedom, et on coupera le message après car on a carrément phagocyté le post initial :face_with_raised_eyebrow:

2 « J'aime »

Bonjour,
Un retour ?

Hello.
Malheureusement j’ai bien l’impression que l’idée est morte née : pas de réaction des différents nommés (même négative) et pas de nouvelle catégorie (du moins chez moi)… Cumulé avec un certain nombre de choix (rester sur openzwave v1.4) ou les évolutions qui tardent par rapport à la roadmap, ça conforte malheureusement un sentiment naissant chez moi, d’un futur moins radieux pour jeedom.