diff options
author | Daniel Smith <daniel.smith@qt.io> | 2022-05-30 11:50:44 +0200 |
---|---|---|
committer | Daniel Smith <Daniel.Smith@qt.io> | 2023-04-17 09:26:57 +0000 |
commit | 2a94e21fc970e10495db750f521ba6133ce8f017 (patch) | |
tree | b0f1e166908f1c6d92200f68bcc254af6a17d7bf /util/dependency_updater/tools/toolbox.py | |
parent | ee0c74b9bde5b9f1db15f7b1f377d353343c2192 (diff) | |
download | qtrepotools-2a94e21fc970e10495db750f521ba6133ce8f017.tar.gz |
Update how the submodule update handles failed modules
The bot should watch for state updates of failed modules in the
event they are manually integrated after having been marked
as failed. This patch also introduces an additional repo status
of DONE_FAILED_DEPENDENCY to better differentiate between actual
failed modules, and those which were marked as failed due
to bad dependencies.
Change-Id: I8b949aa32cef109a51d7b53f7bc9942186034959
Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
Diffstat (limited to 'util/dependency_updater/tools/toolbox.py')
-rw-r--r-- | util/dependency_updater/tools/toolbox.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/util/dependency_updater/tools/toolbox.py b/util/dependency_updater/tools/toolbox.py index 772cff4..34bb783 100644 --- a/util/dependency_updater/tools/toolbox.py +++ b/util/dependency_updater/tools/toolbox.py @@ -1204,6 +1204,7 @@ def reset_module_properties(config: Config, repo: Repo) -> Repo: print(f"Resetting module state for {repo.id}") repo.progress = PROGRESS.UNSPECIFIED repo.proposal = Proposal() + repo.failed_dependencies = list() repo.stage_count = 0 repo.retry_count = 0 repo.to_stage = list() @@ -1289,12 +1290,23 @@ def state_printer(config: Config) -> tuple[dict[PROGRESS, int], str]: repos.clear() msg = "\nThe following repos failed to update:" for repo in config.state_data.keys(): - if config.state_data[repo].progress >= PROGRESS.DONE_FAILED_NON_BLOCKING: + if config.state_data[repo].progress in (PROGRESS.DONE_FAILED_NON_BLOCKING, + PROGRESS.DONE_FAILED_BLOCKING): total_state[PROGRESS.DONE_FAILED_NON_BLOCKING.value] += 1 repos.append(repo) if repos: ret_str += _print(msg) for repo in repos: ret_str += _print(f"\t{repo}") + repos.clear() + msg = "\nThe following repos cannot be updated due to a failed dependency:" + for repo in config.state_data.keys(): + if config.state_data[repo].progress == PROGRESS.DONE_FAILED_DEPENDENCY: + total_state[PROGRESS.DONE_FAILED_DEPENDENCY.value] += 1 + repos.append(repo) + if repos: + ret_str += _print(msg) + for repo in repos: + ret_str += _print(f"\t{repo}: {config.state_data[repo].failed_dependencies}") return total_state, ret_str |