Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Hynek Schlawack On the Meaning of Version Numbers @hynek
Slide 2
Slide 2 text
Semantic Versioning @hynek
Slide 3
Slide 3 text
1.2.3 micro @hynek
Slide 4
Slide 4 text
1.2.3 minor micro @hynek
Slide 5
Slide 5 text
1.2.3 major minor micro @hynek
Slide 6
Slide 6 text
SemVer is a poor choice for most projects. @hynek
Slide 7
Slide 7 text
SemVer doesn’t deliver on its promises. @hynek
Slide 8
Slide 8 text
“I can choose to only get bugfixes.” https://xkcd.com/1172/ @hynek Hyrum’s Law
Slide 9
Slide 9 text
Very few open source projects have the resources to maintain more than one release branch (properly). “I can choose to only get bugfixes.” @hynek
Slide 10
Slide 10 text
If You Pin Major Version In Your Applications @hyne
Slide 11
Slide 11 text
-No security updates. If You Pin Major Version In Your Applications @hyne
Slide 12
Slide 12 text
-No security updates. -The longer you wait, the harder it gets. If You Pin Major Version In Your Applications @hyne
Slide 13
Slide 13 text
@hynek If You Pin Major Version In Your Public Package your-pkg urllib3 1.25.9
Slide 14
Slide 14 text
@hynek If You Pin Major Version In Your Public Package your-pkg urllib3 1.25.9 User’s App
Slide 15
Slide 15 text
@hynek If You Pin Major Version In Your Public Package your-pkg urllib3 1.25.9 User’s App <2.0
Slide 16
Slide 16 text
@hynek If You Pin Major Version In Your Public Package your-pkg urllib3 1.25.9 User’s App <2.0 2.0.0
Slide 17
Slide 17 text
@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
Slide 18
Slide 18 text
@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
Slide 19
Slide 19 text
@hynek
Slide 20
Slide 20 text
1. Have tests. @hynek
Slide 21
Slide 21 text
1. Have tests. 2. Pin your dependencies. @hynek
Slide 22
Slide 22 text
1. Have tests. 2. Pin your dependencies. 3. Try to update dependencies. @hynek
Slide 23
Slide 23 text
1. Have tests. 2. Pin your dependencies. 3. Try to update dependencies. 4. See if tests still pass. @hynek
Slide 24
Slide 24 text
1. Have tests. 2. Pin your dependencies. 3. Try to update dependencies. 4. See if tests still pass. 5. GOTO 3 @hynek
Slide 25
Slide 25 text
Almost nobody does SemVer correctly. @hynek
Slide 26
Slide 26 text
https://0ver.org @hynek
Slide 27
Slide 27 text
A concept that most people get wrong is not a useful concept for most people. @hynek
Slide 28
Slide 28 text
SemVer is a poor choice for most projects. @hynek
Slide 29
Slide 29 text
Acceptance @hynek
Slide 30
Slide 30 text
@hynek
Slide 31
Slide 31 text
Calendar Versioning @hynek
Slide 32
Slide 32 text
• Toyota 2020 Yaris • pip 20.0.2 • Ubuntu 20.04 • certifi 2020.4.5.1 @hynek
Slide 33
Slide 33 text
Takeaways @hynek
Slide 34
Slide 34 text
Takeaways •Don’t believe the promises of SemVer. @hynek
Slide 35
Slide 35 text
Takeaways •Don’t believe the promises of SemVer. •Don’t do SemVer if you’re afraid to increment major. @hynek
Slide 36
Slide 36 text
Takeaways •Don’t believe the promises of SemVer. •Don’t do SemVer if you’re afraid to increment major. •Try CalVer! @hynek
Slide 37
Slide 37 text
@hynek CalVer.org vrmd.de