summaryrefslogtreecommitdiff
path: root/util/dependency_updater/tools/toolbox.py
diff options
context:
space:
mode:
authorDaniel Smith <daniel.smith@qt.io>2022-05-30 11:50:44 +0200
committerDaniel Smith <Daniel.Smith@qt.io>2023-04-17 09:26:57 +0000
commit2a94e21fc970e10495db750f521ba6133ce8f017 (patch)
treeb0f1e166908f1c6d92200f68bcc254af6a17d7bf /util/dependency_updater/tools/toolbox.py
parentee0c74b9bde5b9f1db15f7b1f377d353343c2192 (diff)
downloadqtrepotools-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.py14
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