2026.08.14
sp-repo-review (the package)
- New
securityfamily: addedSEC001, which asks projects with GitHub Actions to run zizmor, either as thezizmorcore/zizmor-pre-commithook or thezizmorcore/zizmor-action. (#798) MYfamily covers ty and pyrefly:MY100now accepts atool.pyreflyortool.tysection,MY101accepts a Pyreflypreset, and the MyPy-only checks (MY102-MY106) are skipped when MyPy is not configured. (#818)- New
PY008check: projects must have a.gitignorefile. (#827) PC111acceptsruff-format: the docs-formatting check now passes if Markdown files reach theruff-formathook (Ruff 0.16+), as well as withblacken-docs. (#833)- Removed
RF102andRF103: Ruff 0.16 selects isort (I) and pyupgrade (UP) by default, so the checks are no longer needed. (#843) sp-ruff-checksmarks default rule groups:BLE,DTZ,FA,FLY,I,INT,PIE, andYTTare now shown in a "Selected, but on by default (safe to remove)" section. (#843)
Cookie (the template)
- MkDocs replaced with ProperDocs: the
mkdocsdocs option is nowproperdocs, a maintained MkDocs fork.mkdocs.ymlbecomesproperdocs.yml, and the noxfile and.readthedocs.yamlcallproperdocsinstead. (#838) - Ruff formats code in the docs:
blacken-docswas removed, andruff-formatgetstypes_or: [python, pyi, jupyter, markdown, pyproject]. (#833) - zizmor in generated projects: added the
zizmor-pre-commithook for GitHub CI projects. (#798) - Hardened generated workflows: top-level
permissions: {}with minimal per-jobcontents: read, andpersist-credentials: falseon all checkouts. (#798) build-and-inspect-python-packagepinned to v3.0.1: the action no longer publishes moving tags, so@v2had to become a full version. (#848)- Disabled the uv cache in the wheel-build job, to keep cached files out of published wheels. (#798)
- Added a dependabot
cooldownof 7 days. (#820) - Dropped the rule groups Ruff 0.16 selects by default from the generated
extend-select. (#843) - Bumped
actions/checkoutandactions/setup-pythonto v7,astral-sh/setup-uvto v9, andcibuildwheelto v4.2. (#844) - Use
actions/attestinstead of the (now) wrapper action (#850)
Guide
- New AI page: covers the use of coding agents in scientific Python projects. (#821)
- New security page: covers zizmor, workflow permissions, and other supply-chain topics. (#798)
- Reorganized into nested sections: pages moved out of
docs/pages/to restore the original guide URLs (with redirect stubs), titles simplified, category indexes now list all pages, and internal links use resolvable root-absolute paths. (#814, #831, #835, #840, #841) - Renamed the mypy guide to "typing", and added
tyandpyreflytabs next to mypy. (#816, #817, #836) - Covered Zensical in the docs guide. (#837)
- Fixed the broken links that the learn site link check reported. (#839)
Infrastructure
- Fixed an unsound ternary in the
alls-greenallowed-skips list. (#815) - Pinned GitHub Actions in this repo. (#811)
- Bumped repo-review-webapp to 1.2.1 (#809) and mystmd to 1.10.1 (#830).
- Multiple rounds of pre-commit hook and dependency version bumps. (#812, #824, #825, #828, #832, #842, #844, #845, #847, #849)
New Contributors
Full Changelog: 2026.06.18...HEAD
2026.06.18
sp-repo-review (the package)
sp-ruff-checksoutput formats: addedplainandautoformats.autodetects AI-agent environments (viaAGENT,CLAUDECODE,OPENCODE_CLIENT, etc. env vars) and usesplain; falls back toplainwhenrichisn't installed. (#786)- PC140 type checker check: now accepts
pyrefly(facebook/pyrefly-pre-commit) (#789) andty(astral-sh/ty-pre-commit)(#804) alongside mypy. - PC180 markdown formatter check: added
panache-pre-commit,mado, andmarkdownlintto accepted repos. (#793)
Cookie (the template)
- ReadTheDocs native uv integration: generated
.readthedocs.yamlnow usespython.install.method: uvwithsyncfor Sphinx, bumped build Python to 3.14. (#783) - Bumped
astral-sh/setup-uvto the maintained tag scheme in generated workflows. (#777)
Guide
- Migrated docs site from Jekyll to MyST (JupyterBook 2.0) using
scientific-python-myst-theme. Replaced Liquid tags with MyST roles/directives, addeddocs/myst.ymlTOC (29 pages), customrr-role.mjsplugin,docs/assets/css/site.css, and updated.readthedocs.yamlto a Node/mystmd build. (#792, #801, #805) - Added
prektabs to the GitHub Actions docs. (#791) - Used hyphenated page slugs in internal doc links to match filenames. (#796)
- Fixed factual errors, inconsistencies, and typos across the guide (Snell's law output, inverted
skipif, broken hatch URL,packaging-simplePP004/PY004 mix-up, etc.). (#800) - Fixed malformed GHA images table. (#780)
- Removed reference to
gautamkrishnar/keepalive-workflowthat violated GitHub ToS. (#781)
Infrastructure
- Adopted zizmor for this repo's own workflows: added
.github/zizmor.yml, scoped minimal per-job permissions,persist-credentials: false, dependabot cooldown, etc. (#799) - Bumped
actions/upload-artifact4 → 7 (#797) andastral-sh/setup-uv8.0.0 → 8.2.0 (#778, #795) in this repo's workflows. - Bumped embedded repo-review-webapp anywidget + repo-review dep to 1.2.0 (webapp now runs Pyodide in a web worker). (#806) Also bumped repo-review-app through 1.0.0 final → 1.0.3, fixing mobile formatting for responsive entry boxes. (#771, #772, #8b0efde, #dfc72a2, #0e9873f)
- Added conda badge to README. (#772)
- Fixed typos in module documentation (
docs/pages/tutorials/module.md). (#802) - Multiple rounds of pre-commit hook and dependency version bumps across generated
ci.yml,cd.yml, and.pre-commit-config.yaml. (#774, #779, #782, #784, #787, #790, #794, #803)
New Contributors
Full Changelog: 2026.04.04...2026.06.18
2026.04.04
2026.04.03
What's Changed
- feat: add a check for trusted publishing by @henryiii in #764
- fix: disable pre-commit.ci checks if using dependabot pre-commit by @henryiii in #758
- fix: allow flake8 as a linter too by @henryiii in #757
- fix: minor touchup to template by @henryiii in #751
- fix: use modern badge URL by @henryiii in #753
- fix: trim down Zensical, fix copyright year by @henryiii in #754
- fix: better zensical setup by @henryiii in #756
- fix: cap for uv backend by @henryiii in #759
- ci: more speed by @henryiii in #752
- chore: support repo-review 1.0 prefetch by @henryiii in #763
- chore: bump ruby deps by @henryiii in #765
Full Changelog: 2026.03.02...2026.04.03
2026.03.02
What's Changed
- feat: add Zensical documentation option by @VeckoTheGecko in #738
- feat: add badge for code coverage by @cyrraz in #722
- fix: add missing leading
#to sp-repo-review's NOX201 example by @edgarrmondragon in #731 - fix: PC191 raising TypeError when no ruff config present by @mfisher87 in #746
- fix: allow
tox.tomlin rulePY007by @neutrinoceros in #739 - fix: compiled page fixes by @henryiii in #711
- fix: follow noxfile recommendation NOX201, NOX202, NOX203 by @cyrraz in #720
- fix: match cookiecutter output with new TOMLMatcher by @henryiii in #714
- fix: modern PyO3 example, better compiled docs by @henryiii in #715
- fix: show pytest 9 examples too by @henryiii in #748
- fix: update workflows, templates, and instructions to mention new macOS Intel images by @agriyakhetarpal in #709
- fix: use modern hatch test and dependency-groups by @henryiii in #716
- chore: correct .pre-commit-config.yaml filename in version bump by @jonathanberthias in #707
- chore: use pytest 9+, default to that by @henryiii in #725
- ci: add CI for macos-15-intel images by @agriyakhetarpal in #712
- ci: avoid pdm broken on PyPy by @henryiii in #732
- docs: add notes at top of page, update REAMDE by @henryiii in #717
- docs: add typos in a tab, use it for our checking by @henryiii in #724
- docs: use and mention ubuntu-slim for small tasks by @henryiii in #729
New Contributors
- @jonathanberthias made their first contribution in #707
- @cyrraz made their first contribution in #720
- @edgarrmondragon made their first contribution in #731
- @VeckoTheGecko made their first contribution in #738
- @neutrinoceros made their first contribution in #739
Full Changelog: 2025.11.21...2026.03.02
2025.11.21
What's Changed
- feat: add more pre-commit ci checks by @henryiii in #695
- fix(action): correct output formatting and select/ignore by @henryiii in #700
- fix(sp-ruff-checks): base indendation on max size by @henryiii in #694
- fix: accept
build.jobsas valid ReadTheDocs configuration in RTD104 by @Copilot in #691 - fix: drop old log level from check by @henryiii in #701
- fix: hide pre-commit checks if lefthook is used by @henryiii in #702
- fix: if show-fixes is set in config, count that by @henryiii in #686
- fix: skip readthedocs if no readthedocs file present by @henryiii in #693
- fix: support named tab groups for independent tab switching by @Copilot in #698
- docs: adding zensical note, and aligning order of docs between sphinx and m… by @Samreay in #688
- docs: bump webapp for 2025.11.10 by @henryiii in #685
- docs: imporve the coverage page by @henryiii in #687
- docs: mention prek by @henryiii in #696
- refactor: readthedocs rename by @henryiii in #706
- chore: banned imports no longer needed for typing (UP handles it) by @henryiii in #703
- chore: enable ruff ALL by @henryiii in #705
- ci: only compare generation on Linux (faster) by @henryiii in #699
Full Changelog: 2025.11.10...2025.11.21
2025.11.10
2025.11.07
What's Changed
- feat: adding mkdocs into guides and cookiecutter template by @Samreay in #662
- feat: add more Ruff checks, and a helper script by @henryiii in #670
- feat: integrate helper into package properly by @henryiii in #675
- feat: check for dev dependency-group by @henryiii in #673
- feat: list Requires-Python too by @henryiii in #669
- feat: note rules not followed in ruff description by @henryiii in #667
- fix(pre-commit): only show errors by @henryiii in #665
- fix: helper should sort and printout was missing sometimes by @henryiii in #674
- fix: include markdownlint-cli2 by @henryiii in #672
- fix: make standalone helper a little nicer before removing it by @henryiii in #676
- fix: use FA instead of adding import via isort by @henryiii in #666
New Contributors
Full Changelog: 2025.10.20...2025.11.07
2025.10.20
2025.10.01
What's Changed
- feat: add uv backend by @henryiii in #618
- feat: check for ruff-check instead of ruff by @henryiii in #605
- fix: Python 3.13.4 broken on Windows by @henryiii in #613
- fix: add a new md formatter by @henryiii in #631
- fix: add some UV, poetry, pdm, and PyCharm stuff to ignore from version control by @agriyakhetarpal in #628
- fix: allow poe as task manager by @henryiii in #630
- fix: broken links by @henryiii in #645
- fix: build commands is a valid alternative to build tools python by @henryiii in #608
- fix: change the exclusion pattern for bots by @keewis in #636
- fix: move codespell config to toml by @henryiii in #602
- fix: warnings were breaking the build by @henryiii in #644
- tests: maturin now should pass metadata check by @henryiii in #625
- ci: add links to rendered docs by @henryiii in #597
- chore: apply ruff/flake8-pyi rule PYI044 by @DimitriPapadopoulos in #604
- chore: include ARM in CI by @henryiii in #614
- chore: meson and maturin now support SPDX licenses too by @henryiii in #622
- chore: update a test for license change by @henryiii in #623
- docs: add outline of unit testing recommendations by @lundybernard in #619
- docs: change sdist build command to use 'uv' by @tobiasdiez in #641
- docs: fix comment about color depth. by @mkcor in #609
- docs: fix link to page by @henryiii in #596
- docs: mention recent updates by @henryiii in #598
- docs: minor improvements to the depenedency-groups description by @mabruzzo in #606
New Contributors
- @mabruzzo made their first contribution in #606
- @mkcor made their first contribution in #609
- @keewis made their first contribution in #636
- @lundybernard made their first contribution in #619
- @tobiasdiez made their first contribution in #641
Full Changelog: 2025.05.02...2025.10.01