Pro Yearly is on sale from $80 to $50! »

On the Meaning of Version Numbers

174e7b0ff60963f821d0b9a4f1a3ef52?s=47 Hynek Schlawack
April 25, 2020
70

On the Meaning of Version Numbers

174e7b0ff60963f821d0b9a4f1a3ef52?s=128

Hynek Schlawack

April 25, 2020
Tweet

Transcript

  1. Hynek Schlawack On the Meaning of Version Numbers @hynek

  2. Semantic Versioning @hynek

  3. 1.2.3 micro @hynek

  4. 1.2.3 minor micro @hynek

  5. 1.2.3 major minor micro @hynek

  6. SemVer is a poor choice for most projects. @hynek

  7. SemVer doesn’t deliver on its promises. @hynek

  8. “I can choose to only get bugfixes.” https://xkcd.com/1172/ @hynek Hyrum’s

    Law
  9. Very few open source projects have the resources to maintain

    more than one release branch (properly). “I can choose to only get bugfixes.” @hynek
  10. If You Pin Major Version In Your Applications @hyne

  11. -No security updates. If You Pin Major Version In Your

    Applications @hyne
  12. -No security updates. -The longer you wait, the harder it

    gets. If You Pin Major Version In Your Applications @hyne
  13. @hynek If You Pin Major Version In Your Public Package

    your-pkg urllib3 1.25.9
  14. @hynek If You Pin Major Version In Your Public Package

    your-pkg urllib3 1.25.9 User’s App
  15. @hynek If You Pin Major Version In Your Public Package

    your-pkg urllib3 1.25.9 User’s App <2.0
  16. @hynek If You Pin Major Version In Your Public Package

    your-pkg urllib3 1.25.9 User’s App <2.0 2.0.0
  17. @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
  18. @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
  19. @hynek

  20. 1. Have tests. @hynek

  21. 1. Have tests. 2. Pin your dependencies. @hynek

  22. 1. Have tests. 2. Pin your dependencies. 3. Try to

    update dependencies. @hynek
  23. 1. Have tests. 2. Pin your dependencies. 3. Try to

    update dependencies. 4. See if tests still pass. @hynek
  24. 1. Have tests. 2. Pin your dependencies. 3. Try to

    update dependencies. 4. See if tests still pass. 5. GOTO 3 @hynek
  25. Almost nobody does SemVer correctly. @hynek

  26. https://0ver.org @hynek

  27. A concept that most people get wrong is not a

    useful concept for most people. @hynek
  28. SemVer is a poor choice for most projects. @hynek

  29. Acceptance @hynek

  30. @hynek

  31. Calendar Versioning @hynek

  32. • Toyota 2020 Yaris • pip 20.0.2 • Ubuntu 20.04

    • certifi 2020.4.5.1 @hynek
  33. Takeaways @hynek

  34. Takeaways •Don’t believe the promises of SemVer. @hynek

  35. Takeaways •Don’t believe the promises of SemVer. •Don’t do SemVer

    if you’re afraid to increment major. @hynek
  36. Takeaways •Don’t believe the promises of SemVer. •Don’t do SemVer

    if you’re afraid to increment major. •Try CalVer! @hynek
  37. @hynek CalVer.org vrmd.de