Releasing the libraries
The manual Release libraries GitHub Actions workflow builds and verifies
all three distributions. It does not publish by default. Run it with
publish left off to test the complete packaging path and retain the Python,
Java, and Rust artifacts on the workflow run.
The public distribution coordinates are:
| Ecosystem | Distribution |
|---|---|
| PyPI | relationdb (import relativedb) |
| Maven Central | com.relativedb:relationdb and com.relativedb:relationdb-rt |
| crates.io | relationdb (crate API relativedb) |
One-time registry setup
Before the first publish:
- Create protected GitHub environments named
pypi,crates-io, andmaven-central, ideally with required reviewers. - Register
.github/workflows/release-libraries.ymlas a PyPI trusted publisher for therelationdbproject and thepypienvironment. No PyPI API token is needed. - Add a crates.io token as the
CARGO_REGISTRY_TOKENenvironment secret oncrates-io. - Verify ownership of the
com.relativedbnamespace in the Sonatype Central Portal. AddMAVEN_CENTRAL_USERNAME,MAVEN_CENTRAL_PASSWORD,MAVEN_SIGNING_KEY, andMAVEN_SIGNING_PASSWORDasmaven-centralenvironment secrets. The signing key is the ASCII-armored private key.
Publishing
Update the matching version in python/pyproject.toml,
rust/relativedb/Cargo.toml, and java/build.gradle, then run tests locally.
Dispatch Release libraries with publish off first. Inspect its three
uploaded artifacts. When they are ready, dispatch the same commit again with
publish enabled and approve each protected environment.
Publishing is manual-only: pushing a branch or tag cannot trigger it.