docs: extract publication and architecture sections to dedicated files

Move the "Publier le package" section from DEV.md to a new
PUBLICATION.md file, and add references to ARCHITECTURE.md and
PUBLICATION.md in the main DEV.md index. This reduces the size of
DEV.md and improves discoverability by grouping related content
into focused documents.
This commit is contained in:
2026-04-13 13:52:15 -04:00
parent 16db807004
commit 260fcfc4f8
3 changed files with 75 additions and 50 deletions
+34
View File
@@ -0,0 +1,34 @@
# Architecture partagée
Ces modules existent pour éviter la duplication. Avant d'écrire du code utilitaire, vérifier s'il est déjà couvert ici.
### Utilitaires serveur
| Besoin | Module |
|--------|--------|
| Logs serveur | `src/shared/lib/logger.js` |
| Manipulation de dates | `src/shared/lib/dates.js` |
| Configuration de l'app | `src/shared/lib/appConfig.js` |
| Formatage de devises | `src/shared/utils/currency.js` |
### Composants et icônes
**Icônes** — Toutes les icônes sont centralisées dans `src/shared/Icons.js`. Ne pas créer d'icône directement dans un composant. Si une icône manque, l'ajouter dans `Icons.js`.
**Composants** — Utiliser `src/shared/components` en priorité. Si un besoin est réutilisable à plusieurs endroits et que le composant n'existe pas encore, le créer dans `src/shared/components` plutôt que dans le module.
### Modules core
**Notifications client** — Utiliser `src/core/toast` pour toutes les notifications côté client.
**Stockage** — Utiliser `src/core/storage`. Toujours supprimer l'ancien fichier avant d'en écrire un nouveau à la même place. Éviter les fichiers fantômes (présents dans le stockage mais plus référencés dans l'app).
**Paiements** — Utiliser `src/core/payments` pour tout ce qui touche au système de paiement.
**Courriel** — Utiliser `src/core/email` pour l'envoi d'emails. Les gabarits réutilisables à l'échelle de l'app vont dans `src/core/email/templates`. Les gabarits spécifiques à un module peuvent rester dans les fichiers du module.
**Base de données** — Utiliser `src/core/database` pour toutes les communications avec la BD. Toujours utiliser des requêtes paramétrées (voir la section Sécurité ci-dessus).
**Tâches planifiées** — Utiliser `src/core/cron` pour créer des tâches cron.
**API** — Utiliser `src/core/api` pour l'API admin et publique. Toujours définir l'API privée/admin en premier, puis exposer seulement ce qui doit l'être. Toujours vérifier l'authentification sur les routes qui l'exigent.
+37
View File
@@ -0,0 +1,37 @@
# Publier le package
Le package `@zen/core` est publié sur le registre npm privé à `https://git.hyko.cx`.
### Configurer l'authentification (une seule fois)
Créer un token dans Gitea : **Settings → Applications → Generate Token**, puis :
```bash
npm config set //git.hyko.cx/api/packages/zen/npm/:_authToken TOKEN
```
### Checklist avant publication
- [ ] `npm audit` — aucune vulnérabilité `high` ou `critical`
- [ ] `npm run build` — build sans erreur ni warning TypeScript
- [ ] Version mise à jour dans `package.json`
### Versionner
On suit [semver](https://semver.org) :
- **patch** (`1.3.x`) — correction de bug, sans changement d'interface
- **minor** (`1.x.0`) — nouvelle fonctionnalité, rétrocompatible
- **major** (`x.0.0`) — changement cassant
```bash
npm version patch # ou minor, ou major
```
### Publier
```bash
npm publish
```
Le script `prepublishOnly` lance le build automatiquement. Si le build échoue, la publication est annulée.