For pre-1.0.0:
- Targeting two releases a month for minor versions.
- Regression bug fixes will be released ASAP on best effort for maintainers. For example, a regression in 0.9.0 means 0.9.1 is released ASAP instead of waiting for the next release train.
Rusoto uses semantic versioning 2.0.0.
Rusoto depends on crates such as rusoto_credential
and rusoto_codegen
. These are usually published before publishing
the main Rusoto crate.
- Bump version numbers and versions required in cargo.toml files for:
rusoto_credential
(if needed),rusoto_codegen
(if needed) and mainrusoto
crate. - For credential and codegen crates, run
cargo publish --dry-run --allow-dirty
to simulate a publish. This will catch errors such as malformed Cargo.toml or missing required fields. - If no errors, commit to master.
- Publish the credential and/or codegen crates with
cargo publish
in their directories. - Last check for main crate, run from the root of the Rusoto project:
cargo publish --dry-run
- If good, publish new version of Rusoto:
cargo publish
. - Tag master, push tags to github.
Due to multiple crates being in the repo, releases for each crate will be in the format crate-vmajor.minor.patch
.
Examples:
rusoto-v0.21.0
credentials-v0.3.0
codegen-v0.5.0
To release the main rusoto
crate, version 0.4.0:
- Use an annotated tag on the commit with the version bump:
git tag -a rusoto-v0.21.0 -m "Rusoto 0.21.0 release."
- Push changes, including tags, to Github:
git push --tags origin
.
Add a list of user-facing changes to a new release for the tagged version on GitHub: https://github.com/rusoto/rusoto/releases
API docs are on Github Pages at https://rusoto.github.io/rusoto.
TravisCI builds and publishes the gh-pages
branch automatically when changes are merged into master.