- Install Python Driving Assistant
- Run
pdm install
to create a virtual environment and install the dependencies - If you're working on the documentation and need to build it locally, install the extra dependencies with
pdm install -G docs
- Install pre-commit
- Run
pre-commit install
to install pre-commit hooks
- Fork the NIAPI repository
- Clone your fork locally with git
- Set up the environment
- Make your changes
- (Optional) Run
pre-commit run --all-files
to run linters and formatters. This step is optional and will be executed automatically by git before you make a commit, but you may want to run it manually in order to apply fixes - Commit your changes to git
- Push the changes to your fork
- Open a pull request. Give the pull request a descriptive title
indicating what it changes. If it has a corresponding open issue, the issue number should be included in the title as
well. For example a pull request that fixes issue
Bug: Increased stack size making it impossible to find needle #100
could be titledFix #100 - Make needles easier to find by applying fire to haystack
- All code should be fully typed. This is enforced via mypy.
- All code should be tested. This is enforced via pytest.
- All code should be properly formatted. This is enforced via black and Ruff.
The documentation is located in the /docs
directory and is ReST and
Sphinx. If you're unfamiliar with any of those,
ReStructuredText primer and
Sphinx quickstart are recommended reads.
To run or build the docs locally, you need to first install the required dependencies:
pdm install -G docs
Then you can serve the documentation with make docs-serve
, or build them with make docs
.
- Increment the version in
pyproject.toml
. The version should follow semantic versioning and PEP 440. - Draft a new release on GitHub
- Use
vMAJOR.MINOR.PATCH
(e.g.v1.2.3
) as both the tag and release title - Fill in the release description. You can use the "Generate release notes" function to get a draft for this
- Use
- Commit your changes and push to
main
- Publish the release
- Check that the "publish" action has run successfully