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
masterbranch should always contain the latest stable release. Basically,masterand the latesttagpoint to the same commit. - The
developbranch contains the current development version.- If you want to submit a pull request please target the
developbranch
- If you want to submit a pull request please target the
- Features are developed in
featurebranches and merged intodevelopwhen they are complete. - We do not really use
hotfixorsupportbranches 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