Slides from Software Versioning session of DevOps and DataOps Discord in August 2021: https://discord.gg/UTxjBf9juQ
Agenda:
- Versioning schemas: semver, calver, others
- Release versioning strategies, handling versioning for main, feature and release branches
- Version Auto-increments
- Versioning microservices, handling tags and digests on container images
- Versioning bundles: handling dependencies, managing combinatorial explosion of versions
- Common pitfalls and open questions
2. Disclaimers
- Some things may be opinionated and
even controversial
- They may even turn up to be wrong over
time
- I let them in to draw opinions and start
conversations
3. Goals of Versioning
• State identification
• Qualifying and quantifying change
• Marketing
• Guidance for deployments
14. Ways to Solve Address
• Pruning Search Space
• Adding More Automation
• Versioning on Meta level (i.e., API)
• Getting “Greedy” (i.e. always latest – I
prefer less of that)
15. What we Want
• Deploy by Digest
• But know exact version deployed
• And know whether it is safe to roll
forward or roll back and to what
• And for bundled context
17. What I do (opinionated)
• TBD, not GitFlow
• Auto-increments via Conventional Commits on
every push
• Separate versioning schema for feature
branches
• Keep release branches on separate minors
• Treat bundles atomically – linearize
• Keep distance of supported versions short
18. About me, Pavel Shukhman
• MCS from UIUC
• CKA and CKAD certified
• Working with Infrastructure, DevOps,
DataOps for more than 10 years
• Co-Founder and CEO of Reliza
• Twitter: @taleodor
• LinkedIn: pshukhman