# DEV ## Standards On suit ces deux guides : - [GUIDE.md](./dev/GUIDE.md) : conventions générales de rédaction et de structure - [REDACTION.md](./dev/REDACTION.md) : règles de style, ton et formatage --- ## Structure du projet ``` src/ ├── cli/ # Scripts CLI : zen-db ├── core/ # Briques techniques : database, api, email, storage, cron, pdf, toast, payments ├── features/ # Features utilisateur : auth, admin, provider ├── modules/ # Modules métier : posts, invoice, nuage… └── shared/ # Composants, lib et styles partagés ``` --- ## Publier le package Le package `@zen/core` est publié sur le registre npm à `https://git.hyko.cx`. ### 1. Configurer l'authentification Créer un token d'accès dans Gitea (Settings → Applications → Generate Token), puis l'enregistrer localement : ```bash npm config set //git.hyko.cx/api/packages/zen/npm/:_authToken TOKEN ``` Remplacer `TOKEN` par le token généré. ### 2. Build et publish ```bash npm publish ``` Le script `prepublishOnly` lance automatiquement le build avant la publication. --- ## Intégrer une Pull Request GitHub Le dépôt GitHub est un miroir en lecture seule. On intègre manuellement les PRs de la communauté depuis Gitea. ### 1. Récupérer la branche du contributeur ```bash git fetch https://github.com//core ``` Par exemple : ```bash git fetch https://github.com/jdupont/core fix/auth-token-expiry ``` ### 2. Inspecter les changements ```bash git log FETCH_HEAD --oneline git diff main...FETCH_HEAD ``` ### 3a. Appliquer avec cherry-pick (recommandé pour un ou quelques commits) ```bash git cherry-pick ``` Pour plusieurs commits consécutifs : ```bash git cherry-pick ^.. ``` ### 3b. Appliquer avec merge (pour une branche entière) ```bash git checkout -b integration/ git merge FETCH_HEAD # résoudre les conflits si nécessaire git checkout main git merge integration/ git branch -d integration/ ``` ### 4. Pousser vers Gitea ```bash git push origin main ``` Le miroir GitHub se met à jour automatiquement. Fermer ensuite la PR sur GitHub en indiquant le hash du commit en commentaire. --- ## Bump de version Modifier `"version"` dans `package.json` en suivant [semver](https://semver.org/) : | Type | Version | |------|---------| | `fix` | PATCH `1.x.X` | | `feat` | MINOR `1.X.0` | | Breaking change | MAJOR `X.0.0` | ---