SovereigntyGap.

Lire un Profil — angle Développeur

Guide de lecture par persona
Choix technique de dépendance.

Lire un Profil — angle Développeur#

Lire un Profil au moment où l’on arbitre une dépendance technique — bibliothèque, framework, service tiers, PaaS — et qu’on doit décider si l’on veut bâtir dessus pour les cinq ans qui viennent.

Ton enjeu#

Un développeur ne lit pas un Profil dans la même posture qu’un DSI, un RSSI, un acheteur, un investisseur ou un journaliste. Aucun d’eux n’arbitre la dépendance technique elle-même. Le développeur, lui, choisit la brique sur laquelle son code reposera : le geste est en amont des arbitrages commerciaux, et il propage. Choisir une bibliothèque single-vendor il y a cinq ans pour un projet aujourd’hui critique, c’est avoir installé un point de rupture qu’aucune décision d’achat ultérieure ne peut désinstaller sans coût. Le Profil rend lisible ce que la doc, le README et le nombre de stars ne disent pas : la chaîne réelle sous la brique, donc la dette de souveraineté qu’on prend au moment du choix. C’est aussi le persona où l’action peut être personnelle, indépendamment de toute décision d’achat collective.

Lecture en 5 minutes#

Cinq champs suffisent à décider si une dépendance tient son propre récit ou s’il faut chercher une alternative avant que le code ne s’enracine.

  • Domaine 1 — Composants tiers stratégiques. Si le domaine est vide ou nomme une seule brique sans transitivité, vous ne savez pas sur quoi vous vous appuyez : un composant qui dépend lui-même d’un single-vendor hérite du risque sans le dire.
  • Domaine 3 — Chaîne d’approvisionnement. Forge, registre (npm, PyPI, Maven, NuGet, crates.io), CI/CD, signature des artefacts. Un domaine 3 silencieux laisse l’angle mort que les incidents type XZ Utils, Heartbleed ou Log4Shell ont documenté.
  • Domaine 5 — Continuité en cas de défaillance. Le fork est-il viable ou théorique ? La gouvernance est-elle ouverte ? Existe-t-il une communauté de contributeurs au-delà du single-vendor ? Sans réponse, votre porte de sortie n’existe pas.
  • Domaine 7 — Engagements assumés et limites. Un fournisseur qui ne dit rien sur la pérennité de son API, sur sa roadmap, sur le support long terme, vous oblige à supposer le pire — le silence ici a une valeur.
  • Date de mise à jour vs cycles de release. Un Profil figé pendant que le projet a sorti trois versions majeures décrit une cible obsolète.

Lecture approfondie#

Sept domaines, sept éclairages depuis l’angle développeur. Cette section ne réécrit pas les fiches pédagogiques — elle dit ce qu’un développeur en tire pour arbitrer son choix de stack.

Domaine 1 — Composants tiers stratégiques#

Le domaine 1 est le test de la transitivité des dépendances. Une bibliothèque qui s’appuie sur une brique amont single-vendor hérite du risque sans le dire — la lisibilité de la chaîne s’arrête où le domaine s’arrête.

Domaine 2 — Plans de contingence#

Le domaine 2 dit si le projet peut survivre à la disparition d’une brique critique amont. Pour le développeur, c’est l’indice qu’une bascule a été pensée, pas seulement souhaitée — un plan théorique ne tient pas à l’épreuve du jour J.

Domaine 3 — Chaîne d’approvisionnement#

Le domaine 3 est le cœur de la lecture développeur sur la menace technique directe. Forge, registre, CI/CD, signature des artefacts : c’est par là qu’arrivent les incidents type typosquatting, ev-builds, ou compromission upstream à la XZ Utils. Un domaine 3 qui nomme la propriété de la forge et la signature transforme une menace systémique en risque adressable.

Domaine 4 — Hébergement et données#

Le domaine 4 intéresse le développeur quand la brique est un service tiers consommé en production — PaaS, API SaaS, managed service. La juridiction effective de l’hébergeur détermine si l’API peut être coupée par sanction extraterritoriale, ou si un transfert de données engage votre conformité aval. Le lock-in PaaS mérite ici une attention propre : un Procfile Heroku, un handler AWS Lambda, un build Vercel ou Netlify, un binding Cloudflare Workers ne sont pas des choix de stack neutres — ils encodent l’orchestration dans un format propriétaire. Le Profil d’un fournisseur PaaS doit dire à quoi son runtime engage votre code, et ce qui se passe quand vous décidez d’en sortir.

Domaine 5 — Continuité en cas de défaillance#

