story-research-zapwall/features/open-source-setup.md

171 lines
5.2 KiB
Markdown

# Open Source Setup
**Date**: December 2024
**Auteur**: Équipe 4NK
## Objectif
Mise en place complète du projet en open source avec documentation des contributions, code de conduite, politique de sécurité et templates pour issues et pull requests.
## Motivations
- Faciliter les contributions externes au projet
- Standardiser le processus de contribution
- Assurer la sécurité et la qualité du code
- Créer un environnement accueillant pour les contributeurs
- Documenter les bonnes pratiques et les guidelines
## Modifications
### Fichiers créés
1. **LICENSE** : Licence MIT pour le projet
- Permet l'utilisation, modification et distribution libre
- Standard pour les projets open source
2. **README.md** : Amélioration avec sections open source
- Badges (License, TypeScript, Next.js)
- Table of contents
- Section Contributing avec workflow
- Section Documentation
- Section License
3. **CONTRIBUTING.md** : Guide complet de contribution
- Code of Conduct
- Getting Started
- Development Setup
- Coding Guidelines détaillées
- Workflow complet (branches, commits, PRs)
- Commit Guidelines avec format structuré
- Checklist avant soumission
- What Not to Do
4. **CODE_OF_CONDUCT.md** : Code de conduite
- Basé sur Contributor Covenant v2.0
- Standards de comportement
- Processus d'enforcement
- Guidelines d'impact communautaire
5. **SECURITY.md** : Politique de sécurité
- Processus de reporting des vulnérabilités
- Timeline de réponse
- Best practices de sécurité
- Considérations de sécurité spécifiques au projet
- Checklist de sécurité pour les PRs
6. **.gitea/ISSUE_TEMPLATE/** : Templates pour issues (Gitea)
- `bug_report.md` : Template pour rapports de bugs
- `feature_request.md` : Template pour demandes de fonctionnalités
- `question.md` : Template pour questions
7. **.gitea/PULL_REQUEST_TEMPLATE.md** : Template pour pull requests (Gitea)
- Format structuré avec sections Motivations, Root causes, Correctifs, Evolutions, Pages affectées
- Checklist de validation
- Sections de testing et documentation
## Structure des templates
### Issue Templates
- **Bug Report** : Sections pour description, étapes de reproduction, environnement, erreurs console
- **Feature Request** : Sections pour description, use cases, considérations techniques
- **Question** : Format simple pour questions et contexte
### Pull Request Template
- Format aligné avec les guidelines de commit du projet
- Sections structurées (Motivations, Root causes, Correctifs, Evolutions, Pages affectées)
- Checklist complète de validation
- Sections pour testing et documentation
## Guidelines de contribution
### Principes fondamentaux
- Pas de fallbacks ou échecs silencieux
- Pas d'analytics
- Pas de tests ad-hoc (sauf demande explicite)
- TypeScript strict (pas de `any`, pas de `ts-ignore`)
- Gestion d'erreurs explicite
- Accessibilité (ARIA, clavier, contraste)
### Workflow standardisé
1. Fork du repository
2. Création de branche feature/fix
3. Développement suivant les guidelines
4. Lint et type-check
5. Commit avec format structuré
6. Pull Request avec template
7. Review et merge
### Format de commit
Commits exhaustifs et synthétiques avec :
- **Motivations**
- **Root causes**
- **Correctifs**
- **Evolutions**
- **Pages affectées**
## Sécurité
### Processus de reporting
- Utilisation d'issues privées sur Gitea (préfixées [SECURITY])
- Reporting privé (pas d'issues publiques)
- Timeline de réponse définie
- Crédit des chercheurs en sécurité
### Considérations spécifiques
- Authentification Nostr (NIP-07 via Alby)
- Paiements Lightning (WebLN)
- Stockage chiffré (IndexedDB avec AES-GCM)
- Pas de secrets en clair
## Accessibilité
- Respect ARIA
- Navigation clavier
- Contraste WCAG
- Pas de régressions
## Documentation
- Documentation des fixes dans `fixKnowledge/`
- Documentation des features dans `features/`
- Format structuré avec sections claires
- Attribution (Équipe 4NK)
## Modalités de déploiement
Aucun déploiement nécessaire. Les fichiers sont directement dans le repository et seront visibles sur Gitea lors du push.
**Repository Gitea** : https://git.4nkweb.com/4nk/story-research-zapwall
## Modalités d'analyse
### Vérifications à effectuer
1. **LICENSE** : Vérifier que la licence MIT est appropriée
2. **README.md** : Vérifier les liens et badges
3. **CONTRIBUTING.md** : Vérifier la cohérence avec les règles du projet et les URLs Gitea
4. **Templates** : Tester la création d'issues et PRs sur Gitea
5. **SECURITY.md** : Vérifier les références Gitea
### Points d'attention
- Les URLs dans CONTRIBUTING.md pointent vers git.4nkweb.com
- Les templates sont dans `.gitea/` pour compatibilité Gitea
- Les références GitHub ont été remplacées par Gitea
- Le repository est : https://git.4nkweb.com/4nk/story-research-zapwall
## Prochaines étapes
1. Tester la création d'issues et PRs sur Gitea avec les templates
2. Vérifier que Gitea reconnaît les templates dans `.gitea/`
3. Ajouter des labels Gitea si nécessaire (bug, enhancement, question, etc.)
4. Configurer les branch protection rules sur Gitea si nécessaire
5. Vérifier que les permissions du repository permettent le fork et les contributions