Thank you for your interest in improving this project. Your contributions are appreciated.
In the following you can find a collection of frequently asked questions and hopefully good answers.
- How to setup local dev environment?
- How to start a development server?
- How to release a new version?
Also consider taking a look at the development documentation at
docs/devel
.
Ensure that Python Poetry is installed. After cloning this project (probably as a fork), install the environment and enter a Poetry shell.
poetry install
poetry shell
Read docs/devel/poetry.md
for more information.
Setup the pre-commit hooks. Note that you don't have to install Pre-commit manually. It is part of the dev dependencies managed by pre-commit.
pre-commit install --install-hooks
pre-commit install --install-hooks --hook-type commit-msg
Run all hooks to make sure things are alright.
pre-commit run -a
Read docs/devel/pre-commit.md
for more
information.
Run the tests to make sure everything is setup correctly. You can either use the
helper script to trigger tests or execute pytest
directly.
./scripts/test.sh
Uvicorn is the recommended development server. It is installed as part of the
dependencies. You can either use the helper script to start a server or execute
uvicorn
directly.
./scripts/uvicorn.sh
For release management Release Please is used. Read
docs/devel/please-release.md
for further
information. The general approach is described in the following.
Ensure that changes to be released are merged or pushed to the default branch. Ensure that the relevant commits follow the conventional commits convention.
Wait for the GitHub Actions workflow release-please.yaml
to finish.
Check the appropriate pull request managed by Release Please. The version is determined by semantic versioning and conventional commits.
Add custom description to release notes and changelog
- Checkout the Release Please pull request branch
- Update the changelog file content.
- Update the pull request description.
The custom block should look somewhat like this:
### 🍀 Summary 🍀
<One line summarizing changes.>
### ✨ Highlights ✨
<List of highlights with attributions.>
Finally, merge the Release Please pull request.