Publishing to crates.io has been automated via GitHub Actions, so you will only need push access to the sqlparser-rs GitHub repository in order to publish a release.
We use the cargo release subcommand to ensure correct versioning. Install via:
$ cargo install cargo-release
Before releasing ensure CHANGELOG.md is updated appropriately and that you have a clean checkout of the main branch of the sqlparser repository:
$ git fetch && git status On branch main Your branch is up to date with 'origin/main'. nothing to commit, working tree clean
Using cargo-release we can publish a new release like so:
$ cargo release minor --push-remote origin
After verifying, you can rerun with --execute if all looks good. You can add --no-push to stop before actually publishing the release.
cargo release will then:
Bump the minor part of the version in Cargo.toml (e.g. 0.7.1-alpha.0 -> 0.8.0. You can use patch instead of minor, as appropriate).
Create a new tag (e.g. v0.8.0) locally
Push the new tag to the specified remote (origin in 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.
Check that the new version of the crate is available on crates.io: https://crates.io/crates/sqlparser
sqlparser_derive crateCurrently this crate is manually published via cargo publish.
crates.io homepage: https://crates.io/crates/sqlparser_derive
cd derive
cargo publish