redox/CONTRIBUTING.md

140 lines
5.7 KiB
Markdown
Raw Normal View History

2016-11-01 19:04:50 +01:00
# Contributing to Redox
2017-10-07 15:40:49 +02:00
_**Thank you for your interest in contributing to Redox!** This document will outline the basics of where to start if you wish to contribute to the project. There are many ways to help us out and and we appreciate all of them. We look forward to **your contribution**!_
2016-11-01 19:04:50 +01:00
2023-02-28 09:52:59 +01:00
## Code Of Conduct
We follow the [Rust Code Of Conduct](https://www.rust-lang.org/policies/code-of-conduct).
2023-02-28 10:23:53 +01:00
## License
2023-03-01 21:18:19 +01:00
In general, your contributions to Redox are governed by the MIT License. Each project repository has a LICENSE file that provides the license terms for that project.
Please review the LICENSE for the project you are contributing to.
2023-02-28 10:23:53 +01:00
- [Our Philosophy](https://doc.redox-os.org/book/ch01-02-philosophy.html)
2023-03-02 23:09:50 +01:00
## Chat
Join us on [Matrix Chat](https://doc.redox-os.org/book/ch13-01-chat.html) to discuss issues or ask questions.
2023-03-01 21:47:51 +01:00
## Suggestions for Contributions
2023-05-22 00:12:51 +02:00
(Before start to contribute you **must** read the [FAQ](https://www.redox-os.org/faq/) and the [Book](https://doc.redox-os.org/book/))
2023-03-01 21:47:51 +01:00
You can contribute to Redox documentation/code on these repositories:
(The order is based on difficulty, easy things first)
- [Website](https://gitlab.redox-os.org/redox-os/website)
- [Book](https://gitlab.redox-os.org/redox-os/book)
- [Main Repository (build system/config)](https://gitlab.redox-os.org/redox-os/redox)
- [Cookbook (all system components/ported software)](https://gitlab.redox-os.org/redox-os/cookbook)
- [Redox C Library](https://gitlab.redox-os.org/redox-os/relibc)
- [Drivers](https://gitlab.redox-os.org/redox-os/drivers)
- [Kernel](https://gitlab.redox-os.org/redox-os/kernel)
2023-03-07 03:39:20 +01:00
### Important Places to Contribute
2016-11-01 19:04:50 +01:00
If you're not fluent in Rust:
2023-03-08 03:43:45 +01:00
- Write documentation
- Use/test Redox, filing issues for bugs and needed features (verify the GitLab issues before)
- Web development ([Redox website](https://gitlab.redox-os.org/redox-os/website))
- Write unit tests (may require minimal knowledge of Rust)
If you are fluent in Rust, but not OS Development:
2023-03-08 03:43:45 +01:00
- Port applications written in Rust to Redox (missing support on relibc will make patches dirty)
- Rewritten-in-Rust libc ([relibc](https://gitlab.redox-os.org/redox-os/relibc))
- Shell ([Ion](https://gitlab.redox-os.org/redox-os/ion))
- Package Manager ([pkgutils](https://gitlab.redox-os.org/redox-os/pkgutils))
If you are fluent in Rust, and have experience with OS Dev:
2023-03-08 03:43:45 +01:00
- Familiarize yourself with the repository and codebase
- Grep for `TODO`, `FIXME`, `BUG`, `UNOPTIMIZED`, `REWRITEME`, `DOCME`, and `PRETTYFYME` and fix the code you find
- Update older code to remove warnings
- Improve and optimize code, especially in the kernel
- Write drivers
For those who want to contribute to the Redox GUI, our GUI strategy has recently changed.
2023-03-08 03:43:45 +01:00
- OrbTk is now sunsetting, and its developers have moved to other projects such as the ones below. There is currently no Redox-specific GUI development underway.
- Redox is in the process of adopting other Rust-lang GUIs such as [Iced](https://iced.rs) and [Slint](https://slint-ui.com/). Please check out those projects if this is your area of interest.
2023-03-07 03:39:20 +01:00
## Tracking Issues
We use tracking issues to ease the development workflow, you can find them on this page:
- [Tracking issues index](https://gitlab.redox-os.org/redox-os/redox/-/issues/1384)
2023-03-07 03:39:20 +01:00
## Build System
You can find the Redox build system organization and commands on this page:
- [Build System Quick Reference](https://doc.redox-os.org/book/ch08-06-build-system-reference.html)
## Porting Software
You can read how to use the Cookbook recipe system to port applications on this page:
- [Porting Applications Using Recipes](https://doc.redox-os.org/book/ch09-03-porting-applications.html)
2023-08-21 17:31:52 +02:00
## Developer FAQ
You can see the most common questions and problems on this page:
- [Develper FAQ](https://doc.redox-os.org/book/ch09-05-developer-faq.html)
## Development Tips
You can find important tips on this section:
- [Development Tips](https://doc.redox-os.org/book/ch09-02-coding-and-building.html#development-tips)
2023-02-28 09:52:59 +01:00
## Best Practices and Guidelines
2023-03-02 00:03:41 +01:00
- [Best Practices](https://doc.redox-os.org/book/ch11-00-best-practices.html)
2016-11-01 19:04:50 +01:00
## Style Guidelines
2016-11-01 19:04:50 +01:00
### Rust
2016-11-01 19:04:50 +01:00
2017-10-07 15:40:49 +02:00
Since **Rust** is a relatively small and new language compared to others like _C_, there's really only one standard. Just follow the official Rust standards for formatting, and maybe run `rustfmt` on your changes, until we setup the CI system to do it automatically.
2016-11-01 19:04:50 +01:00
### Git
2016-11-01 19:04:50 +01:00
2023-03-01 01:07:12 +01:00
Please follow our [Git style for pull requests](https://doc.redox-os.org/book/ch12-04-creating-proper-pull-requests.html).
## GitLab
### Issues
You will need to have a Redox GitLab account to file an issue, and registration can take a few days.
2023-03-01 17:09:22 +01:00
- [Redox Book Guide](https://doc.redox-os.org/book/ch12-05-issues.html)
2023-03-01 01:07:12 +01:00
### Pull Requests
Please follow our process for [creating proper pull requests](https://doc.redox-os.org/book/ch12-04-creating-proper-pull-requests.html).
## External Links
2023-03-08 03:43:45 +01:00
- [redox-os.org](https://redox-os.org)
- [rust-os-comparison](https://github.com/flosse/rust-os-comparison)
- [rust-lang.org](http://rust-lang.org)
2023-03-01 01:07:12 +01:00
## Other Ways to Contribute
2016-11-01 19:04:50 +01:00
If you're not big on coding, but you still want to help keep the project going, you can still contribute/support in a variety of ways! We'll try to find a way to use anything you have to offer.
### Design
2023-02-28 09:52:59 +01:00
If you're a good designer, whether it's _2D graphics, 3D graphics, interfaces, web design, you can help. We need logos, UI design, UI skins, app icons, desktop backgrounds, etc_. More information to come on this in the future, for now just join the [Chat](https://doc.redox-os.org/book/ch13-01-chat.html) and ask about graphic design.
### Donate to Redox
If you are interested in donating to the Redox OS nonprofit, you can find instructions [here](https://www.redox-os.org/donate/).