Versione: v0.2.0-alpha
English | Deutsch | 中文 | 繁體中文 | Español | 日本語 | 한국어 | Čeština | Русский | Italiano
Grazie per il tuo interesse nel contribuire a SiliconLifeCollective!
Questo progetto ha due versioni di implementazione; puoi scegliere la direzione di contribuzione in base ai tuoi interessi:
- Stack tecnologico: Applicazione console .NET 9
- Direzioni di contribuzione: Sviluppo di funzionalità core, implementazione di strumenti, localizzazione, documentazione
- Adatto a: Tutti gli sviluppatori
- Stack tecnologico: Applicazione desktop multipiattaforma .NET 9 (Avalonia UI)
- Direzioni di contribuzione: Ottimizzazione delle prestazioni, archiviazione SpeedyPack, area di notifica di sistema, concorrenza senza lock
- Adatto a: Sviluppatori con esperienza di sviluppo desktop e interesse per l'ottimizzazione delle prestazioni
Nota importante: Le due versioni condividono i progetti SiliconLife.Core e SiliconLife.Common; i miglioramenti alle interfacce core influenzano entrambe le versioni contemporaneamente.
Questo progetto segue la licenza Apache 2.0. Mantieni un atteggiamento rispettoso e professionale in tutte le interazioni.
Clicca sul pulsante "Fork" su GitHub per creare la tua copia.
git clone https://github.com/akimoto-akira/SiliconLifeCollective.git
cd SiliconLifeCollective# Installa .NET 9 SDK
# https://dotnet.microsoft.com/download/dotnet/9.0
# Ripristina le dipendenze
dotnet restore
# Compila il progetto
dotnet build
# Esegui i test
dotnet testgit checkout -b feature/your-feature-nameScegli il progetto appropriato in base al tipo di contributo:
- Interfacce core/classi astratte → Modifica
SiliconLife.Core - Implementazioni condivise → Modifica
SiliconLife.Common - Specifico della versione Default → Modifica
SiliconLife.Default - Specifico della versione Fast → Modifica
SiliconLife.Fast - Motore di archiviazione → Modifica
SiliconLife.Speedy - Strumento di gestione archiviazione → Modifica
SiliconLife.Speedy.Manager - Sviluppo di plugin → Modifica
SiliconLife.Core/Plugins - Documentazione multilingua → Modifica la directory
docs/
- Segui le convenzioni di codifica C#
- I nomi delle classi usano PascalCase
- I parametri dei metodi usano camelCase
- I campi privati usano
_camelCase - Tutte le API pubbliche devono avere documentazione XML
Segui il formato dei Commit Convenzionali:
<type>(<scope>): <description>
Tipi:
feat: Nuova funzionalitàfix: Correzione di bugdocs: Modifiche alla documentazionestyle: Formattazione del codicerefactor: Rifattorizzazione del codicetest: Modifiche ai testchore: Modifiche alla build/strumenti
Esempi:
feat(localization): add Korean language support
fix(permission): fix null pointer in callback
docs: update contributing guide
refactor(web): simplify controller structure-
Scrivi il codice
- Segui i pattern esistenti
- Aggiungi test per le nuove funzionalità
- Aggiorna la documentazione
-
Testa le tue modifiche
# Esegui tutti i test dotnet test # Compila in modalità Release dotnet build --configuration Release
-
Formatta il codice
dotnet format
-
Committa le modifiche
git add . git commit -m "feat(scope): description"
-
Pusha sul tuo Fork
git push origin feature/your-feature-name
-
Crea una Pull Request
- Vai al repository originale
- Clicca su "Compare & pull request"
- Compila il template PR
- Invia
Usa lo stesso formato dei messaggi di commit:
feat(localization): add Korean language support
Includi:
- Cosa - Cosa fa questa PR?
- Perché - Perché è necessaria questa modifica?
- Come - Come l'hai implementata?
- Test - Come è stata testata?
## Cosa
Aggiunta la localizzazione coreana per tutti i componenti UI e la documentazione.
## Perché
Espandere l'accessibilità del progetto agli utenti di lingua coreana.
## Come
- Creato il file di localizzazione KoKR.cs
- Aggiunti 500+ tasti di traduzione
- Aggiornate tutte le viste per utilizzare la localizzazione
- Creata la documentazione coreana in docs/ko-KR/
## Test
- Verificato che tutti gli elementi UI mostrino correttamente il coreano
- Testata la funzionalità di cambio lingua
- Revisionate le traduzioni con madrelinguaProcesso:
- Controlla le issue esistenti
- Crea una issue se non esiste
- Correggi il bug
- Aggiungi casi di test
- Invia una PR
Requisiti:
- Descrizione chiara del bug
- Passaggi per riprodurlo
- Test per prevenire regressioni
Processo:
- Discuti la funzionalità nelle Issues/Discussioni
- Ottieni l'approvazione dei manutentori
- Implementa la funzionalità
- Aggiungi test completi
- Aggiorna la documentazione
- Invia una PR
Requisiti:
- Proposta di funzionalità approvata
- Copertura completa dei test
- Documentazione aggiornata
- Compatibilità con le versioni precedenti
Processo:
- Identifica le lacune nella documentazione
- Scrivi/aggiorna la documentazione
- Invia una PR
Requisiti:
- Chiaro e conciso
- Includi esempi
- Supporto multilingua se applicabile
Processo:
- Proponi la rifattorizzazione in una Issue
- Ottieni l'approvazione
- Rifattorizza il codice
- Assicurati che tutti i test passino
- Invia una PR
Requisiti:
- Nessun cambiamento di funzionalità
- Tutti i test passano
- Miglioramento della qualità del codice
- Spiegazione chiara
[TestMethod]
public void MyFeature_ShouldWork_AsExpected()
{
// Arrange
var service = new MyService();
// Act
var result = service.DoSomething();
// Assert
Assert.IsTrue(result.Success);
}Testa il flusso di lavoro completo:
- Interazione AI
- Esecuzione degli strumenti
- Verifica dei permessi
- Operazioni di archiviazione
Per le modifiche UI:
- Testa su browser multipli
- Verifica il design responsivo
- Controlla l'accessibilità
- Usa commenti XML per tutte le API pubbliche
- Usa commenti inline per la logica complessa
- I commenti al codice sono in inglese
- Posiziona in
docs/{language}/ - Aggiorna tutte le versioni linguistiche
- Segui la struttura esistente
Quando aggiungi documentazione:
- Crea prima la versione inglese
- Traduci nelle altre lingue
- Mantieni i contenuti sincronizzati
-
Qualità del codice
- Segue le convenzioni
- Chiaro e leggibile
- Ben documentato
-
Test
- Copertura adeguata
- Tutti i test passano
- Copre i casi limite
-
Documentazione
- Aggiornata
- Spiegazioni chiare
- Multilingua
-
Compatibilità
- Compatibile con le versioni precedenti
- Nessuna modifica dirompente (a meno che non notificata)
- Segue il versionamento semantico
- Revisione iniziale: 1-3 giorni
- Integrazione del feedback: secondo necessità
- Merge: dopo l'approvazione
Motivi:
- Non segue le linee guida
- Test insufficienti
- Modifiche dirompenti non notificate
- Qualità del codice scarsa
Soluzione:
- Risolvi i feedback
- Aggiorna la PR
- Invia di nuovo
Soluzione:
# Aggiorna il tuo branch
git fetch origin
git rebase origin/master
# Risolvi i conflitti
# Modifica i file in conflitto
git add .
git rebase --continue
# Force push
git push --force-with-lease- Documentazione: docs/
- Issue: GitHub Issues
- Discussioni: GitHub Discussions
- Codice di condotta: CODE_OF_CONDUCT.md
- Crea una Issue per i bug
- Avvia una Discussion per domande
- Tagga i manutentori per questioni urgenti
I contributori saranno riconosciuti in:
- Sezione contributori del README.md
- Note di rilascio
- Documentazione del progetto
Contribuendo, accetti che i tuoi contributi saranno concessi sotto la licenza Apache 2.0.
- 📚 Leggi la documentazione
- 🐛 Controlla le issue aperte
- 💬 Inizia una discussione
- 🚀 Fai un fork e inizia a contribuire!
Grazie per il tuo contributo a SiliconLifeCollective! 🎉