Skip to content

Gestion des dépendances avec pnpm et validation de schéma en JS - #207

Merged
fpellet merged 11 commits into
devfrom
pnpm
Jul 12, 2026
Merged

Gestion des dépendances avec pnpm et validation de schéma en JS#207
fpellet merged 11 commits into
devfrom
pnpm

Conversation

@fpellet

@fpellet fpellet commented Jul 12, 2026

Copy link
Copy Markdown
Member

Cette branche fait deux choses : elle migre l'outillage de npm vers pnpm (et bundle les assets front via Astro plutôt que des fichiers vendorisés à la main), puis remplace la validation de schéma Python par un équivalent JS.

Migration npm → pnpm & bundling des assets

  • npm ⇒ pnpm : suppression de package-lock.json, ajout de pnpm-lock.yaml et pnpm-workspace.yaml.
  • Dépendances gérées par pnpm : toast-ui/calendar, ical.js, handlebars, etc. ajoutées au package.json ; suppression des assets vendorisés à la main dans public/ (toastui-calendar.min.css, ical.es5.min.cjs, toastui-calendar.min.js). main.js déplacé dans src/scripts/ et main.css dans src/styles/ pour être bundlés. README mis à jour.
  • Chargement du CSS via l'import Astro dans Layout.astro au lieu de balises statiques.
  • Chargement du JS bundlé dans les pages communities/conferences (+ ajustements de main.js).
  • Mise à jour des dépendances : flake.nix (Node), versions du package.json et du lockfile.

Validation de schéma en JS (au lieu de Python)

  • Schémas modernisés en JSON Schema draft 2020-12 (schema/community.json, schema/conferences.json) : la forme tuple "items": [ … ] (qui, en draft-04, ne validait que le premier élément des tableaux) devient la forme liste "items": { … } qui valide tous les éléments. Les 3 objets quasi-identiques de conferences.json sont fusionnés en un seul.
  • Validation via vitest (test/data-schema.test.ts) : ajv (v8) compile les schémas et un test.each parcourt data/*.json avec le même mapping que l'ancienne CI (conferences.json → schéma conferences, le reste → community). Messages d'erreur clairs via ajv.errorsText.
  • CI : le job validate passe de Python (check-jsonschema) à pnpm/Node + pnpm test. Bonus : les tests unitaires, jamais exécutés en CI jusqu'ici, tournent désormais.

fpellet added 8 commits July 12, 2026 17:34
Update astro to 7.0.5: Remove HTML comments inside the communities map expression: Astro 7's. Rust compiler rejects <!-- --> inside JSX expressions.
Convert tuple-form items to list-form so every array element is validated, not just the first. Collapse the three near-identical conference object schemas into one.
@fpellet fpellet changed the title Migration npm → pnpm et validation de schéma en JS Gestion des dépendances avec pnpm et validation de schéma en JS Jul 12, 2026
Comment thread src/pages/communities.astro
fpellet added 3 commits July 12, 2026 19:20
astro check (run by the build job) type-checks test files. Add @types/node for the node: imports and replace test.each with a for...of loop to avoid the vitest tuple typing error.
@fpellet
fpellet merged commit 035909f into dev Jul 12, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants