
AI/ML Application Version Numbering Schema
Overview
This document defines the versioning scheme for software applications developed and maintained by the team. It outlines the format, rules for incrementing versions, integration with CI/CD pipelines, and visibility requirements.
Version Format
The version format follows a structured pattern:
Major.Minor.Patch
Components
- Major
- 1: Initial version
- 2..n: Breaking changes (e.g., incompatible API changes, architectural overhauls)
- Minor
- 0: Beta release
- 1..n: Major feature additions (e.g., new modules, significant enhancements)
- Patch
- 0: No patch applied
- 1..n: Bug fixes or minor feature updates
Examples
| Version | Description |
|---|---|
| 1.0.0 | Initial beta release |
| 1.1.0 | First major feature added or stable release |
| 1.1.1 | Bug fix applied to the first major feature |
| 2.0.0 | Breaking change introduced |
| 2.2.3 | Third patch to second major feature in version 2 |
Version Increment Rules
| Change Type | Version Component Affected | Rule |
|---|---|---|
| Breaking Change | Major | Increment Major, reset Minor and Patch to 0 |
| Major Feature | Minor | Increment Minor, reset Patch to 0 |
| Bug Fix / Minor Feature | Patch | Increment Patch |
Edge Cases
- Multiple changes in one release: Apply the highest-impact change rule (e.g., if both a breaking change and a bug fix are present, increment Major).
- In the event of a "rollback" scenario, the version number will be incremented and the release notes will describe the rollback.
- Hotfixes: Use Patch increment even if deployed outside regular release cycles.
CI/CD Integration
- Version numbers are automatically incremented and tagged during CI/CD pipeline execution.
- Git tags follow the format
v<Major>.<Minor>.<Patch>(e.g., v2.1.3). - Version metadata is embedded in build artifacts and deployment manifests.
Visibility Requirements
- Application UI: Display version number in footer, settings, or about section.
- Logs: Include version number in startup and error logs.
- Release Notes / Changelog: Each release must include the version number and a summary of changes.