Skip to content

ci: publish @ladybugdb/core-darwin-x64 to npm (follow-up to #427)#437

Merged
adsharma merged 1 commit intoLadybugDB:mainfrom
zxs1633079383:fix/publish-darwin-x64-npm
Apr 29, 2026
Merged

ci: publish @ladybugdb/core-darwin-x64 to npm (follow-up to #427)#437
adsharma merged 1 commit intoLadybugDB:mainfrom
zxs1633079383:fix/publish-darwin-x64-npm

Conversation

@zxs1633079383
Copy link
Copy Markdown

@zxs1633079383 zxs1633079383 commented Apr 29, 2026

Summary

Fixes #436. Follow-up to the recently merged #427.

@ladybugdb/core@0.16.0's package.json declares
@ladybugdb/core-darwin-x64@0.16.0 in optionalDependencies, but
the sub-package was never actually published — npm view @ladybugdb/core-darwin-x64 returns 404. PR #427 wired the
artifact download and tarball verification, but the three
npm publish loops further down in build-and-deploy.yml still
skip lbug-darwin-x64.tar.gz. This PR closes that last gap.

3 insertions / 7 deletions across 2 files.

Changes

  1. .github/workflows/build-and-deploy.yml — add
    lbug-darwin-x64.tar.gz to the dry-run, nightly and latest
    npm publish loops, alongside the other per-platform tarballs
    that Fix nodejs deploy macOS x64 artifact handling #427 had already added to the verification loop just above.
  2. .github/workflows/nodejs-workflow.yml — drop the
    continue-on-error: matrix.os == 'macos-15-intel' guard on
    build-nodejs. With the publish path now wired up end-to-end,
    a darwin-x64 build break should be a real CI signal, not a
    silent gap.

Why this is safe

Stage Already in place?
precompiled-bin-workflow.yml produces darwin-x64 liblbug.a ✅ (matrix line 39-40)
nodejs-workflow.yml builds lbugjs-darwin-x64.node ✅ (matrix line 63-68)
deploy-nodejs downloads mac-nodejs-module-x64 ✅ (added by #427)
Packaging emits lbug-darwin-x64.tar.gz ✅ (line 407)
Tarball verification covers darwin-x64 ✅ (added by #427)
package.json declares the optional dep ✅ (already in 0.16.0)
npm publish actually uploads it ❌ — fixed by this PR

This PR doesn't add any new build work; it only consumes an
artifact that the matrix is already producing today and that #427
already validated.

The publish loops keep their existing [ -f \"$tarball\" ] || continue
guard, so even if the artifact were missing the loop would just
skip it — graceful degradation is preserved.

Test plan

CI changes can't really be unit-tested; the workflow itself is the
test harness. Verification path:

  • CI: Build, Deploy, and Testbuild-nodejs job goes green
    for macos-15-intel. (It was already building successfully
    under the old continue-on-error; this PR just stops hiding
    failures.)
  • CI: deploy-nodejs step "Deploy to npm.js dry run" log shows
    lbug-darwin-x64.tar.gz being processed in the loop.
  • Post-merge, after the next release tag publishes:
    npm view @ladybugdb/core-darwin-x64 version returns the
    released version instead of 404.
  • Post-merge: npm install @ladybugdb/core on an Intel Mac
    (macOS 13.3+, Node 22) succeeds without falling back to
    source build.

Notes for maintainers

I read #299 about the Intel Mac platform winding down. Worth
flagging that all the heavy lifting (precompiled lib, native
module build, packaging, verification) is already happening on
every release thanks to #427 and earlier work — the incremental
cost of publishing the sub-package is essentially zero. Happy to
iterate on the patch if you'd prefer a different shape (e.g.
driving the publish list off a shared variable rather than
repeating it three times).

The 0.16.0 package.json already declares
@ladybugdb/core-darwin-x64@0.16.0 in optionalDependencies, and the
nodejs-workflow.yml matrix already builds the macos-15-intel /
darwin-x64 native module. The packaging step also produces
lbug-darwin-x64.tar.gz. However, the three npm publish loops in
build-and-deploy.yml omit lbug-darwin-x64.tar.gz, so the sub-package
is never uploaded to the registry. Intel-Mac users therefore hit a
404 on the optional dependency, fall back to the source build, and
fail because lbug-source/ is not shipped in the npm tarball.

Add lbug-darwin-x64.tar.gz to the dry-run, nightly and latest publish
loops, and drop the now-unnecessary continue-on-error guard on the
macos-15-intel matrix leg in nodejs-workflow.yml so a future
darwin-x64 build failure becomes a real signal instead of a silent
gap.
@zxs1633079383 zxs1633079383 changed the title ci(nodejs): publish @ladybugdb/core-darwin-x64 to npm ci: publish @ladybugdb/core-darwin-x64 to npm (follow-up to #427) Apr 29, 2026
@adsharma adsharma merged commit 85744ef into LadybugDB:main Apr 29, 2026
4 checks passed
@adsharma
Copy link
Copy Markdown
Contributor

Thank you for your contribution!

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.

Bug: @ladybugdb/core-darwin-x64@0.16.0 declared in optionalDependencies but never published to npm (404)

2 participants