diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000000000000000000000000000000000..d1c53198eda91e7568ee74e0121b6e17486bdc55 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,45 @@ +## Find an issue + +First, find an area to work on within the shell or one of it's related projects. +This may be: + +- An existing issue which has been reported +- A feature that is missing that you would like to develop +- An issue you've discovered that you would like to fix + +Once you have found something that you want to work on, submit your intent to +the issue board, either by creating an issue for an issue which does not exist, +or commenting on an issue that you are working on it. + +## Test your code + +Before submitting a PR, ensure that you've run your tests locally and that they +pass. This can be done by running the following two commands: + +```sh +cargo +nightly test --lib && bash examples/run_examples/sh +``` + +## Format your code + +In addition, format your code before submitting a PR. This will require that +you've installed the `rustfmt` Cargo component. + +```sh +cargo +nightly fmt +``` + +Now you're ready to submit your work for review! + +## Chatroom + +Send an email to [info@redox-os.org](mailto:info@redox-os.org) to request invitation for joining +the developer chatroom for Ion. Experience with Rust is not required for contributing to Ion. There +are ways to contribute to Ion at all levels of experience, from writing scripts in Ion and reporting +issues, to seeking mentorship on how to implement solutions for specific issues on the issue board. + +## Discussion + +In addition to the chatroom, there's a [thread in the Redox forums](https://discourse.redox-os.org/t/ion-shell-development-discussion/682) +that can be used for discussions relating to Ion and Ion shell development. These are mostly served +by the GitHub issue board, but general discussions can take place there instead.