Files
pgr/deltas/0.0.2/alpha.4.md
2026-09-23 15:05:35 +02:00

6.1 KiB

Delta 0.0.2-alpha.4 — profil Java / Maven / Gradle

Baseline

Version attendue avant application :

0.0.2-alpha.3

Le history history/0.0.2/alpha.3.md MUST avoir été appliqué et committé avant ce delta.

Version après application :

0.0.2-alpha.4

Objet

Matérialiser le deuxième profil technologique de PGR : Java / Maven / Gradle.

Cette tranche conserve une frontière explicite entre :

Java
→ règles du langage et de l'API

Maven / Gradle
→ spécialisations de build

Android / frameworks futurs
→ contraintes plus spécifiques qui pourront surcharger localement Java ou Gradle

Aucune règle Android, AGP, SDK, minSdk, targetSdk, versionCode, APK/AAB ou JNI n'est absorbée dans ce profil.

Réconciliation retenue

Le profil reprend les principes déjà établis par PGR et les corpus de conception revus pour cette release :

  • JDK LTS par défaut, dernière LTS compatible utilisée en priorité ;
  • bascule vers une LTS plus ancienne lorsqu'une dépendance ou un outil l'exige ;
  • non-LTS uniquement par exception justifiée ;
  • séparation entre JDK de build et niveau Java/runtime supporté ;
  • structure standard src/main/java, src/main/resources, src/test/java, src/test/resources ;
  • packages orientés responsabilités et visibilité minimale ;
  • imports explicites ;
  • interfaces uniquement lorsqu'une vraie frontière existe ;
  • pas de Lombok/convenience codegen implicite par défaut, sans interdire les annotations fonctionnelles de frameworks ;
  • nullabilité et exceptions explicites ;
  • tests unitaires/intégration/environnement séparables ;
  • politique Maven centralisée dans le parent/root ;
  • dependencyManagement / pluginManagement utilisés pour la politique commune sans ajouter artificiellement les dépendances aux modules ;
  • Maven Wrapper conditionnel selon le besoin de reproductibilité ;
  • configuration Gradle commune centralisée ;
  • version catalog Gradle uniquement si la complexité le justifie ;
  • contrainte Gradle exprimée comme minimum, range, pin exact ou latest compatible selon la vraie matrice ;
  • Gradle Wrapper recommandé lorsqu'il apporte une reproductibilité réelle, sans interdire un Gradle système explicitement contraint ;
  • un DSL Gradle cohérent par projet, sans transformer Groovy/Kotlin DSL en préférence de langage applicatif ;
  • tâches ciblées pendant le développement, gates globales lorsque leur preuve devient utile ;
  • clean traité comme maintenance ;
  • outputs/caches/état local hors Git, avec wrappers comme exception volontaire lorsqu'ils sont retenus.

Profil créé

Le nouveau propriétaire normatif est :

docs/rules/520-JAVA_MAVEN_GRADLE.md

Il complète la famille 500 — languages / ecosystems et n'introduit pas de nouvelle famille de navigation.

Aucun audit Java/Maven/Gradle n'est ajouté : le dépôt PGR ne contient actuellement aucun projet de ce type sur lequel une telle gate fournirait une preuve réelle.

Scope

REPLACE :

VERSION
RULES.md
docs/rules/000-README.md

ADD :

docs/rules/520-JAVA_MAVEN_GRADLE.md
deltas/0.0.2/alpha.4.md

DELETE : aucun.

Aucun manifest de suppression n'est nécessaire.

Validation opérateur

test "$(cat VERSION)" = "0.0.2-alpha.4"

test -f docs/rules/520-JAVA_MAVEN_GRADLE.md
test -f deltas/0.0.2/alpha.4.md

grep -F 'le JDK de développement SHOULD être une version LTS' docs/rules/520-JAVA_MAVEN_GRADLE.md
grep -F 'JDK utilisé pour construire' docs/rules/520-JAVA_MAVEN_GRADLE.md
grep -F 'src/main/' docs/rules/520-JAVA_MAVEN_GRADLE.md
grep -F 'Lombok et les outils équivalents de convenience/codegen implicite SHOULD NOT être utilisés par défaut' docs/rules/520-JAVA_MAVEN_GRADLE.md
grep -F 'Le fichier PGR `VERSION` reste la version canonique de l' docs/rules/520-JAVA_MAVEN_GRADLE.md
grep -F 'PGR MUST NOT ajouter un Maven Wrapper uniquement par cérémonie.' docs/rules/520-JAVA_MAVEN_GRADLE.md
grep -F 'minimum seulement' docs/rules/520-JAVA_MAVEN_GRADLE.md
grep -F 'Un Gradle Wrapper SHOULD être versionné lorsqu' docs/rules/520-JAVA_MAVEN_GRADLE.md
grep -F 'Groovy DSL et Kotlin DSL sont tous deux reconnus.' docs/rules/520-JAVA_MAVEN_GRADLE.md
grep -F 'gradle clean` est une opération de maintenance' docs/rules/520-JAVA_MAVEN_GRADLE.md
grep -F 'Aucune commande Maven/Gradle n' docs/rules/520-JAVA_MAVEN_GRADLE.md

grep -F '520-JAVA_MAVEN_GRADLE.md' RULES.md
grep -F '520-JAVA_MAVEN_GRADLE.md' docs/rules/000-README.md

python3 -B scripts/audit_markdown_tables.py     README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts

git diff --check

git add VERSION RULES.md     docs/rules/000-README.md     docs/rules/520-JAVA_MAVEN_GRADLE.md     deltas/0.0.2/alpha.4.md

git diff --cached --check

git status --short

La sortie attendue avant ajout du history est :

M  RULES.md
M  VERSION
A  deltas/0.0.2/alpha.4.md
M  docs/rules/000-README.md
A  docs/rules/520-JAVA_MAVEN_GRADLE.md

Revue opérateur complémentaire :

  • confirmer que les règles Java restent distinctes des contraintes propres à Maven/Gradle ;
  • confirmer que les contraintes Android restent hors de ce profil et pourront surcharger localement Gradle/JDK en alpha.5 ;
  • confirmer que la politique JDK privilégie les LTS sans pin exact arbitraire ;
  • confirmer que Lombok/convenience codegen est distingué des annotations fonctionnelles de frameworks ;
  • confirmer que Maven Wrapper et Gradle Wrapper sont des choix de reproductibilité justifiés, pas des obligations cérémonielles universelles ;
  • confirmer qu'aucune commande Maven/Gradle réelle n'est exigée pour valider cette tranche documentaire dans le dépôt PGR lui-même.

Transition

PASS

Créer et appliquer séparément history/0.0.2/alpha.4.md, committer la tranche, puis préparer 0.0.2-alpha.5 consacré au profil plateforme Android.

FAIL

Rester dans 0.0.2-alpha.4.fix.M tant que les frontières Java/build tool ou les politiques de compatibilité restent incorrectes. Effectuer un REPLAN si la tranche révèle une dérive significative du scope.