Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
On the Meaning of Version Numbers
Hynek Schlawack
April 25, 2020
0
180
On the Meaning of Version Numbers
Hynek Schlawack
April 25, 2020
Tweet
Share
More Decks by Hynek Schlawack
See All by Hynek Schlawack
Classy Abstractions @ Python Web Conf
hynek
0
76
Maintaining a Python Project When It’s Not Your Job
hynek
1
2k
How to Write Deployment-friendly Applications
hynek
0
2.5k
Solid Snakes or: How to Take 5 Weeks of Vacation
hynek
2
5.5k
Get Instrumented: How Prometheus Can Unify Your Metrics
hynek
4
10k
Beyond grep – PyCon JP
hynek
1
2.4k
Beyond grep – EuroPython Edition
hynek
1
10k
Beyond grep: Practical Logging and Metrics
hynek
3
1.1k
The Sorry State of SSL @ EuroPython 2014
hynek
1
310
Featured
See All Featured
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
100
5.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
12
890
Faster Mobile Websites
deanohume
294
28k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
181
15k
Scaling GitHub
holman
451
140k
The Most Common Mistakes in Cover Letters
jrick
PRO
4
24k
For a Future-Friendly Web
brad_frost
164
7.4k
Docker and Python
trallard
27
1.5k
Navigating Team Friction
lara
175
11k
Building Flexible Design Systems
yeseniaperezcruz
310
33k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
655
120k
Reflections from 52 weeks, 52 projects
jeffersonlam
337
17k
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