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

5.2 KiB

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

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