Skip to content

LeCircographe-asso/.github

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

109 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Guide de Contribution - Le Circographe đŸŽȘ

Note importante : Ce guide détaille les procédures et conventions à suivre pour contribuer efficacement au projet Circographe. Veuillez le lire attentivement avant de commencer à travailler sur le code.

🔄 Structure des Branches

main (production)
├── staging (prĂ©-production)
│   ├── develop (dĂ©veloppement)
│   │   ├── feature/xxx
│   │   ├── bugfix/xxx
│   │   ├── refactor/xxx
│   │   └── deps/xxx
│   └── release/x.x.x
└── hotfix/xxx

Branches Principales

  • main : Code en production, stable et dĂ©ployĂ©
  • staging : Code en prĂ©-production pour les tests d'intĂ©gration
  • develop : Branche principale de dĂ©veloppement, intĂ©gration continue

Branches de Travail

  • feature-xxx : Nouvelles fonctionnalitĂ©s (ex: feature-user-authentication)
  • bugfix-xxx : Corrections de bugs (ex: bugfix-login-error)
  • refacto-xxx : Refactoring du code (ex: refacto-clean-user-model)
  • release-x.x.x : PrĂ©paration des releases (ex: release-1.2.0)
  • hotfix-xxx : Corrections urgentes en production (ex: hotfix-critical-security-fix)
  • docs-xxx : Modifications de documentation uniquement (ex: docs-update-api-docs)

📝 Conventions de Commit

Nous suivons les conventions Conventional Commits pour standardiser les messages de commit.

Format

<type>(<scope>): <description>

[corps]

[footer]

Types de Commit

  • feat : Nouvelle fonctionnalitĂ©
  • fix : Correction de bug
  • docs : Documentation
  • style : Formatage, semi-colons manquants, etc.
  • refactor : Refactoring du code
  • test : Ajout ou modification de tests
  • chore : Maintenance
  • perf : AmĂ©lioration de performance
  • ci : Modifications de la CI
  • build : Modifications du systĂšme de build

Scopes

  • auth : Authentification
  • core : FonctionnalitĂ©s principales
  • ui : Interface utilisateur
  • api : API
  • db : Base de donnĂ©es
  • config : Configuration
  • deps : DĂ©pendances
  • adhesion : Module d'adhĂ©sion
  • cotisation : Module de cotisation
  • paiement : Module de paiement
  • presence : Module de prĂ©sence
  • roles : Module de gestion des rĂŽles
  • notification : Module de notification

Exemples

feat(auth): ajouter l'authentification OAuth
fix(ui): corriger l'affichage du calendrier sur mobile
docs(api): mettre Ă  jour la documentation de l'API de paiement
refactor(adhesion): simplifier le processus de renouvellement
test(presence): ajouter des tests pour la validation des listes

Astuce : Utilisez des verbes à l'infinitif en français pour les descriptions.

🚀 Environnement de dĂ©veloppement

Prérequis

  • Ruby 3.2.5
  • Rails 8.0.1
  • SQLite3
  • Node.js 18+
  • Npm 10.9.1
  • Redis 6+ (uniquement pour le cache)
  • ImageMagick

Installation

# Cloner le dépÎt
git clone https://github.com/votre-organisation/project-manager-circographe.git
cd project-manager-circographe

# Installer les dépendances
bundle install
yarn install

# Configurer la base de données
cp config/database.yml.example config/database.yml
# Éditer database.yml avec vos informations

# Créer et migrer la base de données
bin/rails db:create db:migrate db:seed

# Lancer le serveur
bin/dev

Outils recommandés

  • VSCode avec les extensions Ruby, Rails, ESLint
  • Rubocop pour le linting Ruby
  • ESLint pour le linting JavaScript

🔄 Workflow de DĂ©veloppement

  1. Création de Branche

    git checkout develop
    git pull origin develop
    git checkout -b feature/ma-fonctionnalite
  2. Commits Réguliers

    git add .
    git commit -m "feat(scope): description"
  3. Mise Ă  Jour avec Develop

    git checkout develop
    git pull origin develop
    git checkout feature/ma-fonctionnalite
    git rebase develop
  4. Push et Pull Request

    git push origin feature/ma-fonctionnalite
    # Créer PR via GitHub

