Description
La gestion des chaînes de version (APP_VERSION) est fragmentée dans le dépôt.
apps/client/src/App.vue classe APP_VERSION (PR pr-N, commit sha, tag semver) pour construire le libellé et l'URL GitHub du footer.
apps/server-nestjs/src/config/base.config.ts expose appVersion brut, sans classification.
Aucun helper partagé n'existe : tout consommateur ayant besoin de « libellé/URL depuis APP_VERSION » ré-implémente les regex inline.
Cette duplication est la cause racine du bug de footer (404 sur pr-<n>, issue #2566 / PR #2567) et se reproduira pour d'autres consommateurs.
PRs liées
#2567 (corrige le footer en isolant la classification dans App.vue)
Issues liées
#2566
Exemples simples
pr-2567 → libellé pr-2567, URL /pull/2567
v9.24.4 → libellé v9.24.4, URL /releases/tag/v9.24.4
sha-abcdef1 → libellé sha-abcdef1, URL /commit/abcdef1
- (vide) → libellé
pr-dev, URL /releases
Spécifications techniques
Centraliser la classification dans packages/shared/src/utils/ (ré-exporté par @cpn-console/shared).
Définition du fini
Description
La gestion des chaînes de version (
APP_VERSION) est fragmentée dans le dépôt.apps/client/src/App.vueclasseAPP_VERSION(PRpr-N, commitsha, tag semver) pour construire le libellé et l'URL GitHub du footer.apps/server-nestjs/src/config/base.config.tsexposeappVersionbrut, sans classification.Aucun helper partagé n'existe : tout consommateur ayant besoin de « libellé/URL depuis APP_VERSION » ré-implémente les regex inline.
Cette duplication est la cause racine du bug de footer (404 sur
pr-<n>, issue #2566 / PR #2567) et se reproduira pour d'autres consommateurs.PRs liées
#2567 (corrige le footer en isolant la classification dans App.vue)
Issues liées
#2566
Exemples simples
pr-2567→ libellépr-2567, URL/pull/2567v9.24.4→ libellév9.24.4, URL/releases/tag/v9.24.4sha-abcdef1→ libellésha-abcdef1, URL/commit/abcdef1pr-dev, URL/releasesSpécifications techniques
Centraliser la classification dans
packages/shared/src/utils/(ré-exporté par@cpn-console/shared).Définition du fini
packages/shared/src/utils/et est ré-exporté via@cpn-console/shared.pr-<n>→ PR,v?X.Y.Z→ tag release, sha hex 7-40 (préfixesha-optionnel) → commit, indéfini → local/dev.apps/client/src/App.vue) consomme le helper partagé au lieu des regex inline.