Skip to content

fix(release): isolate parity tooling to tools/ and activate Yarn Berry - #41

Merged
abbaseya merged 2 commits into
mainfrom
fix/release-ci
Jun 3, 2026
Merged

fix(release): isolate parity tooling to tools/ and activate Yarn Berry#41
abbaseya merged 2 commits into
mainfrom
fix/release-ci

Conversation

@abbaseya

@abbaseya abbaseya commented Jun 3, 2026

Copy link
Copy Markdown
Collaborator

Problem

The Release workflow has been failing 100% of the time — it can never publish to Maven Central. The latest run failed in 38s at Install Node dependencies:

yarn install v1.22.22
error Package "" refers to a non-existing file
  '"/home/runner/work/android-sdk/javascript-sdk/packages/bucketing"'.

Two coupled defects:

  1. Non-portable parity dep in the release install path. Root package.json declared @convertcom/js-sdk-bucketing as a local file:../javascript-sdk/packages/bucketing link. On the runner only android-sdk is 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 Kotlin BucketingManager, and semantic-release never touches it. It should never have been in the release install path.
  2. Yarn version mismatch. The repo is Yarn Berry (lockfile __metadata v10), but the workflow ran Yarn Classic 1.22.22 (--immutable silently ignored, Berry lockfile misread) because corepack was never activated.

Fix

  • Isolate the parity dep + generate:parity-vectors into a new tools/package.json, pinned to the published npm version 3.1.2 (exact) — portable (no sibling checkout needed), reproducible. Root package.json now carries only the 6 semantic-release packages + packageManager: yarn@4.15.0.
  • Regenerate root yarn.lock (zero js-sdk refs); add tools/yarn.lock.
  • Activate Berry in release.yml via corepack enable; drop the misconfigured cache: yarn.
  • Ignore nested tools/.yarn artifacts; update PARITY.md + regen-script docs.

Verification

  • yarn install --immutable at root: clean, 0 js-sdk refs.
  • yarn release:dry-run: boots semantic-release 24.2.9, loads the full release.config.mjs plugin chain, branch-gating works.
  • Berry 4.15.0 active.
  • HashParityTest: 69/69 green (loads the committed JSON; no Node at test time).
  • Parity vectors regenerate byte-identical from npm 3.1.2.

An adversarial code review was applied; all findings resolved (exact pin instead of caret, removed an undocumented npmMinimalAgeGate: 0, added packageManager to tools/, 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

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>
@abbaseya abbaseya self-assigned this Jun 3, 2026
@abbaseya
abbaseya requested a review from JosephSamirL June 3, 2026 15:10

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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.

Comment thread tools/generate-parity-vectors.mjs
@abbaseya abbaseya closed this Jun 3, 2026
@abbaseya abbaseya reopened this Jun 3, 2026
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>
@abbaseya
abbaseya merged commit acf784b into main Jun 3, 2026
8 checks passed
@abbaseya
abbaseya deleted the fix/release-ci branch June 3, 2026 18:45
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.

2 participants