- PowerShell 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| rules | ||
| scripts | ||
| tests | ||
| AGENTS.md | ||
| README.md | ||
| solutions.json | ||
DevRules
DevRules est la source officielle des règles générales distribuées aux
solutions de l'équipe.
Fichiers distribués
La synchronisation remplace uniquement :
AGENTS.md;rules/GENERAL_*.md;rules/DEV_RULES_VERSION.
Les fichiers rules/SOLUTION_*_RULES.md et les autres fichiers propres à une
solution ne sont jamais modifiés par la synchronisation.
GENERAL_GTOOLS_RULES.md est distribué à toutes les solutions, mais ne
s'applique qu'aux solutions qui consomment GTools. Le dépôt GTools lui-même
applique ses règles générales et ses éventuelles règles propres ; il n'applique
pas les règles de consommation de sa propre bibliothèque.
Manifeste
solutions.json contient les solutions et les branches à traiter. L'URL de
base HTTPS du serveur Git est demandée au lancement ; les noms du manifeste
sont ajoutés à cette URL.
Une entrée inactive est affichée comme ignorée. Une branche temporary est
informative et n'est pas traitée différemment d'une branche permanente.
Commandes
La commande principale est scripts/Sync-DevRules.ps1. Elle propose de publier
une nouvelle version ou d'utiliser un tag existant, demande le serveur cible et
synchronise les solutions séquentiellement.
La validation autonome est disponible avec :
pwsh ./scripts/Test-DevRules.ps1
Les tests Pester se trouvent sous tests/.
Publication
Une nouvelle version utilise le format vMAJEUR.MINEUR.CORRECTIF. Le script
propose le correctif suivant, met à jour rules/DEV_RULES_VERSION, valide le
repository, committe les modifications locales avec le message
Publication DevRules vX.Y.Z, crée le tag et pousse DevRules vers la branche
distante main.
Le force push est autorisé pour DevRules uniquement. Les tags existants ne
sont jamais déplacés.
Le mode version existante utilise strictement le contenu du tag sélectionné,
peut pousser ce tag vers un autre serveur et aligne sa branche main sur le
commit du tag. Il permet notamment de déployer la même version sur plusieurs
serveurs Git indépendants.
Synchronisation
Chaque solution est traitée dans un clone temporaire sparse. Les clones locaux de développement ne sont jamais utilisés ni modifiés. Le clone temporaire est supprimé après succès et conservé en cas d'échec.
Les erreurs d'une solution ou d'une branche n'arrêtent pas les autres traitements. Le rapport est affiché dans la console et le code de sortie est non nul lorsqu'une erreur est survenue.
Les retours arrière vers une version plus ancienne sont autorisés.