Skip to content

build(rewrite): decouple native lib artifacts from core versioning - #1336

Open
msluszniak wants to merge 1 commit into
rne-rewritefrom
@ms/libs-release-versioning
Open

build(rewrite): decouple native lib artifacts from core versioning#1336
msluszniak wants to merge 1 commit into
rne-rewritefrom
@ms/libs-release-versioning

Conversation

@msluszniak

Copy link
Copy Markdown
Member

Description

Version the prebuilt native artifacts independently of the npm package. They now live on their own GitHub Release tagged v${nativeLibsVersion}-libs, pinned via a new nativeLibsVersion field in package.json. The two version lines coincide on a minor cut (core v0.10.0 ↔ libs v0.10.0-libs) but drift on patches: a core-only fix keeps the pin (no asset re-upload), an assets-only fix bumps the pin in a core release. The -libs suffix keeps the tags distinct when the numbers match, and keeps the assets release separate from the core package release.

  • download-libs.js: resolve v${nativeLibsVersion}-libs, key the cache on it, fail loudly if the pin is missing.
  • package-release-artifacts.sh: package/publish against the v*-libs tag with a prerelease-now → promote-later recipe.
  • clang-tidy.yml: drop the RNET_BASE_URL test-release override + TODO — the decoupled pin (0.10.0) resolves v0.10.0-libs directly.

The v0.10.0-libs pre-release carrying the artifacts is published, so the resolution works with no override.

Introduces a breaking change?

  • Yes
  • No

Type of change

  • Bug fix (change which fixes an issue)
  • New feature (change which adds functionality)
  • Documentation update (improves or adds clarity to existing documentation)
  • Other (chores, tests, code style improvements etc.)

Tested on

  • iOS
  • Android

Testing instructions

From packages/react-native-executorch, with no RNET_BASE_URL override:

RNET_HEADERS_ONLY=1 RNET_TARGET=android-arm64-v8a INIT_CWD=<repo-root> node scripts/download-libs.js

Resolves .../releases/download/v0.10.0-libs/headers.tar.gz, downloads, checksum-verifies, and extracts — the exact flow the clang-tidy job runs.

Screenshots

Related issues

Closes #1291

Checklist

  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have updated the documentation accordingly
  • My changes generate no new warnings

Additional notes

The v0.10.0-libs release is a pre-release while the native surface for 0.10.0 settles; promote it with gh release edit v0.10.0-libs --prerelease=false once final. clang-tidy CI stays gated behind vars.ENABLE_CLANG_TIDY == 'true'.

…1291)

Version the prebuilt native artifacts independently of the npm package. They
live on their own GitHub Release tagged v${nativeLibsVersion}-libs, pinned via
a new `nativeLibsVersion` field in package.json. The two version lines coincide
on a minor cut (core v0.10.0 <-> libs v0.10.0-libs) but drift on patches: a
core-only fix keeps the pin (no asset re-upload), an assets-only fix bumps the
pin in a core release. The -libs suffix keeps the tags distinct when the
numbers match.

- download-libs.js: resolve v${nativeLibsVersion}-libs; key the cache on it;
  fail loudly if the pin is missing.
- package-release-artifacts.sh: package/publish against the v*-libs tag with a
  prerelease-now -> promote-later recipe.
- clang-tidy.yml: drop the RNET_BASE_URL test-release override + TODO — the
  decoupled pin (0.10.0) resolves v0.10.0-libs directly, closing #1291.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[RNE Rewrite] clang-tidy CI - drop RNET_BASE_URL test-release override once a real versioned release exists

1 participant