feature/mutualisation #1

Merged
Nora merged 61 commits from feature/mutualisation into develop 2026-11-02 21:01:43 +00:00
Owner
No description provided.
Nora added 59 commits 2026-11-02 20:20:06 +00:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
FrankenPHP 1.13.4 / PHP 8.5 (pdo_sqlite, intl, opcache, apcu), service front
en ng serve avec proxy vers app. Ports réglables (HTTP_PORT, FRONT_PORT).
Healthcheck sur :80 (l'admin Caddy est coupé). Le service front ne démarre
pas tant que front/package-lock.json reste désynchronisé (corrigé côté front).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
14 catégories, 36 compétences.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Constat rempli dans la spec. Specs hors admin corrigés (app.spec.ts : titre
h1 inexistant remplacé par nav bar + router-outlet ; home.spec.ts : providers
HTTP de test).

Écart (le code fait foi) : `npm ci` échouait (lock désynchronisé, Angular
20.1 / platform-server 20.3). @angular/* alignés sur 20.3, ce qui impose le
BootstrapContext dans main.server.ts (NG0401 sinon). Lint : 2
no-inferrable-types corrigées.

Suite : npm ci vert, lint vert, build vert (8 routes), tests 25/31 : les 6
échecs restants sont liés à l'admin (NavBar, Admin, LoginApi,
AuthenticateApiService, CategorySkillApiService, SkillApiService), traités
en T18.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Routes admin et login retirées (client et serveur), test
app.routes.spec.ts écrit d'abord (vu rouge). Supprimés : pages admin et
login-api, AdminGuard, TokenService, AuthenticateApiService, interfaces
token/user, éditeurs et listes de compétences/catégories, méthodes
d'écriture des services API, lien Admin de la NavBar ; jwt-decode et
moment désinstallés. Specs SkillApiService et CategorySkillApiService
munis des providers HTTP de test.

Suite : npm ci, lint, tests (23/23), build (8 routes) verts.
Écart : le grep « moment » de « Terminé quand » remonte un faux positif
(« moments » dans le texte de about.html), laissé en l'état.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Test « ne déclare plus les pages de test » écrit d'abord (vu rouge).
Supprimés : pages playground et test-breakpoint-observer, comway-game,
ComwayService, BitArray, intercepteur de test (et son branchement),
SkillDataService, public/datas/skills.json, SkillModel(Builder),
SkillFactory. Skill n'injecte plus SkillDataService.

Écart (le code fait foi) : Services/render-service.ts, non listé dans la
spec, utilisait BitArray et n'était importé que par comway-game : supprimé
aussi.

Suite : npm ci, lint, tests (18/18), build verts ; 6 routes pré-rendues,
plus de /playground ni /testBreakpoint.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Les tests T04 à T06 contournaient le noyau resté démarré (ensureKernelShutdown)
et le setUp masqué ; piège noté dans CLAUDE.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Test « expose les 8 projets sans requête HTTP » écrit d'abord (vu rouge :
NG0201, pas de HttpClient). resolveJsonModule activé, portfolio.json
déplacé de public/datas/ vers src/app/datas/, PortfolioDataService
initialise son signal depuis l'import JSON (plus de HttpClient ni de
getPortfolio), Home ne s'abonne plus. todo-portfolio-ssr-seo.md supprimé.

Suite : npm ci, lint, tests (17/17), build verts ; /home/index.html
contient les 8 <app-card-portfolio> et les 8 href des sites.
Écart : le HTML pré-rendu est minifié sur une ligne, `grep -c` renvoie 1 ;
le comptage par `grep -o … | wc -l` donne 8.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tests « demande /api/skills » et « demande /api/available/to/work »
écrits d'abord (vus rouges : requêtes vers https://wfapi.wfdevelopment.fr).
environment.apiURL = '/api' en prod et en dev. fileReplacements gardé
(production diffère entre les deux fichiers).

Suite : npm ci, lint, tests (19/19), build verts ; grep wfapi front/src vide.
Non joué : la vérification manuelle docker compose (localhost:4200/skill),
impossible dans la session cloud (pas de Docker ni de proxy de dev T01).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ng update @angular/core@21 @angular/cli@21, @angular/material@21,
angular-eslint@21 : Angular 21.2.25 (CLI/build/ssr 21.2.29), Material/CDK
21.2.14, angular-eslint 21.4.0, TypeScript 5.9.3.
Correction à la main : typescript-eslint monté en ^8.72.1 (8.34.1 exigeait
TypeScript < 5.9 et bloquait ng update).
Migration appliquée : provideZoneChangeDetection() explicite dans
main.server.ts (zone.js gardé). Cible test inchangée (@angular/build:karma,
Jasmine), outputMode "static" inchangé.

Suite : npm ci, lint, tests (19/19), build verts ; 6 routes pré-rendues,
8 cartes portfolio dans /home.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Rien n'est en prod : les deux migrations (initiale DBAL 3 et correctif des
commentaires DC2Type) sont fusionnées. Index : T11 fait.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cible : @angular/core dist-tags.latest = 22.2.4 (vérifié le 2026-11-02).
ng update angular-eslint@22 (d'abord : son peer @angular/cli 21 bloquait),
puis @angular/core@22 @angular/cli@22, puis @angular/material@22.
Angular 22.2.4, CLI/build/ssr/Material/CDK 22.2.5, angular-eslint 22.6.0,
TypeScript 6.0.3.

Migrations appliquées : ChangeDetectionStrategy.Eager sur les composants
(OnPush devient le défaut), withXhr() dans les specs HTTP,
withNoIncrementalHydration(), $safeNavigationMigration() dans
card-skill.html, diagnostics nullish/optional suppressed dans les
tsconfig, istanbul-lib-instrument ajouté pour Karma, reformatage des
fichiers migrés. Migrations optionnelles refusées : migrate-karma-to-vitest,
use-application-builder.
Correction à la main : règle angular-eslint
prefer-on-push-component-change-detection désactivée (rejetait le Eager
posé par la migration ; OnPush = refonte hors périmètre).
Cible test inchangée (@angular/build:karma, Jasmine), zone.js gardé,
outputMode "static" et RenderMode.Prerender inchangés.

Suite : npm ci, lint, tests (19/19), build verts ; index.html pour home,
services, about, experience, skill ; 8 cartes portfolio dans /home.
T22 terminée.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Index : T26 et T32 faits ; specs T33 à T36 alignées sur le .env racine de compose.prod.yaml
Some checks failed
CI / PHP - tests + static + lint (pull_request) Has been cancelled
CI / Front - lint + tests + build Angular (pull_request) Has been cancelled
CI / Caddyfile - tests (pull_request) Has been cancelled
CI / Image prod - build (pull_request) Has been cancelled
CI / PHP - tests + static + lint (push) Failing after 2m21s
CI / Caddyfile - tests (push) Failing after 22s
CI / Image prod - build (push) Failing after 6s
CI / Front - lint + tests + build Angular (push) Successful in 3m48s
51ea800234
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PHPUnit 13 échoue sur un dossier de suite absent (git ne suit pas un dossier vide).
Node 22 lit tests/caddy/ comme un module, pas comme un dossier.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CI et release : job image retiré, comme sur les autres projets
All checks were successful
CI / Caddyfile - tests (push) Successful in 25s
CI / PHP - tests + static + lint (pull_request) Successful in 2m22s
CI / PHP - tests + static + lint (push) Successful in 3m25s
CI / Caddyfile - tests (pull_request) Successful in 26s
CI / Front - lint + tests + build Angular (push) Successful in 3m54s
CI / Front - lint + tests + build Angular (pull_request) Successful in 2m50s
6bad0399c2
Le runner n'a ni commande ni démon Docker ; l'image se construit sur le VPS
depuis main. Spec T27 alignée ; test node du Dockerfile noté au backlog.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Nora merged commit 5fbd9e5adb into develop 2026-11-02 21:01:43 +00:00
Nora deleted branch feature/mutualisation 2026-11-02 21:01:44 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Nora/wf-cv!1
No description provided.