FAQ¶
Why use pdm
⧉ instead of uv
⧉?¶
pdm
offers more flexibility, including:
- PEP 582 support – Simplifies dependency management without virtual environments.
- Custom commands – Enables unified workflows without extra tools (more details ⧉).
Note
uv
is under evaluation and may be adopted in the future.
Why use renovate
⧉ instead of dependabot
⧉?¶
renovate
provides better support for:
Note
dependabot
may be reconsidered once key issues are resolved and uv
is used.
Why is basedpyright
⧉ used?¶
basedpyright
is a fork of pyright
⧉` which:
- makes the package
pip
installable (unlikepyright
⧉) - provides LSP ⧉ implementation for Python (unlike
mypy
⧉) - supports latest Python versions and features (unlike
pytype
⧉)
Why use the rejected pep582
⧉ standard?¶
This approach allows:
-
Local dependencies – Everything stays in the project directory.
-
Reusable installs – Simplifies scripting (e.g., running tests without
nox
ortox
).
Note
This may change as tools such as uv
evolve.
Why is CHANGELOG.md
empty?¶
It is not! It links to GitHub releases, which serve as the actual changelog.
Options considered:
- Manual updates – Prone to being outdated.
- Bot updates – Conflicts with branch protection (details ⧉).
- GitHub releases link – Automated and secure.
Tip
You can manually copy release notes into CHANGELOG.md
after a release.
Why are there so many caches in GitHub Actions?¶
Cache per each dev-dependency
, standard dependencies (including optional) and even their combinations.
This optimizes download times, which speeds up the workflows.
Tip
Check .github/workflows/cache.yml
for cache settings.
Feature does not work on Windows¶
Windows features are best-effort and may not be fully supported.
In terms of pre-commit hooks, more involved commands (e.g. sbom-*
scripts or fix-legal
) use Linux/MacOS specific features and may not work.
Upvote this issue ⧉ when it comes to fix-legal
script.