pylapp

social

Kenavo l'asso

đŸ‡«đŸ‡· – vendredi 19 avril 2024

Mots clés : #AAEE, #ENSSAT, #associatif, #social, #fatigue

Depuis le temps, il faudrait peut ĂȘtre exorciser le truc pour passer Ă  autre chose. Avec le temps, je me rends compte que la ressource la plus prĂ©cieuse que l'on ait est le temps justement. Temps qui, comme la fatigue, peut ĂȘtre notre ennemi. Et quand on fait de l'associatif, qui est vraiment important en soit si on s'y retrouve et que l'on a l'impression d'ĂȘtre utile, le temps et la fatigue peuvent jouer Ă©normĂ©ment.

J'ai obtenu mon diplĂŽme d'ingĂ©nieur “informatique, multimĂ©dia et rĂ©seaux” Ă  l'ENSSAT, sur Lannion, Ă©cole d'ailleurs que je recommande tant pour son Ă©quipe Ă©ducative, les enseignements, les intervenants extĂ©rieurs, le programme et aussi la volontĂ© de toujours faire mieux. C'Ă©tait en 2015, et j'ai rejoint son association d'anciens Ă©lĂšves en 2016. Si c'Ă©tait Ă  refaire, je le referais sans hĂ©siter.

L'ENSSAT est une “petite” Ă©cole d'ingĂ©nieur, mais qui bouge et qui grossit. Son association d'anciens Ă©lĂšves, l'AAEE, est aussi de taille modeste. En effet, on est loin de ces trĂšs grandes Ă©coles corporatistes, usines Ă  ingĂ©nieurs de salon gĂ©nĂ©ralistes, avec des rĂ©seaux d'anciens Ă©normes, qui parfois ont pour travers de maintenir le rĂ©seautage et l'entre-soit. En rejoignant l'association, j'avais envie de m'y investir, de faire des choses pour elle et pour l'Ă©cole, et aussi de travailler sur ça avec d'anciens Ă©lĂšves, d'anciens camarades, et si ce n'Ă©tait pas encore le cas, de bons potes. Mais 6 ans aprĂšs, il Ă©tait temps d'arrĂȘter, de suivre de loin et de soutenir comme je pouvais, car le temps disponible se faisait rare et l'Ă©nergie n'Ă©tait plus lĂ , alors autant ne pas s'acharner si on a fait sa part. Je n'aime pas l'idĂ©e de faire du job protection et de garder sa place au chaud ; si je ne sers Ă  rien, je sors.

En soit, le bilan n'Ă©tait pas si mal. On a organisĂ© des Ă©vĂšnements comme des afterworks dans diffĂ©rentes villes, la traditionnelle rencontre annuelle entre Ă©tudiants et anciens, et aussi des brunchs. En plus de ça, du relai d'information aux diplĂŽmĂ©s, des discussions avec IESF, de la communication sur les rĂ©seaux sociaux et d'autres chantiers plus ou moins inachevĂ©s. Un autre projet important concernait la caisse de secours que l'on maintenait pour les Ă©tudiants en galĂšre, que ce soit pour avancer des frais ou parce que les fins de mois Ă©taient trop difficiles. Ça fait se nouer le ventre, mais ça permet de garder les pieds sur terre. Au moins on en aura aidĂ© et sorti de la galĂšre.

Le sujet de cette caisse de secours Ă©tait Ă©pineux. D'une part des Ă©tudiants, une fois diplĂŽmĂ©s, et avec des situations correctes, malgrĂ© les relances, refusaient de rembourser les prĂȘts d'honneur qu'on leur avait octroyĂ©s pour les sortir de la merde. On s'est posĂ© la question de passer par un huissier ou une entreprise spĂ©cialisĂ©e, mais ça nous aurait coĂ»tĂ© encore plus d'argent sur un budget serrĂ©. Et d'autre part, des diplĂŽmĂ©s se permettaient de critiquer nos actions ; on se faisait reprocher d'aider des Ă©tudiants en galĂšre alors qu'on ne leur payait pas les premiers verres en afterworks, Ă  eux (qui avaient une activitĂ© salariĂ©e). Peu importe l'Ă©cole, il y aura toujours de beaux connards.

Un autre sujet pĂ©nible Ă©tait le peu de retours sur nos afterworks. La chose est d'une simplicitĂ© dingue pourtant : chercher un bar, convenir d'une date, et venir. Pour ces Ă©vĂšnements, on a eu peu de monde par moment, et pour ceux qui ont bien marchĂ© il a fallu vraiment insister pour faire venir du monde. Pire encore, des lieux avaient Ă©tĂ© rĂ©servĂ©s pour un nombre de personnes ayant acceptĂ© de venir, et les entrĂ©es Ă©taient bien en dessous des chiffres prĂ©vus. Manque de respect et fatigue de voir que des adultes ne sont mĂȘme pas capables de tenir un engagement ou de prĂ©venir.

