Microsoft Certified: DevOps Engineer ExpertConfigure processes and communicationsMedium
A software company is developing a suite of microservices. Each microservice is independently deployable and has its own Git repository. The company wants to adopt a versioning strategy that clearly indicates whether a release contains new features, bug fixes, or breaking changes, and allows for automated dependency resolution. Which versioning strategy should they implement?
- ADate-Based Versioning
- BAlphabetical Versioning
- CSemantic Versioning
- DSequential Versioning
Show answer & explanationAnswer & explanation
Correct answer: C. Semantic Versioning
Semantic Versioning (SemVer) uses a MAJOR.MINOR.PATCH format to communicate the nature of changes. MAJOR for breaking changes, MINOR for new features (backward-compatible), and PATCH for backward-compatible bug fixes. This clarity is crucial for microservices to manage dependencies and understand release impact.
Why the other options are wrong
- A. Date-Based Versioning uses the release date, which doesn't directly communicate the type of changes (breaking, features, fixes) or facilitate dependency management.
- B. Alphabetical Versioning is not a standard versioning strategy and would provide no meaningful information about releases.
- D. Sequential Versioning (e.g., 1, 2, 3) provides no information about the nature of the changes or their backward compatibility.
Semantic Versioning (SemVer)
A versioning scheme (MAJOR.MINOR.PATCH) that communicates the type of changes in a release, indicating backward compatibility and impact.
- MAJOR: Breaking changes.
- MINOR: New features, backward-compatible.
- PATCH: Bug fixes, backward-compatible.
- Crucial for dependency management.
Memory trick: SemVer sends signals on changes.