# Contribuire a nsParser Grazie per il tuo interesse a contribuire! > Repository primario: [https://gitea.emulab.it/Simone/nsis-plugin-nsparser](https://gitea.emulab.it/Simone/nsis-plugin-nsparser) > Mirror GitHub: [https://github.com/systempal/nsis-plugin-nsparser](https://github.com/systempal/nsis-plugin-nsparser) (read-only — apri PR su Gitea) ## Prerequisiti | Strumento | Versione | Note | |-----------|----------|------| | Visual Studio | 2022 / 2026 | Workload: Desktop development with C++ (toolset v143/v145) | | Python | 3.7+ | Per `build_plugin.py` | | Git | 2.30+ | Con supporto submoduli se applicabile | ## Quick Start ```powershell git clone https://gitea.emulab.it/Simone/nsis-plugin-nsparser.git cd nsis-plugin-nsparser python build_plugin.py ``` Output in `dist/{x86-ansi,x86-unicode,amd64-unicode}/`. ## Workflow Sviluppo ### 1. Branch ```powershell git checkout -b feat/nome-feature # nuova feature git checkout -b fix/descrizione-bug # bugfix git checkout -b docs/aggiornamento # solo doc git checkout -b chore/manutenzione # build, dipendenze ``` ### 2. Commit Segui [Conventional Commits](https://www.conventionalcommits.org/it/v1.0.0/): ``` feat: aggiunge supporto per formato XYZ fix: corregge crash su Windows 11 ARM docs: aggiorna esempio di utilizzo chore: aggiorna toolset MSVC refactor: estrae logica parsing in funzione separata test: aggiunge test per edge case build: aggiorna script di build ci: aggiorna workflow GitHub Actions ``` Breaking changes: ``` feat!: rinomina API Foo() in Bar() BREAKING CHANGE: Foo() rinominata in Bar(); aggiornare tutti i chiamanti. ``` ### 3. Pull Request PR aperte verso il branch `main` su Gitea. Verifica: - [ ] Build completa senza warning per tutte le architetture: `python build_plugin.py` - [ ] Esempi aggiornati se cambia l'API - [ ] `CHANGELOG.md` aggiornato (sezione `[Unreleased]`) - [ ] Documentazione aggiornata (README, docs/API.md se esiste) - [ ] Conventional Commits rispettato - [ ] Nessun file in `dist/` o `__pycache__/` committato ## Build Script ``` python build_plugin.py [opzioni] ``` | Opzione | Default | Descrizione | |---------|---------|-------------| | `--config` | `all` | Architettura: `x86-ansi`, `x86-unicode`, `x64-unicode`, `all` | | `--toolset` | `auto` | Visual Studio: `2022`, `2026`, `auto` (rileva il più recente) | | `--jobs` | numero CPU | Thread paralleli per la build | | `--clean` | false | Pulisce `dist/` prima di compilare | | `--install-dir` | none | Copia DLL anche in `