-
Notifications
You must be signed in to change notification settings - Fork 77
Developer SOP
This is very much a work in flux and will likely change as we have more experience
If you are unsure how git works or what the git workflow is try it in Sandbox, that is why it is there.
Always do a file compare before you commit any changes. No matter how trivial the edit is, you need to take a second look. If you are working with somebody else ask them to do a code review before you commit
All commits need meaningful comments. To get a feel for what is meaningful read through existing comments and decide if from reading the comment you can tell what the change was. If the commit is linked to a Pivotal Tracker story then include a link to the story on the second line
All work should be done in a fork of the main openelisglobal github repository (or the sandbox). The purpose of this is to force pull requests from everybody, including those who might be considered core contributors. We encourage, but do not require, that you do not accept your own pull requests.
Note: a fork in github is different from what is usually thought of as a fork. Outside of github forking is thought of as “We are going to take your code and that is the last you will ever see of us”, within github forking is thought of as “We are going to take your code, make some changes and when we are done we would like you to look it over and merge it back into your repository”
We will be following this as our branching model. For an interesting discussion about bugs found in merged branches look here
Note the point that we are working from a model, not a mandate.
We will be using camelCase case for our branch names. Failure to follow this policy will result in extensive eye rolling :).
- master branch - “master”
- develop branch - “develop”
- Release branch for OpenElis 3.4 - “release3.4”
- feature branch for iSante interoperability - “ iSanteInterop”
- bug fix to interoperability - “interopMissingGuidBug”
- hot fix to interoperability - “hotfixRelease3.4.1”
All merges to master should be tagged with a meaningful name. Most merges will be after releases or hotfixes so the tag should be similar to “oe3.3” If the merge is for something other than a release the suggested tags should be similar to:
- releases - “oe3.3”
- git configuration -- “gitConfigX”
- installers -- “installer3.3” (the 3.3 being the latest release of OE)
- build scripts -- “buildX”
etc. The rule is that if the artifact is tied to a release then use the last release number, otherwise just increment the last tag for that artifact