- Apply one docstring lint to the global lint list (D302 - unicode docstrings should start with u""").
- Create an inclusion list with many more docstring checks (public modules need a docstring, white space and quoting issue, check imperative mood and capitializaton). Add a couple modules to this inclusion list.
- Add tox and Travis targets for this linting.
This gives a person who wants to work on improving Galaxy's in-code docstring documentation three ways to "raise the bar" for the project. One could:
- Add more modules to the inclusion list (.ci/flake8_docstrings_include_list.txt). Many more modules should contain docstrings - especially things in galaxy-lib and web controllers.
- Add more checks to the existing inclusion list checks - I'd say D101 and/or D103 first or any of the missing D2XX or D4XX options. D102 seems a bit too ambitious and I worry it'd be too much of a burden.
- Pick some DXXX check that is ignored globally and fix it for the whole project and then remove it from the exclude list in setup.cfg.
Adds two tasks:
- Add a task that just lints everything the way Galaxy's default linting is (py27-lint-imports) and don't enforce it passes on Travis.
- Add a task that just lints a subset we expect to past, hopefully we can grow this subset over time.
Once the inverse of the subset we are testing is just the blacklist, we can eliminate bothtasks and just wrap this into Galaxy's default linting.
These tasks require an older flake8 until https://github.com/PyCQA/flake8-import-order/issues/79#issuecomment-235052270 is part of a released version of flake8.
This does two things - runs the Python unit tests and lints a subset of the Python code. I wanted to also run the QUnit tests but they are not currently passing.