Development Processes

Bug Tracker

You can find our bug tracker at: http://code.mvpafrica.org/.

Mailing List

We do not have a public developer mailing list (yet). You can reach the ChildCount+ developers on our internal mailing list at dev at mvpafrica dot org.

Repo and Branches

Repositories

The ChildCount+ code repository is online here:

The installation and server configuration files for ChildCount+ installations are online here:

Stages and Versions

Different versions of the ChildCount+ code often require different server configurations. We refer to each successive server configuration as a “stage” while each release of the source code is a “version.” We use letters (A, B, C, ...) to refer to stages, and numbers (0, 1, 2, ...) to refer to versions. The version numbers reset with each stage.

So, if the latest code is stageE-v1 and a developer creates a release that does not require changes to the server configuration, the next release will be stageE-v2. Afterwards, if the next release does require changes to the configuration files, the release tag will be stageF-v0.

Branches

The ChildCount+ code repository has two two main branches: ccdev and ccstable.

If a software developer wants to create a new ChildCount+ feature, the process generally goes like this:

  1. Developer creates a new branch from ccdev, let’s call this branch twitter and pretend that it adds some Twitter functionality to ChildCount+.
  2. Developer does the work on the twitter branch, merging changes from ccdev into twitter to make sure that twitter stays current.
  3. When the developer is satisfied that the Twitter feature works as hoped, she merges twitter into the ccdev branch.
  4. Every few months, the release developer merges all of the changes from ccdev into ccstable. The release developer tests all of these features and makes sure that the translations and localization works properly for French- and Tigrinya-speaking sites.
  5. The release developer adds a git tag of the format stageX-vY (where X is the stage code and Y is the version number) to the ccstable branch.
  6. If a new stage is being created: The release developer writes up a textual description of how to update the server to accommodate the new code and posts it on http://we.mvpafrica.org.
  7. The release developer pushes the ccstable code out to the sites. In MVP lingo, this is a “stage”.

Documentation

This documentation is hosted on GitHub and is created using Sphinx.

We develop the documentation on the ccdev branch, then built HTML documentation files into the root of the gh-pages branch. The gh-pages branch is a special branch for the GitHub Pages feature. Files pushed there end up being served at http://mvpdev.github.com/rapidsms/. The documentation mirror at http://docs.childcount.org/ should copy the documentation from http://mvpdev.github.com/rapidsms/ after every commit to the GitHub repository.

Who to Contact

The best way to get in touch with the ChildCount+ Developers is to look for the contact information listed on http://www.childcount.org/. Those contacts are the most likely to be up to date. You can also catch us at @childcount.