Thank you for taking the time to look over this document. You are encouraged to open issues, submit PRs, suggest changes, or anything else you feel might move this project forward.
If you have any questions or would like private coorespondence with the main author, John Wells, please use john@attackgoat.com.
This section lists the absolute minimum requirements you must understand and practice in order to be involved with this project. If you fail to uphold the spirit of these rules you will not have any access to make changes within this project and you may be banned entirely.
All contributions, ideas, issues, or other efforts you expend on this project must be provided using the existing MIT or Apache 2.0 license agreements applied to this project. This means that anything you do for this project will be provided to the public without any strings or conditions attached. You must also have the right to provide any code or ideas under these licenses as you will retain no ownership or control after contribution.
All code must:
- Be modern Rust code (currently 2021 edition, latest stable compiler) or GLSL.
- Pass
cargo fmt
andcargo clippy
(debug and release) with no warnings - Support required platforms: Linux, Mac, Windows
- Use only
crates.io
-published crates
All code should:
- Follow the guidelines
- Provide useful documentation and comments, including private code
- Support other platforms: Android, iOS
Download the source code and play around with the examples, see README.md for more.
Any and all contributions are acceptable, including major changes to design or capabilities. If your change is big please ask or open an issue to make sure the rest of the community is on board with your new ideas.
If we cannot fit your change into the existing design without breaking API for other users or
creating other headaches then we will add your code into a contrib
directory or separate branch as
needed.
- Run
cargo update
to ensure you have the latest dependencies - Double-check
cargo clippy --release
andcargo fmt
(usecontrib/rel-mgmt/check
) - Double-check all examples compile and run as intended (use
contrib/rel-mgmt/run-all-examples
) - Double-check the above on all supported platforms
- Change log: Add a section for the new version
- Change log: Transfer unreleased details to the new version
- Change log: Add diff link (they are at the bottom)
- Run
cargo publish
- Github: Add a tag for the version