Skip to main content
Thank you for your interest in contributing to Redox! This guide will help you understand how to contribute effectively to the project.

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.
Please review the LICENSE file for the project you are contributing to. Learn more about why we use the MIT license.

Contribution Terms

When making a contribution you agree to the following terms:
  • I (the contributor) am the copyright owner of these changes
  • I submit these changes according to the project’s license with no additional requirements
  • I understand these changes in full and will be able to respond to review comments
This is similar to Developer Certificate of Origin from Linux Foundation.

AI Policy

Redox OS does not accept contributions generated by LLMs (Large Language Models), sometimes also referred to as “AI”.This policy is not open to discussion. Any content submitted that is clearly labelled as LLM-generated (including issues, merge requests, and merge request descriptions) will be immediately closed, and any attempt to bypass this policy will result in a ban from the project.

Communication Channels

Matrix (Official)

Matrix is the official way to talk with Redox OS team and community (English-only).
1

Choose a Matrix client

Element is a commonly used choice that works on web browsers, Linux, MacOSX, Windows, Android and iOS. If you have problems with Element, try Fractal.
2

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.
3

Leave the Join Requests room

After you’ve been granted access to the Redox space, we recommend leaving the “Join Requests” room.
For larger discussions in our rooms, use an Element thread. It’s more organized and easier to keep track when multiple discussions happen in the same room.
You can find more information on the Chat page.

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
Important: After creating an issue, post the link in the Dev or Support rooms of the chat. GitLab email notifications have distractions (service messages or spam) and most developers don’t leave their GitLab pages open to receive desktop notifications. This helps prevent issues from being accidentally forgotten.

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.
Sending a message in the room ensures your MR won’t be forgotten or accumulate conflicts.

Best Practices and Guidelines

You can read the best practices and guidelines in the Best practices and guidelines chapter.

Development Recommendations

  • 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:
your-command 2>&1 | tee file-name.log
  • 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 run rustfmt 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

1

Add your chat username

Once your GitLab account is created, add your Matrix or Discord username (the name after the @ symbol) in the “About” section of your profile so we can recognize you properly.

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
To see all Redox repositories, visit the redox-os group.

Contribution by Skill Level

  • 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. For questions about graphic design, ask on the Chat. 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

Build docs developers (and LLMs) love