Skip to content

doc: add doc on when to backport V8 patches to main - #66710

Open
legendecas wants to merge 4 commits into
nodejs:mainfrom
legendecas:v8-backport
Open

legendecas wants to merge 4 commits into
nodejs:mainfrom
legendecas:v8-backport

Conversation

@legendecas

@legendecas legendecas commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

As part of our dependency maintenance rules (like
automated dependency updaters for security reasons),
the general rule is "don't backport individual V8 patches".

Increasing floating patches on the deps/v8 further delay the pending
V8 upgrade and increase the cost to land the upgrade in time.

The backport should only be applied to certain categories of patches,
like fixing builds, V8 API usages, security issues.

I intentionally make this rule strict as proposed in #66393.
I believe this makes the criteria more clearer in a first instinct,
without too many mental cost on determine if we should backport or not.

Refs: #66393

Signed-off-by: Chengzhong Wu <cwu631@bloomberg.net>
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/tsc

@nodejs-github-bot nodejs-github-bot added the doc Issues and PRs related to Node.js documentation. label Oct 13, 2026
@legendecas legendecas added the v8 engine Issues and PRs related to the V8 dependency. label Oct 13, 2026
Comment thread doc/contributing/maintaining/maintaining-V8.md Outdated
Signed-off-by: Chengzhong Wu <cwu631@bloomberg.net>
Signed-off-by: Chengzhong Wu <cwu631@bloomberg.net>
* It fixes a security issue.

If the patch meet the following criteria, it's recommended to backport the patches
to the V8 upgrade staging branches, instead of `main`:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are those V8 upgrade staging branches defined somewhere? I for one don’t know what they are 🤔

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It refers to the branch of PRs like #66601. @joyeecheung correct me if I'm having a wrong impression.

@joyeecheung joyeecheung Oct 14, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By staging branches, I mean v26.x-staging etc. the release staging branches. Targetting upgrades only complicate them further, unless it's an urgent patch, it's better to simply wait until the base is sufficiently up-to-date before floating a patch at all (IMO we should try not to float any V8 patch on main at all if we can avoid them. It's more reasonable to float V8 patches for release branches if people want them out in releases sooner).

@legendecas
legendecas force-pushed the v8-backport branch 3 times, most recently from ffdff3c to 6f5b7ee Compare October 14, 2026 13:45
Signed-off-by: Chengzhong Wu <cwu631@bloomberg.net>
Comment on lines +91 to +92
* It unblocks a pending V8 update, for example by adjusting how the Node.js code
uses a V8 API.

@joyeecheung joyeecheung Oct 14, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* It unblocks a pending V8 update, for example by adjusting how the Node.js code
uses a V8 API.
* It unblocks a pending V8 update, for example by adjusting how the Node.js code
uses a V8 API.

Isn't it the reverse i.e. I think this is talking about the situation where we change src/ or some gyp files, not deps/v8/ but in anticipation of deps/v8 changes, even though this section is supposed to be about changes to deps/v8? If we are trying to cover cases where we are updating deps/v8/ so that we can land some change in src/, I think it generally goes to the second category.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was thinking of cases in the past like V8 global proxy interceptor and vm changes, where we have to update both node_contextify, and apply the V8 changes together to avoid breaking behavior in the upcoming V8 upgrade. I limited this to "unblocks a pending V8 update" so that it does not encourage new language features to be individually backported.


If the patch meet the following criteria, it's recommended to backport the patches
to the V8 upgrade staging branches, instead of `main`:
to the release staging branches like `v<MAJOR>.x-staging`, instead of `main`:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to also remind folks that we typically don't accept PRs targeting LTS staging branches?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you like suggest words? I didn't find any docs saying the criteria on backporting dependency patches specifically.

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

Labels

doc Issues and PRs related to Node.js documentation. v8 engine Issues and PRs related to the V8 dependency.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants