129 lines
3.3 KiB
Markdown
129 lines
3.3 KiB
Markdown
# Contribuire a LLM Monitor
|
|
|
|
Grazie per l'interesse nel contribuire a LLM Monitor! Questo documento fornisce linee guida per contribuire al progetto.
|
|
|
|
## Autore e Diritti
|
|
|
|
- **Autore del progetto**: Luca Sacchi Ricciardi
|
|
- **Detentore di tutti i diritti**: Luca Sacchi Ricciardi
|
|
|
|
## Codice di Condotta
|
|
|
|
Questo progetto aderisce a un Codice di Condotta per garantire un ambiente inclusivo e rispettoso.
|
|
|
|
## Come Contribuire
|
|
|
|
### Segnalare Bug
|
|
|
|
- **Verificare prima** se il bug non è già stato segnalato
|
|
- **Includere dettagli**: sistema operativo, versione Python, stack trace
|
|
- **Fornire un esempio ripetibile** se possibile
|
|
|
|
### Suggerire Miglioramenti
|
|
|
|
- **Verificare prima** se il suggerimento non è già stato fatto
|
|
- **Spiegare chiaramente** il caso d'uso e i benefici
|
|
- **Fornire esempi** di come dovrebbe funzionare
|
|
|
|
### Pull Requests
|
|
|
|
1. **Fork il repository**
|
|
2. **Crea un branch**: `git checkout -b feature/my-feature`
|
|
3. **Installa le dipendenze di sviluppo**:
|
|
```bash
|
|
pip install -r requirements-dev.txt
|
|
```
|
|
4. **Effettua i tuoi cambiamenti** seguendo lo [Style Guide](#style-guide)
|
|
5. **Scrivi i test**: I test sono obbligatori per nuove funzionalità
|
|
6. **Esegui i test**: `make test`
|
|
7. **Formatta il codice**: `make format`
|
|
8. **Esegui il linting**: `make lint`
|
|
9. **Fai il commit**: `git commit -m "feat: descrizione della feature"`
|
|
10. **Push**: `git push origin feature/my-feature`
|
|
11. **Apri una PR** descrivendo i cambiamenti
|
|
|
|
## Style Guide
|
|
|
|
### Python
|
|
|
|
- Usa **Black** per la formattazione: `make format`
|
|
- Usa **isort** per l'organizzazione degli import
|
|
- Segui **PEP 8**
|
|
- Usa type hints per le funzioni nuove
|
|
- Documenta con docstring (formato Google):
|
|
|
|
```python
|
|
def my_function(param1: str, param2: int) -> bool:
|
|
"""
|
|
Descrizione breve della funzione.
|
|
|
|
Args:
|
|
param1: Descrizione del primo parametro
|
|
param2: Descrizione del secondo parametro
|
|
|
|
Returns:
|
|
Descrizione del valore ritornato
|
|
|
|
Raises:
|
|
ValueError: Quando succede
|
|
"""
|
|
pass
|
|
```
|
|
|
|
### Commit Messages
|
|
|
|
Usa il formato Conventional Commits:
|
|
- `feat: aggiungi nuova feature`
|
|
- `fix: correggi un bug`
|
|
- `docs: aggiorna documentazione`
|
|
- `style: formattazione, without semantic change`
|
|
- `refactor: ristruttura codice`
|
|
- `perf: migliora le performance`
|
|
- `test: aggiungi o modifica test`
|
|
- `chore: aggiorna dipendenze, etc`
|
|
|
|
Esempio:
|
|
```
|
|
feat: aggiungi endpoint per ottenere statistiche modelli
|
|
|
|
- Nuovo endpoint GET /api/v1/models/stats
|
|
- Ritorna conteggio, spazio totale e ultimi aggiornamenti
|
|
- Include test di integrazione
|
|
```
|
|
|
|
### Codice
|
|
|
|
- Mantieni le funzioni piccole e ben definite
|
|
- Usa nomi descrittivi
|
|
- Aggiungi commenti per la logica complessa
|
|
- Evita magic numbers, usa costanti
|
|
|
|
## Testing
|
|
|
|
- Tutti i PR devono includere test per nuove funzionalità
|
|
- La copertura del codice deve rimanere ≥ 80%
|
|
- Esegui i test prima di submitare:
|
|
```bash
|
|
make test
|
|
```
|
|
|
|
## Documentazione
|
|
|
|
- Aggiorna il README se cambi il comportamento
|
|
- Aggiungi docstring a nuove funzioni
|
|
- Aggiorna il CHANGELOG.md
|
|
|
|
## Processo di Review
|
|
|
|
- I PR saranno reviewati il prima possibile
|
|
- I feedback saranno forniti in buona fede
|
|
- Le discussioni devono essere costruttive
|
|
|
|
## Licenza
|
|
|
|
Contribuendo, accetti che i tuoi contributi siano licensiati sotto la MIT License.
|
|
|
|
---
|
|
|
|
Domande? Apri un issue o contatta il maintainer!
|