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

accept_configuration does not currently work properly for qt5.git integrations

    XMLWordPrintable

Details

    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)

      Attachments

        For Gerrit Dashboard: COIN-823
        # Subject Branch Project Status CR V

        Activity

          People

            tosaario Toni Saario
            alexandru.croitor Alexandru Croitor
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated: