To release version X.Y.Z
, first create a and checkout a branch named release_vX.Y.Z
export VF_VERSION=X.Y.Z
git checkout main
git fetch
git reset --hard origin/main
git switch -c release_$VF_VERSION
Then update all the package version strings to X.Y.Z
using the automation/bump_version.py
script
python automation/bump_version.py $VF_VERSION
Open a pull request to merge this branch into main
. This will start the continuous integration jobs on GitHub Actions. These jobs will test VegaFusion and build packages for publication.
To publish the vegafusion-python-embed
packages to PyPI, first download and unzip the vegafusion-python-embed-wheels
artifacts from GitHub Actions. Then cd
into the directory of *.whl
and *.tar.gz
files and upload the packages to PyPI using twine.
cd vegafusion-python-embed-wheels
twine upload *
To publish the vegafusion
packages, download and unzip the vegafusion-wheel
artifacts. Then upload with twine.
cd vegafusion-packages
twine upload *
To publish the vegafusion-jupyter
packages, download and unzip the vegafusion-jupyter-packages
artifacts. Then upload with twine.
cd vegafusion-jupyter-packages
twine upload *
First, download and unzip the vegafusion-wasm-packages
artifact. Then publish the vegafusion-wasm-X.Y.Z.tgz
package to NPM. If this is a release candidate, include the --pre
flag to npm publish
.
unzip vegafusion-wasm-packages.zip
npm publish vegafusion-wasm-$VF_VERSION.tgz
Next, change the version of vegafusion-wasm
in javascript/vegafusion-embed/package.json
from "../../vegafusion-wasm/pkg"
to "~X.Y.Z"
Then update package.lock
, and build package, then publish to NPM (include the --pre
flag to npm publish
if this is a release candidate)
cd javascript/vegafusion-embed/
npm install
npm run build
npm publish
Next, change the version of vegafusion-wasm
and vegafusion-embed
in python/vegafusion-jupyter/package.json
from local paths to "~X.Y.Z"
Then build and publish the packages (include the --pre
flag if this is a release candidate)
cd python/vegafusion-jupyter/
npm install
npm run build:prod
npm publish
First, download and unzip the jni-native
CI artifact. This artifact contains the compiled JNI libraries for each supported operating system and architecture.
Set the VEGAFUSION_JNI_LIBRARIES
environment variable to the unzipped jni-native
directory and publish the jar with pixi run publish-java
:
VEGAFUSION_JNI_LIBRARIES=/path/to/jni-native pixi run publish-java
This publishes the jar files to OSSRH at https://s01.oss.sonatype.org/. In order to sync these files to the public maven central repository, follow the steps described in https://central.sonatype.org/publish/release/.
Publishing the Java library to maven central requires configuring the ~/.gradle/gradle.properties
file with:
signing.keyId=YourKeyId
signing.password=YourPublicKeyPassword
signing.secretKeyRingFile=PathToYourKeyRingFile
ossrhUsername=your-jira-id
ossrhPassword=your-jira-password
The Rust crates should be published in the following order
pixi run publish-rs