Thank you for taking the time to contribute.
Follow the Rust and Gentoo codes of conduct.
Please create issues via Github. Check existing issues, and make sure you're running the latest version.
Emlop is licensed as GPLv3, any contribution accepted into the emlop repo will have that license. Send pull requests via Github.
Run cargo test -- --include-ignored
before submitting your code. A bugfix should probably
include a new/updated unittest. Check cargo clippy
hints. Format code using cargo +nightly fmt
. The
github CI also runs these checks.
Test emlop with the latest rust stable versions from both Gentoo and upstream, and the oldest
version from Gentoo. Using rustup
is highly recomended.
Check for performance improvements/regressions using benches/exec_compare.rs
(you need to
cargo install scriptisto
to be able to run this file) and cargo +nightly bench -F unstable bench
(you need a nightly toolchain installed).
I only have access to amd64/linux/gentoo/portage environements. Reports about running emlop on arm/freebsd/funtoo/paludis/etc would be appreciated.
- Update deps:
cargo outdated
, edit Cargo.toml,cargo +nightly update -Zmsrv-policy
. - Check
git status
and eithercommit+push
orstash
. - Check github CI status.
- Update/commit CHANGELOG.md, Cargo.toml, Cargo.lock.
git tag <version> -a
(copy the changelog entry into the tag).git push --tags
.- Create release from tag in github
- Create new ebuild in moltonel-ebuilds.
- Use
cargo package
to get a crate to test - Check against main repo ebuild
- Check tests and useflag variations
- Use
- Publish to crates.io.
- Send a pull request.