Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
master
-
None
Description
If a repo's module_config.yaml has an accept_configuration clause and the config is not accepted, that is not applied to qt5.git integrations.
Currently, most of our repo module_config.yaml files have this snippet:
version: 2 accept_configuration: condition: property property: features not_contains_value: Disable
I am trying to add a WebEngine specific disable here
https://codereview.qt-project.org/c/qt/qtwebengine/+/398615/1/coin/module_config.yaml
If I add 'Disable' or 'DisableWebEngine' to a configuration in qt5.git/coin/platform_configurations, then any repository (or just WebEngine) will not be built when scheduling an integration for that specific repository, but it WILL be built when scheduling a qt5.git integration
Toni tells me that happens because an qt5.git integration builds all its dependencies regardless of the accept_configuration clause in repo-specific module_config.yaml files.
I would expect such repos not to be built though.
And for actual top-level qt5.git cmake runs, i'd expect it not to download the artifacts for the repo that is excluded.
I think the scheduler and dependency downloader needs to prune off branches that can't be satisfied due to accept_configuration being false for all or specific repos.
E.g.
If I add a DisableDeclarative feature to the accept_configuration clause of qtdeclarative.git/coin/module_config.yaml
then I expect any integration of qtdeclarative, qtquick3d, qtwebengine, qt5.git to skip building declarative for that config, so declarative and all its downstream repos.
And for the top-level qt5 cmake integration, i'd expect the agent to download all artifacts up to, but not including qtdeclarative, plus skipping downloading of qq3d, webengine, etc, because qtdeclarative is a hard requirement for those repositories (as specified by required: true in dependencies.yaml or depends = foo in qt5.git/.gitmodules)