We are using git for version management and control. We use github for issue and milestone tracking.
If you discover a problem or identify a useful enhancement, do feel free to create a new issue in github.
Our workflow is that developers work in feature branches they create and then submit merge requests. Contributions -- be they bug fixes or enhancements -- should be documented in a github issue.
We require that the code work correctly in all environments before it will be accepted for merging. We are working on bringing up an environment where branches can be tested on multiple platforms automatically.
To fix a bug or add a new feature, we request that you conform to the following workflow:
- Start in master, or whichever branch you want to start from using the following command:
git checkout master
- Pull down the latest in this branch from the git repo:
git pull origin master
- Create a new branch with the a unique name:
git checkout -b username_issue##
.- Note that we recommend naming feature branches by appending your name with an issue number. If your last name is Rohloff and you're fixing a bug documented in issue 233, then one would create a branch named Rohloff_issue233.
- This command will create the branch and move you into it.
- Make any changes you want to in the branch.
- Commit your changes to the local repo:
git commit -am "commit message"
- Note the commit message should be meaningful and indicate the issue you're addressing, and discussion of things you weren't able to address.
- Push your local commit to the server in your branch:
git push origin username_issue##
- After you finished inserting your new feature or fixed the bug you wanted to address, make sure the code builds and runs correctly and that you have not introduced any additional bugs.
- If appropriate, make sure unit tests pass and add additional unit tests as needed for features you've added.
- Before creating merge requests, developers should rebase their branch from master and test that their code works properly. This page describes a workflow to rebase a branch from a master branch.
- Submit a merge request so project owners can review your commits here. You should include the text
Fixes #issue
in your merge request. - You may get feedback on your merge request, especially if there are problems or issues.
- When your merge request is accepted, your changes will be merged into master and your branch will be deleted.