Integration Manager Workflow
The OpenWSN project uses the Integration Manager Workflow (see http://git-scm.com/about/distributed):
- an small number of integration managers commit to the
develop
branch of the different repositories. - developers fork that repository, push to their own independent repositories, and submit a pull request to pull in their changes.
This is a very common type of development model seen with open source or GitHub repositories.
As a Developer
If you are a developer who wants to contribute to the OpenWSN project, the following workflow has proven to work well:
- Create an issue at https://openwsn.atlassian.net. Let's call it "FW-123"
- Assign it to yourself
- Click the "start progress" button
- Branch/fork the develop branch. By convention, call that branch
develop_FW-123
. - Implement a fix for the issue
- Commit and push your changes into that branch.
- Start your commit message by the issues key, followed by a "
.
" , for example:FW-123. Fixed the packet format of RPL DIO.
This will ensure that your commit appears in the "Commits" tab of your issue. - From time to time, merge the
develop
branch into your privatedevelop_FW-123
branch.
- When you're done
- Merge
develop
intodevelop_FW-123
one last time, - From the GitHub interface, create a pull request.
- Mark the issues as "Fixed".
- Merge
- The pull request allows everybody to see the proposed changes and discuss. Once the discussion is over, the pull request is accepted and your
develop_FW-123
branch is merged into thedevelop
branch. After the fix is tested, the integration manager marks the issue as "Closed".