On nous a reprochĂ© de ne pas ĂȘtre visible sur les rĂ©seaux sociaux. Toujours preneurs de remarques et suggestions, on a amĂ©liorĂ© la chose : Twitter (pas encore X Ă  l'Ă©poque), Instagram, Mastodon, une page publique LinkedIn et une refonte du groupe privĂ©. MĂȘme avec ces efforts, pas de retours, pas d'avis, pas d'abonnĂ©s. On avait mĂȘme mis en place un serveur Discord pour favoriser les Ă©changes et le partage d'information, et ça ne dĂ©colle toujours pas. Le bilan Ă©tait dĂ©cevant, et on ne comprend pas pourquoi ça n'a pas dĂ©collĂ©.

On avait aussi pas mal travaillé sur le partage des cours aux anciens diplÎmés afin de favoriser la diffusion des connaissances. Ce fut une belle galÚre ; entre les problématiques techniques de la plateforme à choisir et les réticences de certains enseignants, on n'avait finalement pas pu aller bien loin.

L'autre sujet le plus chaud concernait IESF. J'ai une particuliĂšre aversion pour les corporatismes de tous bords et de tous poils, qui se contentent d'exister et se tapent sur le ventre Ă  la moindre occasion de rappeler qu'ils sont lĂ . Cette association Ă©tait pĂ©nible et le dialogue Ă©tait plus que compliquĂ© avec. En mĂȘme temps, les conseils d'administration de ventres bedonnants et de cheveux blancs semblent bien, bien loin de la rĂ©alitĂ© du terrain et du mĂ©tier d'ingĂ©nieur ainsi que des associations d'alumni qui ne sont pas assez grosses et prestigieuses pour eux. DĂ©jĂ , la cotisation Ă  payer tous les ans Ă©tait exorbitante et reprĂ©sentait une partie Ă©norme de notre budget. Pourtant, les services disponibles en contre-parties ne nous Ă©taient d'aucune utilitĂ©. Peut-ĂȘtre que pour de grosses et vieilles associations parisiennes ils l'Ă©taient, mais pour le reste du pays non. MalgrĂ© des tractations pĂ©nibles ayant rĂ©ussi Ă  leur arracher une rĂ©duction dĂ©risoire de 50 €, l'adhĂ©sion Ă©tait Ă  500 € par an. PrĂšs de la moitiĂ© de notre budget pour louer des salles sur Paris Ă  prix rĂ©duits, bĂ©nĂ©ficier du service Labellis pour certifier via blockchains les diplĂŽmes, et inscrire les Ă©tudiants au Registre National des IngĂ©nieurs (RNI), chasse gardĂ©e d'IESF, c'est non. Car oui, mĂȘme si on a un diplĂŽme d'ingĂ©nieur, validĂ© par la CTI, on peut ne pas ĂȘtre dans ce RNI car une association poussiĂ©reuse fait du gate keeping. On a pourtant demandĂ© des mĂ©triques sur ces services : qui les utilisent, combien de requĂȘtes sont faĂźtes, quels types de rĂ©sultats, bref on voulait savoir dans quoi notre argent allait servir. On n'a jamais eu les chiffres demandĂ©s Ă  part des approximations grossiĂšres au pifomĂštre. On nous affirmait que des milliers de requĂȘtes Ă©taient faĂźtes par mois sur le RNI ; un dĂ©bugueur de navigateur web nous montrait que la saisie de chaque caractĂšre dans le formulaire de recherche envoyait une requĂȘte. Autrement dit, si je saisis mon nom, j'envoie 10 requĂȘtes, de quoi donner des chiffres incroyables ! Outre le fait que l'autocomplĂ©tion n'est pas compatible avec l'ecoconception et n'est pas vraiment recommandĂ©e dans le RGESN, ce calcul grossier de mĂ©triques est ridicule. “IngĂ©nieurs et scientifiques” donc. Les prises de contact en direct n'aboutissaient pas, il fallait les chatouiller sur les rĂ©seaux sociaux pour susciter des rĂ©actions agacĂ©es, mais amenant quand mĂȘme la possibilitĂ© de discuter un peu. Ce ne fut pas utile in fine, mais bon, au moins leur responsable communication s'est donnĂ© la peine d'Ă©changer, merci Ă  lui. On avait rĂ©ussi Ă  remonter le fait qu'IESF Ă©tait trop franco-parisienne et exclusive, ce qui a menĂ© Ă  une crĂ©ation maladroite d'entitĂ©s rĂ©gionales IESF, plus ou moins infĂ©odĂ©es Ă  la structure principale, mais pas trop. Dit autrement, pour profiter de IESF Bretagne, il fallait adhĂ©rer Ă  IESF Bretagne. Pour profiter d'IESF France, il fallait y adhĂ©rer aussi, donc double peine, double adhĂ©sion, encore plus de dĂ©penses. Et l'entitĂ© nationale ne soutenait pas d'une quelconque maniĂšre l'entitĂ© rĂ©gionale, pas la bretonne en tout cas. Bref, quand le budget d'une association est constituĂ© des dons et adhĂ©sions de ses membres, c'Ă©tait dur de justifier ce gaspillage de moyens pour des services rendus inutiles ou dont l’utilitĂ© n'Ă©tait pas dĂ©montrĂ©e. À la fin, on a finit par se faire exclure, n'ayant pas payĂ© notre derniĂšre cotisation. On nous avait mĂȘme dit que les temps Ă©taient durs pour eux aussi ; en mĂȘme temps quand on voyait les bilans en assemblĂ©es gĂ©nĂ©rales, il aurait Ă©tĂ© facile d'Ă©conomiser sur certaines rĂ©munĂ©rations, les cocktails et des services payĂ©s bien trop chers. Ils nous demandaient mĂȘme de payer pour avoir le rĂ©sultat des enquĂȘtes d'insertions des ingĂ©nieurs que nous avions nous-mĂȘmes relayĂ©s auprĂšs de nos diplĂŽmĂ©s ! À force de les secouer, nous avions enfin pu avoir un Ă©change entre le prĂ©sident de IESF et la prĂ©sidente de l'association de l'Ă©poque. Mais bon, ils nous auront vite oubliĂ©s je pense, Ă  dĂ©faut d'avoir vraiment pensĂ© aux petites structures. C'est pas faute d'avoir tentĂ© de rejoindre le poste d'administrateur IESF sans succĂšs.

En plus de ça, les critiques des uns et des autres finissaient par ĂȘtre pĂ©nibles Ă  encaisser. Entre les anciens qui critiquent sans s'investir ou comprendre, et les Ă©tudiants qui font de mĂȘme, dur de consolider la diaspora enssatienne et d'en faire quelque chose de chouette. Heureusement que l'on avait quand mĂȘme des anciens qui Ă©taient lĂ  et savaient soutenir au besoin. On sait sur qui on peut compter.

On a eu aussi pour projet de valoriser certains profils de femmes ingĂ©nieures, ou encore de faire des tĂ©moignages de personnes Ă©tant dans de grands groupes, peut-ĂȘtre qu'en flattant les Ă©gos ça aurait marchĂ© : Saint Gobain, Ubisoft, ArkĂ©a, Cisco et SFR, Airbus Helicopters, Philips, ING, Sagem, VMWare, Decathlon, Google, STMicroelectronics et NXP, Enedis, Betclic, Huawei, Amadeus, Nokia, Microsoft, le CEA, NVIDIA, Oracle, mais aussi Ă  l'Ă©poque Intel, Facebook, l'ArmĂ©e de l'Air et de l'Espace..... Bref il y avait moyen de faire quelque chose. Certains n'ont jamais rĂ©pondu ou voulu rĂ©pondre, et quand aux donnĂ©es rĂ©coltĂ©es et analysĂ©es, peu de personnes dans l'association ne voulaient les exploiter et contacter les anciens ayant rĂ©pondu.

Autre point de crispation, des divergences de point de vue avec certaines instances de l'Ă©cole. Jusque lĂ , on s'occupait de grossir l'association et de s'affairer Ă  construire la diaspora enssatienne, en reprenant contact avec tout le monde. Mais avec le nouveau conseil de l’époque, il y avait trop de divergence. Les cheveux blancs du monde d'avant prĂ©fĂ©raient que ce soit l'association qui verse une cotisation Ă  l'Ă©cole, sans forcĂ©ment rĂ©flĂ©chir aux consĂ©quences que ça avait, et la direction de l'Ă©cole prĂ©fĂ©rait s'aligner sur les autres Ă©tablissements en ne soutenant pas la cotisation Ă  IESF.

Concernant les finances, on avait ponctuellement et marginalement du sponsoring d'entreprises locales notamment pour Ă©diter nos annuaires papiers. On a pu creuser le sujet aussi d'ĂȘtre reconnu d'intĂ©rĂȘt gĂ©nĂ©ral ou d'utilitĂ© publique, mais les associations d'anciens Ă©lĂšves ne sont pas compatibles avec ces critĂšres. Ainsi, pas de dons dĂ©fiscalisĂ©s possibles, donc peu d'entrĂ©es d'argent.

Et Ă  ça s'ajoutent les autres crispations : peu de rĂ©ponses des diplĂŽmĂ©s, peu d'investissement d'une partie du conseil d'administration, concours de yakafokonsufide, des critiques de toutes parts... bref il fallait s'arrĂȘter.

Y'avait encore pas mal de choses Ă  faire : faire des interviews des diplĂŽmĂ©s, chercher des faits marquants des anciens, se rapprocher d'entreprises pour leur parler de la taxe d'apprentissage, mettre Ă  jour le site web, gĂ©rer le recouvrement de la caisse de secours, dynamiser l'annĂ©e avec des Ă©vĂšnements dans plusieurs villes... mais trop peu de moyens humains n'Ă©taient mis, mĂȘme pas un tiers du conseil d'administration Ă  faire tourner la boutique, et faisant partie du reste des personnes actives, ça m'a usĂ© d'en faire autant avec si peu de copains.

C'est con, mais ça fait du bien de se vider la tĂȘte une derniĂšre fois pour ne plus y penser. Au moins j'ai gardĂ© de bons potes qui se reconnaitront, le noyau dur du conseil d'administration, les vieux schnocks. J'ai constatĂ© qu'avec d'autres membres du bureau il y avait trop de divergences de points de vue sur la façon de faire, autant partir plutĂŽt que de laisser les relations se dĂ©grader et finir fĂąchĂ©s.

On aurait pu faire tellement plus et bien mieux, mais bon, c'Ă©tait chouette quand mĂȘme. Bon courage Ă  celles et ceux qui prendront la suite.

— Derniùre mise à jour : mardi 23 avril 2024 —

Did you enjoy reading this blog? Give me a beer đŸș or use something else â€ïžâ€đŸ”„ Licensed under CC-BY-SA 4.0 Opinions are my own, even if I have some interests. For any comment or to contact me, feel free to choose the most suitable medium for you.

Les piĂšges de certains composants open source

đŸ‡«đŸ‡· – dimanche 9 janvier 2022

Mots clés : #opensource, #FLOSS, #GitHub, #licences, #social

D'ordinaire nous aimons utiliser des bibliothĂšques tierces dans nos projets, ces “librairies” que l'on retrouve par exemple sur des forges logicielles publiques comme GitHub et GitLab. Rares sont les logiciels qui ne possĂšdent pas une once de FLOSS (Free Libre and Open Source Software) Ă  l'intĂ©rieur. Le plus souvent, on retrouve dans chaque projet des composants FLOSS, que ce soit pour se faciliter la vie, Ă©crire des tests unitaires ou gĂ©rer une base de donnĂ©es par exemple. On a vite tendance Ă  prendre l'outil le plus connu, le plus rĂ©pandu, ou Ă  faire des rĂ©flexions trop rapides pour choisir ce dont on a besoin, et pourtant il y a des piĂšges Ă  Ă©viter.

Tout le monde est juriste, Ă©videment !

Beaucoup (trop) d'entre nous ne considĂšrent pas suffisamment la licence qui est appliquĂ©e Ă  la libraire choisie ; par paresse intellectuelle, par pure fainĂ©antise, par certitude de bien comprendre les licences, par oubli, ou par excĂšs de confiance. On fait tous la boulette, et on en tire des leçons ensuite, ce n'est pas si anormal quand encore aujourd'hui dans les Ă©tablissements de formation Ă  l'ingĂ©nierie logicielle ou “les Ă©coles de codage” on en parle assez peu, ou pas assez, voire pas du tout. Merci les formations au rabais vendeuses de rĂȘves laissant leurs apprenants se fracasser sur le mur de la rĂ©alitĂ©.

Toutefois, parmi les piÚges dans lesquels chacun et chacune peuvent plonger, il y en a particuliÚrement qui sont beaux. Et grossiers. Et pourtant, beaucoup de personnes se font avoir, et ne finissent par réagir que lorsque le sujet est médiatisé. Avant de se jeter sur le dernier composant à la mode, regardons en détails les piÚges, en commençant par les licences évidemment.

Des clauses déloyales dans les licences

Par exemple, il y a quelques annĂ©es, on pouvait trouver les frameworks React de Facebook / Meta sous une curieuse licence “BSD + Patents”. Le truc, c'est que cette licence possĂšde des clauses relatives aux brevets (une vague idĂ©e ici). Si j'exagĂšre et grossis les choses, le fait de chercher des noises en justice Ă  Facebook Ă  l'Ă©poque pouvait faire tomber le droit que vous aviez d'utiliser ses cadriciels (j'adore ce mot). Pot de terre contre pot de fer dans du bĂ©ton armĂ©, embĂȘter Big F peut revenir Ă  vous interdire d'utiliser ses technos, donc Ă  retirer beaucoup de produits. Une fois la chose mĂ©diatisĂ©e, finalement Facebook changea son fusil d'Ă©paule et utilisa la licence MIT.

Bref, attention aux clauses déloyales des licences !

Des changements radicaux de licences

RĂ©cemment encore, c'est HashiCorp qui changea brutalement la licence de son produit phare nommĂ© Terraform, et l'entreprise est dans son bon droit. Le passage de la licence MPL 2.0 Ă  la Business Source License a Ă©tĂ© fait avec fracas, justifiĂ© maladroitement par l'entreprise et dĂ©criĂ© par la communautĂ© open source. MongoDB a eu droit aussi auparavant Ă  son concert de casseroles avec le passage Ă  la SSPL. Pour aller plus loin, MariaDB propose cette page de FAQ sur la BSL. Benoit Sibaud (un chouette collĂšgue chez Orange !) a rĂ©digĂ© et diffusĂ© un billet abordant les “virevoltantes valses de licences libres et non libres dans les bases de donnĂ©es”, trĂšs instructif ! En d'autres termes, attendez-vous Ă  peut-ĂȘtre voir des revirement de situations dingues sur les licences appliquĂ©es !

Le truc, c'est que quand bien mĂȘme une entreprise dĂ©cide d'agir ainsi, elle reste tout de mĂȘme lĂ©galement dans l'obligation de satisfaire les demandes qui concernent les licences anciennement appliquĂ©es. Autrement dit, si Ă  un instant T un composant C Ă©tait sous une licence libre L (admettons GPL 3.0), mais que plus tard cette licence passe Ă  une bullshit licence BL, si vous avez eu le composant sous licence L vous ĂȘtes en droit de demander les sources (si L l'autorise Ă©videment), mĂȘme si elles ne sont pas accessibles publiquement. Bon courage donc.

On peut ainsi imaginer jouer la prudence, et se dire que si on utilise des composants FLOSS, dans le doute, au cas oĂč, on pourrait garder une copie du code source. J'apprĂ©cie beaucoup cet article de Geoffrey Dorme qui vous donnera davantage de motivations Ă  le faire. En plus cloner les dĂ©pĂŽts Git d'une organisation GitHub c'est facile pour l'instant.

Imaginez maintenant, malgrĂ© les trahisons prĂ©cĂ©dentes, que certaines technos soient si rĂ©pandues qu'elles en deviennent presque indispensables pour des entreprises, au hasard les frameworks comme React. Rien n'empĂȘche Facebook / Meta du jour au lendemain de changer la licence, de rendre l'exploitation de l'outil payante, et de monter un vrai business model dessus. Un magnifique coup Ă  jouer maintenant que le place est faite dans l'Ă©cosystĂšme logiciel. Impossible ? C'est vite oublier le ramdam lorsque Oracle avait mis en place son JDK payant.

Mais il y a d'autres piĂšges plus gros encore...

L'ajout de clauses additionnelles

Prenons par exemple une librairie Java bien connue, qui est utilisĂ©e en production : Realm Java (la situation a Ă©tĂ© corrigĂ©e depuis, mais a trainĂ© un bon moment tout de mĂȘme pour que ce soit notable).

À premiùre vue, si on regarde le README vaguement, on voit ceci :

Extrait du README annonçant que le composant est sous licence Apache 2.0

On peut alors en dĂ©duire que le composant est sous licence open source Apache 2.0. Sauf que trop de gens s'arrĂȘtent lĂ . Car que si on jette un Ɠil au fichier de licence, on trouve certes des rĂ©fĂ©rences Ă  la licence Apache 2.0, mais aussi un autre Ă©lĂ©ment d'enfoirĂ© : l'export compliance.

Extrait du README annonçant que le composant est sous licence Apache 2.0 et qu'il y a une clause additionnelle

Vous pouvez retrouver le diff du commit sur GitHub, je vous met ci-dessous le contenu scélérat de cette clause, qui rend la licence non conforme à la définition donnée par l'OSI, donc plus open source du tout.

Clause indiquant que des Ă©lĂ©ments peuvent ĂȘtre soumis Ă  la loi amĂ©ricaine et que si l'entreprise, le pays ou une personne de la sociĂ©tĂ© est sur liste noire l'usage du composant est prohibĂ©

Pour celles et ceux qui n'ont plus assez de caféine dans le sang pour comprendre, voici un résumé : si on se retrouve sur une liste noire du gouvernement américain, que ce soit dans un pays, ou individuellement, ou dans une entreprise détenue par une personne dans cette liste noire, on ne peut pas utiliser ce produit.

En soit, quel est le soucis ?

Et bien le soucis est que l'on peut avoir des applications critiques ou indispensables, ou son produit tout bĂȘtement qui, si un jour le client, l'Ă©diteur, le pays, les actionnaires etc. sont dans le collimateur des États Unis d'AmĂ©rique, peuvent ĂȘtre dĂ©gagĂ©es des boutiques d'applications, avec toutes les consĂ©quences que ça implique.

On peut espérer que ça n'arrivera jamais, ceci dit l'Úre Trump a montré qu'il ne fallait pas grands choses pour que des fous furieux mettent la pagaille à l'échelle mondiale en interdisant l'usage de produits. Et le contexte international actuel ne rassure pas non plus vis à vis de la Russie. Demandez leur avis aux iraniens, cubains, ukrainiens ou chinois.

Bref, dit autrement, quand vous utilisez une librairie FLOSS, regardez sur GitHub la section dĂ©diĂ©e Ă  la licence. Si le texte “View licence” apparaĂźt au lieu du nom de la licence, il y a deux cas de figure :

  • le texte a Ă©tĂ© modifiĂ© (souvent les copyrights) ou dĂ©corĂ© faisant que GitHub s'y perd ;
  • il y a du texte en plus dans le fichier. Ceci pouvant ĂȘtre des dĂ©tails sur d'autres licences appliquĂ©es ou d'anciens contributeurs, ou des clauses additionnelles.

Affichage des détails du projet GitHub indiquant peu d'infos sur la licence

Et oui, tout ça en droit français est valable.

Mais oĂč ailleurs peut-on se faire avoir ?

La plaie de l'excĂšs de social dans les forges logicielles

Et si on regardait le nombre de commits ?

DĂ©jĂ , pour â€œĂ©valuer” un composant FLOSS, on peut regarder par exemple la vie de son code source. Ainsi, si un projet a des commits faits rĂ©guliĂšrement, on serait en droit de se dire qu'il est toujours vivant. Toutefois la contraposĂ©e est fausse car on peut trĂšs bien avoir des projets FLOSS qui semblent “vivoter”, avec peu de commits rĂ©guliers mais qui fonctionnent trĂšs bien, tout simplement car le projet en lui-mĂȘme peut ĂȘtre maintenu ponctuellement, discrĂštement, mais efficacement.

D'ailleurs regarder la date et le nombre de commits est aussi une fausse bonne idĂ©e, car par exagĂ©ration on pourrait croire qu'un projet qui a beaucoup de commits est un projet de qualitĂ©, et fiable, ce qui est absurde. Dans la mesure oĂč des outils comme Git permettent le squashing, les merge commits et le rebasing, on remarque bien que se fier uniquement Ă  un historique de commits n'est pas viable. De plus, doit-on vraiment prendre en compte les commits et pull requests ridicules qui arrivent lors du Hacktoberfest quand celles et ceux qui les proposent veulent juste profiter du moment pour avoir un joli badge sur le profil GitHub par pur opportunisme ?

Est-ce que pour l'exemple ci-dessous le projet est vivant ou mort ? On peut s'y fier ou pas ? Pour faire des confettis, c'est suffisant ?

Historique Git d'un projet affiché sur GitHub montrant que le projet n'a pas bougé au mieux depuis 10 mois, voire depuis des années

Et Si On RegArDaIt LeS LiKes eT LeS FoLlOwErS ?

Les rĂ©seaux sociaux ont amenĂ© du pire dans GitHub avec les “likes” et les compteurs de “followers”.

Cet autre piĂšge Ă  Ă©viter consiste Ă  se contenter de regarder ces nombres de stars et de forks d'un projet sur la forge logicielle que l'on veut. Avec l'avĂšnement des rĂ©seaux sociaux, on veut “liker”, “booster”, “up-voter” ou “starrer” des projets que l'on aime bien, ou que l'on pourrait aimer, ou pour faire plaisir au gars derriĂšre qu'on connait. Mais en soit, ni le fonctionnel ni la qualitĂ© du projet ne sont par essence et par dĂ©finition concernĂ©s. Il en est de mĂȘme pour les forks ; il est courant de voir des utilisateurs en crĂ©Ă©er juste... au cas oĂč, pour grossir son profil GitHub, ou pour faire une pull request un jour ou pas. Surtout ou pas. Quand au nombre de “followers” du dĂ©veloppeur principal, en quoi le fait qu'il en ait 2 300 au moins soit rassurant ? Le personnage peut ĂȘtre tout Ă  fait exĂ©crable, pĂ©nible voire mĂȘme adepte de la pizza avec des patates dessus, pourquoi afficher cette fausse notoriĂ©tĂ© qui n'apporte rien ?

Est-ce que l'exemple ci-dessous est un gros projet ? Un truc balĂšze ? Non, c'est juste un programme affichant un train Ă  vapeur si on se trompe de commande (moi j'adore).

Compteurs sociaux du projet avec 386 forks et au moins 2 600 forks

Oh, et puis, bien Ă©videmment, on peut acheter des “stars” sur GitHub Ă  prix rĂ©duit ! La plaie du social jusqu'aux forges logicielles, et Ă  portĂ©e de main. Cet article est trĂšs instructif sur le sujet.

Environnement et qualité, beau code ou infect projet

On regarde les issues et requests ?

Un autre Ă©lĂ©ment Ă  considĂ©rer avec prudence est le nombre de issues et de pull requests / merge requests. En effet, un projet qui en possĂšde beaucoup peut ĂȘtre un projet trĂšs vivant, comme aussi un projet qui est trĂšs Ă  l'abandon mais avec une base d'utilisateurs rĂ©clamant des choses ou voulant contribuer sans personne derriĂšre pour valider. Ou alors peut ĂȘtre victime de trolls, comme ce fut le cas pour le dĂ©pĂŽt contenant l'algorithme de recommandations de Twitter. Prudence donc si on ne regarde que ces Ă©lĂ©ments sans les contextualiser.

On regarde les contributeurs ?

Chose intéressante aussi à voir, les contributeurs, ces petites mains visibles fournissant un incroyable travail.

Si vous utilisez un composant FLOSS avec un faible nombre de contributeurs, il est possible que derriĂšre ce projet il n'y ait presque personne en dehors de quelques passionnĂ©s dĂ©vouĂ©s (bĂ©nĂ©volement le plus souvent) Ă  leur projet (pour la gloire plus que pour l'argent). Il faut donc se demander si le fait que le projet repose sur un tout petit nombre de contributeurs est bloquant ou pas. Pour une librairie affichant de confettis c'est peut-ĂȘtre un Ă©lĂ©ment peu pertinent. Mais pour votre couche de chiffrement, est-ce une bonne idĂ©e de compter sur un seul pĂ©quin derriĂšre ?

D'ailleurs, question bĂȘte, est-ce que l'on suppose que la source de vĂ©ritĂ© est... fiable ? Car pour ĂȘtre affichĂ©s comme contributeurs sur un projet GitHub, il faut apparaĂźtre Ă  certains endroits dans les commits. Quid des personnes voulant rester anonymes ? Des personnes en pair-programming ? Ou d'une organisation faisant que le mainteneur principal s'acharne maladroitement Ă  garder un historique Git propre et donc fait du copier/coller des pull requests mais en gardant Ă  jour le fichier AUTHORS par honnĂȘtetĂ© intellectuelle ? Ou des robots qui exĂ©cutent des tĂąches automatisĂ©es sur le dĂ©pĂŽt et qui figurent dans les contributeurs ?

Ci-dessous un exemple, avec le projet Amaroq. A-t-on vraiment 13 contributeurs ou 1 seul ? D'ailleurs peut-on vraiment se contenter de mesurer l'activité par le nombre de commits ? Non, évidemment.

GitHub affichant les contributeurs, au nombre de 13
Détails des commits par contributeur montrant que finalement seulement un seul se démarque énormément

En parlant de commits et des contributeurs, peut-on vraiment faire confiance aux contributions ? Il y a des projets FLOSS qui exigent des signatures cryptographiques des commits d'une part, et que le Developer Certificate of Origin soit appliqué d'autre part. Engager les responsabilités de chacun et s'assurer que les commits soient intÚgres ne semble pas une mauvaise idée, mais a-t-on toutes et tous l'habitude de le faire ? Non. Méconnaissance ou fainéantise ?

La doc ?

D'ailleurs, on peut aussi regarder les Ă©changes qui ont lieu dans les issues, les Slack ou Mattermost. Pour ce composant FLOSS qui vous intĂ©resse, peut-ĂȘtre ne seriez-vous jamais amenĂ©s Ă  Ă©changer avec les mainteneurs derriĂšre. Mais si vous voulez contribuer, ĂȘtes-vous prĂȘts Ă  dialoguer avec une Ă©quipe ayant une organisation pyramidale ? Ou concentrĂ©e sur un dĂ©veloppeur quasi-messianique Ă  qui tout le monde demande son avis et attend son accord ? Est-ce que l'ambiance est dĂ©lĂ©tĂšre dans le projet ?

On regarde le code source alors ?

Par ailleurs, jetez un Ɠil aussi au code source en lui-mĂȘme.

Si vous avez un projet iOS Ă©crit en Swift, avec uniquement des compĂ©tences en Swift dans votre Ă©quipe, seriez-vous prĂȘt Ă  soumettre des pull requests sur un composant Ă©crit en bon vieux Objective-C Ă  la papy ? Si une librairie JavaScript vous plait pour faire des jolies animations, ça vous tente vraiment de l'utiliser sachant qu'elle va tirer jQuery et que vous ĂȘtes fiers de vous en ĂȘtre dĂ©barrassĂ©s y'a 2 ans ? Si le CERT signale de vulnĂ©rabilitĂ©s critiques, et que le composant que vous voulez est concernĂ©, comment et Ă  quelle vitesse sont corrigĂ©es ces failles ? Il y en a certaines qui ne le sont toujours pas ? Et ils feront comment si le Cyber Resilience Act passe ? Si on voit plusieurs issues sur des vulnĂ©rabilitĂ©s non corrigĂ©es, remontĂ©es par Dependabot ou Snyk peut-on nĂ©cessairement en conclure que ce composant est dangereux alors qu'un autre sans de telles choses le serait moins mĂȘme si finalement il pourrait n'avoir en place aucun outil de dĂ©tection ?

Les gens c'est bien aussi non ?

Truc rigolo, vous connaissez le dĂ©veloppeur / grand chef derriĂšre le composant que vous voulez ? Car peut-ĂȘtre politiquement engagĂ© ou susceptible, ou impulsif, ou infect, et qu'il va saboter son projet ou pas, quitte Ă  se faire virer de GitHub. Impossible ? Voyez plutĂŽt.

D'ailleurs, pourquoi c'est lĂ  ?

Ce n'est pas parce que le code est sur GitHub, avec une licence libre ou open source que forcément cela a été fait avec une volonté de respecter la philosophie de l'un ou la méthodologie de développement de l'autre.

Par exemple le code a trĂšs bien pu ĂȘtre publiĂ© juste pour des raisons de transparence totalement opportuniste comme l'algorithme de recommandation de Twitter, maintenant X. Ou alors le code est publiĂ© car il embarque un composant sous licence Ă  copyleft fort qui implique une mise Ă  disposition du code source. D'autres projets peuvent ĂȘtre open source pour attirer des contributeurs trĂšs rapidement et aussi Ă©viter toute polĂ©mique en pleine pĂ©riode de crise, tant sur le manque de fonctionnalitĂ©s que sur le fonctionnement, sans pour autant avoir des perspectives sur le long terme. Ou alors certains projets dĂ©cident de se mettre en open source pour faire comme les concurrents et tout avoir public et sans vraiment de contributions venant de l'extĂ©rieur, pour le moment, ce qui est dommage car la qualitĂ© du produit est lĂ . Ou juste pour montrer ce qu'ils savent faire mais avec des licences ni libre ni open source, pour avoir quelques contributions mais juste avec le code source public. C'est trompeur, mais correct. Mais on a aussi des dĂ©pĂŽts open source car une communautĂ© s'est formĂ©e autours de l'outil, et lĂ  c'est chouette. Plus chouette qu'exposer des projets comme des design system alors que les seuls utilisateurs pourraient ĂȘtre des filiales ou partenaires, qui se serviront gratuitement, plutĂŽt que d'ĂȘtre facturĂ©s.

Bref... ce n'est pas parce que le produit est joli sur la vitrine, bien placĂ© en tĂȘte de gondole avec un emballage colorĂ© qu'il faut forcĂ©ment sauter dessus. C'est bien de regarder la date limite de consommation, les ingrĂ©dients, les excipients et les origines.

Du coup...

Du coup, il n'y a pas de bons ou de mauvais composants FLOSS. Et non, cette rĂ©flexion n'est pas de la “branlette intellectuelle”, bien au contraire. Certains composants sont d'apparence plus fiables que d'autres, il faut les juger par leur efficacitĂ© mais pas uniquement ceci dit. Il faut rester prudent sur les licences altĂ©rĂ©es, bĂątardes ou simplement sur leur nature intrinsĂšque. S'intĂ©resser Ă  l’environnement, Ă  l'ambiance, aux commits et au code source est une bonne chose Ă©galement.

Il faut aussi envisager le fait qu'un projet finisse par mourir, que sa core team abandonne, que le moteur s'Ă©puise. N'attendez pas pour les soutenir. N'attendez pas pour contribuer. N'hĂ©sitez pas les soutenir s'ils dĂ©fendent des causes justes. L'open source c'est comme une kombucha : c'est super de rĂ©cupĂ©rer une souche mĂšre pour faire vos boissons, mais c'est mieux de partager vos souches filles Ă  d'autres personnes pour qu'elles fassent pareil. À rester dans votre coin tout finira par pourrir et vous n'en tirerez plus grands choses. Prenez, amĂ©liorez, partagez et profitez.

Si vous voulez quelques pistes pour aborder les projets FLOSS, je vous partage ce support documenté, factuel et juste.

Message GitHub indiquant que le projet a été archivé par son propriétaire et qu'il est en lecture seule

— DerniĂšre mise Ă  jour : mercredi 17 octobre 2023 PrĂ©cĂ©demment sur paper.wf —

Did you enjoy reading this blog? Give me a beer đŸș or use something else â€ïžâ€đŸ”„ Licensed under CC-BY-SA 4.0 Opinions are my own, even if I have some interests. For any comment or to contact me, feel free to choose the most suitable medium for you.