Skip to content

chore: double licence EUPL-1.2 / AGPL-3.0, provenance du code et contrôle des licences - #46

Merged
PhilippeVienne merged 3 commits into
devfrom
chore/provenance-licences
Sep 26, 2026
Merged

PhilippeVienne merged 3 commits into
devfrom
chore/provenance-licences

Conversation

@PhilippeVienne

@PhilippeVienne PhilippeVienne commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Objet

Trois commits, à relire séparément :

  1. Double licence : le projet passe en EUPL-1.2 OR AGPL-3.0-only, au choix du réutilisateur (texte AGPL repris de la version antérieure à chore: passage de la licence à l'EUPL-1.2 #35, README, CONTRIBUTING, champ license du workspace). Le dernier commit restreint la branche AGPL à la version 3 uniquement (le premier écrivait -or-later).
  2. Provenance et licences :
    • PROVENANCE.md : déclaration d'assistance par IA (Claude Code), rôle du contributeur humain, remorque Co-authored-by: Claude <noreply@anthropic.com> exigée à partir du 2026-09-25, état de la couverture des commits antérieurs ;
    • scripts/provenance.py : trace / report rattachent un commit aux sessions Claude Code locales qui l'ont créé ou ont ouvert/fusionné sa PR ; archive / verify tiennent une archive immuable des transcriptions (objets SHA-256, manifestes chaînés, horodatage RFC 3161 par une TSA tierce). Les transcriptions ne sont jamais commitées ;
    • .github/pull_request_template.md : ce modèle, avec la revue humaine obligatoire ;
    • deny.toml + job CI licenses (cargo-deny), make licenses, make provenance.

Base : dev (a600350). Indépendante de la pile en cours.

Limite assumée : une dépendance AGPL-3.0 est admise par deny.toml, mais le binaire qui l'embarque ne serait plus distribuable que sous AGPL-3.0 ; c'est écrit dans le fichier et devra être signalé par la PR qui en ajouterait une. Les autres copyleft (GPL, LGPL, OSL, EPL, CeCILL…) restent refusés sauf exception consignée.

Vérifications

  • cargo deny check licenses : licenses ok ; licence effective de toutes les crates : EUPL-1.2 OR AGPL-3.0-only.
  • Mutation : sans MPL-2.0 dans la liste, les 5 crates webauthn-rs sont rejetées (code 4), puis contrôle revenu vert.
  • scripts/provenance.py report sur dev : 76/102 commits rattachés à une session ; trace sur le second commit de cette PR : « créé », remorque présente.
  • archive puis verify --tsa-ca (certificat FreeTSA) : jeton vérifié ; altération d'un objet détectée dans les deux manifestes qui le référencent.
  • Aucun code Rust modifié (pas d'effet sur fmt, clippy ni tests).

Revue humaine obligatoire

Voir PROVENANCE.md. Chaque case est cochée par le contributeur humain qui valide la PR, après l'avoir fait lui-même.

  • Revue d'architecture validée par l'humain
  • Code relu et tests unitaires/intégration vérifiés localement
  • Absence de dépendances tierces incompatibles avec la double licence EUPL-1.2 / AGPL-3.0 (make licenses)
  • Validation de l'apport intellectuel et de la paternité humaine sur la modification

Assistance par IA

  • Cette PR a été produite avec l'assistance de Claude Code : les commits concernés portent la remorque Co-authored-by: Claude <noreply@anthropic.com>, auteur et committer restent humains, et scripts/provenance.py archive a été lancé
  • Cette PR a été écrite sans assistance par IA

PhilippeVienne and others added 3 commits September 26, 2026 08:30
Le projet est désormais distribué sous « EUPL-1.2 OR AGPL-3.0-or-later »,
au choix du réutilisateur. La branche AGPL permet d'intégrer Open eIDAS
directement dans un projet sous AGPL ou GPL v3, sans passer par l'annexe
de compatibilité de l'EUPL.

- LICENSE-AGPL-3.0 : texte de l'AGPL v3, repris de la version précédant
  le passage à l'EUPL (#35)
- Cargo.toml : license = "EUPL-1.2 OR AGPL-3.0-or-later", hérité par
  toutes les crates
- README et CONTRIBUTING : section licence et badge

Seul titulaire des droits sur le code, l'auteur procède à ce changement.

Co-authored-by: Claude <noreply@anthropic.com>
Traçabilité de l'intervention humaine dans la conception, la revue et la
validation du code, et vérification des licences des dépendances.

- PROVENANCE.md : déclaration d'assistance par IA (Claude Code), rôle du
  contributeur humain, remorque Co-authored-by exigée à partir du
  2026-09-25, état de la couverture des commits antérieurs
- scripts/provenance.py : rattache un commit aux sessions Claude Code
  locales qui l'ont créé ou qui ont ouvert/fusionné sa PR (trace, report),
  archive immuable des transcriptions adressée par SHA-256, manifestes
  chaînés et horodatés en RFC 3161 par une TSA tierce (archive, verify)
- .github/pull_request_template.md : liste de contrôle de revue humaine
  obligatoire et déclaration d'assistance
- deny.toml + job CI « licenses » (cargo-deny) : licences permissives,
  MPL-2.0 et AGPL-3.0 admises ; autres copyleft refusés sauf exception
  humaine consignée. Vérifié par mutation : sans MPL-2.0, les crates
  webauthn-rs sont rejetées
- Makefile : cibles licenses et provenance
- CONTRIBUTING : section assistance par IA et provenance

Co-authored-by: Claude <noreply@anthropic.com>
La double licence devient « EUPL-1.2 OR AGPL-3.0-only » : la branche AGPL
ne couvre que la version 3, pas les versions ultérieures qu'éditerait la
FSF. Mis à jour dans Cargo.toml, README, CONTRIBUTING, PROVENANCE.md et
les commentaires de deny.toml.

deny.toml continue d'admettre les dépendances « AGPL-3.0-or-later » :
elles restent utilisables sous AGPL-3.0.

Co-authored-by: Claude <noreply@anthropic.com>
@PhilippeVienne
PhilippeVienne merged commit 9f4487a into dev Sep 26, 2026
17 checks passed
@PhilippeVienne
PhilippeVienne deleted the chore/provenance-licences branch September 26, 2026 08:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant