Setting Up the Build System
Prerequisites
You need to have curl installed on your system.
Download and Bootstrap
Git Workflow
Creating Issues
File the issue
Create your issue following the Filing Issues guidelines.
Making Changes
- Recipe Changes
- System Components
- Kernel/Core
When making local changes to recipe sources:
Disable automatic updates
For one or multiple recipes, see Local Recipe Changes.For all recipes, enable Cookbook Offline Mode.
Build System Commands
Basic Commands
Recipe Management
Find Recipe
Find Recipe
Find recipe for one or more targets:
Fetch Recipe
Fetch Recipe
Fetch source or binary for a recipe:Fetch multiple recipes (comma-separated):
Cook (Build) Recipe
Cook (Build) Recipe
Build a specific recipe:Build multiple recipes:
Clean Recipe
Clean Recipe
Clean a specific recipe:Clean multiple recipes:
Push Recipe
Push Recipe
Push compiled package into existing image:Push with package dependencies:
Combined Commands
Combined Commands
Clean and rebuild:Unfetch, clean, and rebuild:Clean, rebuild, and push:
View Recipe Trees
Updating Your Fork
Code Style
Rust Formatting
Runrustfmt on your changes before committing:
Creating Merge Requests
Review your changes
Ensure your changes are complete and follow the Best Practices.
Test your changes
See the Testing Guide for comprehensive testing instructions.
Create the MR
Follow the Creating Proper Pull Requests guide.
Share in MRs room
Post your MR link in the MRs Matrix room to ensure it gets reviewed.
Development Environment
Setting Up the Environment
Enter a development environment with proper paths:PATH with the prefix toolchain and opens a bash shell.
View Environment Variables
ARCH- Target architectureBOARD- Target boardCONFIG_NAME- Configuration nameBUILD- Build directory
Visual Studio Code Configuration
For VS Code setup, see Visual Studio Code Configuration.Configuration Files
Redox uses TOML configuration files for different build targets:config/x86_64/desktop.toml- Desktop configurationconfig/x86_64/server.toml- Server configurationconfig/x86_64/demo.toml- Demo configurationconfig/tests.toml- Testing configuration
Continuous Integration
The CI system automatically runs on merge requests targetingmaster:
Common Workflows
Porting a New Application
Porting a New Application
Create recipe
See Application Porting.
Fixing a Bug
Fixing a Bug
Test the fix
See the Testing Guide and Debugging Guide.
Iterative Development
Iterative Development
For rapid iteration on a single component:
Getting Help
If you encounter issues during development:Developer FAQ
Common questions and solutions
Chat Rooms
Ask in Matrix or Discord
File an Issue
Report bugs or ask for help
Build System Reference
Complete build system documentation
Next Steps
Debugging Guide
Learn how to debug Redox OS
Testing Guide
Learn how to test your changes