Skip to content

chore: support split release-please configuration#2162

Merged
sofisl merged 3 commits intomasterfrom
support-node-split-release
Feb 19, 2026
Merged

chore: support split release-please configuration#2162
sofisl merged 3 commits intomasterfrom
support-node-split-release

Conversation

@GautamSharda
Copy link
Contributor

@GautamSharda GautamSharda commented Feb 17, 2026

Fixes b/483416307

This commit updates the OwlBot post-processor to support a split configuration for release-please in the Node.js monorepo (google-cloud-node).

If a release-please-submodules.json file is detected, handwritten packages (in handwritten/) are automatically routed to release-please-submodules.json and GAPIC packages (in packages/) are routed to the main release-please-config.json.

The script ensures packages do not duplicate across configuration files.

Lastly, if release-please-submodules.json is not present, the existing behavior (adding all packages to release-please-config.json) is preserved.

Copy link
Contributor

@sofisl sofisl left a comment

Choose a reason for hiding this comment

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

I'm worried the logic here is restrictive (what if one of the handwrittens wants to release with the other libraries? We might want to start thinking about an exclusion list). but then that feels really complicated.

What if we treated the release-please-submodules.json as the handwritten exclusion list. So, same logic, if we see something in that file, we just remove it from the release-please-config.json. And instead we iterate through both handwritten/ and packages/ in release-please.config.json. So in other words the default is to be in release-please-config.json, but if someone manually adds it to the other file, it is deleted from the release-please-config.json. That would basically let us have an implicit "exclusion" list in case any handwritten wants to be released with other packages, or vice versa.

@GautamSharda
Copy link
Contributor Author

I'm worried the logic here is restrictive (what if one of the handwrittens wants to release with the other libraries? We might want to start thinking about an exclusion list). but then that feels really complicated.

What if we treated the release-please-submodules.json as the handwritten exclusion list. So, same logic, if we see something in that file, we just remove it from the release-please-config.json. And instead we iterate through both handwritten/ and packages/ in release-please.config.json. So in other words the default is to be in release-please-config.json, but if someone manually adds it to the other file, it is deleted from the release-please-config.json. That would basically let us have an implicit "exclusion" list in case any handwritten wants to be released with other packages, or vice versa.

This makes sense. Updated to use the other config as an exclusion list, otherwise it's included in the bundled release.

@sofisl sofisl merged commit 2a183df into master Feb 19, 2026
12 checks passed
@sofisl sofisl deleted the support-node-split-release branch February 19, 2026 17:58
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.

3 participants