Le domaine 5 est le terrain de la forkabilité réelle côté code, et de la portabilité du runtime côté exécution — deux conditions distinctes mais complémentaires. Côté code : licence ouverte, communauté élargie, gouvernance lisible, séquestre documenté ; sans ces conditions, le fork reste un droit théorique qu’aucune équipe ne peut activer le jour où l’éditeur ferme. Côté runtime : Dockerfile fourni, manifestes Kubernetes vendor-neutres ou docker-compose.yml canonique, build reproductible, clause contractuelle de réversibilité avec délai chiffré ; sans cela, votre application ne s’exécute que là où elle a été conçue pour s’exécuter — la sortie est possible en théorie, longue en pratique. Un fournisseur sérieux nomme ces deux conditions ; un Profil silencieux sur l’une comme sur l’autre laisse la porte de sortie virtuelle.

Domaine 6 — Gouvernance et capital#

Le domaine 6 indique qui décide de l’avenir du projet. Une fondation ouverte, une gouvernance multi-acteurs et un capital lisible donnent une espérance de continuité ; un projet entièrement piloté par un éditeur unique, ou hébergé sous une fondation étrangère sans miroir européen actif, expose à une bascule de licence — MPL à BSL, AGPL à SSPL — dont la culture open source porte désormais l’historique.

Domaine 7 — Engagements assumés et limites#

Le domaine 7 est l’épreuve de sincérité. Un projet qui assume ses limites — « notre API publique n’est stabilisée que sur tel périmètre », « le support long terme dépend du financement de tel mainteneur », « cette intégration restera best-effort » — vous donne un point de départ honnête. Un domaine 7 vide vous laisse supposer le pire, notamment sur la pérennité de l’API que vous consommez.

Signaux d’alerte#

Six signaux qui doivent déclencher un examen renforcé avant d’inscrire la dépendance dans votre package.json, votre pom.xml ou votre Cargo.toml. Aucun ne suffit seul à disqualifier ; leur cumul indique une dépendance dont l’avenir n’est pas dans vos mains.

  • Dépendance single-vendor. Plus de 80 % des commits viennent d’un seul éditeur, sans communauté élargie. Conséquence : le fork est théorique mais non viable — voir famille 6 — fragilité supply chain pour les cas où l’événement amont a frappé l’ensemble de l’écosystème aval.
  • Fondation étrangère sans miroir européen actif. Le projet est hébergé sous Linux Foundation, Apache ou CNCF sans équivalent européen — Eclipse, NLnet, certaines fondations PolyForm. Pas une disqualification automatique, mais un signal à pondérer : la décision LF d’octobre 2024 a documenté qu’une fondation étrangère peut appliquer des sanctions sur ses contributeurs.
  • Registre captif sans alternative testée. npm, PyPI ou GitHub Container Registry comme seul point de distribution, sans miroir Codeberg, Forgejo ou européen vérifié. Conséquence : si le registre devient indisponible ou applique une mesure de sanction, votre chaîne s’arrête.
  • Absence d’engagement upstream du fournisseur SaaS. Un fournisseur qui consomme massivement de l’open source mais ne contribue pas en retour — zéro équivalent à pub-008-contribute-to-upstream. Conséquence : la base sur laquelle il s’appuie n’est financée par personne, et vous avec.
  • Domaine 7 silencieux sur l’API, la roadmap, le support. Le projet ne dit rien sur ce qu’il garantit dans la durée. Conséquence : votre intégration peut être cassée à la prochaine version majeure sans recours — voir le tournant documenté dans la famille 7 — tournant IA, où des API prises pour acquises ont changé d’économie en quelques mois.
  • Déclaration figée vs cycle de release. Le projet a sorti deux versions majeures depuis la dernière mise à jour du Profil. Conséquence : la chaîne décrite n’est plus la chaîne actuelle.
  • PaaS propriétaire sans plan de portabilité. Le déploiement repose sur un runtime spécifique (Heroku, Vercel, Netlify, AWS Lambda, Cloudflare Workers) sans Dockerfile équivalent ni manifestes vendor-neutres, sans clause contractuelle de réversibilité chiffrée. Conséquence : votre application n’est exécutable que là où elle est conçue pour s’exécuter — le coût de migration n’est pas inscrit, donc il s’imputera intégralement à votre future équipe.

Comment agir#

Lire un Profil ne suffit pas — il faut transformer la lecture en pratique de stack. Cinq gestes propres au développeur rendent la lecture opérationnelle, et la spécificité de ce persona compte : l’action peut être individuelle, sans passer par une décision d’achat collective.

