This release stabilizes the core mechanics of the template, including environment setup and synchronization, CI/CD workflows, documentation and tests, and more. The template now wraps uv run
in ./dev.ps1
as Invoke-Uv
, aliased to iuv
, which keeps environment variables and hooks in sync in addition to the syncing done by uv
itself.
Changes
- Restructure template as a modern
uv
project with workspace layout and lockfiles - Add TOML and Prettier formatting to
pre-commit
- Introduce
Invoke-Uv.ps1
andiuv
alias which wrapsuv run
, but also syncs submodules, environment variables, ensures pre-commit hooks are installed - Have
Invoke-Uv.ps1
also work correctly in CI, invoking--locked
and--frozen
when appropriate and generating artifacts for inspecting the packages installed in CI runs - Transition Renovate dependency management to maintain PEP 621 requirements in
pyproject.toml
by automatically re-locking withuv
- Simplify CI pipelines, don't commit during them, allowing this template to function in repos where
main
has push protection - Leverage
uv
's Python executable management to avoid having to install it - Finalize the complete machine setup scripts for Windows, Linux, and MacOS
- Fix Codecov integration (#437)
- Elevate Pyright warnings to errors in CI (37d079c5)
- Generate appropriate coverage report format for Codecov (c22b475b)
- Handle locked submodule configs (75d4cb02)
- Only run coverage in task and CI, not in VSCode test runner (Fixes #447) (bb19a367)
- Remove Pylance bundled stubs instead of synchronizing
submodules/typings
(8579ca8c) - Require docs build to pass before updating lock (Fixes #445) (1d78af44)
- Run winget more safely and facilitate commit-pinned changelog entries.
- Require
exact
andwinget
source, and run winget silently for safter Windows machine initialization. - Add task for timestamped ad-hoc/orphan changelog entries. 34dede3f
- Single-source Pylance version (5e878127)