Merci de votre intérêt pour contribuer à CLF09 !
Ce document fournit les lignes directrices pour contribuer au projet. Ce sont principalement des recommandations, pas des règles strictes.
- Code de conduite
- Comment contribuer ?
- Configuration de l'environnement
- Processus de Pull Request
- Standards de code
- Messages de commit
Ce projet s'engage à fournir un environnement accueillant et inclusif. En participant, vous vous engagez à respecter ce code.
- Être respectueux et inclusif
- Accepter les critiques constructives avec grâce
- Se concentrer sur ce qui est le mieux pour la communauté
- Faire preuve d'empathie envers les autres membres
Avant de créer un rapport de bug, vérifiez que le problème n'a pas déjà été signalé.
Modèle de rapport de bug :
**Description :**
Description claire du bug.
**Étapes pour reproduire :**
1. Aller sur '...'
2. Cliquer sur '...'
3. Voir l'erreur
**Comportement attendu :**
Ce qui devrait se passer.
**Comportement observé :**
Ce qui se passe réellement.
**Environnement :**
- OS : [ex: Ubuntu 22.04]
- Version Python : [ex: 3.11.5]
- Version CLF09 : [ex: v1.0.0]Les suggestions d'amélioration sont suivies via les Issues GitHub. Incluez :
- Un titre et une description clairs
- Une description étape par étape de l'amélioration proposée
- Pourquoi cette amélioration serait utile
- Les alternatives que vous avez considérées
- Forkez le dépôt
- Créez une nouvelle branche depuis
main - Faites vos modifications
- Écrivez ou mettez à jour les tests
- Assurez-vous que tous les tests passent
- Mettez à jour la documentation
- Soumettez une Pull Request
- Python 3.11+
- Docker
- AWS CLI
- Git
- Cloner votre fork :
git clone https://github.com/VOTRE-NOM/malware_classification.git
cd malware_classification- Créer un environnement virtuel :
python -m venv venv
source venv/bin/activate # Sur Windows : venv\Scripts\activate- Installer les dépendances :
pip install -r requirements.txt
pip install -r requirements-dev.txt # Dépendances de développement- Exécuter les tests :
pytest tests/ -v- Le code suit les standards du projet
- Tous les tests passent localement
- Nouveaux tests ajoutés pour les nouvelles fonctionnalités
- Documentation mise à jour
- Messages de commit conformes aux guidelines
- Pas de conflits de merge avec la branche cible
- Les vérifications automatiques doivent passer
- Revue de code par au moins un mainteneur
- Tests sur l'environnement de staging
- Approbation d'un mainteneur
- Merge dans la branche cible
Nous suivons PEP 8 avec quelques modifications :
Longueur de ligne : Maximum 100 caractères
Imports :
# Bibliothèque standard
import os
import sys
# Bibliothèques tierces
import numpy as np
import pandas as pd
# Modules locaux
from src.models import WindowsClassifierDocstrings :
def extract_features(file_path: str) -> np.ndarray:
"""
Extrait les caractéristiques d'un fichier binaire.
Args:
file_path (str): Chemin vers le fichier binaire
Returns:
np.ndarray: Vecteur de caractéristiques de forme (1615,)
Raises:
FileNotFoundError: Si le fichier n'existe pas
ValueError: Si le format du fichier est invalide
"""
passType hints : Utilisez toujours les annotations de type :
def predict(self, features: np.ndarray) -> Dict[str, Any]:
pass- black - Formatage du code
- isort - Tri des imports
- flake8 - Linting
- mypy - Vérification des types
- pytest - Tests
<type>(<scope>): <sujet>
<corps>
<footer>
- feat : Nouvelle fonctionnalité
- fix : Correction de bug
- docs : Changements de documentation
- style : Changements de style de code
- refactor : Refactoring de code
- test : Ajout/mise à jour de tests
- chore : Tâches de maintenance
Fonctionnalité :
feat(windows): ajouter calcul d'entropie
- Implémenter l'entropie de Shannon pour l'analyse des bytes
- Ajouter les tests unitaires
- Mettre à jour le pipeline d'extraction
Ferme #123
Correction de bug :
fix(pdf): gérer les fichiers PDF corrompus
Les PDFs corrompus causaient des crashs. Maintenant, les erreurs
sont gérées proprement avec un message approprié.
Corrige #456
windows- Détecteur Windows PEpdf- Détecteur PDFurl- Détecteur URLoffice- Détecteur Office/VBAapi- API Gatewaylambda- Fonctions Lambdafrontend- Frontend Reacttests- Testsdocs- Documentation
- Questions générales : Ouvrez une Discussion GitHub
- Rapports de bugs : Créez une Issue
- Demandes de fonctionnalités : Créez une Issue avec le label
enhancement
Les contributeurs seront ajoutés à :
- La section auteurs du README.md
- Le fichier CONTRIBUTORS.md
- Les notes de version
Merci de contribuer à CLF09 !
Dernière mise à jour : Février 2025