Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

Stephan Bönnemann

July 30, 2015
Tweet

More Decks by Stephan Bönnemann

Other Decks in Programming

Transcript


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

    View full-size slide

  2. 170,000
    @boennemann
    packages on npm

    View full-size slide

  3. A package is
    a solved problem
    @boennemann

    View full-size slide

  4. 1. npmsearch.com
    2. npm install
    3. ?
    4. profit
    @boennemann

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  10. 2.0.0
    @boennemann
    Major Minor Patch
    Breaking Feature

    View full-size slide

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

    View full-size slide

  12. Nein
    @boennemann

    View full-size slide

  13. We fail to
    follow SemVer
    @boennemann

    View full-size slide

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

    View full-size slide

  15. Anything may change
    at any time
    @boennemann

    View full-size slide

  16. No changelogs
    @boennemann

    View full-size slide

  17. Hauptversionsnummern-
    erhöhungsangst¹
    @boennemann
    ¹ Fear of increasing the major version

    View full-size slide

  18. 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

    View full-size slide

  19. evaluate the actual
    progress of the project
    @boennemann

    View full-size slide

  20. Versions are
    not for humans
    @boennemann

    View full-size slide

  21. @boennemann
    1.x
    2.x

    View full-size slide

  22. @boennemann
    1.x
    1.x

    View full-size slide

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

    View full-size slide

  24. 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/

    View full-size slide

  25. We fail to follow
    SemVer and why it
    needn’t matter
    @boennemann

    View full-size slide

  26. live-coding
    @boennemann

    View full-size slide

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

    View full-size slide

  28. Thank you
    @boennemann

    View full-size slide