Skip to content

chore(upgrade): resumable patch application and new-test triage - #15

Open
gmaclennan wants to merge 2 commits into
recipefrom
chore/upgrade-tooling
Open

gmaclennan wants to merge 2 commits into
recipefrom
chore/upgrade-tooling

Conversation

@gmaclennan

Copy link
Copy Markdown
Member

Tooling and docs from the v24.22.0 upgrade (#14), aimed at the steps that cost the most time there.

scripts/apply-series.sh now holds prepare.sh's apply, overlay and verify steps, so prepare.sh is a clone followed by a call to it and its CI behaviour is unchanged. Run on its own, it resumes after a resolved conflict: it skips patches whose subject is already in the tree's history, redoes the mobile-src overlay if it hasn't been committed, and treats a tree-hash mismatch as informational. It also fetches the old base tag when the working copy bumps upstream-base.txt (or from OLD_BASE), which removes the sha1 information is lacking failure. When a patch fails it prints a short summary instead of git's per-file output: 30 modify/delete conflicts become one line with the git rm to run, and content conflicts are listed by path. It also warns about upstream workflows the removal patch doesn't cover. The overlay manifest now lives in the clone's git dir instead of mktemp, which the agent sandbox blocks.

scripts/triage-new-tests.py out <old> <new> lists added tests, plus modified tests by their added lines, that the platform's .status block doesn't already match. Each suspect gets one line with its category (spawns node, permission sandbox, iOS lite-mode wasm flags, or execs an external binary) and any top-level common.skip() guard. Run against v24.22.0 with the v24.20-era .status, it reports all 13 entries #14 added, plus test-crypto-provider-cache-snapshot, test-fs-glob and test-internal-webidl-buffer-source, which the device suite caught. It also reports test-sqlite-backup, which gained a child-node subtest. Both scripts live at the recipe root, so the tree hash doesn't move.

UPGRADING.md records the v24.22.0 cases (upstream absorbing a mobile hunk, files.map lines for files upstream deleted, libc++ errno differences, triaging modified tests). It replaces the hand-run resume steps with the scripts and adds a heading structure for upgrade PR descriptions, so test decisions are split into clear-cut skips, judgement calls and possible mobile issues.

Tested in scratch trees: a full prepare at the current base prints OK; resuming after reset --hard back two and four patches prints OK again; and a v24.22.0 bump walks through the node.cc, README and workflow conflicts with the summaries above.

scripts/apply-series.sh takes over prepare.sh's apply/overlay/verify steps
so a conflicted upgrade can be resumed, fetches the old base for --3way,
and summarizes conflicts. scripts/triage-new-tests.py lists added and
modified upstream tests that likely need a .status skip. UPGRADING.md
gains the v24.22.0 lessons and a PR-description structure for upgrades.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant