Versioning & Build
Professional projects require reliable version control and a standardized build process.
Lino adopts Semantic Versioning (SemVer) to manage versions of each service and provides commands to generate Docker images already named according to the serviceβs active version.
Service Versioning
Each service in Lino has independent versioning, allowing them to evolve at different paces without requiring global synchronization.
SemVer Standard
MAJOR.MINOR.PATCH
- MAJOR β incompatible changes (breaking changes).
- MINOR β new backward-compatible features.
- PATCH β bug fixes and internal improvements.
Examples:
1.0.0 β first stable version.
1.1.0 β new endpoints added without breaking compatibility.
2.0.0 β changes requiring client updates.
lino version Command
The CLI provides native support for version increments:
lino version bump
The interactive wizard will guide you to choose the type of increment (major, minor, patch) and automatically update the service configuration file with the new version.
Each execution updates the service version manifest, ensuring:
- Clear tracking of changes.
- Consistency with release practices.
- Alignment with CI/CD pipelines.
Docker Image Build
Lino automatically generates Docker images for each service or web application version, eliminating manual tasks.
Naming convention:
project-name/services/service-name : major.minor.patch
Images can be published to any registry:
- Docker Hub
- GitHub Container Registry
- AWS ECR
- Azure Container Registry
- or any other compatible repository.
lino build Command
To compile and generate Docker images, simply run:
lino build
What happens in this process:
1. The service and/or web application code is compiled.
2. Necessary configurations (connection strings, secrets, environment variables) are applied.
3. A Docker image is generated based on the current SemVer version.
4. The image receives standardized name and tag.
This process ensures consistent and reproducible builds, reducing failures in production environments and accelerating deployment in CI/CD pipelines.
Thus, Lino combines independent service versioning with an automated build process, delivering release governance and reliable distribution in any environment.
