Contributing to ATM and BTB¶
Ways to contribute¶
ATM is a research project under active development, and there’s a ton of work to do. To get started helping out, you can browse the issues page on Github and look for issues tagged with “help wanted” or “good first issue.” An easy first pull request might flesh out the documentation for a confusing feature or just fix a typo. You can also file an issue to report a bug, suggest a feature, or ask a question.
If you’re looking to make a more in-depth contribution, check out our guides on adding a classification method and adding a BTB Tuner or Selector.
Requirements¶
If you’d like to contribute code or documentation, to have installed the project in development mode.
Style¶
We try to stick to the Google style guide where possible. We also use flake8 (for Python best practices) and isort (for organizing imports) to enforce general consistency.
To check if your code passes a style sanity check, run make lint
from the
main directory.
Tests¶
We currently have a limited (for now!) suite of unit tests that ensure at least
most of ATM is working correctly. You can run the tests locally with pytest
(which will use your local python environment) or tox
(which will create a
new one from scratch); All tests should pass for every commit on master – this
means you’ll have to update the code in atm/tests/unit_tests
if you modify
the way anything works. In addition, you should create new tests for any new
features or functionalities you add. See the pytest documentation and the existing tests for more information.
All unit and integration tests are run automatically for each pull request and each commit on master with CircleCI. We won’t merge anything that doesn’t pass all the tests and style checks.
Docs¶
All documentation source files are in the docs/source/
directory. To build
the docs after you’ve made a change, run make html
from the docs/
directory; the compiled HTML files will be in docs/build/
.