Merci de vouloir contribuer à AlgoLab ! Ce guide vous explique comment participer au projet, que vous soyez débutant ou développeur expérimenté.
- Code de conduite
- Comment contribuer
- Premiers pas
- Workflow Git
- Standards de code
- Soumettre une Pull Request
- Signaler un bug
- Proposer une fonctionnalité
En participant à ce projet, vous acceptez de respecter notre Code de conduite. Soyez bienveillant, respectueux et constructif.
Il y a de nombreuses façons de contribuer, même sans écrire de code :
| Type | Exemples |
|---|---|
| 🐛 Bugs | Signaler un problème, reproduire un bug existant |
| 📝 Documentation | Corriger une typo, améliorer un guide, ajouter des exemples .algo |
| 🧪 Tests | Ajouter des tests unitaires, des cas limites |
| 💡 Fonctionnalités | Proposer et implémenter de nouvelles features |
| 🌍 Traduction | Traduire le README ou la doc en anglais |
| 🎨 Extension VS Code | Améliorer les snippets, la coloration syntaxique |
💡 Nouveau sur l'open source ? Cherchez les issues avec le label
good first issue— elles sont conçues pour être abordables.
# Fork le repo sur GitHub, puis :
git clone https://github.com/<votre-username>/AlgoLab.git
cd AlgoLabpython -m venv .venv
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows
pip install -e ".[dev]"# Lancer les tests
pytest --cov=src/algolab --cov-report=term-missing
# Vérifier le linting
ruff check src/algolab
# Tester manuellement
algolab examples/hello_world.algomain # Branche stable
├── feature/xxx # Nouvelle fonctionnalité
├── fix/xxx # Correction de bug
├── docs/xxx # Documentation
└── test/xxx # Ajout de tests
# 1. Créer une branche depuis main
git checkout main
git pull origin main
git checkout -b feature/ma-fonctionnalite
# 2. Travailler, commiter
git add .
git commit -m "feat: ajouter le support des procédures"
# 3. Pousser et créer une PR
git push origin feature/ma-fonctionnaliteUtilisez des messages clairs en français ou en anglais :
feat: ajouter le support des procédures sans retour
fix: corriger l'évaluation des expressions booléennes imbriquées
docs: ajouter un exemple de tri à bulles
test: couvrir les cas limites des tableaux
refactor: simplifier le visiteur d'expressions
- Linter : Ruff (configuré dans
pyproject.toml) - Ligne max : 100 caractères
- Python minimum : 3.9
- Style : suivre le code existant, garder la simplicité
Avant chaque commit :
ruff check src/algolab
pytest- Indentation : 2 espaces
- Mots-clés en PascalCase :
Variable,Debut,Fin,Si,Alors, etc. - Commentaires dans le code en français
- Fichiers dans
tests/ - Nommage :
test_<module>.py - Couvrir les cas nominaux ET les cas d'erreur
- Chaque nouvelle fonctionnalité doit venir avec des tests
- Assurez-vous que
ruff checketpytestpassent - Décrivez clairement ce que fait votre PR
- Référencez l'issue liée (ex:
Closes #12) - Une PR = un sujet. Gardez les changements focalisés
- Soyez patient — la review peut prendre quelques jours
Votre PR sera automatiquement guidée par le template dans .github/pull_request_template.md.
Utilisez le template de bug report et incluez :
- Le code
.algoqui pose problème - Le message d'erreur obtenu
- Le comportement attendu
- Votre OS et version de Python (ou binaire utilisé)
Utilisez le template de feature request. Gardez en tête la philosophie du projet :
- Pédagogie avant complexité — AlgoLab doit rester simple et accessible
- Syntaxe française — proche de ce qui est enseigné en cours
- Messages d'erreur clairs — chaque erreur doit aider l'apprenant
- Ouvrez une Discussion GitHub pour les questions générales
- Créez une issue pour les bugs ou propositions concrètes
Merci de contribuer à AlgoLab ! 🧪🇧🇯