Improve and cleanup the CONTRIBUTING

This commit is contained in:
Ribbon 2023-11-18 22:45:35 +00:00
parent 15d94b2fd6
commit 5a12caef3a

View file

@ -1,6 +1,8 @@
# Contributing to Redox # Contributing to Redox
_**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**!_ **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!**
## Code Of Conduct ## Code Of Conduct
@ -8,11 +10,11 @@ We follow the [Rust Code Of Conduct](https://www.rust-lang.org/policies/code-of-
## License ## License
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. In general, your contributions to Redox are governed by the [MIT License](https://en.wikipedia.org/wiki/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. Please review the LICENSE for the project you are contributing to.
- [Our Philosophy](https://doc.redox-os.org/book/ch01-02-philosophy.html) On [this](https://doc.redox-os.org/book/ch01-02-philosophy.html) page we explain why we use the MIT license.
## Chat ## Chat
@ -20,37 +22,37 @@ Join us on [Matrix Chat](https://doc.redox-os.org/book/ch13-01-chat.html) to dis
## Suggestions for Contributions ## Suggestions for Contributions
(Before start to contribute you **must** read the [FAQ](https://www.redox-os.org/faq/) and the [Book](https://doc.redox-os.org/book/)) (Before starting to contribute you **must** read the [FAQ](https://www.redox-os.org/faq/) and the [Redox Book](https://doc.redox-os.org/book/))
You can contribute to Redox documentation/code on these repositories: You can contribute to the Redox documentation and code on these repositories:
(The order is based on difficulty, easy things first) (The order is based on difficulty, easy things first)
- [Website](https://gitlab.redox-os.org/redox-os/website) - [Website](https://gitlab.redox-os.org/redox-os/website)
- [Book](https://gitlab.redox-os.org/redox-os/book) - [Book](https://gitlab.redox-os.org/redox-os/book)
- [Main Repository (build system/config)](https://gitlab.redox-os.org/redox-os/redox) - [Build System Configuration](https://gitlab.redox-os.org/redox-os/redox) - Our main repository
- [Cookbook (all system components/ported software)](https://gitlab.redox-os.org/redox-os/cookbook) - [Cookbook](https://gitlab.redox-os.org/redox-os/cookbook) - Package system
- [Redox C Library](https://gitlab.redox-os.org/redox-os/relibc) - [relibc](https://gitlab.redox-os.org/redox-os/relibc) - Redox C Library
- [Drivers](https://gitlab.redox-os.org/redox-os/drivers) - [Drivers](https://gitlab.redox-os.org/redox-os/drivers)
- [Kernel](https://gitlab.redox-os.org/redox-os/kernel) - [Kernel](https://gitlab.redox-os.org/redox-os/kernel)
### Important Places to Contribute ### Places to Contribute
If you're not fluent in Rust: If you aren't fluent in Rust:
- Write documentation - Write documentation
- Use/test Redox, filing issues for bugs and needed features (verify the GitLab issues before) - Use and test Redox, fill issues for bugs or needed features (verify the repository issues before)
- Web development ([Redox website](https://gitlab.redox-os.org/redox-os/website)) - Web development on the [website](https://gitlab.redox-os.org/redox-os/website)
- Write unit tests (may require minimal knowledge of Rust) - Write unit tests (may require minimal knowledge of Rust)
If you are fluent in Rust, but not OS Development: If you are fluent in Rust, but not operating system Development:
- Port applications written in Rust to Redox (missing support on relibc will make patches dirty) - Port programs written in Rust to Redox (in most cases you need to port crates, be aware of missing functions on relibc, porting without these functions will make patches dirty)
- Rewritten-in-Rust libc ([relibc](https://gitlab.redox-os.org/redox-os/relibc)) - [relibc](https://gitlab.redox-os.org/redox-os/relibc) - Redox C Library
- Shell ([Ion](https://gitlab.redox-os.org/redox-os/ion)) - The [Ion Shell](https://gitlab.redox-os.org/redox-os/ion)
- Package Manager ([pkgutils](https://gitlab.redox-os.org/redox-os/pkgutils)) - [Package Manager](https://gitlab.redox-os.org/redox-os/pkgutils)
If you are fluent in Rust, and have experience with OS Dev: If you are fluent in Rust, and have experience with operating system development:
- Familiarize yourself with the repository and codebase - Familiarize yourself with the repository and codebase
- Grep for `TODO`, `FIXME`, `BUG`, `UNOPTIMIZED`, `REWRITEME`, `DOCME`, and `PRETTYFYME` and fix the code you find - Grep for `TODO`, `FIXME`, `BUG`, `UNOPTIMIZED`, `REWRITEME`, `DOCME`, and `PRETTYFYME` and fix the code you find
@ -60,80 +62,67 @@ If you are fluent in Rust, and have experience with OS Dev:
For those who want to contribute to the Redox GUI, our GUI strategy has recently changed. For those who want to contribute to the Redox GUI, our GUI strategy has recently changed.
- 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. - We are porting the [COSMIC compositor](https://github.com/pop-os/cosmic-comp), help wanted.
- 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. - 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.
- OrbTk is in maintenance mode, and its developers have moved to other projects such as the ones below. There is currently no Redox-specific GUI development underway.
## Tracking Issues ## Tracking Issues Index
We use tracking issues to ease the development workflow, you can find them on this page: We use the Tracking Issues Index to ease the development workflow, you can find them on [this](https://gitlab.redox-os.org/redox-os/redox/-/issues/1384) page.
- [Tracking issues index](https://gitlab.redox-os.org/redox-os/redox/-/issues/1384)
## Build System ## Build System
You can find the Redox build system organization and commands on this page: You can find the Redox build system organization and commands on [this](https://doc.redox-os.org/book/ch08-06-build-system-reference.html) page.
- [Build System Quick Reference](https://doc.redox-os.org/book/ch08-06-build-system-reference.html)
## Porting Software ## Porting Software
You can read how to use the Cookbook recipe system to port applications on this page: You can read how to use the Cookbook recipe system to port applications on [this](https://doc.redox-os.org/book/ch09-03-porting-applications.html) page.
- [Porting Applications Using Recipes](https://doc.redox-os.org/book/ch09-03-porting-applications.html)
## Developer FAQ ## Developer FAQ
You can see the most common questions and problems on this page: You can see the most common questions and problems on [this](https://doc.redox-os.org/book/ch09-05-developer-faq.html) page.
- [Develper FAQ](https://doc.redox-os.org/book/ch09-05-developer-faq.html)
## Development Tips ## Development Tips
You can find important tips on this section: You can find important tips on [this](https://doc.redox-os.org/book/ch09-02-coding-and-building.html#development-tips) section.
- [Development Tips](https://doc.redox-os.org/book/ch09-02-coding-and-building.html#development-tips)
## Best Practices and Guidelines ## Best Practices and Guidelines
- [Best Practices](https://doc.redox-os.org/book/ch11-00-best-practices.html) You can read the best practices and guidelines on [this](https://doc.redox-os.org/book/ch11-00-best-practices.html) chapter.
## Style Guidelines ## Style Guidelines
### Rust ### Rust
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. Since **Rust** is a relatively small and new language compared to others like C and 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.
### Git ### Git
Please follow our [Git style for pull requests](https://doc.redox-os.org/book/ch12-04-creating-proper-pull-requests.html). Please follow our [Git style](https://doc.redox-os.org/book/ch12-04-creating-proper-pull-requests.html) for pull requests.
## GitLab ## GitLab
### Issues ### Issues
You will need to have a Redox GitLab account to file an issue, and registration can take a few days. To know how to create issues on the Redox GitLab, read [this](https://doc.redox-os.org/book/ch12-05-filing-issues.html) page.
- [Redox Book Guide](https://doc.redox-os.org/book/ch12-05-issues.html)
### Pull Requests ### Pull Requests
Please follow our process for [creating proper pull requests](https://doc.redox-os.org/book/ch12-04-creating-proper-pull-requests.html). Please follow [our process](https://doc.redox-os.org/book/ch12-04-creating-proper-pull-requests.html) for creating proper pull requests.
## External Links
- [redox-os.org](https://redox-os.org)
- [rust-os-comparison](https://github.com/flosse/rust-os-comparison)
- [rust-lang.org](http://rust-lang.org)
## Other Ways to Contribute ## Other Ways to Contribute
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. If you aren't good on coding, but you still want to help keep the project going, you can contribute and support in a variety of ways! We'll try to find a way to use anything you have to offer.
### Design ### Design
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. 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.
- [Redox backgrounds](https://gitlab.redox-os.org/redox-os/backgrounds) - You can send your wallpapers on this repository.
- [Redox assets](https://gitlab.redox-os.org/redox-os/assets) - You can send your logos, icons and themes on this repository.
If you have questions about the graphic design, ask us on the [Chat](https://doc.redox-os.org/book/ch13-01-chat.html).
### Donate to Redox ### 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/). If you are interested in donating to the Redox OS Nonprofit, you can find instructions [here](https://www.redox-os.org/donate/).