PACKAGE_NAME Release Notes¶
X.Y.Z (YYYY-MM-DD)¶
What's New?¶
- Briefly describe the substantial changes to the code in here when you make a PR.
- That way users (and future us) have documentation as to what's going on.
- You can refer to the relevant pull request like this: !1
- Don't hesitate to give shoutouts to folks who contributed, e.g. @cmgosnell
- You can link to issues that were closed like this: #2, #3, #4
Bug Fixes¶
- It's good to make a note of any known bugs that are fixed by the release, and refer to the relevant issues.
Known Issues¶
- It's also good to list any remaining known problems, and link to their issues too.
0.5.8 (2026-07-19)¶
What's New?¶
- Every task under
[tool.pixi.tasks]inpyproject.tomlnow has adescription, sopixi task list(and the description pixi prints alongside each task as it runs) actually explains what each one does, instead of leaving theDescriptioncolumn blank. See PR !547 - Replaced references to installing packages with
pipinREADME.mdanddocs/tools.mdwith uv, which is faster and has become the de facto standard. Left two references topipalone where switching wouldn't make sense:docs/release_notes.md's historical changelog entries (which describe a past Dependabot config value, not an instruction to users) and the transientpip install setuptools-scmstep indocker-build-push.yml(a single lightweight package installed once on an ephemeral CI runner, whereuv's speed advantage isn't worth the extrasetup-uvaction). See PR !547 - Added typos (via the
adhtruong/mirrors-typospre-commit hook) to spell check documentation and code comments, and detect-secrets to scan for accidentally committed secrets and credentials, with a fresh.secrets.baselinerecording that nothing was found. Both run as regular pre-commit.ci-hosted hooks, same asmarkdownlint-cli2/shellcheck/actionlint, so they don't need a dedicated pixi task or CI step. See PR !547 - Marked
pixi.lockmerge=oursin.gitattributes, so a merge conflict on the generated lockfile keeps our side instead of attempting a line-by-line merge --pixi install/pixi updateregenerates it anyway, so a hand-merged version would just be replaced. Also marked*.ipynblinguist-detectable=false, so notebook JSON doesn't dominate GitHub's per-repo language statistics.merge=oursneeds a one-time, per-clonegit config merge.ours.driver trueto actually take effect -- git silently ignores the attribute otherwise, by design, since a tracked file can't be allowed to specify an arbitrary merge driver to run without each clone opting in locally first. Existing clones should run that command once to pick this up. See PR !547 - Documented all of the above in
docs/tools.md: addedtypos/detect-secretsto the "Code & Documentation Linters" list, and added a new "Git Attributes" section (linked fromREADME.md) covering.gitattributesand themerge.ours.driversetup step. See PR !547
0.5.7 (2026-07-18)¶
What's New?¶
- Replaced pyrefly with ty
(Astral's Rust-based type checker) for type checking, configured under the new
[tool.ty.src]/[tool.ty.environment]sections ofpyproject.tomland run viapixi run lint. Unlike pyrefly's official pre-commit hook, ty's official hook shells out touv check, which needs network access to resolve dependencies -- incompatible with pre-commit.ci. It now runs as a local pre-commit hook through the pixi environment instead, and is separately enforced by a dedicated step in thepytestGitHub Actions workflow, since pre-commit.ci skips it. See PR !544 - Added a
.gitattributesfile markingpixi.lockaslinguist-generated, so GitHub collapses it by default in PR diffs instead of it dominating the review every time a dependency changes. See PR !544
Bug Fixes¶
- Narrowed the GitHub App token used by
update-lockfiles.ymlto just thecontents/pull-requestspermissions that workflow actually needs, instead of inheriting the app's full installed permission set, and stoppedactions/checkoutfrom persisting that token in the local git config once nothing after checkout needs it. See PR !544
0.5.6 (2026-07-17)¶
Bug Fixes¶
- Fixed the
build-package-releaseworkflow's pre-release check, which only verified the tagged commit was an ancestor ofmain-- true of any past commit onmain, including a stale localmainthat's behindorigin. It now requires an exact match againstorigin/main's current tip, so tagging from a stale local checkout fails loudly instead of silently releasing an old commit.
0.5.5 (2026-07-17)¶
No functional changes. This tag points at the same commit as v0.5.4 -- another
instance of the same stale-tag pattern 0.5.6, above, now catches.
0.5.4 (2026-07-17)¶
What's New?¶
- Moved the "What this template provides" tooling documentation out of
README.mdand into a newdocs/tools.mdpage, linked from a short list in the README, so the README stays focused on getting started and the docs site carries the in-depth tooling reference. - Added the shellcheck pre-commit hook to catch common bugs and portability issues in any shell scripts added to the repo.
- Renamed the local
unit-testspre-commit hook topytestfor clarity.
Bug Fixes¶
- Fixed
test_winston_argsintests/integration/console_scripts_test.py, which was marking non-integer CLI arguments asxfaileven though rejecting them is the correct, intended behavior. Split it intotest_winston_valid_argsandtest_winston_invalid_args, with the latter asserting the expected failure (non-zero exit code and an "invalid int value" error) so it reports a real PASS instead of masking the backwards assertion withxfail. - Removed a stale link to PUDL's release notes page from the PR template's documentation checklist; it now just says to update the release notes.
0.5.3 (2026-07-17)¶
No functional changes. This tag points at the same commit as v0.5.2 -- consistent
with being cut from a stale local main, the exact failure mode 0.5.5, above, now
catches.
0.5.2 (2026-07-17)¶
What's New?¶
- Added basic
.github/ISSUE_TEMPLATE/task.mdand.github/pull_request_template.mdtemplates (!540). - Excluded
dependabot[bot]andpre-commit-ci[bot]authored PRs from GitHub's auto-generated release notes, via a new.github/release.yml, so only substantive PRs show up there (!541).
Bug Fixes¶
- Disabled
markdownlint'sMD025front-matter-title heuristic, which was flagging a false "multiple top-level headings" error ontitle:keys in GitHub issue template front matter. - Added the
mdformat-frontmatterplugin somdformatrecognizes YAML front matter (used by the new issue/PR templates) instead of mangling its---delimiters into thematic breaks.
0.5.1 (2026-07-17)¶
What's New?¶
- Replaced the archived
tibdex/github-app-tokenaction with the officialactions/create-github-app-token, and replacedridedott/merge-me-actionwithgh pr merge --auto, which is documented to be merge-queue-aware. - Switched
bot-auto-mergeto trigger onpull_request_target(restricted to thedependabot/pre-commit-ciactors) instead ofworkflow_run. - Grouped all
github-actionsecosystem Dependabot updates into a single PR, and dropped thepipecosystem entry (Python dependencies are refreshed weekly byupdate-lockfiles.ymlinstead). - Added
.devcontainer/devcontainer.json, a basic editor-agnostic development container. - Pointed the docs badge/links at the intended
docs.catalyst.coop/cheshireURL, and added real social links (BlueSky, Mastodon, LinkedIn, Open Collective) to the docs footer. - Enabled
pymdownx.magiclinkshorthand (#123,@user, etc. auto-link to GitHub).
Bug Fixes¶
- Switched CodeCov uploads to the org's shared "Global Upload Token" instead of a
stale hardcoded per-repo token, and stopped coverage-upload failures from failing
the required
pytestcheck. (!537)
0.5.0 (2026-07-16)¶
What's New?¶
- Major modernization overhaul of the template's tooling:
- Replaced tox + conda with pixi for environment and task
management (
pixi run test,lint,format,docs,build). - Replaced Sphinx/RST docs with Zensical and Markdown,
including an API reference page rendered by
mkdocstrings. - Replaced
setuptools/setuptools_scmwithhatchling/hatch-vcs, so the version still comes straight from git tags. - Replaced
mypywith pyrefly for type checking. - Switched from running
pre-commitdirectly to running the same.pre-commit-config.yamlvia prek, and added several new hooks (trailing-whitespace,detect-private-key,destroyed-symlinks,check-json,no-commit-to-branch, a few morepygrep-hooks, andmdformat-mkdocs). - Rewrote the GitHub Actions workflows: CI now runs through pixi (
pytest.yml), docs are built and published to GitHub Pages (docs.yml), Docker images are only pushed formain/tags and only once tests pass (docker-build-push.yml), and a new weeklyupdate-lockfiles.ymlrefreshespixi.lockand the pre-commit hook pins. - Converted
README.rsttoREADME.md, and added a templateAGENTS.md(symlinked fromCLAUDE.md) with instructions for AI coding agents. - Removed a pile of now-dead tooling and cruft:
tox.ini,environment.yml,.readthedocs.yml,.coveragerc,MANIFEST.in. - Removed upper version bounds from our dependencies, relying on
pixi.lockfor reproducibility instead.
- Replaced tox + conda with pixi for environment and task
management (
Known Issues¶
- Zensical and its
mkdocstringsintegration are both still pre-1.0 and may change. - Automatic API reference generation (e.g. via
mkdocs-gen-files) isn't supported by Zensical yet, sodocs/reference.mdhas to be updated by hand for new modules.
0.4.1 (2023-09-17)¶
What's New?¶
- Adopt
rufffor linting.
0.4.0 (2023-09-16)¶
What's New?¶
- Publish releases to real PyPI instead of TestPyPI.
- Notify Slack when a new release is published.
- Remove the old
repo2dockerworkflow.
0.3.4 (2023-09-15)¶
What's New?¶
- Remove the obsolete
setup.py; rely solely onpyproject.toml.
0.3.3 (2023-09-15)¶
What's New?¶
- Auto-generate GitHub release notes from merged PRs.
0.3.2 (2023-09-15)¶
What's New?¶
- Use
gh release createinstead of manually uploading release assets.
0.3.1 (2023-09-15)¶
What's New?¶
- Pin the Sigstore signing action to an exact version for reliable release signing.
0.3.0 (2023-09-15)¶
What's New?¶
- Release process housekeeping; no user-facing changes.
0.2.1 (2023-09-15)¶
Bug Fixes¶
- Fix the documentation deployment environment URL.
0.2.0 (2023-09-15)¶
What's New?¶
- Add a
Dockerfile,hadolintlinting, and thedocker-build-pushworkflow. - Migrate to
rstcheck6.0. - Consolidate the CI, notification, and dependabot-merge jobs into distinct workflows.
0.1.0 (2022-04-29)¶
What's New?¶
- This is the first fully functional and documented version of our template repository.
Known Issues¶
- Need to get some user feedback!
- Still need to look at updating our Code of Conduct. See #12