Skip to content

fix(release): point the last model at v0.10.0 and stamp the real telemetry version - #1442

Merged
msluszniak merged 1 commit into
mainfrom
@ms/release-version-fixes
Sep 8, 2026
Merged

fix(release): point the last model at v0.10.0 and stamp the real telemetry version#1442
msluszniak merged 1 commit into
mainfrom
@ms/release-version-fixes

Conversation

@msluszniak

Copy link
Copy Markdown
Member

Description

Two version bugs found while checking the release preconditions, plus the RELEASE.md step that would have reintroduced one of them.

1. One model still pinned to the previous release. all-MiniLM-L6-v2's tokenizer resolved through VERSION_TAG (v0.9.0) while the same file is fetched from v0.10.0 by the three MiniLM model entries a few hundred lines above. It was the only such reference left, against 288 already on NEXT_VERSION_TAG. Both tags serve the file today, so nothing was broken, but it is a stray pin to a release we are moving off.

That leaves VERSION_TAG with no reader and noUnusedLocals rejects it, so it is removed until the post-release bump re-adds it. An eslint exclusion cannot help here: the error is tsc TS6133, and an underscore prefix does not exempt a module-level constant either (checked both).

2. Telemetry reported libVersion: "0.0.0" on every download event. Its TODO pointed at #1291, which is closed and about RNET_BASE_URL in clang-tidy, so the reference is gone rather than carried forward.

It stays a literal rather than an import, and the code says why: the emitted module sits under lib/module/, where a relative path to the manifest resolves to bob's {"type":"module"} stub, and a self-referencing react-native-executorch/package.json import would depend on the consuming bundler supporting package exports. A stale string is analytics noise; a failed import breaks the bundle. A unit test asserts the posted libVersion equals package.json, so a missed bump fails CI.

3. RELEASE.md step 10 was wrong. It said to leave model URLs alone after bumping the tags, because the shipped ones "now resolve through VERSION_TAG". They do not: the URLs name the constant, not the tag, so bumping NEXT_VERSION_TAG to the next minor would silently repoint all 288 models at a release that does not exist. The step now says to rewrite the shipped URLs, to re-add VERSION_TAG, and to bump LIB_VERSION.

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

yarn workspace react-native-executorch typecheck is clean and the full suite passes: 3842 tests, 30 suites, 4 snapshots (the apiSurface snapshot is unchanged, so dropping VERSION_TAG did not alter the public surface).

Separately, every resolve/v0.10.0 URL the registry can build was probed against Hugging Face: 309 unique artifacts across 47 repos, all 200. The only non-200 was a literal ${name} from models.ts:1208, which builds voice_styles/${name}.json from a loop variable, so it is an artefact of extracting URLs statically rather than a missing file.

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

…metry version

The all-MiniLM-L6-v2 tokenizer was the only entry in models.ts still
resolving through VERSION_TAG (v0.9.0), while the same file is fetched
from v0.10.0 by the three MiniLM model entries. 288 other references
already used NEXT_VERSION_TAG. Both tags serve the file today, so nothing
was broken, but it left one stray pin to the previous release.

That leaves VERSION_TAG with no reader, and noUnusedLocals rejects it, so
it is removed until the post-release bump re-adds it.

Telemetry reported libVersion 0.0.0 on every download event. Its TODO
pointed at #1291, which is closed and about RNET_BASE_URL in clang-tidy.
Set it to the real version and added a test asserting it matches
package.json, so a missed bump fails CI instead of mislabelling a whole
release. It stays a literal rather than an import: the emitted module
sits under lib/module/, where a relative path to the manifest hits bob's
{"type":"module"} stub, and a self-referencing import would depend on
the consuming bundler supporting package exports.

RELEASE.md step 10 said to leave model URLs alone after bumping the tags.
That is wrong: the URLs name the constant, not the tag, so bumping
NEXT_VERSION_TAG alone repoints every model at a release that does not
exist yet.
@msluszniak msluszniak self-assigned this Sep 8, 2026
@msluszniak msluszniak added the bug fix PRs that are fixing bugs label Sep 8, 2026
@msluszniak
msluszniak requested a review from barhanc September 8, 2026 08:17
@msluszniak
msluszniak merged commit ed59957 into main Sep 8, 2026
6 checks passed
@msluszniak
msluszniak deleted the @ms/release-version-fixes branch September 8, 2026 08:22
msluszniak added a commit that referenced this pull request Sep 8, 2026
…ease bump step (#1443)

Two gaps in RELEASE.md, both found while running the 0.10.0 release.

### The `legacy` dist-tag was never documented

Nothing told you to move it after a release, which is why it sat on
0.8.5 through the whole 0.9 line and the satellites were still on 0.8.0.
The automation will not do it: the publish action only derives `latest`
for the newest version or `legacy` for an older one, and when it picks
`legacy` it runs `npm dist-tag rm <pkg> legacy` right after publishing.

Added as step 9, plus a note that a patch on an older line ends with no
`legacy` tag and needs it re-added.

### The post-release bump step did not build

Step 10 said to add `VERSION_TAG` back **and** set `NEXT_VERSION_TAG` to
the next cycle. Once every URL moves to `VERSION_TAG` nothing reads
`NEXT_VERSION_TAG`, and `noUnusedLocals` rejects it. Same failure #1442
hit from the other direction.

Reworded to: exactly one of the two constants exists at a time, the
rename does the URL rewrite by construction, and `NEXT_VERSION_TAG`
returns with the first model re-exported next cycle. Also corrected
"both adapter packages" to all four, and flagged that
`nativeLibsVersion` must not be bumped there.

Steps 9-14 renumbered to 10-15. Docs only.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug fix PRs that are fixing bugs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants