UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    semantic versioning for UT

    Scheduled Pinned Locked Moved OS
    7 Posts 6 Posters 2.5k Views 3 Watching
    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.
      • mariogripM Offline
        mariogrip Administrators
        last edited by mariogrip

        With the new idea for changing up OTA process, I also want to propose new version system that makes sense.

        I propose to use Semantic Versioning
        https://semver.org/

        0_1539724648267_c4f00cf3-507c-4db6-bbb8-be949563f74f-image.png

        This way we could completely get rid of framework and only rely on the version to describe both version and api/abi compat. It would also give you a lot more info about the version you are on example that a major bump has a much bigger change then for example patch.

        MAJOR: bigger change that Breaks ABI/API
        MINOR: adds backwards-compatible bug fixes, changes and functionality (may break smaller library ABI in really special cases, but this should be notified about!)
        PATCH: adds backwards-compatible bug fixes.

        Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

        This would be how our different channels would look
        1.6.2-beta2 -> 1.6.2-rc1 -> 1.6.2
        beta -> rc -> stable

        This way you would know what version becomes what, example you know that 1.6.2-rc will become 1.6.2 stable.

        This fits great in with the "gotta go fast" proposal by dalton, here is an example how that would work

        1 week:

        • 1.5.6-devel0
        • 1.5.6-devel1
        • ----- / ----- Devel continues like this daily
        • Last weeks rc becomes stable: 1.5.5-rc1 -> 1.5.5
        • Last devel build of the week becomes rc: 1.5.6-devel6 -> 1.5.6-rc1

        2 week:

        • New devel version starts: 1.5.7-devel1
        • Last weeks rc becomes stable: 1.5.6-rc1 -> 1.5.6
        • Last devel build of the week becomes rc: 1.5.7-devel6 -> 1.5.7-rc1
        • This continues weekly.

        Then monthly we do a minor bump with more advances feathers.

        We could also do a mix between slow and fast, where we are releasing stable monthly:
        1 week:

        • 1.5.6-devel0
        • 1.5.6-devel1
        • ----- / ----- Devel continues like this daily
        • Last devel build of the week becomes rc: 1.5.6-devel6 -> 1.5.6-rc1

        2 week:

        • Devel continues daily
        • Last devel build of the week becomes rc: 1.5.6-devel12 -> 1.5.6-rc2
        • This continues weekly

        Then after the month is over last weeks rc becomes stable: 1.5.6-rc1 -> 1.5.6

        Examples:

        xenial stable: 1.6.2
        xenial rc: 1.6.2-rc0
        xenial rc: 1.6.2-rc1
        xenial devel: 1.6.2-devel1
        bionic devel: 2.6.2-devel1

        We would also make a clear build date in settings, this way we can know we are on the latest build.

        D 1 Reply Last reply Reply Quote 2
        • dobeyD Offline
          dobey
          last edited by

          But this is not really any different from a framework version. The real problem isn't whether or not the version referenced is ubuntu-sdk-X or just X as is proposed, but whether what's on the image will satisfy that ABI or not No "semantic versioning" proposal will solve that issue really, because we don't provide the ABI/API as something for which multiple versions can be installed.

          1 Reply Last reply Reply Quote 0
          • D Offline
            doniks @mariogrip
            last edited by doniks

            @mariogrip content wise I dont have a strong opinion pro/contra, just some minor nitpicking:

            most of the time you start counting at devel0, except in gotta go fast, week 2. please make it consistent.

            i think your final example would be morr logical if it were

            bionic: 2.3.7-devel1 because minor and patch will not be equal with xenial in general, but the label at the end will.

            it would help to link the gottagofast thread

            1 Reply Last reply Reply Quote 0
            • alan_gA Offline
              alan_g
              last edited by

              @mariogrip said in semantic versioning for UT:

              Last weeks rc becomes stable: 1.5.5-rc1 -> 1.5.6

              I think this is confusing. I prefer the Debian scheme where 1.5.6~rc1 -> 1.5.6

              R mariogripM 2 Replies Last reply Reply Quote 1
              • R Offline
                rogier.oudshoorn @alan_g
                last edited by

                @alan_g Same here; maven versioning which i'm used to also goes from 1.5.6-SNAPSHOT -> 1.5.6 (release).

                1 Reply Last reply Reply Quote 0
                • mariogripM Offline
                  mariogrip Administrators @alan_g
                  last edited by

                  @alan_g Yes that what i meant, sorry a mistake.

                  1 Reply Last reply Reply Quote 0
                  • L Offline
                    L-00581
                    last edited by

                    This post is deleted!
                    1 Reply Last reply Reply Quote 0
                    • LakotaubpL Lakotaubp locked this topic on

                    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
                    • First post
                      Last post