Details
-
Suggestion
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
None
-
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
- depends on
-
QTQAINFRA-1016 write product configurations
- Closed
- relates to
-
QTQAINFRA-1637 submodule's platform configurations should be in the submodules
- Closed
-
QTQAINFRA-5141 Create separate repository for provisioning scripts for other products than qt5
- Reported
- mentioned in
-
Page Loading...