denyhosts/clamav/libclamav_rust/.cargo/vendor/exr/releasing.md

30 lines
1.1 KiB
Markdown
Raw Normal View History

2023-01-14 18:28:39 +08:00
# 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`