Skip to content

release: publish subpackages as 26.5.3 and test the freshly built addon#71

Closed
ShawnChen-Sirius wants to merge 2 commits into
chdb-io:mainfrom
ShawnChen-Sirius:fix/publish-subpackage-26.5.3
Closed

release: publish subpackages as 26.5.3 and test the freshly built addon#71
ShawnChen-Sirius wants to merge 2 commits into
chdb-io:mainfrom
ShawnChen-Sirius:fix/publish-subpackage-26.5.3

Conversation

@ShawnChen-Sirius

@ShawnChen-Sirius ShawnChen-Sirius commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

The v3.2.0 publish run (29225306812) failed in the subpackages job, and the failure exposed a release blocker the tests were right to catch.

Why it failed: the loader prefers the installed @chdb/lib-<platform> subpackage over build/Release, and the publish workflow (unlike the test workflow) did not remove the installed subpackages before test:all — so the suite exercised the published 26.5.2 addon, which predates the Arrow C Data Interface exports (ArrowRegisterColumns/…) the Layer 3 arrow-input path requires.

The real blocker: the subpackage version was still 26.5.2, which is already on the registry. The publish step would have skipped, optionalDependencies would keep resolving the stale addon, and chdb@3.2.0 would have shipped broken Arrow input to user machines even with green tests.

Changes:

  • update_libchdb.sh: LIBCHDB_NPM_VERSION 26.5.2 → 26.5.3 (packaging revision; the bundled libchdb stays v26.5.1-rc.1)
  • package.json: pin the four optionalDependencies to 26.5.3
  • prebuild-publish.yml: remove the installed @chdb/lib-* before test:all, matching the test workflow
  • test/pack/installed.test.mjs: add an Arrow C Data Interface round-trip so the verify job exercises the addon's export surface — a stale subpackage passes every existing case and still lacks the Arrow natives

Verified locally with the cleanroom recipe (pack main + 26.5.3 subpackage tgz → clean-dir install → installed suite 6/6 green on darwin-arm64).

After merge: re-tag v3.2.0 on the merge commit to re-trigger the publish pipeline (the failed run published nothing, so the tag can be reused).

🤖 Generated with Claude Code

Note

Publish subpackages as version 26.5.3 and test the freshly built addon

  • Bumps @chdb/lib-* optionalDependencies in package.json and LIBCHDB_NPM_VERSION in update_libchdb.sh from 26.5.2 to 26.5.3, which adds Arrow C Data Interface exports.
  • Adds a CI step in prebuild-publish.yml that deletes installed @chdb/lib-* subpackages before running test:all, ensuring tests run against the freshly built addon rather than the published prebuilt.
  • Extends installed.test.mjs with an Arrow table registration test that validates the Arrow C Data Interface path through the default ESM export.

Macroscope summarized ac4c15d.

ShawnChen-Sirius and others added 2 commits July 13, 2026 17:10
The v3.2.0 publish run failed in the subpackages job: the loader prefers
the installed @chdb/lib-<platform> subpackage over build/Release, so
test:all exercised the published 26.5.2 addon — which predates the Arrow
C Data Interface exports (ArrowRegisterColumns/…) that the Layer 3
arrow-input path requires. Remove the installed subpackages before
test:all, exactly as the test workflow already does.

That failure also exposed a release blocker the tests were right to
catch: the subpackage version was still 26.5.2, which is already on the
registry, so the publish step would have skipped and chdb@3.2.0 would
have resolved the stale addon on user machines. Bump the subpackage
line to 26.5.3 (a packaging revision — the bundled libchdb stays
v26.5.1-rc.1) and pin optionalDependencies to match.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ge suite

The verify job installs the just-published package from the registry on
every platform, but its suite only proved the native addon loads and
queries — it never touched the Arrow registration natives. A stale
@chdb/lib-* subpackage (versioned independently of this package) passes
every existing case and still lacks ArrowRegisterColumns, which is
exactly the gap the failed v3.2.0 publish run fell into. Register a
small columnar table through the default export and read it back via
arrowstream() so verify exercises the addon's export surface end to end.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@ShawnChen-Sirius

Copy link
Copy Markdown
Contributor Author

Superseded by #73 — same root cause and an equivalent three-file fix, independently confirmed. Closing this one in its favor; the extra installed-suite Arrow round-trip test from this branch can be resubmitted separately if we want the verify job to cover the addon's export surface.

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