Changelog#
All notable changes to this project will be documented in this file.
Unreleased#
Warning
These changes reflect the current development progress and have not been part of a PyPI release yet.
No significant changes.
2025.1.3#
Retire the hacky “custom” lockfile approach and stabilize around now standardized
uv.lockMigrate to
packagesanduvworkspaces layoutIntroduce
pipelineworkflow package in preparation for migrating reproducible research pipelines from PhD workImprove setup for first-timers, new machines, fresh repos, implemented as
justrecipesSynchronize environment variables in a few places, unifying contrib/CI config by choosing the lesser of two evils, compared with a truly “single source of truth”
The above facilitated minimizing directly templated files (e.g.
template/**/*.jinjafiles), reducing diffs on template updatesInstall and use
uvlocally with a project-specific version instead of hijacking global uv and forcing it to a certain versionFunnel almost all useful actions through the
justcommand runner via e.g../j.ps1 <recipe> <args> ...Retire PowerShell scripts except for
./j.ps1andscripts/pre.ps1which thinly wrapjustinvocations and handle the few thingsjustcannot do (or cannot do neatly)Base most of CI on these
justrecipes, allowing local testing and debugging of CI actions. Only the potentially sensitive release workflow is “hard-coded” in the workflow fileImplement artifact attestation and PyPI publishing via OIDC in release workflows
After a few false starts (see the latest flurry of releases), implement release workflow that requires normal CI to pass, optionally publishes to PyPI, and updates release notes
Derive the optional VSCode layer’s Tasks from the
justrecipes, and generally make the template more VSCode-optionalModernize Renovate dependency management configuration, by default make it less noisy
Try generating CI environment workflow and separating changelog drafting from releasing (75edd78)
Unify behavior of Pyright (or optional Pylance) locally and in CI without resorting to a platform-specific local extension approach
2025.1.2#
Released while attempting to stabilize the release workflow, maintained here only to match the immutable Zenodo-tracked release record. Significant changes documented in 2025.1.3 above.
2025.1.1#
Released while attempting to stabilize the release workflow, maintained here only to match the immutable Zenodo-tracked release record. Significant changes documented in 2025.1.3 above.
2025.1.0#
Released while attempting to stabilize the release workflow, maintained here only to match the immutable Zenodo-tracked release record. Significant changes documented in 2025.1.3 above.
2024.2.0#
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.
Restructure template as a modern
uvproject with workspace layout and lockfilesAdd TOML and Prettier formatting to
pre-commitIntroduce
Invoke-Uv.ps1andiuvalias which wrapsuv run, but also syncs submodules, environment variables, ensures pre-commit hooks are installedHave
Invoke-Uv.ps1also work correctly in CI, invoking--lockedand--frozenwhen appropriate and generating artifacts for inspecting the packages installed in CI runsTransition Renovate dependency management to maintain PEP 621 requirements in
pyproject.tomlby automatically re-locking withuvSimplify CI pipelines, don’t commit during them, allowing this template to function in repos where
mainhas push protectionLeverage
uv’s Python executable management to avoid having to install itFinalize 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
exactandwingetsource, and run winget silently for safter Windows machine initialization.Add task for timestamped ad-hoc/orphan changelog entries. 34dede3f
Single-source Pylance version (5e878127)
2024.1.1#
Make first release
Actually compare directs (#397)
Specify automation profile (#406)
Fix splatting in Windows install script in contributing guide (#413)
Fix
sync.pyforlock.jsonexisting but empty (#415)Fix
powershellinvocation for paths containing spaces (#416)Produce an output
requirements.txtwith all requirements (#417)Mitigate CVE-2024-37891 by setting
urllib3>=2.2.2(#421)Add changelog entry step to contribution flow (#423)
Added towncrier
Fix
changereleaseworkflow and reduce duplication