Developer Documentation

This document describes the tools and practices used to develop the Chapel domain.

Overview

  • Fork the repo on github.
  • Create a well named branch.
  • Run testing.
  • Submit pull request.
  • Email or @mention the team in the comments.
git clone <url_for_fork>
cd sphinxcontrib-chapeldomain/
git checkout -b <branch_name>
pip install -r requirements.txt -r test-requirements.txt
... develop ...
tox

Testing

Travis runs the tests automically and records code coverage in Coveralls. On a local workstation, tox can be used to run the tests in a similar fashion.

tox              # run unittests with py27, py34
tox -e flake8    # flake8 source code checker
tox -e coverage  # run code coverage analysis
tox -e docs      # verify the docs build
tox -e doc-test  # verify the acceptance tests build

Release

To release the latest sources on PyPI and tag the repo, update your working copy to the latest master, then use the util/release.bash script:

git checkout master
git pull https://github.com/chapel-lang/sphinxcontrib-chapeldomain master
./util/release.bash

The script does the following:

  • Ensure the current branch is master.
  • Ensure it is run inside a virtualenv.
  • Discover the version, using python setup.py --version.
  • Install the regular, docs, and test requirements.
  • Install the package in develop mode.
  • Run tox against several environments.
  • Tag the tip of master with the version number, and push the tag to the remote.
  • Clean the repo.
  • Run the python package build and upload to PyPI.