Developer Notes
Git and GitHub
In general all Lappsgrid projects in GitHub should follow (more or less) the Git Flow branching model. Using the Git extensions is highly recommended, but is not required.
What this means is that:
- The
master
branch should always contain the latest stable release. Basically,master
and the latesttag
point to the same commit. - The
develop
branch contains the current development version.- If you want to submit a pull request please target the
develop
branch
- If you want to submit a pull request please target the
- Features are developed in
feature
branches and merged intodevelop
when they are complete. - We do not really use
hotfix
orsupport
branches at this time.
Continuous Integration and Deployment
The LAPPS Grid project uses Travis for continuous integration and deployment. While there are many plugins available for performing a release, none fit in easily with our workflow and tool chain. In particular, most plugins for deployment want to do everything for everyone all the time. It ends up being a lot of work to perform what is essentially:
$> mvn package javadoc:jar source:jar deploy
Of course, deploying artifacts to Maven Central is slightly more complicated, but only slightly.
The LAPPS Grid already uses Travis for continuous integration so configuring Travis to perform the release was a logical choice.
Travis watches both develop
and master
branches and build both when changes are detected.
However, when code is pushed to the master
branch Travis will also:
- Generate the Javadoc and Source jar files.
- Generate the PGP signatures for everything.
- Deploy all artifacts to the Sonatype staging repository.
- Generate the Maven site (API documentation) and deploy it to lapps.github.io