Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Comment choisir les « bons » composants open source ? (Capitole du Libre 2023)

Comment choisir les « bons » composants open source ? (Capitole du Libre 2023)

Comment bien choisir son composant open source / libre / ethical source ?
On peut être tenté de regarder le nombre de commits, le nombre de contributeurs ou vaguement la licence du composant. Mais il y a d'autres choses à prendre en compte pour essayer de faire le choix le moins mauvais.
Sans parler du fonctionnel du composant, voici quelques astuces à garder en tête pour éviter d'être biaisé dans son choix, avec tout plein d'exemples.

Support de présentation sous licence CC BY-SA.

Vous avez aimé ce support ? Offrez-moi une bière, merci <3
(https://pylapersonne.info/buymeacoffee)

Pierre-Yves Lapersonne

November 17, 2023
Tweet

More Decks by Pierre-Yves Lapersonne

Other Decks in Programming

Transcript

  1. Composants open source
    Comment choisir les « bons » et éviter les pièges ?
    ✿✿✿✿ ʕ •ᴥ•ʔ/ 【デ═

    Version 8
    27/11/2023

    View full-size slide

  2. Pierre-Yves
    Lapersonne
    Artisan du logiciel
    @pylapp

    View full-size slide

  3. FLOSES
    FOSS, FLOSS, FLOSES, open source, libre, ethical source… Question de vocabulaire !
    4

    View full-size slide

  4. FLOpen SourceES
    7

    View full-size slide

  5. FLOSEthicalS
    8

    View full-size slide

  6. FLOSESoftware
    9

    View full-size slide

  7. - Un super collègue
    « L’open source est consubstanciel de l’informatique »
    10

    View full-size slide

  8. fi
    rstdonoharm.dev
    Des milliers de projets sous licence Hippocratic
    (au 17 novembre 2023)
    11

    View full-size slide

  9. GitHub
    + 160 000 projets sous licence LGPL
    (au 17 novembre 2023)
    12

    View full-size slide

  10. GitHub
    + 2,4 millions de projets sous licence Apache 2.0
    (au 17 novembre 2023)
    13

    View full-size slide

  11. GitHub
    + 2,9 millions de projets sous licence GPL
    (au 17 novembre 2023)
    14

    View full-size slide

  12. GitHub
    + 10 millions de projets sous licence MIT
    (au 17 novembre 2023)
    15

    View full-size slide

  13. Lorsque l’on cherche une brique FLOSES,
    comment choisir si possible la « bonne »
    en évitant quelques pièges et biais ?
    16 On va faire simple, on n’abordera pas le fonctionnel ni le service rendu des briques logicielles
    🧱

    View full-size slide

  14. L’excès de con
    fi
    ance
    envers les auteurs du projet
    #1
    17

    View full-size slide

  15. Trop de con
    fi
    ance tue la con
    fi
    ance
    2017 : Facebook utilise la licence BSD+Patent avant de changer
    2018 : MongoDB dégage la AGPL 3.0 au pro
    fi
    t de la licence SSPL
    2021 : Elastic jette la Apache 2.0 pour Elastic v2 et SSPL
    2021 : Grafana passe de Apache 2.0 à AGPL v3
    2021 : animate.css passe de MIT à Hippocratic 2.1
    2023 : HashiCorp abandonne la MPL 2.0 pour la BSL avec fracas
    2023 : Element choisit la AGPL v3 mais avec un Contributor License Agreement
    2023 : Sentry passe de la BSL à la licence FSL
    18

    View full-size slide

  16. Rester prudent avec les licences actuelles
    qui peuvent changer
    pour des raisons stratégiques
    #1
    19

    View full-size slide

  17. Les petites lignes vicieuses
    au sein même des licences
    #2
    20

    View full-size slide

  18. 21 Pourquoi GitHub ne reconnait pas automatiquement la licence ?

    View full-size slide

  19. Toujours véri
    fi
    er les licences
    qui peuvent contenir
    des clauses supplémentaires problématiques
    #2
    22

    View full-size slide

  20. L’obsession des compteurs
    et la folie des nombres
    #3
    23

    View full-size slide

  21. Plus il y a de commits, mieux c’est ? Quelles sont les natures et compositions des commits ?
    24

    View full-size slide

  22. Quelles utilisations des forks et stars ont les usagers de GitHub ? Pour quoi en faire ?
    25

    View full-size slide

  23. Des bugs ? Des trolls ? Une grosse roadmap ? Des problèmes ?
    26

    View full-size slide

  24. Plusieurs contributeurs actifs ? De passage ? Bien identi
    fi
    és dans le dépôt Git ?
    27

    View full-size slide

  25. Rester prudent avec les nombres
    de commits, stars, forks, issues, contributeurs…
    qui peuvent être totalement trompeurs
    et interprétés de manières différentes
    #3
    28

    View full-size slide

  26. Ne pas regarder sous le capot
    et ignorer ce qu’il y a dedans
    #4
    29

    View full-size slide

  27. Toujours regarder les rouages
    Y a-t-il des alertes de sécurité ? Corrigées ?
    En quoi est écrit le code source ? Peut-on l’améliorer ?
    Comment est testé le composant ? Peut-on le corriger ?
    Dans quel état est la documentation ? Est-elle suf
    fi
    sante ?
    Comment est organisé le projet, techniquement et humainement ?
    Dommage de choisir une brique FLOSES sans regarder dedans, non ?
    30

    View full-size slide

  28. Regarder le composant en détails
    permet d'en savoir plus
    sur sa conception, sa maintenabilité
    et ses perspectives d’avenir
    #4
    31

    View full-size slide

  29. Ne pas assez considérer
    les humains derrière le projet
    #5
    32

    View full-size slide

  30. humain++ ; // Ne pas oublier
    Notepad++ et Je Suis Charlie, Gilets Jaunes, Free Uyghur
    Linux et son créateur au caractère compliqué
    colors.js et faker.js corrompus par leur auteur
    #NoTechForICE
    33

    View full-size slide

  31. Penser aux gens derrière le projet
    qui peuvent être usés, démotivés,
    indisponibles, engagés, compliqués…
    #5
    34

    View full-size slide

  32. Ne pas savoir
    pourquoi le composant est… là
    #6
    35

    View full-size slide

  33. Pourquoi c’est là ?
    Attirer des contributeurs rapidement comme CovidTracker ou Duniter et Ğ1
    Faciliter l’adoption d’un outil avec une communauté comme Hurl ou Boosted
    Adhérer aux philosophies* comme les projets du fediverse
    Être conforme avec les licences à copyleft
    Être transparent comme Twitter et son algorithme ou Stop Covid
    Se distinguer des concurrents en s’af
    fi
    chant comme Nvidia
    Partager de la valeur entre sociétés sans facturation comme des design systems
    (*) open source, libre ou ethical source par exemple
    36

    View full-size slide

  34. Se demander ce qui motive
    le choix de ce fonctionnement
    #6
    37

    View full-size slide

  35. Ne pas faire attention
    à l’endroit où est le composant
    #7
    38

    View full-size slide

  36. Pourquoi là ?
    GitHub est réputé, mais racheté par Microsoft, bloque certains
    utilisateurs et soumis à la censure Digital Millennium Copyright Act
    GitLab est réputé… mais soumis au DMCA et aux sanctions
    américaines aussi
    Et les autres forges ? Et celles auto-hébergées ?
    #GiveUpGitHub
    39

    View full-size slide

  37. Évaluer les risques de dépendre
    de la forge logicielle qui héberge
    #7
    40

    View full-size slide

  38. Lorsque l’on cherche une brique FLOSES,
    comment choisir si possible la « bonne »
    en évitant quelques pièges et biais ?
    41
    🧱

    View full-size slide

  39. Il y a des bonnes et des mauvaises briques,
    mais aussi des bons et des mauvais choix,
    tout dépend de comment ils ont été faits,
    pourquoi et par qui
    42
    🤔

    View full-size slide

  40. Et trop souvent les gens s’en
    fi
    chent, car ce serait
    un combat d’arrière garde mené par des Rambos*
    qui en deviendrait tragique*
    43 (*) merci à Matt Asay (MongoDB) ainsi que Dave McJannet (HashiCorp) pour ces pleurnicheries libertariennes
    🤯

    View full-size slide

  41. Pour aller plus loin

    View full-size slide

  42. Présentation largement inspirée de mon billet de blog à ce sujet
    45

    View full-size slide

  43. Ce support a été rédigé afin de partager aux personnes curieuses

    quelques pistes de réflexion documentées sur les biais et pièges que l’on peut rencontrer

    dans le choix de composants logiciels open source, libre ou ethical source,

    ceci dans le cadre de l’édition 2023 du Capitole du Libre

    et en 25 minutes.

    Les opinions exprimées sont les miennes, et ne représentent aucunement celles de tiers

    (employeurs, associations etc.)

    avec lesquels j’ai pu être ou suis encore en relation.

    Je rappelle à toute fin utile que ma déclaration d‘intérêts est en ligne (pylapersonne.info/declaration).

    Support sous licence CC BY-SA 4.0.

    Tous les liens hypertextes ont été consultés et vérifiés au plus tard le 17 novembre 2023.

    View full-size slide