j5 is developed on GitHub and pull requests should be submitted there. If you have write access to the repository, you optionally can develop your changes on a branch within the main repository. Alternatively, please fork the j5 repository and pull request from there.
If you are working on something that has an existing issue open on the j5 repository, please ensure that you assign the issue to yourself such that duplication of work does not accidentally occur.
If you need help with Git, there are some good tutorial resources here:
You will need the following installed on your machine:
Now clone the repository from GitHub into a folder on your local machine.
Inside that folder, we need to tell poetry to install the dev dependencies:
You can now enter the virtual environment using
poetry shell and develop using your IDE of choice.
As our code is used and viewed by students, we have a high standard of code within j5. All code must be statically typed, linted and covered in unit tests.
You can run all of the required tests with one command:
We use pytest and coverage.py to do our unit testing.
Execute the test suite:
If you wish to view the HTML output from coverage.py to help you find statements that are not covered by unit tests, you can run the test suite in html-cov mode.
Execute the test suite in html-cov mode:
We use flake8 and a number of extensions to ensure that our code meets the PEP 8 standards.
Execute the linter:
Static Type Checking¶
We use mypy to statically type check our code.
Execute Type Checking:
We are using Sphinx to generate documentation for the project.
All documentation can be found in the
Generate HTML Documentation: