feat(javascript): add npm publishing workflow and release scripts#4076
Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
@kentkwu is the CI supposed to be failing? As for nightlies: is there a thirdparty registry we can publish those to instead then? e.g. for Python, we don't publish to PyPI; nightlies go to Gemfury. It seems Gemfury also supports NPM packages, so that might be a compromise: we can upload nightlies, but users need to configure the third party repository |
Oh yes pushing the nightlies to gemfury makes sense. I will make this update. On the CI failure - that appears to be due to |
…ache#4076) This PR implements the npm publishing and release scripts for the Node.js Driver Manager. - ci/scripts/node_npm_upload.sh — publishes platform + main packages to an npm registry - packaging.yml — upload-npm job publishes to npm with --tag next on schedule or manual dispatch - dev/release/post-09-npm.sh — release manager script to publish official releases - dev/release/02-sign.sh — GPG signing for npm tarballs - dev/release/utils-prepare.sh — JavaScript version bumping added to release preparation - Package renamed to `apache-arrow/adbc-driver-manager` with proper versioning (0.23.0) **Test Plan** Tested packaging and npm publishing against a local proxy registry from my fork - [Action Run: 22973831085](https://github.com/kentkwu/arrow-adbc/actions/runs/22973831085/job/66698340917) ```sh # Start a local Verdaccio registry docker run -d --name verdaccio-adbc-test -p 4873:4873 verdaccio/verdaccio sleep 3 # Create a test user and capture the auth token TOKEN=$(curl -s -X PUT http://localhost:4873/-/user/org.couchdb.user:testuser \ -H "Content-Type: application/json" \ -d '{"name":"testuser","password":"testpass","type":"user"}' \ | jq -r '.token') # Download CI-built packages from a workflow run gh run download 22973831085 --repo kentkwu/arrow-adbc --name node-packages --dir /tmp/node-packages # Publish to local registry NPM_TOKEN="${TOKEN}" \ NPM_REGISTRY=http://localhost:4873 \ ./ci/scripts/node_npm_upload.sh /tmp/node-packages/ # Verify - note: needs at symbol before apache-arrow npm view apache-arrow/adbc-driver-manager optionalDependencies --registry http://localhost:4873 # Clean up docker rm -f verdaccio-adbc-test ``` <img width="1234" height="1095" alt="Screenshot 2026-03-11 at 5 02 26 PM" src="https://github.com/user-attachments/assets/072635ea-285e-468e-9a6c-008c7018b174" /> Tested `utils-prepare.sh` increments version ```sh SOURCE_DIR=./dev/release source "$SOURCE_DIR/utils-common.sh" source "$SOURCE_DIR/utils-prepare.sh" VERSION_JS="0.99.0" update_versions "release" ``` Verified the following files updated to `0.99.0`: - `javascript/package.json` — main version and all `optionalDependencies` - `javascript/npm/*/package.json` — all 5 platform packages - `javascript/Cargo.toml` Closes apache#4051 --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This PR implements the npm publishing and release scripts for the Node.js Driver Manager.
apache-arrow/adbc-driver-managerwith proper versioning (0.23.0)Test Plan
Tested packaging and npm publishing against a local proxy registry from my fork
Tested
utils-prepare.shincrements versionVerified the following files updated to
0.99.0:javascript/package.json— main version and alloptionalDependenciesjavascript/npm/*/package.json— all 5 platform packagesjavascript/Cargo.tomlCloses #4051