2949248446
- Remote origin passé en SSH (token retiré de l'URL) - make install dépend de make verify (vérifie la signature GPG du dernier tag) - Sans tag signé : avertissement non bloquant (bootstrap) - Avec tag signé et clé invalide : erreur bloquante - DEVELOPER.md : instructions pour signer les tags de release - README.md : mention de l'import de clé GPG Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
67 lines
2.4 KiB
Markdown
67 lines
2.4 KiB
Markdown
# DEVELOPER.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Workflow de développement
|
|
|
|
**Toujours lancer depuis la racine du projet** (vérifié par le Makefile).
|
|
|
|
### Ajouter un nouveau script
|
|
|
|
1. Placer le script dans `local/bin/<nom>.sh`
|
|
2. Créer la documentation dans `local/share/doc/scripts-bash/<nom>.1.md` (format man Markdown)
|
|
3. Lancer `make build` — génère la page man dans `local/share/man/man1/<nom>.1` via Pandoc
|
|
4. Committer les trois fichiers (`local/bin/`, `local/share/doc/`, `local/share/man/`)
|
|
5. Pousser
|
|
|
|
### Commandes
|
|
|
|
```bash
|
|
make build # Développeur : génère les pages man depuis les .1.md (nécessite Pandoc)
|
|
make install # Utilisateur : déploie tout dans ~/.local/
|
|
make uninstall # Supprime les fichiers installés
|
|
make clean # Supprime les pages man générées localement
|
|
```
|
|
|
|
## Architecture
|
|
|
|
```
|
|
local/bin/ → scripts déployés dans ~/.local/bin (.sh retiré à l'install)
|
|
local/share/doc/ → documentation source en Markdown (format man)
|
|
local/share/man/ → pages man pré-générées via Pandoc (ne pas éditer manuellement)
|
|
local/share/ytdll/ → config et libs pour le script ytdll
|
|
ecoleA/ → scripts d'administration pour déploiements école
|
|
servers/linux/ → scripts serveur Linux
|
|
```
|
|
|
|
### Makefile
|
|
|
|
`make install` lit les sources directement avec `$(wildcard ...)` — pas de fichiers de listing intermédiaires. Les scripts `.sh` sont installés sans extension dans `~/.local/bin`. Les autres (PHP, sans extension) sont copiés tels quels.
|
|
|
|
`make build` est une cible développeur (nécessite Pandoc). Les pages man générées sont committées dans le dépôt pour que `make install` fonctionne sans Pandoc côté utilisateur.
|
|
|
|
### Documentation
|
|
|
|
Chaque script doit avoir une fiche `local/share/doc/scripts-bash/<nom>.1.md` avec au minimum les sections `# NOM`, `# SYNOPSIS`, `# DESCRIPTION`.
|
|
|
|
### Remote Git
|
|
|
|
Le remote `origin` utilise SSH (`git@git.abonnel.fr:cedricAbonnel/scripts-bash.git`).
|
|
Les credentials ne transitent jamais dans l'URL.
|
|
|
|
### Signature GPG des releases
|
|
|
|
`make install` vérifie la signature GPG du dernier tag avant d'installer.
|
|
Chaque release doit être taguée et signée :
|
|
|
|
```bash
|
|
git tag -s v1.x -m "Release v1.x"
|
|
git push origin v1.x
|
|
```
|
|
|
|
Pour que les utilisateurs puissent vérifier, ils doivent importer la clé publique du développeur :
|
|
|
|
```bash
|
|
gpg --keyserver keys.openpgp.org --recv-keys <ID_CLÉ>
|
|
```
|