Development

oms-ratt edited this page Mar 25, 2014 · 10 revisions
Clone this wiki locally

Git and Github

For source code control, issue tracking and documentation we use Git and Github. If you are unfamiliar with Git or Github the Github documentation is a good starting point.

Repositories

MeqTrees consists of various subprojects and related software packages. You can find a list of the repositories here.

Branches

All repositories have a master branch and a devel branch. The master branch is supposed to be stable and should work, but it may contain some features that have not been included in a release yet. The devel branch is used for active development and should only be used by hardcore developers that know what they are doing.

Pull-Requests

The usage of feature branches that implement a specific feature which are merged with pull requests is encouraged.

Releases

Every release for every MeqTrees related software package is a tag of the master repository. Before a release is made you should make sure the package:

  • Actually works, the test suite runs
  • All version numbers (i.e. strings printed such as "version XYZ") are set the the to-be-released version

The release can be made on the github repository page (Releases | Draft new release ...)

Packaging

When a release is made the packages in the Launchpad PPA should be updated. Packaging instructions can be fond here.

Test suite

At the moment most software packages have no proper test suite, apart from the meqtrees-cattery batch test. From now on developers are encouraged to start writing unit tests that cover the changes made to the code base. Python has really good support for unittesting.

Travis

Every commit to every branch and even pull requests of all related software packages will trigger a Travis test build. The repository is downloaded, optionally compiled and installed, and the test suite is run. This integrates really nicely into Github, and if a test suite will fail you will be notified. Every repository has a .travis.yml file which contain the setup & testing procedure. You can read more about this on the travis documentation page.

Hipchat

https://ska-sa.hipchat.com/chat

Documentation & Wiki

The central documentation repository for MeqTrees is this github wiki. It supports various documentation formats, but we prefer MarkDown. More about the wiki syntax.

Website

the MeqTrees website is http://meqtrees.net and the source is maintained in the gh-pages branch of the Meqtrees github tree.

Legacy

The old repositories can be found here.