Files
lancedb/ci/release_process.md
2023-05-25 09:44:02 -07:00

2.0 KiB

How to release the node module

1. Bump the versions

pushd rust/vectordb
cargo bump minor
popd

pushd rust/ffi/node
cargo bump minor
popd

pushd python
cargo bump minor
popd

pushd node
npm version minor
popd

git add -u
git commit -m "Bump versions"
git push

2. Push a new tag

git tag vX.X.X
git push --tag vX.X.X

When the tag is pushed, GitHub actions will start building the libraries and will upload them to a draft release.

While those jobs are running, edit the release notes as needed. For example, bring relevant new features and bugfixes to the top of the notes and the testing and CI changes to the bottom.

Once the jobs have finished, the release will be marked as not draft and the artifacts will be released to crates.io, NPM, and PyPI.

Manual process

You can build the artifacts locally on a MacOS machine.

Build the MacOS release libraries

One-time setup:

rustup target add x86_64-apple-darwin aarch64-apple-darwin

To build:

bash ci/build_macos_artifacts.sh

Build the Linux release libraries

To build a Linux library, we need to use docker with a different build script:

ARCH=aarch64
docker run \
    -v $(pwd):/io -w /io \
    quay.io/pypa/manylinux2014_$ARCH \
    bash ci/build_linux_artifacts.sh $ARCH-unknown-linux-gnu

You can change ARCH to x86_64.

Similar script for musl binaries:

ARCH=aarch64
docker run \
    -v $(pwd):/io -w /io \
    quay.io/pypa/musllinux_1_1_$ARCH \
    bash ci/build_linux_artifacts.sh $ARCH-unknown-linux-musl
docker run \
    -v $(pwd):/io -w /io \
    quay.io/pypa/musllinux_1_1_aarch64 \
    bash alpine_repro.sh