Versionamento & Build
I progetti professionali richiedono un controllo delle versioni affidabile e un processo di build standardizzato.
Lino adotta Semantic Versioning (SemVer) per gestire le versioni di ogni servizio e fornisce comandi per generare immagini Docker già denominate in base alla versione attiva del servizio.
Versionamento dei Servizi
Ogni servizio in Lino ha un versionamento indipendente, permettendo loro di evolvere a ritmi differenti senza richiedere una sincronizzazione globale.
Standard SemVer
MAJOR.MINOR.PATCH
- MAJOR → cambiamenti incompatibili (breaking changes).
- MINOR → nuove funzionalità compatibili.
- PATCH → correzioni di bug e miglioramenti interni.
Esempi:
1.0.0 → prima versione stabile.
1.1.0 → nuovi endpoint aggiunti senza rompere la compatibilità.
2.0.0 → modifiche che richiedono l’aggiornamento dei client.
Comando lino version
Il CLI offre supporto nativo per l’incremento delle versioni:
lino version bump
La procedura guidata interattiva ti guiderà nella scelta del tipo di incremento (major, minor, patch) e aggiornerà automaticamente il file di configurazione del servizio con la nuova versione.
Ogni esecuzione aggiorna il manifesto della versione del servizio, garantendo:
- Tracciamento chiaro delle modifiche.
- Coerenza con le pratiche di rilascio.
- Allineamento con le pipeline CI/CD.
Build di immagini Docker
Lino genera automaticamente immagini Docker per ogni versione di servizio o applicazione web, eliminando attività manuali.
Convenzione di denominazione:
nome-progetto/services/nome-servizio : major.minor.patch
Le immagini possono essere pubblicate su qualsiasi registry:
- Docker Hub
- GitHub Container Registry
- AWS ECR
- Azure Container Registry
- o qualsiasi altro repository compatibile.
Comando lino build
Per compilare e generare immagini Docker, basta eseguire:
lino build
Cosa succede in questo processo:
1. Il codice del servizio e/o dell'applicazione web viene compilato.
2. Vengono applicate le configurazioni necessarie (connection strings, secrets, variabili d'ambiente).
3. Viene generata un'immagine Docker basata sulla versione SemVer attuale.
4. L'immagine riceve un nome e un tag standardizzati.
Questo processo garantisce build consistenti e riproducibili, riducendo errori negli ambienti di produzione e accelerando il deploy nelle pipeline CI/CD.
In questo modo, Lino combina versionamento indipendente per servizio con un processo di build automatizzato, offrendo governance dei release e distribuzione affidabile in qualsiasi ambiente.
