Skip to content
Pascal FREY edited this page Jan 21, 2016 · 2 revisions

Contributors

Contributions to elastic are warmly welcomed, but developers should familiarize themselves with the policy of the code before starting development. Specifically, membership of the developers team which allows commits to the elasticity master branch is restricted to people who have agreed to the policy, and all commits to master should follow the guidelines of the project development.

Commit policy

The following development policy applies for commits to master branch: *large developments should be preceded by an informal discussion with the main developers. *smaller feature additions do not require such discussion, if they will not affect other developer's work. *development should only take place on branches.

Remember: always do everything in your own branch.

  • Master is the main development branch that should always compile and pass all tests successfully. It is considered to be stable.

Fixing a bug

Create a new branch from master:

git checkout master                # user is now on the branch 'master'
git checkout -b user/fix-matrix    # Create a new branch from master and add user on it

Users are advised to name their new branch according to the following structure:

<logname>/(feature|fix)-component

Try fixing one bug at the time before committing single changes, which is quite easy with Git. Please make detailed (informative) comments about your modifications. When your feature/fix is ready for review and possible integration, run

git push --set-upstream origin <logname>/(feature|fix)-component

If another contributor is changing the branch while you are changing files, conflicts may result. Git allows to resolve them easily, for instance using SourceTree or GitHub. You can pull down the modifications (other than yours) and reapply yours later.

Once you have checked in all your modifications locally, made sure that all tests pass, push it up in your branch:

git push

and commit all changes in the main branch

git checkout master                       # Now I am on branch 'master'
git pull
git merge --no-ff logname/fix-matrix      # merge your work, potential conflicts will be resolved
git commit -a -m "informative comments"   # remember, make informative comments about your changes
git push