-
Notifications
You must be signed in to change notification settings - Fork 8
Home
Welcome to the shunyainterfaces wiki!
The Goal of this wiki is to provide documentation for Contributors Contributing to Shunya Interfaces.
First, thank you for contributing to Shunya Interfaces!
The goal of this document is to provide everything you need to start contributing to Shunya Interfaces.
- Assumptions
- Workflow
- Git Branches
- Git Commits
- Signing-off
- Github Pull Requests Title Single Concern Reviews & Approvals Merge Style
- CI
- Development
- Setup
- The Basics
- Directory Structure
- Makefile
- Code Style
- Documentation
- Dependencies
- Testing
Check out our Contributer chart below to see where you can contribute.
What do you like to do | Options for Contributions | Link to Work-flow |
---|---|---|
Do you like organizing? | Link to duplicate issues and suggest new issue labels to keep things organized | How To |
Do you like to test out new features? | Test Sensors and actuators | How To |
Do you like to create/make projects? | Make cool projects using the library | How To |
Do you like to code? | Add more Sensors/Actuators to the library | How To |
Find an open issue to tackle | How To | |
Do you like helping others code? | Review code on other people’s submissions | How To |
Do you like planning events? | Organize workshops or meetups about the project | How To |
Do you like to design? | Restructure layouts (Website, Docs etc..) to improve the project’s usability | How To |
Conduct user research to reorganize and refine the project’s navigation or Documentation | How To | |
Do you like to write? | Write and improve the project’s documentation | How To |
Curate a folder of examples showing how the project is used | How To | |
Do you like helping people? | Answer questions about the project on e.g. Stack Overflow | How To |
Above table shows the development Entities, their stages and where you can contribute.
- Each Entity (Feature or Sensors/Actuator) has 8 stages which goes from Request to Tutorial.
- Each Entity gets a new Issue.
- Each Issue gets tagged with the ongoing stage
Tag
. - You can come in at any stage and help contribute to the project.
Flow --> | Identify | Strategize | Execute1 | Execute2 | Execute3 | Execute4 | Execute5 | Execute6 |
---|---|---|---|---|---|---|---|---|
Contributers can --> | Request | Assign Priority (maintainer only) | Write Code | Review Code | Test | Bugs | Document | Blog/Tutorial |
Add a new Feature | ||||||||
Add support to Sensor/Actuator |
Shunya Interfaces follows the following branching structure. While submitting a pull request please make sure you follow these branching structure.
-
master
branch is always stable and will contain all the releases for the project. -
develop
branch contains latest commits that will merge to master at release time. -
feature-*
branches will contain commits for a new feature and will merge to develop. -
release-*
branches will contain commits for a new released will merge to master. -
fix-*
branches will contain commits for bug fixes to be merged to develop.
- Please ensure your commits are small and focused on one single change.
- Please make sure that all your commit messages describe your changes. This helps reviewers review your changes easily.
Your commits must include a signature. i.e All your commits must contain
Signed-off-by: Joe Smith <joe.smith@email.com>
It is very simple in git, just add the flag -s
when you commit.
git commit -sm 'My commit message'
Once the changes are ready, please submit it using pull requests.
- Install Shunya OS
-
docs
- Documentation website for Shunya Interfaces -
include/
- Header files for the Shunya Interfaces -
src/
- Source files for Shunya Interfaces
Shunya Interfaces uses CMake for compiling the library. The library can be compiled using these commands.
# Clone the project, Skip this step if you have cloned the project already.
git clone https://github.com/shunyaos/shunyainterfaces.git
cd shunyainterfaces
# Create a build directory
mkdir build
cd build
# Configure
cmake ../
# Build
make
# Install Shunya Interfaces
sudo make install
Shunya Interfaces follows one coding style, all the files are mandatory to follow the coding styles.
- Please ensure that each new feature or a sensor getting added into the library Contains documentation for the feature.
For testing Shunya Interfaces, Please check this label.
Since Shunya Interfaces works on hardware, you would atleast need an
- Embedded board (RPI recommended)
- SD card
- Sensors (only if testing sensors) maybe required.
- Install Shunya OS on your board. Link here.
- Code Sensors
- Connect, Compile and Run.
- Check if the output is as expected.
- If the output is not as expected then file a bug in issues
All your suggestions and feedback regarding the project are welcome and valuable to us. Please open up an Issue.
- To
opensource.guide
for the contributing table - Checkout link - To
@nvie
for the git branching model that the project uses - Checkout link