Setting Up the Build System
Prerequisites
Download and Bootstrap
Download the bootstrap script
Run the bootstrap script
Build default recipes
Git Workflow
Creating Issues
Check for duplicates
File the issue
Share in chat
Making Changes
- Recipe Changes
- System Components
- Kernel/Core
Disable automatic updates
Make your changes
Build and test
Build System Commands
Basic Commands
Recipe Management
Find Recipe
Find Recipe
Fetch Recipe
Fetch Recipe
Cook (Build) Recipe
Cook (Build) Recipe
Clean Recipe
Clean Recipe
Push Recipe
Push Recipe
Combined Commands
Combined Commands
View Recipe Trees
Updating Your Fork
Code Style
Rust Formatting
Runrustfmt on your changes before committing:
Creating Merge Requests
Review your changes
Format your code
Test your changes
Create the MR
Share in MRs room
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:
Linting Stage
- rustfmt: Checks code formatting
- cargo-test: Runs unit tests
Test Stage
- img: Builds system images
- pkg: Tests packaging for multiple architectures (x86_64, i586, aarch64, riscv64gc)
Common Workflows
Porting a New Application
Porting a New Application
Check for existing recipe
Create recipe
Build and test
Fixing a Bug
Fixing a Bug
Identify the component
Make the fix
Clean and rebuild
Test the fix
Iterative Development
Iterative Development