Inedo Community Forums Forums
    • Recent
    • Tags
    • Popular
    • Login

    Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

    If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

    [ProGet] Support Microsoft SemVer scheme

    Scheduled Pinned Locked Moved Support
    3 Posts 2 Posters 11 Views
    Loading More Posts
    • 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.
    • S Offline
      sbaeurle
      last edited by

      The SemVer feature for Docker Feed comes in quite handy (especially with the automatic tag creation for major versions etc.)
      However we encountered a small problem wenn utilizing image from the Microsoft Container Registry (mcr.io).

      Especially the base images for windows utilize a four digit scheme (x.x.x.x) to indicate os.minor.build.patch-level.
      We consume these images and alter them to our needs, yet we're unable to keep the same versioning scheme and republish our alteration with the four digit scheme.

      Would it be possible to weaken the SemVer validation in order to support this common versioning scheme as well?

      Best regards
      Simon

      atrippA 1 Reply Last reply Reply Quote 0
      • atrippA Offline
        atripp inedo-engineer @sbaeurle
        last edited by

        Hi @sbaeurle,

        I'm afraid we'll be sticking to following SemVer2 for the foreseeable future. That's a very well-documented standard that is machine readable and predicable. Microsoft's versioning scheme is anything but that.

        That said, Microsoft's container tagging isn't at all consistent, as you can see: https://hub.docker.com/_/microsoft-windows

        The operating system versioning is even more bizarre, and Microsoft abandoned any sensible Major/Minor scheme in the late 1990's. For example, Windows 7 was 6.1, Windows 8 was 6.2, Windows 10 is 10.0, and Windows 11 is.... 10.0. S Except when it's aliased as 23H2 something. Servers are.... no one really knows.

        Then add to that patching, which may or may not impact the version number.

        To clear up this confusion, we recommend you use SemVer to make versions of your internal base images, based on some Microsoft build.

        This is the mapping scheme we recommend:

        • Major is the product number (19 for Server 2019, 22 for 2022)
        • Minor is the "service pack" version (0 for first version, 1 for 1903, etc)
        • Patch is your internal revision number of that image (when you install patches, etc)

        Another "tip" is overloading digits. For example, if you see a case where you will want to "revise your patches", then just increment your patch version by 10. So 0, 10, 20, 30, 40. Then you can "patch" 10 by going to 11, 12, 13.

        Hope that helps

        Cheers,
        Alana

        1 Reply Last reply Reply Quote 0
        • S Offline
          sbaeurle
          last edited by

          Hi Alana,

          thanks for the input.
          Made me reconsider our current versioning scheme to a much simpler and more deterministic solution.

          This topic can be marked as resolved now!

          1 Reply Last reply Reply Quote 0

          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

          With your input, this post could be even better 💗

          Register Login
          • 1 / 1
          • First post
            Last post
          Inedo Website Home • Support Home • Code of Conduct • Forums Guide • Documentation