snowpatch contribution guidelines ================================= Contributions should be sent as patches to the mailing list ([snowpatch@lists.ozlabs.org](mailto:snowpatch@lists.ozlabs.org)), preferably using `git send-email`. We strongly prefer emailed patches over GitHub pull requests - after all, emailed patches are exactly why snowpatch exists! Patch status is tracked on [patchwork.ozlabs.org](https://patchwork.ozlabs.org/project/snowpatch/). All commit messages must include a `Signed-off-by:` line including your real name, indicating that you have read and agree to the [Developer Certificate of Origin v1.1](http://developercertificate.org). Please read the Linux kernel [SubmittingPatches](https://www.kernel.org/doc/Documentation/SubmittingPatches) guidance before contributing. While many of the rules in there obviously aren't relevant to snowpatch, a lot of the guidance is relevant. Specifically, pay attention to: * Descriptive commit messages * Separating logical changes into separate patches * Plain-text patches, as generated by `git send-email` We like to follow the [Rust Style Guide](https://github.com/rust-lang-nursery/fmt-rfcs/blob/master/guide/guide.md) wherever possible - patches to fix any non-compliant code are welcome! The `setup_rustfmt_hook.sh` script in the root of the repository will set up a local pre-commit hook that runs `rustfmt` over your changes - we strongly recommend using this. We also recommend using the [clippy](https://github.com/rust-lang-nursery/rust-clippy) linter. When your patch involves creating a new file, where possible please use a header along the lines of: ``` # # snowpatch - continuous integration for patch-based workflows # # Copyright (C) [YEAR] [COPYRIGHT HOLDER] # Authors: # [AUTHOR NAME] <[AUTHOR EMAIL]> # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the Free # Software Foundation; either version 2 of the License, or (at your option) # any later version. # # [FILENAME] - [DESCRIPTION] # ```