translations/CONTRIBUTING_IT.md
Rama main · réplica de lectura del repositorio original.
# Contribuisci a Zen C
Innanzitutto, grazie per aver preso in considerazione di contribuire a Zen C! Sono le persone come te che rendono grande questo progetto.
Accogliamo tutti i contributi, che siano fix di bug, miglioramenti alla documentazione, la proposta di nuove funzionalità, o semplicemente la segnalazione di problemi.
## Come contribuire
Il flusso di lavoro generale per contribuire è:
1. **Forka la repository**: Usa il workflow standard di GitHub per fare il fork della repository sul tuo account.
2. **Crea un Branch per la funzionalità**: Crea un nuovo branch per la tua funzionalità o fix di bug. Questo mantiene le tue modifiche organizzate e separate dal branch principale.
```bash
git checkout -b feature/NewThing
```
3. **Apporta Modifiche**: Scrivi il tuo codice o le modifiche alla documentazione.
4. **Verifica**: Assicurati che le tue modifiche funzionino come previsto e non rompano le funzionalità esistenti (vedi [Eseguire i test](#eseguire-i-test)).
5. **Crea una Pull Request**: Pusha il tuo branch sul tuo fork e invia una Pull Request (PR) alla repository principale di Zen C.
## Segnalazioni (Issues) e Richieste di Pull (Pull Requests)
Usiamo le GitHub Issues e le Pull Requests per tracciare bug e funzionalità. Per aiutarci a mantenere la qualità:
- **Usa i Modelli**: Quando apri una Issue o una PR, usa i modelli forniti.
- **Segnalazione Bug**: Per segnalare errori.
- **Richiesta Funzionalità**: Per suggerire nuove funzionalità.
- **Richiesta di Pull**: Per inviare modifiche al codice.
- **Sii Descrittivo**: Fornire quanti più dettagli possibile.
- **Controlli Automatici**: Abbiamo un flusso di lavoro automatizzato che controlla la lunghezza della descrizione delle nuove Issues e PR. Se la descrizione è troppo breve (< 50 caratteri), verrà chiusa automaticamente. Questo serve per assicurarci di avere abbastanza informazioni per aiutarti.
## Guide Linea per il Sviluppo
### Stile del Codice
- Segui lo stile C esistente trovato nel codebase. La coerenza è fondamentale.
- Puoi usare il file `.clang-format` fornito per formattare il tuo codice.
- Mantieni il codice pulito e leggibile.
### Struttura del Progetto
Se stai cercando di estendere il compilatore, ecco una mappa rapida del codebase:
* **Parser**: `src/parser/` - Contiene l'implementazione del parser a discesa ricorsiva.
* **Codegen**: `src/codegen/` - Contiene la logica del transpiler che converte Zen C a GNU C/C11.
* **Standard Library**: `std/` - I moduli della libreria standard, scritti nello stesso Zen C.
## Eseguire i test
La suite di test è il tuo miglior amico durante lo sviluppo. Assicurati che passino tutti i test prima di inviare una PR.
### Esegui tutti i test
Per eseguire l'intera suite di test usando il compilatore predefinito (solitamente GCC):
```bash
make test
```
### Esegui test specifici
Per eseguire un singolo file di test per risparmiare tempo durante lo sviluppo:
```bash
./zc run tests/test_match.zc
```
### Test con Backend Differenti
Zen C supporta diversi compilatori C come backend. Puoi eseguire i test specificamente contro di essi:
**Clang**:
```bash
./tests/run_tests.sh --cc clang
```
**Zig (cc)**:
```bash
./tests/run_tests.sh --cc zig
```
**TCC (Tiny C Compiler)**:
```bash
./tests/run_tests.sh --cc tcc
```
## Processo di Pull Request
1. Assicurati di aver aggiunto test per qualsiasi nuova funzionalità.
2. Assicurati che tutti i test esistenti passino.
3. Aggiorna la documentazione (file Markdown in `docs/`, `translations/` o `README.md`) se appropriato.
4. Descrivi chiaramente le tue modifiche nella descrizione della PR. Linka qualsiasi issue correlata.
Grazie per il tuo contributo!