You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When using 'comp update -a' or '--without-lockfile comp refresh-upstream-commit -a', a failure of any single component will abort the entire process, instead of completing as many as possible and then reporting which components failed. This fixes that behavior to process all components that don't fail the update/refresh, and report any failing components.
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
🟡 Changes recommended
A couple of newly introduced user-facing messages/help text are misleading in edge cases (e.g., “successful files were updated” when all components fail, and ambiguity with '--check-only').
Get a fresh assessment by requesting another Copilot review.
This PR changes the azldev component update and azldev --without-lockfile component refresh-upstream-commit workflows so that, when running across many components (-a / include-all), a failure in one component no longer aborts the entire run. Instead, the commands preserve successful per-component outputs, then return an aggregated error listing the failing components (and skip orphan pruning on partial failure).
Changes:
Stop cancelling parallel resolution on first component failure; continue resolving remaining components.
Save successful lock/TOML outputs even when other components fail, then return an aggregate error.
Add unit tests validating partial-success behavior; update user-facing text/docs to describe the new semantics.
File
Description
internal/app/azldev/cmds/component/update.go
Writes successful lock updates before returning aggregate error; no longer cancels remaining work on first failure.
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
🟡 Changes recommended
Several newly added/modified lines are likely to fail the repo’s enabled lll linter and a couple of updated aggregate error messages can be misleading in common “no files actually written” cases.
Get a fresh assessment by requesting another Copilot review.
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
🔵 Needs a closer look
The new aggregate error messages can incorrectly claim files “were updated” even when no writes occurred (e.g., all non-failing components were already up-to-date).
This message unconditionally states successful upstream commit TOML files were updated, but if the non-failing components were already current there may be nothing to write. Consider using wording that doesn’t claim disk updates definitely happened.
Avoid claiming lock files were updated when no writes occurred
The error message here unconditionally says successful lock files were updated, but this function doesn't know whether any writes actually occurred (e.g., the only non-failing components could already be up-to-date or unchanged). Consider wording this more defensively to avoid misleading users.
Record per-component upstream resolution failures without cancelling the
remaining refresh workers. Successful component TOML files are created or
updated before the command returns the aggregate error, while failed
components remain unchanged and orphan pruning is skipped.
External cancellation still stops pending work. Add regression coverage for
continued processing and partial-success persistence, and document the
behavior.
Record per-component source resolution failures without cancelling the
remaining update workers. Successful component lock files are written before
the command returns the aggregate error, while failed component locks remain
unchanged and orphan pruning is skipped.
External cancellation still stops pending work. Preserve write-free
--check-only behavior, add regression coverage for partial-success updates,
and regenerate the command documentation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When using 'comp update -a' or '--without-lockfile comp refresh-upstream-commit -a', a failure of any single component will abort the entire process, instead of completing as many as possible and then reporting which components failed. This fixes that behavior to process all components that don't fail the update/refresh, and report any failing components.