D’abord, traiter le Profil comme un élément du choix de dépendance, au même titre que la licence et les CVE connues — un geste neuf à acquérir. L’engagement dev-002-document-dependencies-jurisdiction formalise la documentation des juridictions des dépendances que vous tirez.

Ensuite, héberger ses nouveaux projets sur des forges européennes quand le contexte le permet — Codeberg, Forgejo, GitLab self-hosted UE. C’est dev-001-european-forge-new-projects, l’un des rares engagements activables sans validation hiérarchique.

Puis, contribuer aux projets européens plutôt que de simplement les consommer — dev-003-contribute-european-projects — et recommander à ses pairs d’utiliser un Profil pour évaluer leurs propres dépendances. dev-004-recommend-european-alternatives ancre ce levier, décisif puisque les choix de dev précèdent souvent les décisions d’achat.

Documenter sa propre stackdev-005-document-personal-stack-choices — rend lisibles ses propres choix techniques et alimente la cartographie collective.

Privilégier les architectures portablesDockerfile versus Procfile propriétaire, docker-compose.yml ou manifestes Kubernetes vendor-neutres versus bindings PaaS spécifiques, builds reproductibles versus pipelines couplés à un fournisseur unique. Le geste opérationnel, pour un développeur qui hérite déjà d’une architecture verrouillée, consiste à exiger qu’un Dockerfile équivalent existe et qu’il soit testé en CI sur une cible alternative — c’est la garantie que la sortie est exécutable, pas seulement contractuelle. Cette préférence rejoint la posture Compose-first du manifeste : préférer le self-hosted léger via Docker Compose à un Kubernetes-as-default-target dont la gouvernance américaine et l’infrastructure lourde fragilisent autant qu’elles standardisent.

Enfin, financer les mainteneurs — réserver une enveloppe annuelle pour NLnet, Eclipse, Sovereign Tech Fund, ou pour les mainteneurs des briques que l’on consomme. C’est dev-006-fund-maintainers, un alignement matériel et pas seulement déclaratif. Les limites assumées du dispositif précisent ce que ces engagements prétendent porter.

Préparer votre propre déclaration#

Le développeur n’est pas un fournisseur au sens strict du manifeste, mais le dispositif lui ouvre une voie qui n’est ouverte à aucun autre persona : la déclaration peut être personnelle. Un développeur peut publier sa propre liste d’engagements — forges utilisées, projets auxquels il contribue, mainteneurs qu’il finance, choix de stack documentés. C’est l’axe 4 du manifeste appliqué à l’individu : la grammaire de la chaîne descend jusqu’au geste personnel et structure le marché par le bas. Le panier ci-dessous propose les engagements et domaines pertinents pour ce persona, et la philosophie complète du dispositif en pose le cadre.

Préparer votre déclaration — angle Développeur

Le manifeste demande aux fournisseurs un domaine 7. Vous pouvez aussi le publier.

Engagements suggérés

  • Privilégier l'hébergement de mes nouveaux projets sur des forges européennes

    Choisir, pour vos nouveaux projets, des forges de code source dont la gouvernance est européenne ou neutre.

    Voir la fiche →
  • Examiner la juridiction de gouvernance des composants tiers que vous utilisez dans vos projets professionnels

    Examiner systématiquement, pour chaque projet professionnel, la juridiction de gouvernance des composants tiers utilisés.

    Voir la fiche →
  • Contribuer régulièrement à un projet open source sous gouvernance européenne ou de fondation neutre

    Allouer une part régulière de votre temps à la contribution active à un projet open source européen ou de fondation neutre.

    Voir la fiche →
  • Recommander explicitement des alternatives européennes ou de fondation neutre à vos clients et collègues

    Intégrer dans votre pratique professionnelle quotidienne la recommandation explicite et argumentée d'alternatives européennes ou de fondation neutre.

    Voir la fiche →
  • Publier vos choix de stack technique et le raisonnement de souveraineté qui les sous-tend

    Publier sur votre site personnel votre stack technique de prédilection et le raisonnement de souveraineté qui la sous-tend.

    Voir la fiche →
  • Reverser une fraction documentée de vos revenus professionnels au financement direct des mainteneurs open source

    Allouer chaque année une fraction documentée de vos revenus professionnels au financement direct des mainteneurs open source dont vous dépendez.

    Voir la fiche →

Domaines du Profil pertinents

  • Engagements et limites assumés

    Déclarer honnêtement ce que vous garantissez et ce que vous ne pouvez pas garantir

    Voir la fiche →

0 engagements, 0 domaines dans ma déclaration

Continuer dans le générateur →