171 lines
5.2 KiB
Markdown
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
|