Release e Supporto
INFO
Distribuire una risorsa professionalmente richiede versioning, changelog e un minimo di supporto. Questa nota chiude il modulo con le best practice.
| Obiettivo | Dettagli |
|---|---|
| Cosa imparerai | • Versionare le release • Scrivere un changelog • Gestire il supporto • Leggere la telemetria (base) |
| Prerequisiti | • Risorsa finita (moduli 10-16) |
1. Versioning (Semver)
Usa Semantic Versioning:
MAJOR.MINOR.PATCH
^ ^ ^
| | └── bugfix (non rompe nulla)
| └── nuova feature (compatibile)
└── breaking change (rompe compatibilità)
| Versione | Cambio |
|---|---|
| 1.0.0 | Prima release stabile |
| 1.1.0 | Aggiungi feature |
| 1.1.1 | Fix bug |
| 2.0.0 | Breaking change (API diverse) |
Nel fxmanifest.lua:
version '1.2.0'2. Changelog
Un file CHANGELOG.md nella risorsa aiuta gli utenti:
# Changelog
## [1.2.0] - 2026-01-15
### Added
- Sistema di crafting per munizioni
### Changed
- Prezzi negozio aggiornati
### Fixed
- Bug con inventario pieno
## [1.1.1] - 2026-01-01
### Fixed
- Crash quando il giocatore esce3. Package e Distribuzione
- Esegui
zipdella cartella risorsa (senza build/web, senza secrets) - Includi README con istruzioni di installazione
- Includi il changelog
- Verifica che non ci siano file inutili (
.git,node_modules, config con secret)
WARNING
Prima di zippare: cerca file di configurazione con secret (server.cfg, config_server.lua) ed escludili. Vendere un config con la tua license key è un errore comune.
4. Supporto
| Canale | Uso |
|---|---|
| Discord | Supporto veloce, community |
| GitHub Issues | Bug tracciati |
| Docs | Guide di installazione |
Best practice:
- Documenta i prerequisiti e le dipendenze
- Rispondi con log/segnale (non indovinare)
- Aggiorna il changelog quando fixi un bug segnalato
- Se vendi, definisci una policy di supporto (es. solo server attivi)
5. Telemetria Base
Per capire se la risorsa funziona sugli altri server, aggiungi log o report opzionali:
-- server.lua
AddEventHandler('onResourceStart', function(resourceName)
if resourceName ~= GetCurrentResourceName() then return end
print(('[MYRES] avviata, versione %s'):format(GetResourceMetadata(GetCurrentResourceName(), 'version', 0)))
end)NOTE
Evita di raccogliere dati non necessari: la privacy degli utenti va rispettata. Raccogli solo metriche utili alla risoluzione di bug, e documenta cosa raccogli.
Checklist Finale Risorsa
- Versioning semver nel manifest
- Changelog aggiornato
- Nessun secret nel package
- README con installazione
- Testata su server pulito (senza tue modifiche locali)
- Licenza dichiarata (modulo 17/04)
Modulo Pubblicazione completato!
Torna alla: Indice Generale