Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
On the Meaning of Version Numbers
Search
Hynek Schlawack
April 25, 2020
0
390
On the Meaning of Version Numbers
Hynek Schlawack
April 25, 2020
Tweet
Share
More Decks by Hynek Schlawack
See All by Hynek Schlawack
Python’s True Superpower
hynek
0
210
Design Pressure
hynek
0
1.8k
Subclassing, Composition, Python, and You
hynek
3
490
Classy Abstractions @ Python Web Conf
hynek
0
230
Maintaining a Python Project When It’s Not Your Job
hynek
1
2.4k
How to Write Deployment-friendly Applications
hynek
0
2.6k
Solid Snakes or: How to Take 5 Weeks of Vacation
hynek
2
5.9k
Get Instrumented: How Prometheus Can Unify Your Metrics
hynek
4
11k
Beyond grep – PyCon JP
hynek
1
3.6k
Featured
See All Featured
Being A Developer After 40
akosma
91
590k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The agentic SEO stack - context over prompts
schlessera
0
690
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Practical Orchestrator
shlominoach
191
11k
Discover your Explorer Soul
emna__ayadi
2
1.1k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
990
A designer walks into a library…
pauljervisheath
210
24k
sira's awesome portfolio website redesign presentation
elsirapls
0
190
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
390
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
200
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Transcript
Hynek Schlawack On the Meaning of Version Numbers @hynek
Semantic Versioning @hynek
1.2.3 micro @hynek
1.2.3 minor micro @hynek
1.2.3 major minor micro @hynek
SemVer is a poor choice for most projects. @hynek
SemVer doesn’t deliver on its promises. @hynek
“I can choose to only get bugfixes.” https://xkcd.com/1172/ @hynek Hyrum’s
Law
Very few open source projects have the resources to maintain
more than one release branch (properly). “I can choose to only get bugfixes.” @hynek
If You Pin Major Version In Your Applications @hyne
-No security updates. If You Pin Major Version In Your
Applications @hyne
-No security updates. -The longer you wait, the harder it
gets. If You Pin Major Version In Your Applications @hyne
@hynek If You Pin Major Version In Your Public Package
your-pkg urllib3 1.25.9
@hynek If You Pin Major Version In Your Public Package
your-pkg urllib3 1.25.9 User’s App
@hynek If You Pin Major Version In Your Public Package
your-pkg urllib3 1.25.9 User’s App <2.0
@hynek If You Pin Major Version In Your Public Package
your-pkg urllib3 1.25.9 User’s App <2.0 2.0.0
@hynek If You Pin Major Version In Your Public Package
your-pkg urllib3 1.25.9 User’s App <2.0 other- pkg >2.0 2.0.0
@hynek If You Pin Major Version In Your Public Package
your-pkg urllib3 1.25.9 User’s App <2.0 other- pkg >2.0 Conflict! 2.0.0
@hynek
1. Have tests. @hynek
1. Have tests. 2. Pin your dependencies. @hynek
1. Have tests. 2. Pin your dependencies. 3. Try to
update dependencies. @hynek
1. Have tests. 2. Pin your dependencies. 3. Try to
update dependencies. 4. See if tests still pass. @hynek
1. Have tests. 2. Pin your dependencies. 3. Try to
update dependencies. 4. See if tests still pass. 5. GOTO 3 @hynek
Almost nobody does SemVer correctly. @hynek
https://0ver.org @hynek
A concept that most people get wrong is not a
useful concept for most people. @hynek
SemVer is a poor choice for most projects. @hynek
Acceptance @hynek
@hynek
Calendar Versioning @hynek
• Toyota 2020 Yaris • pip 20.0.2 • Ubuntu 20.04
• certifi 2020.4.5.1 @hynek
Takeaways @hynek
Takeaways •Don’t believe the promises of SemVer. @hynek
Takeaways •Don’t believe the promises of SemVer. •Don’t do SemVer
if you’re afraid to increment major. @hynek
Takeaways •Don’t believe the promises of SemVer. •Don’t do SemVer
if you’re afraid to increment major. •Try CalVer! @hynek
@hynek CalVer.org vrmd.de