Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Other Discussions
  3. The Insider News
  4. Semantic Versioning is a terrible mistake

Semantic Versioning is a terrible mistake

Scheduled Pinned Locked Moved The Insider News
phpcomquestion
4 Posts 4 Posters 1 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    Kent Sharkey
    wrote on last edited by
    #1

    The Reinvigorated Programmer[^]:

    When I first heard about Semantic Versioning, or SemVer, I thought it was one of those ideas that’s so obviously right that we were all going to benefit from someone having just codified it and written it down.

    So it's a breaking change?

    Greg UtasG 1 Reply Last reply
    0
    • K Kent Sharkey

      The Reinvigorated Programmer[^]:

      When I first heard about Semantic Versioning, or SemVer, I thought it was one of those ideas that’s so obviously right that we were all going to benefit from someone having just codified it and written it down.

      So it's a breaking change?

      Greg UtasG Offline
      Greg UtasG Offline
      Greg Utas
      wrote on last edited by
      #2

      Quote:

      Here’s the problem: people interpret SemVer [numbering releases using the a.b.c convention] as permission to make breaking changes.

      What's a breaking change? If, for example, it modifies a function's arguments but is well documented so that users can easily change their code, big deal. The other end of the spectrum is something that forces non-trivial rework in some applications.

      Quote:

      If you need to make a breaking change to your API, it means you screwed up.

      Bzzt. At the trivial end, it means that the surface-to-volume ratio is being properly managed. No one can predict all future requirements. At the nasty end, it means consulting with users and giving them advance notice if a framework requires significant evolution in some area to better support new requirements. This article strikes me as 🐘ing entitled whining. People can stay on the current release if they don't want to put in the effort to evolve their software. Either that, or they chose the wrong vendor.

      Robust Services Core | Software Techniques for Lemmings | Articles
      The fox knows many things, but the hedgehog knows one big thing.

      <p><a href="https://github.com/GregUtas/robust-services-core/blob/master/README.md">Robust Services Core</a>
      <em>The fox knows many things, but the hedgehog knows one big thing.</em></p>

      K 1 Reply Last reply
      0
      • Greg UtasG Greg Utas

        Quote:

        Here’s the problem: people interpret SemVer [numbering releases using the a.b.c convention] as permission to make breaking changes.

        What's a breaking change? If, for example, it modifies a function's arguments but is well documented so that users can easily change their code, big deal. The other end of the spectrum is something that forces non-trivial rework in some applications.

        Quote:

        If you need to make a breaking change to your API, it means you screwed up.

        Bzzt. At the trivial end, it means that the surface-to-volume ratio is being properly managed. No one can predict all future requirements. At the nasty end, it means consulting with users and giving them advance notice if a framework requires significant evolution in some area to better support new requirements. This article strikes me as 🐘ing entitled whining. People can stay on the current release if they don't want to put in the effort to evolve their software. Either that, or they chose the wrong vendor.

        Robust Services Core | Software Techniques for Lemmings | Articles
        The fox knows many things, but the hedgehog knows one big thing.

        K Offline
        K Offline
        Kaladin
        wrote on last edited by
        #3

        On the other hand, if I use a library A that depends on library B and library B makes a breaking change, I need to wait for library A to update its code before I can update to library B.

        Richard DeemingR 1 Reply Last reply
        0
        • K Kaladin

          On the other hand, if I use a library A that depends on library B and library B makes a breaking change, I need to wait for library A to update its code before I can update to library B.

          Richard DeemingR Offline
          Richard DeemingR Offline
          Richard Deeming
          wrote on last edited by
          #4

          Even worse if you depend on libraries A and B, which both depend on C, but each depends on a different and incompatible version of C. X|


          "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

          "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

          1 Reply Last reply
          0
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • World
          • Users
          • Groups