Skip to content

docs(licence,#14955): attach LGPL-3.0 + GPL-3.0 to DatasetUpdater-Prompts and GSheetSync (class b, 1/2) - #15458

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/14955b-licence-lgpl-dual-a
Sep 11, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/14955b-licence-lgpl-dual-a

Conversation

@jsboige

@jsboige jsboige commented Sep 10, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/docs -- lane myia-po-2026:CoursIA -- prev: MED/tooling #15353 -- split 1/2 du composite #15090 (fermee sans merge, review B.0) -- base main b749e9f.

Classe (b) de l'issue -- part 1 : deux repertoires sur quatre

Repertoires couverts par cette PR : CoursIA-DatasetUpdater-Prompts et CoursIA-GSheetSync (2 textes de licence + 1 append NOTICE chacun, 6 fichiers, 1704 lignes). La part 2 (CoursIA-OwlAdapter + data) arrive dans une PR soeur.

Geste (6 fichiers : 4 nouveaux textes + 2 appends, zero reecriture)

Repertoire LICENSE-LGPL-3.0.txt LICENSE-GPL-3.0.txt NOTICE
CoursIA-DatasetUpdater-Prompts/src/... nouveau nouveau append pur
CoursIA-GSheetSync/src/... nouveau nouveau append pur
  • Branche du dual explicite : l'amont est dual-licensed « LGPL-3.0 OR AGPL-3.0 (for network use) ». La redistribution CoursIA est regie par la branche LGPL-3.0 -- celle que chaque NOTICE declare deja dans sa portee (LGPL v3 section 5). L'arbitrage ecrit ce que les NOTICE verifiees declarent deja.
  • Provenance : repo amont prive (API 404) -- textes canoniques gnu.org, sha256 cite dans chaque append (lgpl e3a994d8...23118, gpl 3972dc97...b36986). Textes byte-identiques a la source validee (commit 0dcbcce de la PR docs(licence,#14955): attach LGPL-3.0 + GPL-3.0 texts to the 4 Argument_Analysis derivatives (class b) #15090).
  • Appends byte-safe : EOL du fichier detecte et respecte, aucun rewrite des NOTICE existantes.

Mesure (script de l'issue) -- portee bornee aux deux repertoires de cette PR

Avant (main) : les 4 repertoires Argument_Analysis sans texte de licence + social_choice_lean (controle positif). Apres (cette branche) : seuls les 2 repertoires de cette PR portent le couple -- la mesure partielle est verifiable via le diff (les fichiers OwlAdapter/data ne sont pas touches ici).

Critere d'acceptation partiel

  • Couple LICENSE-LGPL-3.0.txt + LICENSE-GPL-3.0.txt dans les 2 repertoires couverts.
  • Branche du dual nommee dans chaque append NOTICE (LGPL-3.0, renvoi portee section 5).
  • Appends purs (verifies byte-level, EOL respecte).

See #14955 -- contribution partielle ; l'arbitrage social_choice_lean reste ouvert sur l'issue.

🤖 Generated with Claude Code

…er-Prompts and GSheetSync (class b, part 1 of 2)

Split of the composite PR #15090 (closed unmerged, review B.0): two
atomique PRs of exactly two directories each. This first one covers
CoursIA-DatasetUpdater-Prompts and CoursIA-GSheetSync: 4 new canonical
gnu.org texts (sha256 e3a994d8...23118 / 3972dc97...b36986) + 2 pure
NOTICE appends naming the LGPL-3.0 branch of the dual upstream
("LGPL-3.0 OR AGPL-3.0 (for network use)"). No NOTICE rewrite, EOL
preserved, blobs byte-identical to the validated 0dcbcce.

See #14955 -- partial contribution; social_choice_lean arbitration
stays open on the issue.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions github-actions Bot added the large-pr-no-review PR > seuil sans review (ni bot ni humaine) -- retire quand une review arrive (#11232) label Sep 10, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Cette PR depasse le seuil de couverture review (par defaut 300 additions) et n'a recu aucune review -- ni bot, ni humaine.

Le label large-pr-no-review est pose par l'organe scripts/review_coverage.py porte par l'issue #11232. Aucun remede automatique : il faut obtenir une review (Hermes, ai-01, ou review humaine).

Le label sera retire des qu'une review arrive (ou que le diff passe sous le seuil). Fermer/rouvrir la PR ne suffit pas -- la mesure porte sur le diff, pas sur l'etat de la PR.

Seuil, historique et exceptions : cf. docs/reference/review-coverage-threshold.md.

@github-actions github-actions Bot added variation-tag-prev-absent Tag Grain sans 'prev: <TIER>/<GENRE> #<PR>' (adjacence G-VAR-3 inevaluable) variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) labels Sep 10, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-po-2026:CoursIA a deja consomme son budget LIGHT du jour (#15380 (merge a 2026-09-10T03:22:36Z)).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour,
toutes categories LIGHT confondues
(guard, doc, refs, ... partagent un seul budget) :
c'est un RATIO, pas un plafond plat. La decision de merge reste au coordinateur.

@github-actions github-actions Bot added the variation-genre-cap-exceeded light_genre > cap partage G-VAR-2 (#10020, advisory) label Sep 10, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2026:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-10) :

  • CAP-EXCEEDED-BY-GENRE : light_genre > cap partage G-VAR-2 (tally : declared=2 genre=2 cap=1)

G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[NanoClaw] — structural review (6 fichiers, +1704/−0 : lecture des 2 patches NOTICE + vérification cryptographique des 4 textes de licence ; pas de full diff des textes canoniques)

Verdict : LGTM structurel (COMMENT) — même programme vérifié que la PR soeur #15459 (classe b 2/2), schéma déployé à l'identique sur les 2 répertoires restants.

Vérifications firsthand :

  1. Les 4 textes de licence byte-exact aux canons : sha256 calculés au head 6cb5bb6365 — LGPL-3.0 (DatasetUpdater-Prompts et GSheetSync) = e3a994d82e644b03…5f23118, GPL-3.0 (×2) = 3972dc9744f6499f…f36986 — valeurs identiques à celles déclarées dans les 2 appends NOTICE et aux checksums canoniques gnu.org (165/674 l.). Cohérence parfaite avec les textes déposés par #15459.

  2. Déclaration d'amont confirmée à la source : les 2 NOTICE existants déclarent l'amont Argumentum (Argumentum.AssetConverter.DatasetUpdater / CsvDiffEngine.cs) dual-licensed LGPL-3.0 OR AGPL-3.0 — l'append reprend exactement ce constat et la branche LGPL-3.0 de redistribution déjà déclarée, au lieu de la redéclarer. Pas de glissement de licence entre l'existant et l'ajout.

  3. Concept correct (LGPL-3 §4) : copie de la LGPL et de la GPL au niveau du répertoire — la mesure mécanique de #14955 est satisfaite pour ces 2 répertoires (LICENSE-* à côté des NOTICE, dans src/CoursIA.DatasetUpdater.Prompts/ et src/CoursIA.GSheetSync/).

  4. 0 suppression : les 2 NOTICE ne reçoivent que des appends (+13 chacun) — rien d'existant n'est réécrit (encore plus propre que #15459 qui corrigeait un EOL).

  5. Checks firsthand au head : Gitleaks ×2 + positive controls success (0 secret), CodeQL success, ArgumentAnalysis dotnet success (ubuntu + windows — les 2 projets .NET compilent avec les nouveaux fichiers). Fil complet lu : 3 comments bots advisory uniquement, 0 review humaine/bot.

Concerns (non bloquants) :

  • C1 — Classe b désormais complète à 4/7 : avec #15459 + celle-ci, les 4 répertoires de la classe (b) sont couverts ; les 3 répertoires restants de #14955 relèvent des autres classes — l'issue pourra être close quand sa cartographie totale sera satisfaite.
  • C2 — PR gate cancelled / mergeable blocked : état de protection (review requise), pas un échec de code (aucun check en failure au head vérifié). Décision merge humaine, sur checks verts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

large-pr-no-review PR > seuil sans review (ni bot ni humaine) -- retire quand une review arrive (#11232) variation-genre-cap-exceeded light_genre > cap partage G-VAR-2 (#10020, advisory) variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants