How to Contribute
This project welcomes third-party code via GitHub pull requests.
You are welcome to propose and discuss enhancements using project issues.
Branching Policy: The
masterbranch is considered stable, at all times. Thedevelopmentbranch is the one where all contributions must be merged before being promoted to master. If you plan to propose a patch, please commit into thedevelopmentbranch, or its own feature branch.
We recommend enabling Github Actions on your fork of librealsense to make sure the changes compile on all platforms and pass unit-tests.
In addition, please run pr_check.sh and api_check.sh under scripts directory. These scripts verify compliance with project’s standards:
Every example / source file must refer to LICENSE
Every example / source file must include correct copyright notice
For indentation we are using spaces and not tabs
Line-endings must be Unix and not DOS style
Every API header file must be able to compile as the first included header (no implicit dependencies)
Most common issues can be automatically resolved by running ./pr_check.sh --fix
Please familirize yourself with the Apache License 2.0 before contributing.
Step-by-Step
Make sure you have
gitandcmakeinstalled on your system. On Windows we recommend using Git Extensions for git bash.Run
git clone https://github.com/IntelRealSense/librealsense.gitandcd librealsenseTo align with latest status of the development branch, run:
git fetch origin
git checkout development
git reset --hard origin/development
git checkout -b name_of_your_contributionto create a dedicated branchMake your changes to the local repository
Make sure your local git user is updated, or run
git config --global user.email "email@example.com"andgit config --global user.user "user"to set it up. This is the user & email that will appear in GitHub history.git add -pto select the changes you wish to addgit commit -m "Description of the change"Make sure you have a GitHub user and fork librealsense
git remote add fork https://github.com/username/librealsense.gitwith your GitHubusernamegit fetch forkgit push forkto pushname_of_your_contributionbranch to your forkGo to your fork on GitHub at
https://github.com/username/librealsenseClick the
New pull requestbuttonFor
basecombo-box selectdevelopment, since you want to submit a PR to that branchFor
comparecombo-box selectname_of_your_contributionwith your commitReview your changes and click
Create pull requestWait for all automated checks to pass
The PR will be approved / rejected after review from the team and the community
To continue to new change, goto step 3. To return to your PR (in order to make more changes):
git stashgit checkout name_of_your_contributionRepeat items 5-8 from the previous list
git push forkThe pull request will be automatically updated
Comment about the Wrappers
For example, when adding new value to
rs2_optionenum, please also add it to:The list of Matlab options under
wrappers/matlab/option.mThe list of options for Unreal Engine integration
The list of options in the C# wrapper -
wrappers/csharp/Intel.RealSense/Types/Enums/Option.csThe list of Java options used for Android integration -
wrappers/android/librealsense/src/main/java/com/intel/realsense/librealsense/Option.javaThe list of options in the python wrapper
Once all are updated Github Actions will give clear indication that each of the wrappers is still passing compilation.