## Release trains 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. ## Release procedure for Rusoto ### Semantic versioning Rusoto uses [semantic versioning 2.0.0](http://semver.org/). ### Rusoto dependencies Rusoto depends on crates such as `rusoto_credential` and `rusoto_codegen`. These are usually published before publishing the main Rusoto crate. ### Publishing walkthrough: 1. Bump version numbers and versions required in cargo.toml files for: `rusoto_credential` (if needed), `rusoto_codegen` (if needed) and main `rusoto` crate. 2. 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. 3. If no errors, commit to master. 4. Publish the credential and/or codegen crates with `cargo publish` in their directories. 5. Last check for main crate, run from the root of the Rusoto project: `cargo publish --dry-run` 6. If good, publish new version of Rusoto: `cargo publish`. 7. Tag master, push tags to github. ### Git tags 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: 1. Use an annotated tag on the commit with the version bump: `git tag -a rusoto-v0.21.0 -m "Rusoto 0.21.0 release."` 2. Push changes, including tags, to Github: `git push --tags origin`. ### Release notes 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 API docs are on Github Pages at [https://rusoto.github.io/rusoto](https://rusoto.github.io/rusoto). TravisCI builds and publishes the `gh-pages` branch automatically when changes are merged into master. #### Gitbook docs See [the Rusoto gitbook project](https://github.com/rusoto/rusoto.github.io).