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/pluginManagementutilisé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 ;
cleantraité 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.