The Evolution of Our Versioning Strategy
With the release of Manticore 7.4.6 , we’re excited to announce a significant improvement in how we version our software. This change marks an important step in our commitment to providing a more transparent, predictable, and developer-friendly experience.
The Old Way: Almost-But-Not-Quite Semantic Versioning
Previously, our versioning approach had several quirks that created confusion:
- Version numbers increased based on subjective assessments of change significance rather than following a consistent pattern
- We used odd/even numbering to distinguish between development versions (odd, e.g., 1.2.3) and release versions (even, e.g., 1.2.4)
- Development builds all shared the same version number between releases, relying on commit hashes and timestamps for identification
For example, development versions might look like:
7.0.1-25021913-e4b93ef47
7.0.1-25021915-e2c41b2e5
7.0.1-25021917-b8f605339
7.0.1-25021919-b4b3611db
7.0.1-25022103-101e878ef
This approach made it difficult to:
- Track the progression of development builds
- Understand the nature of changes between versions
- Automate dependency management
- Communicate clearly about compatibility
The New Way: True Semantic Versioning
Starting with Manticore 7.4.6 , we’ve adopted proper Semantic Versioning (SemVer). This standardized approach uses a three-part version number (MAJOR.MINOR.PATCH) with clear rules:
- MAJOR version increases when we make incompatible API changes
- MINOR version increases when we add functionality in a backward-compatible manner
- PATCH version increases when we make backward-compatible bug fixes
Benefits of Our New Approach
1. Clearer Communication
Each version number now conveys meaningful information about the nature of changes. When you see a version bump, you’ll immediately understand what kind of changes to expect:
- Major version change? Prepare for potential breaking changes
- Minor version change? Expect new features that won’t break existing code
- Patch version change? Bug fixes that maintain compatibility
2. Independent Package Versioning
Each package now has its own version number that increments independently. This means:
- More granular tracking of changes across the ecosystem
- Better dependency management in projects that use Manticore components
3. Simplified Development Tracking
Development builds now have unique, incrementing version numbers that clearly indicate their place in the development timeline, while still maintaining the commit hashes and timestamps for precise tracking. This provides better visibility into the progression of development versions.
4. Better Automation Support
The standardized versioning enables:
- More reliable dependency resolution in package managers
- Easier integration with CI/CD pipelines
- Automated compatibility checking
- Streamlined release processes
5. Alignment with Industry Standards
By adopting SemVer, we’re aligning with widely accepted industry practices, making Manticore more accessible to developers already familiar with this versioning scheme.
6. Improved Stability Signaling
Users can now make more informed decisions about upgrades:
- Patch updates can be applied with minimal risk
- Minor updates bring new features with backward compatibility
- Major updates signal the need for more careful testing and potential code changes
Looking Forward
This transition to semantic versioning represents our commitment to providing a more developer-friendly experience. We believe these changes will make working with Manticore more predictable and enjoyable.
For existing projects, this change should be seamless, but it does mean you’ll have better information about what each update contains and can make more informed decisions about when to upgrade.
Transition Period
While we’ve fully implemented semantic versioning for release versions starting with Manticore 7.4.6, we’re still in the process of migrating all components to the new versioning schema. During this transition period, some development versions may still follow the previous schema with shared version numbers. However, all release versions will consistently follow the new semantic versioning approach.
We expect to complete the migration across all components in the coming months, at which point both development and release versions will fully adhere to semantic versioning principles.
We’re excited about this improvement and welcome your feedback as we continue to enhance Manticore for all our users.