Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Versioning for Qt Creator plugins in alpha/beta stage
Forum Updated to NodeBB v4.3 + New Features

Versioning for Qt Creator plugins in alpha/beta stage

Scheduled Pinned Locked Moved Solved General and Desktop
5 Posts 3 Posters 404 Views
  • 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.
  • J Offline
    J Offline
    jesperm
    wrote on last edited by
    #1

    I'm looking for ideas and inspiration how to handle Qt Creator plugins which is considered to be in in alpha/beta stages.

    We are currently using semantic versioning along with pre-release labels to track the maturity of our plugins, for example:

    • 1.1.0-alpha.14
    • 1.0.0-beta.55

    However, the plugin meta data only allows for versions in the format of x.y.z_n (as specified here). We could package the plugin in a installer and assign the installer our version number, but it would be beneficial to see the "actual" version of the plugin directly in Qt Creator.

    Have anybody been struggling with this scenario and perhaps found a suitable solution for it?

    1 Reply Last reply
    0
    • J Offline
      J Offline
      jesperm
      wrote on last edited by jesperm
      #5

      This is the solution we plan to go with.

      The semantic version will be accessible somewhere in the plugin (“About” button, text element or similar) for development versions (alpha, beta, release candidate, hotfix). This allows us to have a lighter mapping between the semantic version of the build and meta version entered for the plugin.

      The version entered in the meta data will set x.y.z based on the semantic version (ignoring the pre-release label). When a development version is built, we append _n to the meta version (where n is an increasing number for each build).

      In short
      For development builds: x.y.z_n = <sem.major>.<sem.minor>.<sem.patch>_<build number>
      For stable builds: x.y.z = <sem.major>.<sem.minor>.<sem.patch>

      Edit
      We have introduced the usage of GitVersion to determine the version number for our builds. It has a nice feature of delivering a "weighted" number and we use this instead of using a increasing build for development builds (the _n part of the version).

      1 Reply Last reply
      1
      • Christian EhrlicherC Offline
        Christian EhrlicherC Offline
        Christian Ehrlicher
        Lifetime Qt Champion
        wrote on last edited by
        #2

        @jesperm said in Versioning for Qt Creator plugins in alpha/beta stage:

        Have anybody been struggling with this scenario and perhaps found a suitable solution for it?

        KDE is/was using x.y-1.95 for alpha, x.y-1.96... 99 for betas afair.

        Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
        Visit the Qt Academy at https://academy.qt.io/catalog

        aha_1980A 1 Reply Last reply
        2
        • Christian EhrlicherC Christian Ehrlicher

          @jesperm said in Versioning for Qt Creator plugins in alpha/beta stage:

          Have anybody been struggling with this scenario and perhaps found a suitable solution for it?

          KDE is/was using x.y-1.95 for alpha, x.y-1.96... 99 for betas afair.

          aha_1980A Offline
          aha_1980A Offline
          aha_1980
          Lifetime Qt Champion
          wrote on last edited by
          #3

          I'd go with what @Christian-Ehrlicher said.

          Qt Creator itself uses this notion, e.g. 4.12.0-beta1 is internally numbered 4.11.82.

          Regards

          Qt has to stay free or it will die.

          1 Reply Last reply
          0
          • J Offline
            J Offline
            jesperm
            wrote on last edited by jesperm
            #4

            Thanks for the suggestions/input @Christian-Ehrlicher and @aha_1980!

            So I guess this is what I need to do: setup a mapping between our semantic version and a notion which is supported by the plugins (like Qt Creator as you said @aha_1980) when pre-release labels are used.

            Is the the rule-set used by Qt Creator internally available to look at?

            Creating a mapping for beta releases would be rather easy to create. Our number which is part of the pre-release beta label is increased based on the build-version. For example: 1.0.0-beta.1 would then be 1.0.0_1. The tricky part is that I also need to consider alpha release candidate builds (1.0.0-alpha.2 and 1.0.0-rc.0).

            1 Reply Last reply
            0
            • J Offline
              J Offline
              jesperm
              wrote on last edited by jesperm
              #5

              This is the solution we plan to go with.

              The semantic version will be accessible somewhere in the plugin (“About” button, text element or similar) for development versions (alpha, beta, release candidate, hotfix). This allows us to have a lighter mapping between the semantic version of the build and meta version entered for the plugin.

              The version entered in the meta data will set x.y.z based on the semantic version (ignoring the pre-release label). When a development version is built, we append _n to the meta version (where n is an increasing number for each build).

              In short
              For development builds: x.y.z_n = <sem.major>.<sem.minor>.<sem.patch>_<build number>
              For stable builds: x.y.z = <sem.major>.<sem.minor>.<sem.patch>

              Edit
              We have introduced the usage of GitVersion to determine the version number for our builds. It has a nice feature of delivering a "weighted" number and we use this instead of using a increasing build for development builds (the _n part of the version).

              1 Reply Last reply
              1

              • Login

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Users
              • Groups
              • Search
              • Get Qt Extensions
              • Unsolved