2 KiB
Releasing
Prerequisites
Publishing to crates.io has been automated via GitHub Actions, so you will only need push access to the ballista-compute GitHub repository in order to publish a release.
We use the cargo release
subcommand to ensure correct versioning. Install via:
$ cargo install cargo-release
Process
-
Before releasing ensure
CHANGELOG.mdis updated appropriately and that you have a clean checkout of themainbranch of the sqlparser repository:$ git fetch && git status On branch main Your branch is up to date with 'upstream/main'. nothing to commit, working tree clean- If you have the time, check that the examples in the README are up to date.
-
Using
cargo-releasewe can publish a new release like so:$ cargo release minor --push-remote upstreamYou can add
--dry-runto see what the command is going to do, or--skip-pushto stop before actually publishing the release.cargo releasewill then:-
Bump the minor part of the version in
Cargo.toml(e.g.0.7.1-alpha.0->0.8.0. You can usepatchinstead ofminor, as appropriate). -
Create a new tag (e.g.
v0.8.0) locally -
Push the new tag to the specified remote (
upstreamin the above example), which will trigger a publishing process to crates.io as part of the corresponding GitHub Action.Note that credentials for authoring in this way are securely stored in the (GitHub) repo secrets as
CRATE_TOKEN. -
Bump the crate version again (to something like
0.8.1-alpha.0) to indicate the start of new development cycle.
-
-
Push the updates to the
mainbranch upstream:$ git push upstream -
Check that the new version of the crate is available on crates.io: https://crates.io/crates/sqlparser