30 lines
1.1 KiB
Markdown
30 lines
1.1 KiB
Markdown
|
# Release Checklist
|
||
|
Yanking shouldn't be the default.
|
||
|
|
||
|
## Safety Checklist
|
||
|
1. No `unsafe`
|
||
|
1. Everything builds, not only `cargo test`
|
||
|
1. Builds with `--release` flag
|
||
|
1. All tests pass, all benchmarks run
|
||
|
1. All tests pass, including `#[ignore]` tests and fuzzing!
|
||
|
1. Images produced by running the examples can be opened in other software
|
||
|
1. Only safe `as` casts
|
||
|
1. Always have a max limit when allocating based on file contents
|
||
|
- limit max capacity `Vec::with_capacity( x.min(1024) )`
|
||
|
- careful with `vec![ 0; x ]`
|
||
|
1. Only unreachable `unwrap()`, `expect("")` and `assert`s
|
||
|
1. No `println!` outside of tests and examples
|
||
|
1. `assert_eq` and `debug_assert_eq` should have a message explaining the context, except in internal algorithms like compressors
|
||
|
1. ensure `#![warn(missing_docs)]` in `lib.rs`
|
||
|
1. Example in README.md should be up-to-date
|
||
|
1. GUIDE.md should be up-to-date
|
||
|
1. Update Dependencies while you're at it?
|
||
|
|
||
|
## Tasks
|
||
|
1. Bump version in
|
||
|
- `cargo.toml`
|
||
|
- `README.md`
|
||
|
- `examples/README.md`
|
||
|
|
||
|
1. Run `cargo publish`
|
||
|
|