Repository navigation
Worker: a stacked branch's change is rebuilt file by file, so the pull request step never stops on it - #475
Merged
Merged
Conversation
…l request step never stops on it A run whose branch repeated another open pull request's commits still stopped before its pull request: the commit replay gave up past its commit limit, and the merge fallback required that branch to already be merged in, which it wasn't. - The branch's own change (the files its own commits touched, copies and merge commits left out) becomes one new commit on the other branch's head with the git data API: that branch's tree with those paths laid over it, removals and renames included. No commit is replayed, so the commit count never matters, and nothing has to be merged first. - A file both changed since the point the run copied from is merged by the model, keeping both sides. When it can't be, the commit keeps the other branch's version and a labelled follow-up commit puts this change's back; the pull request opens as a draft that names the file. - Before the branch moves (with a lease, rebuilt when it moved), every path of the change must hold its content and every other path the other branch's. GitHub errors are retried with backoff; only a missing App permission stops the run, and the message names it. Any other failure still opens the pull request, as a draft that says why. - A kept or retried branch is rebuilt the same way before implementation, and a force push to a branch CoderHelm's open pull requests stack on rebuilds them (at most five, one at a time). - The replay and merge-then-flatten steps (rebase_onto, flatten_onto) are gone.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
A run whose branch repeated another open pull request's commits (that pull request's branch was rebased after the run started on it) still stopped before opening its pull request after #453. Both recovery paths had a wall:
The pull request step now rebuilds the branch's own change file by file as one commit on the other branch's head, so it can't hit either wall, and the run never stops without a pull request except for a missing GitHub App permission.
Changes
passes/restack.rs(new): the rebuild.pr::merge_file, pulled out ofresolve_conflictswith the same checks).passes/stack.rsbefore_prandat_startuse the rebuild.at_startnow also runs for a branch with its own open pull request, so a retry is rebuilt before implementation.recover,drop_copies,merge_and_flattenandrefusal.clients/github.rsrebase_onto,flatten_onto,onto_stepsandonto_holds, which nothing else used.rebase_branch(update-branch requests) is unchanged.pushhandler sends a newrestackworker message.main.rs,resume::draft_hold): a stack section that asks for a look keeps the pull request a draft.Verification
cargo fmt --all --check,cargo clippy --workspace --all-targets -- -D warnings: clean.cargo test -p worker -p gateway -p common: all pass (worker 1203, common 1418, gateway 725).coderhelm/feature-aas fix(worker): make Jira repo selection smart via code evidence #42,coderhelm/feature-bstacked on it):restack.