- First things first
- Branches
- Commit messages
- Tagging
- Merge Request Process
- Need some help?
- Creating a new Issue
You are here to help? Awesome, feel welcome and read the following sections in order to know how to ask questions and how to work on something.
All members of our community are expected to follow our Code of Conduct. Please make sure you are welcoming and friendly in all of our spaces.
Get in touch with the members of the community.
Report bugs, suggest features or view the source code on GitHub.
And mostly have fun!
If you are new to contributing then please start with "Issues" available on the website.
We use Git flow branching method. So get familiar with it.
Personally this is the best way ever. No need to lift your hand from the
keyboard.
But beware if you are not comfortable with terminal and a keyboard.
For macOS users brew install git-flow
should work, provided you have Homebrew
installed.
And for Linux users apt-get install git-flow
.
For more instructions on installing gitflow read this.
Install Homebrew.
Install Sourcetree, or GitKraken. Both are good. Sourcetree feels faster, but Kraken has cooler UI.
Read how to git-flow using sourcetree.
There are two permanent branches.
-
master
. This branch is the most stable production one. -
develop
. This branch is where actual development takes place.
Please read How to Write a Git Commit Message.
Basically follow these 7 rules:
- Separate subject from body with a blank line
- Limit the subject line to 50 characters
- Capitalize the subject line
- Do not end the subject line with a period
- Use the imperative mood in the subject line
- Wrap the body at 72 characters
- Use the body to explain what and why vs. how
All tags start with v
.
Examples: v3.2.1
.
The versioning scheme we use is SemVer.
- Ensure that no build files are uploaded.
- Update the README with details of changes to the interface, this includes new environment variables, exposed ports, useful file locations and container parameters.
- Bump up the version numbers in any examples files and the README.md to the new version that this merge request would represent.
- All Merge Request needs to be labeled appropriately. Check Labelling method.
- Please use the Merge Request template to maintain consistency.
Great. First run git flow init
in your project root.
Then accept all the defaults:
Branch name for production releases: [master]
Branch name for "next release" development: [develop]
Feature branches: [feature/]
Release branches: [release/]
Hotfix branches: [hotfix/]
Support branches: [support/]
Version tag prefix: []
Instructions to use git-flow:
-
Creating a feature branch
git flow feature start feature_branch
-
Finishing a feature branch
git flow feature finish feature_branch
-
Creating a release branch
git flow release start 0.1.0
-
Merging a release branch into master and develop
git checkout master git checkout merge release/0.1.0 git flow release finish '0.1.0'
-
Creating a hotfix branch
git flow hotfix start hotfix_branch
-
Finishing a hotfix branch
git flow hotfix finish hotfix_branch
Just make sure the above defaults are used.
Please use issues as much as possible. Issues are the best way to communicate about the project. Don't email the project maintainers unless necessary.
Please use the template. Every issue must have correct labels, milestone information.
For Bug reports one issue per bug. If multiple bugs are related then use related feature on the website or add the url to the related bug in the Description.
All issues are categorized into three:
-
Priority
- ~"Priority: Critical"
- ~"Priority: High"
- ~"Priority: Medium"
- ~"Priority: Low"
-
Type
- ~"Type: Bug"
- ~"Type: Maintenance"
- ~"Type: Enhancement"
- ~"Type: Discussion"
-
Status
- ~"Status: To Do"
- ~"Status: In Progress"
- ~"Status: In Review"