Important : Créez des commits atomiques et cohérents. Un commit = une modification logique.

đŸ‘ïž Revue de Code

CritĂšres de Validation

  • Pas de conflits avec develop ⚠
  • ApprouvĂ© par au moins 2 reviewer đŸ‘„

Checklist de Review

  • Le code suit les conventions
  • Les tests sont prĂ©sents et passent
  • La documentation est Ă  jour
  • Pas de problĂšmes de sĂ©curitĂ©
  • Performance acceptable
  • Code lisible et maintenable

Processus de revue

  1. Assignez au moins un reviewer Ă  votre PR
  2. Répondez aux commentaires de maniÚre constructive
  3. Effectuez les modifications demandées dans de nouveaux commits
  4. Une fois approuvée, squashez vos commits si nécessaire
  5. Le reviewer effectuera le merge

## đŸ·ïž Versioning

Nous suivons [Semantic Versioning](https://semver.org/) pour la gestion des versions.

### Format
`MAJOR.MINOR.PATCH`
- MAJOR : Changements incompatibles avec les versions précédentes
- MINOR : Nouvelles fonctionnalités compatibles avec les versions précédentes
- PATCH : Corrections de bugs compatibles avec les versions précédentes

### Exemple
```bash
git tag -a v1.2.3 -m "Version 1.2.3"
git push origin v1.2.3

⚠ Gestion des Conflits

  1. Prévention

    • Pull rĂ©gulier de develop
    • Communication avec l'Ă©quipe sur Discord
    • Tickets bien dĂ©finis dans le systĂšme de suivi
    • Branches de courte durĂ©e
  2. Résolution

    git checkout develop
    git pull origin develop
    git checkout ma-branche
    git rebase develop
    # Résoudre les conflits
    git add .
    git rebase --continue
    git push origin ma-branche --force-with-lease

Attention : Utilisez --force-with-lease au lieu de --force pour éviter d'écraser le travail des autres.

đŸ§Ș Tests

Types de tests

  • Tests unitaires : Tester les modĂšles et services isolĂ©ment
  • Tests d'intĂ©gration : Tester les interactions entre composants
  • Tests systĂšme : Tester l'application de bout en bout
  • Tests de performance : VĂ©rifier les temps de rĂ©ponse et la charge

Exécution des tests

# Exécuter tous les tests
bundle exec rspec

# Exécuter un fichier spécifique
bundle exec rspec spec/models/membership_spec.rb

# Exécuter avec la couverture de code
COVERAGE=true bundle exec rspec

CI/CD

Nos tests sont automatiquement exécutés via GitHub Actions à chaque push et pull request.

💡 Bonnes Pratiques

  1. Commits

    • Commits atomiques et cohĂ©rents
    • Messages clairs et descriptifs
    • RĂ©fĂ©rencer les tickets (#123)
    • Squasher les commits avant merge
  2. Branches

    • Branches courtes et focalisĂ©es
    • Nommage explicite
    • Supprimer aprĂšs merge
    • Rebaser rĂ©guliĂšrement avec develop
  3. Code

    • Suivre les standards Ruby/Rails
    • Documenter le code complexe
    • Tests pour nouvelles features
    • Optimiser les requĂȘtes N+1
  4. Communication

    • PR descriptives avec contexte
    • Commenter les choix techniques
    • RĂ©pondre aux reviews rapidement
    • Partager les connaissances

🔍 Revue de Performance

Avant de soumettre une PR pour une fonctionnalité critique:

  1. VĂ©rifier les requĂȘtes N+1 avec Bullet
  2. Tester avec un jeu de données réaliste
  3. Optimiser les requĂȘtes SQL complexes
  4. Vérifier l'utilisation de la mémoire

About

No description, website, or topics provided.

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages