First, you need a couple global dependencies installed, see their documentation for details:
Note that these tools require a UNIX-style shell, such as bash or zsh. If you are on Windows, you can use WSL or Git Bash. If you are using Pycharm, you can configure the built-in terminal to use Git Bash.
Then clone the repo and run direnv allow
. This will take a while on the first time
to install the remaining dependencies.
Make your changes and then run just
to run formatting,
linting, and tests.
Develop documentation by running just docs
to start up a dev server.
To run tests only, run just test
. You can pass additional arguments to pytest,
e.g. just test -k test_something
.
Prior to committing, you can run just
with no arguments to run all the checks.
This project uses conventional commits to power semantic release. This means that when you commit, you should use the following format:
<type>[optional scope]: <description>
For example, feat: Add new feature
or fix: Fix bug
.
When creating a PR, please name the PR in this way as well so that the squashed commit from the PR will have a conventional commit message.
This project uses Husky and Lint-staged to run pre-commit hooks. This means that
when you commit, it will run just format
and just strip
on the files
you edited, and also check that your commit message is a conventional commit.
If you are not able to commit, it is likely because your commit message is not in the conventional commit format.
This project uses snapshot testing with syrupy.
Run just update-test-snapshots
to update the snapshots. You can also pass it
pytest
arguments, e.g. just update-test-snapshots -k forecast
to only
update forecast snapshots.