Code of Conduct
We follow the Rust Code of Conduct.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.LICENSE file for the project you are contributing to. Learn more about why we use the MIT license.
Contribution Terms
This is similar to Developer Certificate of Origin from Linux Foundation.AI Policy
Communication Channels
Matrix (Official)
Matrix is the official way to talk with Redox OS team and community (English-only).Join the Join Requests room
Join the Join Requests room (or use
#redox-join:matrix.org) and send a message requesting an invite to the Redox Matrix space. This helps us avoid spam and bots.Discord (Alternative)
We have a Discord server as an alternative for Matrix. Open the #join-requests channel and send a message requesting to be a member.Matrix messages are sent to Discord and vice-versa using a bot, but sometimes some Discord messages aren’t sent to Matrix. If this happens to you, join our Matrix space instead.
GitLab
A more formal way of communication with fellow Redox developers. Submit an issue when you run into problems compiling or testing. Issues can also be used to discuss features, code style, code inconsistencies, minor changes and fixes, etc.Creating a GitLab Account
Read the Signing in to GitLab guide to create your account
Merge Requests
If you have ready MRs (merge requests), send the links in the MRs room. You’ll need to request an invite in the Join Requests room first.Best Practices and Guidelines
You can read the best practices and guidelines in the Best practices and guidelines chapter.Development Recommendations
Build System
Build System
- Read the entire Build System Reference and Developer FAQ pages
- Keep your build system up-to-date, read the Update The Build System section
Recipe Development
Recipe Development
- For local changes in recipe sources, disable automatic recipe source updates. See Local Recipe Changes for one or multiple recipes
- For all recipes, see Cookbook Offline Mode
- Changes to system components, drivers or RedoxFS require manual initfs updates. See How to update initfs
Debugging Tips
Debugging Tips
- If a program can’t build or work, something might be missing in relibc, like a POSIX/Linux function or bug
- Test different QEMU settings if you encounter errors
- Use recommended distributions: Pop_OS!, Ubuntu, Debian, and Fedora
- Always log errors:
Merge Request Tips
Merge Request Tips
- If you have a problem that seems unsolvable, think about simple/obvious things. Sometimes confidence in your method makes you forget obvious issues
- For quick reviews, keep MRs small
- If a large MR is taking too long to review, try splitting it into smaller MRs (but ensure nothing breaks)
Style Guidelines
Rust
Follow the official Rust standards for formatting and runrustfmt on your changes until the CI system is set up to do it automatically.
Git
Please follow our Git style for pull requests.GitLab Profile Setup
Where to Contribute
Before starting to contribute, we recommend reading the General FAQ and the Redox Book.Repositories (easiest-to-hardest order)
Website
Website contributions
Book
High-level documentation
Build System
Our main repository
Orbital
Display Server and Window Manager
pkgutils
Package Manager
acid
Redox Test Suite
relibc
Redox C Library
libredox
Redox System Library
Bootloader
Bootloader
RedoxFS
Default filesystem
Base
Essential system components and drivers
Kernel
Kernel development
Contribution by Skill Level
- No Programming Experience
- Non-Rust Programmers
- Rust (No OS Dev)
- Systems/OS Development
- Test the daily images on your computer and add reports to the Hardware Compatibility list
- Monitor and warn developers if the daily images are outdated
- Use/test Redox and create issues for bugs or needed features (check for duplicates first)
- Fix and write documentation
- Find or fix typos in configuration
Priorities and Roadmap
Current Priorities
Use these GitLab issue label filters to know our development priorities:Roadmap
We use tracking issues for roadmap goals:RFCs
For significant changes that affect Redox’s architecture, we use the Request for Comments repository.Other Ways to Contribute
Design
If you’re a good designer (2D graphics, 3D graphics, interfaces, web design), you can help with logos, UI design, UI skins, app icons, desktop backgrounds, etc.- Redox backgrounds - Submit your wallpapers
- Redox assets - Submit your logos, icons and themes
Donate to Redox
If you are interested in donating to the Redox OS Nonprofit, visit the Donate page.Next Steps
Development Workflow
Learn about the git workflow and development process
Debugging Guide
Learn how to debug Redox OS
Testing Guide
Learn how to test your contributions
Build System
Complete build system reference