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
340
On the Meaning of Version Numbers
Hynek Schlawack
April 25, 2020
Tweet
Share
More Decks by Hynek Schlawack
See All by Hynek Schlawack
Design Pressure
hynek
0
1.5k
Subclassing, Composition, Python, and You
hynek
3
350
Classy Abstractions @ Python Web Conf
hynek
0
200
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.8k
Get Instrumented: How Prometheus Can Unify Your Metrics
hynek
4
11k
Beyond grep – PyCon JP
hynek
1
3.5k
Beyond grep – EuroPython Edition
hynek
1
10k
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
660
Visualization
eitanlees
146
16k
RailsConf 2023
tenderlove
30
1.1k
4 Signs Your Business is Dying
shpigford
184
22k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Being A Developer After 40
akosma
90
590k
Practical Orchestrator
shlominoach
188
11k
Site-Speed That Sticks
csswizardry
10
650
KATA
mclloyd
29
14k
Bash Introduction
62gerente
614
210k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
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