feat(ports): sous-commande release et champ hosts dans allocate_port.py #2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/allocate-port-release"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Patch proposé pour
e2ip-platform/core: sous-commandereleaseet champhostsStatut : brouillon, non poussé. À relire avant toute branche ou pull request.
Contenu
release --app <nom>(scripts/allocate_port.py) : retire l'allocation d'une application du registre, avec le même protocole qu'allocate(synchronisation, écriture atomique, commit, push, retry borné). Code retour 6 si l'application n'a pas d'allocation.releaserefuse de s'exécuter si le dépôt contient des modifications non commitées (code retour 4). Le rollback sur échec de push (reset --hard HEAD~1) ne peut ainsi supprimer que son propre commit.hosts: liste de noms d'hôtes sur lesquels l'application doit tourner. Validé au chargement (code retour 5 si mal formé). Préservé parallocateetrelease. Utilisé par la réconciliation deapps/port-allocator.tests/test_release_and_hosts.py) : 10 tests, tous verts sous Python 3.10. Ils couvrent la libération, la réattribution du port libéré, les cas d'erreur, le mode--dry-run, la validation dehosts, la préservation du champ et la garde d'arbre sale.Points relevés dans le script existant (non corrigés dans ce patch)
allocate: rollback destructif. En cas d'échec de push,allocateexécutegit reset --hard HEAD~1sans vérifier que l'arbre est propre. Des modifications locales non commitées peuvent être perdues. Correction recommandée : appliquer la même gardeworktree_cleanquerelease. Hors périmètre de ce patch, à valider séparément.main. Le script pousse directement sur la branche. La branchemaindecoreest protégée (décision de la plateforme : flux par pull request). Le push échouera en pratique. Il faudra soit ouvrir une pull request automatiquement, soit exécuter le script par un compte autorisé à pousser._generated_atajouté à chaque écriture. Il est toléré par le chargement, mais il crée des diffs inutiles à chaque allocation.worldforcé àgit-cidansallocate, même pour un statutlegacy. Incohérent avec le registre existant.allocate-port.ymlet la modification decd-deploy.ymlne sont pas inclus ici. Ils ne sont pas encore sur la forge.Hors périmètre de ce patch
hostsaux entréessbj-magasinetideahubdansports.json: à faire dans une modification séparée, une fois ce patch validé.PROJECT-STATE.md§2.1 et la skillnoops-deploypourconf.d.Comment vérifier
Journal et audit
Le script journalise chaque exécution dans
--log-dir(logs/par défaut). Les tests vérifient qu'un journal est bien produit lors d'une libération.🤖 Generated with Claude Code