fix(release): isolate parity tooling to tools/ and activate Yarn Berry - #41
Conversation
The Release workflow failed 100% at `yarn install --immutable`: the root package.json declared `@convertcom/js-sdk-bucketing` as a local `file:../javascript-sdk/...` link that doesn't resolve on the runner. That package is used only by the parity-vector regen tooling (the SDK ships its own native Kotlin BucketingManager); semantic-release does not need it. - Move the parity dep + generate:parity-vectors into an isolated tools/package.json, pinned to the PUBLISHED npm version (3.1.2, exact). Root package.json now carries only semantic-release tooling + a packageManager pin (yarn@4.15.0). - Regenerate root yarn.lock (no js-sdk refs); add tools/yarn.lock. - Activate Yarn Berry in release.yml via `corepack enable`; drop the misconfigured `cache: yarn` (would cache the Classic folder). - Ignore nested tools/.yarn artifacts; update PARITY.md + regen-script docs to run from tools/ against the published package. Parity vectors regenerate byte-identical from npm 3.1.2; HashParityTest 69/69 green; `yarn release:dry-run` boots semantic-release cleanly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Code Review
This pull request isolates the cross-SDK parity-vector generation tooling into a nested package under the tools/ directory. This decouples the root release pipeline from the parity dependency by resolving the @convertcom/js-sdk-bucketing package from the published npm registry rather than a local sibling checkout. The documentation, .gitignore, and lockfiles have been updated to reflect this new structure. Feedback on the changes points out a minor discrepancy in tools/generate-parity-vectors.mjs, where a comment refers to the dependency being pinned to ^3.1.2 instead of the exact version 3.1.2 specified in tools/package.json.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Empty commit to fire a pull_request:synchronize event so the now-enabled CodeQL default setup produces a fresh code-scanning analysis for this PR (the prior analysis predates code scanning being enabled on the repo). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Problem
The
Releaseworkflow has been failing 100% of the time — it can never publish to Maven Central. The latest run failed in 38s at Install Node dependencies:Two coupled defects:
package.jsondeclared@convertcom/js-sdk-bucketingas a localfile:../javascript-sdk/packages/bucketinglink. On the runner onlyandroid-sdkis checked out, so it can't resolve. That package is used only by the parity-vector regen tooling (tools/generate-parity-vectors.mjs) — the SDK ships its own native KotlinBucketingManager, andsemantic-releasenever touches it. It should never have been in the release install path.__metadatav10), but the workflow ran Yarn Classic 1.22.22 (--immutablesilently ignored, Berry lockfile misread) because corepack was never activated.Fix
generate:parity-vectorsinto a newtools/package.json, pinned to the published npm version3.1.2(exact) — portable (no sibling checkout needed), reproducible. Rootpackage.jsonnow carries only the 6 semantic-release packages +packageManager: yarn@4.15.0.yarn.lock(zero js-sdk refs); addtools/yarn.lock.release.ymlviacorepack enable; drop the misconfiguredcache: yarn.tools/.yarnartifacts; updatePARITY.md+ regen-script docs.Verification
yarn install --immutableat root: clean, 0 js-sdk refs.yarn release:dry-run: boots semantic-release 24.2.9, loads the fullrelease.config.mjsplugin chain, branch-gating works.4.15.0active.HashParityTest: 69/69 green (loads the committed JSON; no Node at test time).3.1.2.An adversarial code review was applied; all findings resolved (exact pin instead of caret, removed an undocumented
npmMinimalAgeGate: 0, addedpackageManagertotools/, comment fixes).Spec:
ai-driven-product-dev→_bmad-output/.../2026-03-23-convert-android-sdk/qs-02-release-pipeline-parity-dep-isolation.md(separate PR). Story 3.5 AC-6 (which contradicted its own Tasks and caused this) is corrected there.🤖 Generated with Claude Code