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.

An unhandled error has occurred. Reload πŸ—™