Skip to content

fix(release): bump a patch for build(deps) commits - #46

Merged
GSTJ merged 3 commits into
masterfrom
fix/release-build-deps-patch
Sep 21, 2026
Merged

GSTJ merged 3 commits into
masterfrom
fix/release-build-deps-patch

Conversation

@GSTJ

@GSTJ GSTJ commented Sep 21, 2026

Copy link
Copy Markdown
Owner

Summary

build(deps): commits never bump a release, so the three security patches that landed that way (#37, #38, #43, #44, #45) sat on master and never reached npm. This makes build(deps) bump a patch like any other dependency fix.

Details

  • tools/changelog-preset.mjs: added a { type: "build", scope: "deps", effect: "bump" } entry ahead of the generic build entry. findTypeEntry (in conventional-changelog-conventionalcommits) matches type+scope before falling back to the scope-less one, so build(deps): now bumps a patch while a scope-less build: (tsconfig, oxfmt, tooling) still doesn't move the version. chore(deps): stays changelog-only, matching how it's actually used here (release-age policy, allowing magic-* through).
  • tools/changelog-check.mjs: POLICY now takes type:scope keys so it can tell build and build:deps apart, plus a bump assertion (build(deps) -> patch, scope-less build -> no bump). Dry-run proof below shows the three backlogged patches actually rendering under a v2.0.1 release now.
  • README.md: the SDK-support note said the plugin "does not yet touch the Swift AppDelegate" on SDK 52+. That fix landed in v1.0.13 (iOS AppDelegate mod does nothing on Expo SDK 53+ and does not say so聽#30) and the note was never updated. Confirmed working prebuild against a fresh SDK 57 app and corrected the note.

I also checked the two things Gabriel flagged separately: pnpm audit is clean (the two flagged advisories are image-size, already patched locally and exercised by dependency-security-check.mjs), and the v1.0.14 -> v2.0.0 breaking change already renders correctly in both CHANGELOG.md and the GitHub release body, so no fix needed there.

One correction to flag: this package has no dependencies, only devDependencies and a peer on expo. xmldom, js-yaml, nanoid and image-size only ever reach this repo's own dev/build/CI tree (through expo's own tooling) via the pnpm-workspace.yaml overrides, not the published tarball. So the three backlogged patches harden this repo's own supply chain, not something a consumer's npm install was pulling in vulnerable. Still worth shipping for the changelog record and because the process gap is real regardless of blast radius.

Proof (dry-run release output, test suite, changelog check, security audit, and the prebuild verification against a fresh SDK 57 app):

Testing steps

This is a config-plugin release pipeline fix with no UI, so there's nothing to click through. The proof links above are the testing steps: the dry-run log shows release-it inferring 2.0.0 -> 2.0.1 with all three backlogged build(deps) patches in the changelog, and the prebuild log shows a real Expo SDK 57 app getting the Android gradle/manifest and iOS Info.plist/AppDelegate changes after installing the plugin.

After this merges, dispatching the Release workflow on master with no increment override should cut v2.0.1 and publish it.


Post-merge: dispatched the Release workflow on master. v2.0.1 is live on npm (npm view react-native-code-push-plugin version -> 2.0.1, registry dist-tags.latest -> 2.0.1), the v2.0.1 GitHub release lists the three backlogged patches, and #47 (the version-bump PR) merged. Re-ran the prebuild check against the actual published 2.0.1 tarball installed from the registry (not the local build) on the same fresh SDK 57 app, same result:

Three security patches (#37, #38, #43, #44, #45) landed as
build(deps): commits and never reached npm: the changelog preset marks
build as effect: "changelog", so release-it correctly found nothing to
release and exited 0 every time. Nobody was watching for that, so the
patches sat on master.

findTypeEntry matches on type and scope before falling back to the
scope-less entry, so a build(deps) entry ahead of the generic build one
in TYPES lets dependency and security patches bump a patch while
scope-less build: (tooling, tsconfig, oxfmt) still doesn't move the
version. changelog-check.mjs's POLICY and assertions are updated to
match, including a build(deps) vs build bump test so this can't regress
silently again.
bb07d7b fixed the SDK 53+ AppDelegate.swift bundle URL redirect back in
v1.0.13, but the SDK-support note above it was written 26 minutes
earlier the same day and never got updated. Confirmed by prebuild
against a fresh SDK 57 app: CodePush.bundleURL() lands in
ReactNativeDelegate.bundleURL() same as the Objective-C template does.
@GSTJ
GSTJ merged commit 99dabf6 into master Sep 21, 2026
5 checks passed
@GSTJ
GSTJ deleted the fix/release-build-deps-patch branch September 21, 2026 12:23
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