Uploaded image for project: 'Coin'
  1. Coin
  2. COIN-173

Move provisioning scripts from qt5 to separate platform repository

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Unresolved
    • P3: Somewhat important
    • None
    • None
    • Other
    • None

    Description

      the new product config system supports multiple independent products (which can be independently depended upon, even cross-branch) in one repository just fine.

      however, there are good reasons for pulling the platform product out of the qt5 repo: it's just cleaner, and easier to understand.
      take qt itself as an example. the platform product is not part of the qt release, so it doesn't really make sense to create release branches of it, and doing so nonetheless just delays the propagation of fixes. this would be addressable with the new system: the qt5 product on the release branch can explicitly depend on the platform product from the stable branch. however, it would be really confusing that the platform product on the release branch wouldn't be actually used despite being there (as it would be branched with the rest of qt5).

      note that the implication of the above is that qt release branches need to explicitly specify the platform branch they want to use (because 5.9.4 is obviously not 5.9, so a simple property reference doesn't work any more). the need to maintain this is a disincentive to branch the platform product at all, but see below.

      a virtual precondition for actually separating the platform repo is support for blocking reverse dependencies, so we don't return to the state where breakages due to template/provisioning changes are detected too late.
      the way to achieve that is what i call "cascading" integrations: each product that wants to be a reverse dependency for some dependency would set the 'cascade' property in the dependency declaration; at the parser level, the handling of that property would have to be done akin to the 'multiple' property.

      note that cascading technically allows multiple branches of some product to be revdeps for a single branch of another product; e.g., all of qt5/5.6, qt5/5.9, qt5/5.10, and qt5/dev could declare a cascading dependency on a single version of the platform product. this would ensure that the platform product can be kept compatible with all active qt branches without branching it at all. however, that would incur an insane cost to every provisioning change, so branching the platform product with minor versions of qt5 is probably a good idea.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              jujokini Jukka Jokiniva
              aakeskimo Aapo Keskimölö
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes