If you want to contribute to the development of TARDIS, please read through this page and follow the guidelines outlined here. Many of the Development workflow is taken from Astropy and credit belongs to the Astropy team for designing it.
Preparation and Working with Git¶
The first step is to setup up a python environment. We recommend to use Anaconda for this purpose and refer to our Installation guide which covers this topic. Once the python environment is running consult Workflow for Developers to learn about interacting with git and github for the purpose of developing TARDIS.
General Workflow to add a new feature¶
In TARDIS we aim to stick to a test driven development. This uses the testing framework extensively starting with a test that shows this feature lacking via the implementation of the feature until the merging of the code to the main repository.
In most cases we try to break down big features into small, quantifiable goals which are then acted upon.
- Document feature to be added in an issue and maybe ask the mailing list if this feature exists
- Write a test that demonstrates what feature will be added.
- Run the test to verify that it fails in the way you think it should.
- If it fails in an unexpected way, your test may be wrong. This is a great time to ask the group for guidance
- If it passes, you are done! You just added test coverage to an already existing feature, and that is great! (unlikely)
- Add the feature (also known as “a simple matter of programming”).
- Run the test to verify that it passes.
- Write documentation about your feature.
- close issue/partial PR and add to changelog.
This is documentation is mainly intended for core developers of TARDIS. There are several steps to do a release.
Update the Changelog¶
The changelog is located in
CHANGELOG.rst in the root directory of TARDIS
and contains a description of changes between versions. One useful idea is to
mention all the pull requests, which can be accomplished with the tool
github-changes and invoke it
github-changes -o tardis-sn -r tardis --only-pulls --use-commit-body -f tmp_changelog.md
which will write the pull requests into
tmp_changelog.md. This can be used
to put into the actual
Doing the actual release¶
This is best done in a clean environment (so a fresh checkout from the master). We again use the astropy instructions: http://astropy.readthedocs.org/en/latest/development/releasing.html