We fail to follow SemVer – and why it needn’t matter

We fail to follow SemVer – and why it needn’t matter

Recording: https://www.youtube.com/watch?v=tc2UgG5L7WM

If extensive libraries and even the tiniest module followed SemVer strictly, dependency hell would be a thing of the past … but humans weren’t made to follow rules. There are over 125.000 packages on npm today. By the time of this conference, at least another 10.000 will have been added. Using the right packages in your own modules and applications makes JavaScript the joy to develop it is today. But if even immensely popular libraries fail to properly declare breaking changes, how can we trust the over 50.000 strangers who developed all these modules? Currently we can’t. Let me show you how to write confidence-inspiring modules by leaving package publishing up to the machines – instead of buggy humans.

http://jsconfbp.com/#boennemann

9d233485cddb304f759085e593548838?s=128

Stephan Bönnemann

May 14, 2015
Tweet

Transcript

  1. ☺ Hi, I’m Stephan @boennemann @boennemann "

  2. 125,000 @boennemann packages on npm

  3. @boennemann 148,247 packages on npm

  4. A package is a solved problem @boennemann

  5. 1. npmsearch.com @boennemann

  6. 1. npmsearch.com 2. npm install <package> @boennemann

  7. 1. npmsearch.com 2. npm install <package> 3. ? @boennemann

  8. 1. npmsearch.com 2. npm install <package> 3. ? 4. profit

    @boennemann
  9. X.Y.Z @boennemann

  10. X.Y.Z @boennemann Major Minor Patch http://semver.org

  11. @boennemann Major Minor Patch http://semver.org 1.0.0

  12. @boennemann Major Minor Patch http://semver.org 1.0.1

  13. @boennemann Major Minor Patch http://semver.org 1.1.0

  14. @boennemann Major Minor Patch http://semver.org 2.0.0

  15. 2.0.0 @boennemann Major Minor Patch

  16. 2.0.0 @boennemann Patch Breaking Feature

  17. 2.0.0 @boennemann Breaking Feature Patch http://semver.npmjs.com/

  18. 2.0.0 @boennemann Breaking Feature Patch http://semver.npmjs.com/ ~

  19. 2.0.0 @boennemann Breaking Feature Patch http://semver.npmjs.com/ ^

  20. Nein @boennemann

  21. We fail to follow SemVer @boennemann

  22. @boennemann http://npmbynumbers.bocoup.com/ 0.y.z >0.y.z

  23. Anything may change at any time @boennemann

  24. @boennemann

  25. No changelogs @boennemann

  26. @boennemann

  27. @boennemann

  28. @boennemann

  29. Hauptversionsnummern- erhöhungsangst1 @boennemann 1 Fear of increasing the major version

  30. If we strictly followed “semantic” versioning, it would probably be

    Backbone.js 43.0.0 by now — which doesn't help anyone evaluate the actual progress of the project. – Jeremy Ashkenas, http://backbonejs.org/ @boennemann
  31. evaluate the actual progress of the project @boennemann

  32. Versions are not for humans @boennemann

  33. @boennemann

  34. @boennemann

  35. @boennemann 1.x 2.x

  36. @boennemann 1.x 1.x

  37. Versions are not for humans – names are @boennemann

  38. Our tools are so bad, we value human readability in

    computer protocols when it really doesn’t. fucking. matter. @boennemann – Stephan Seidt, http://fucking.engineering/
  39. We fail to follow SemVer and why it needn’t matter

    @boennemann
  40. not so live live-coding @boennemann

  41. @boennemann

  42. ⭐⭐⭐ git.io/semantic-release npm.im/semantic-release @boennemann

  43. @boennemann

  44. Thank you @boennemann