[Grouped Updates] Generate deterministic branch names based on content #7365
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.
Grouped update Pull Requests will generally have more dependencies that we can tolerate in the branch name compared to solo dependency PRs, but we rely on deterministic branch names to avoid race conditions where we retry pushing a branch that has already been successfully pushed.
The current behaviour of appending a timestamp is resulting in us opening the odd duplicate when something causes us to backoff and partially retry opening the PR, see:
This fixes the bug by updating the branch naming strategy for groups to use a short ( 10 character ) digest hash of the dependency changes.
This will ensure that if we open a new PR for the same group with different versions or dependencies, it will still avoid clashing with any lingering old PRs that haven't been cleaned up while giving us back the guarantee of at-most-once pushes.