Changelog
Since we follow Conventional Commits when writing commit messages, we’re able to automatically create formal “releases” of the template based on the commit messages. Releases in the context of template are when changes occur to the template/ files or to the copier.yaml files. The releases are also published to Zenodo for easier discovery, archival, and citation purposes. We use Cocogitto to be able to automatically create these releases, which uses SemVar as the version numbering scheme, and Git Cliff to generate the changelog based on the commit messages.
Because releases are created based on commit messages, a new release is created quite often—sometimes several times in a day. This also means that any individual release will not have many changes within it. Below is a list of the releases we’ve made so far, along with what was changed within each release.
Commits from bots, like dependabot or pre-commit-ci, are not included in the changelog.
0.23.5 - 2026-06-01
♻️ Refactor
- Replace reusable workflows with normal workflow steps #284 by
@lwjohnst86(4659456)
0.23.4 - 2026-06-01
♻️ Refactor
- Moved file explanation into CONTRIBUTING, not README #289 by
@lwjohnst86(68af4af)
0.23.3 - 2026-06-01
♻️ Refactor
- Switch to using Cocogitto and git-cliff for releasing #282 by
@lwjohnst86(deea47b)
0.23.2 - 2026-05-22
♻️ Refactor
- Match changes from t-squared and from root folder #287 by
@lwjohnst86(317884a)
0.23.1 - 2026-05-22
♻️ Refactor
- Move config files into
.config/orpyproject.toml#280 by@lwjohnst86(f65c2bc)
0.23.0 - 2026-05-22
✨ Features
- Add
pyproject.tomlclassifiers for better discoverability #290 by@lwjohnst86(fd37f23)
0.22.3 - 2026-05-22
♻️ Refactor
- Remove Conventional Commit scopes and use raw emoji #283 by
@lwjohnst86(03ab0ba) - Remove
build-pdffrom justfile, not needed anymore #288 by@lwjohnst86(3ca4fe5) - Switch to using
uvxfor dev tooling,uv runisn’t needed #285 by@lwjohnst86(126dca2)
📝 Documentation
- Minor clean up of docs #286 by
@lwjohnst86(73f4bb6)
0.22.2 - 2026-05-19
♻️ Refactor
- Simplify the Copier questions by removing many of them #278 by
@lwjohnst86(a0bf7ad)
📝 Documentation
- Update license year #269 by
@lwjohnst86(2b8969e) - Update
CONTRIBUTING.mdfrom t-squared, explain about files #272 by@lwjohnst86(9119dd3) - Split out guide into multiple pages #275 by
@lwjohnst86(9106e1d) - Improve README from t-squared #273 by
@lwjohnst86(b2d1b34)
💄 Styling
- Update Seedcase Quarto theme #276 by
@lwjohnst86(75a4a39)
🧪 Tests
- Update test script from t-squared updates #271 by
@lwjohnst86(ae2e490)
👷 CI/CD
- Update workflows from t-squared, improve releasing #267 by
@lwjohnst86(855c11f) - Correct logic to check if release is possible #277 by
@lwjohnst86(7ca4a65)
👩💻 Miscellaneous
- DevEx improvements from t-squared #268 by
@lwjohnst86(f31cbec) - Improve justfile from t-squared #270 by
@lwjohnst86(8b96b6c) - Improve formatting of contributor list #274 by
@lwjohnst86(6562be2)
0.22.1 - 2026-04-10
🐛 Fixes
- Ignore spell checking in auto-generated
site_libs/#258 by@joelostblom(a820637)
0.22.0 - 2026-03-25
✨ Features
- Add website preview build step #255 by
@joelostblom(5b6349a)
0.21.0 - 2026-02-18
✨ Features
- Use ruff to check for unused arguments instead of vulture #246 by
@joelostblom(12941f3)
0.20.0 - 2026-02-16
✨ Features
- Add URL Lychee checker to justfile #244 by
@lwjohnst86(cf1f99d)
0.19.0 - 2026-02-16
✨ Features
- Add rumdl Markdown formatter #239 by
@lwjohnst86(85eab2c)
0.18.0 - 2026-02-16
✨ Features
- Show source line on mypy errors #243 by
@joelostblom(bf1c13e)
👩💻 Miscellaneous
❤️ New contributors
@joelostblommade their first contribution in #243
0.17.12 - 2026-01-15
♻️ Refactor
- Expand on explanation of release process #229 by
@lwjohnst86(c8dd66a)
0.17.11 - 2026-01-15
🐛 Fixes
- Quarto auto-adds this line, this fixes it so Quarto stops #230 by
@lwjohnst86(e40953b)
♻️ Refactor
- Update pre-commit hook versions #231 by
@lwjohnst86(61d6725)
💄 Styling
- Updated Quarto theme #228 by
@lwjohnst86(eddde6e)
0.17.10 - 2025-09-18
🐛 Fixes
- Overwrite
_contributor.qmdwith>#207 by@lwjohnst86(87525bf)
♻️ Refactor
- Upgrade pre-commit hook versions #208 by
@lwjohnst86(b76199a)
📝 Documentation
- Move contributors file and update it #206 by
@lwjohnst86(2d796f6)
👷 CI/CD
- Use reusable test workflow #201 by
@lwjohnst86(308e437)
0.17.9 - 2025-09-10
♻️ Refactor
- Use
update, notaddfor Quarto extension #195 by@lwjohnst86(e23a84d)
📝 Documentation
- Use correct single quote character #204 by
@lwjohnst86(0f91e51)
👷 CI/CD
- Run Dependabot every month (and not assign anyone) #202 by
@lwjohnst86(d938885) - No need to pass
GITHUB_TOKEN(it was for contributors file) #203 by@lwjohnst86(c82390f)
0.17.8 - 2025-09-08
🐛 Fixes
github_repo(via_folder_name) doesn’t work usingupdate#197 by@lwjohnst86(4307300)- Ignore other dirs and files when listing todos #200 by
@lwjohnst86(9311d46)
♻️ Refactor
update-from-workflowis too complicated and not needed #190 by@lwjohnst86(86f7618)- Contributor script outputs text, output to file with justfile #192 by
@lwjohnst86(fa45b93) - Simplify CHANGELOG description #193 by
@lwjohnst86(8b66b47) - Update pre-commit hook versions #199 by
@lwjohnst86(4695e1d)
📝 Documentation
- Don’t need this license, not relevant #191 by
@lwjohnst86(119e3b7)
🧪 Tests
- Match manual test recipe of other templates #198 by
@lwjohnst86(e45c0ca)
0.17.7 - 2025-09-05
♻️ Refactor
- Simplify PR template #196 by
@lwjohnst86(dacd20e)
📝 Documentation
- Add Marton’s ORCID #194 by
@lwjohnst86(fbed560)
0.17.6 - 2025-09-05
♻️ Refactor
- Rename to
check-python, notbuild#189 by@lwjohnst86(73294f4)
💄 Styling
- Group ‘config’ copier ‘questions’ to bottom of file #175 by
@lwjohnst86(00db7cf)
🧪 Tests
- Use HEAD, including uncommitted changes, when testing #185 by
@lwjohnst86(40b81f4)
👷 CI/CD
- Simplify title of workflow for smaller badge #168 by
@lwjohnst86(2985876)
0.17.5 - 2025-09-02
♻️ Refactor
- Can render everything in Quarto project #183 by
@lwjohnst86(c4fa42a)
👩💻 Miscellaneous
- Recipe that manually tests template through the questions #184 by
@lwjohnst86(a9c3a9f)
0.17.4 - 2025-09-02
♻️ Refactor
- Add more items to sidebar, like overview #182 by
@lwjohnst86(bc0e41c)
0.17.3 - 2025-09-02
♻️ Refactor
- Create homepage as variable, not question #179 by
@lwjohnst86(95d2a4e)
0.17.2 - 2025-09-02
♻️ Refactor
- Ignore
justfilewhen listing TODO items #181 by@lwjohnst86(a4d3c73)
0.17.1 - 2025-09-02
♻️ Refactor
- Need
date-releasedinCITATION.cff#180 by@lwjohnst86(5df0928)
0.17.0 - 2025-09-02
✨ Features
- Add CHANGELOG with some description of it #178 by
@lwjohnst86(5302ef1)
0.16.6 - 2025-09-02
♻️ Refactor
- Delete whole references folder pre and post render #142 by
@martonvago(c0e9161)
0.16.5 - 2025-09-01
♻️ Refactor
- Move GoatCounter file into
docs/includes/#177 by@lwjohnst86(136c464)
📝 Documentation
- Add contributors list section to README and website #172 by
@lwjohnst86(58f5c3a) - Add DOI to CITATION and as a badge #176 by
@lwjohnst86(4069ad3)
💄 Styling
- Add visual spacing around Jinja code in justfile #173 by
@lwjohnst86(63ce9bd)
0.16.4 - 2025-09-01
♻️ Refactor
- Update pre-commit versions #171 by
@lwjohnst86(9530f98)
0.16.3 - 2025-09-01
♻️ Refactor
- Use
--upgradewhen installing Python dependencies #174 by@lwjohnst86(2eaed27)
0.16.2 - 2025-09-01
♻️ Refactor
- Add
themeoption in_quarto.yml, andbrandfor Seedcase #170 by@lwjohnst86(ecaac97)
📝 Documentation
- Add a badge for the test workflow status #166 by
@lwjohnst86(f477914)
👩💻 Miscellaneous
- Remove comments and simplify
.vscodesettings #167 by@lwjohnst86(ed14d7b)
0.16.1 - 2025-09-01
♻️ Refactor
- Simplify the pull request template #165 by
@lwjohnst86(c796d65)
📝 Documentation
- Moved
release.qmdcontents intoCHANGELOG.md#161 by@lwjohnst86(c732c8e) - Add Code of Conduct file to root #162 by
@lwjohnst86(7906a8d) - Match author style of LICENSE to the template #164 by
@lwjohnst86(8f6a366)
👩💻 Miscellaneous
- Simplify CODEOWNERS file, add all files #163 by
@lwjohnst86(80663cd)
[0.16.0] - 2025-08-26
✨ Features
- Add recipe
add-function#2 by@signekb(7d5b04a) - Add examples section to docstring template #39 by
@signekb(c4bfdd3) - Add mypy to VS Code settings and extensions #93 by
@lwjohnst86(ab8e235) - Gitleaks pre-commit to check for credentials #100 by
@lwjohnst86(08687cd) - Copy over static files to template folder #117 by
@martonvago(bc6bf79) - Add files with copier variables #127 by
@martonvago(ec38631) - Add 404 page to template #141 by
@martonvago(4a33f1e) - Add Conduct, Contributing, and filled out README #131 by
@martonvago(e46fc0a) - Add hosting provider variable #153 by
@martonvago(498fbc4) - Add
update-from-templateworkflow #134 by@martonvago(17cdef1)
🐛 Fixes
- Update test snippet to given, when, then #29 by
@signekb(b2f8daa) - Add
test-pythontorun-all#38 by@signekb(ae625a5) - Remove django debugger #44 by
@signekb(08423a3) - Remove auto-built reference docs before/after building by
@lwjohnst86(218e9fc) - Remove auto-built reference docs before/after building #47 by
@lwjohnst86(07732d2) - The
check-commitsrecipe wasn’t correctly checking them by@lwjohnst86(b30223d) - The
check-commitsrecipe wasn’t correctly checking them #48 by@lwjohnst86(2da8db9) - Install uv in publish step and only for tags #96 by
@lwjohnst86(2833cdf) - Use the
has_releasedoutput to run or not #97 by@lwjohnst86(f77769c) - Only run when previous and current versions are different #98 by
@lwjohnst86(b1632fb) - Forgot to checkout before building and publishing #106 by
@lwjohnst86(fbdd28b) - Explicitly checkout newest version to publish #107 by
@lwjohnst86(33639c5) - Need to run build workflow after version bump to get changelog #110 by
@lwjohnst86(f5ef33f)
♻️ Refactor
- Make mypy more strict in settings #94 by
@lwjohnst86(5274b35) - Move
uv buildstep into publish job #101 by@lwjohnst86(9783238) - Include
github-actionsin dependabot config #136 by@martonvago(7c44c98) - Use
bashforcheck-commitsjustfile recipe #150 by@lwjohnst86(5a05048) - Match copier vars in
template-website#152 by@martonvago(2fb9f27) - Update post-copy message #154 by
@martonvago(146ee10) - Move copier test to own file #156 by
@martonvago(09b3b73) - Specify svg for all badges #157 by
@martonvago(f5cfa42)
📝 Documentation
- Remove reviewer focus section #10 by
@signekb(ff2bf1e) - Refer to spaid for setting things up by
@lwjohnst86(7ef1a91) - Add an emoji to commit message of commitizen by
@lwjohnst86(bca5ffb) - Use a generic package name, not Sprout, for index by
@lwjohnst86(704e6fc) - Update license year to 2025 by
@lwjohnst86(3c104c3) - Update README to mostly the latest changes by
@lwjohnst86(40c33ca) - Small correction by
@lwjohnst86(302ef31) - To be consistent by
@lwjohnst86(9627bc7) - Instructions on installing deps after project creation #62 by
@lwjohnst86(a7fea84) - Add website files #115 by
@martonvago(13b1ad0) - Update README #129 by
@martonvago(31e9b8a) - Format README #132 by
@martonvago(cb60560) - Use Markdown version of license #133 by
@martonvago(410c9bc) - Update guide #155 by
@martonvago(44a5aeb)
💄 Styling
- Ran pre-commit hooks, apply fixes #19 by
@lwjohnst86(eff086c)
👷 CI/CD
- Fix incorrect path to LICENSE by
@lwjohnst86(db5b658) - Add workflow to generate SVG from puml files #5 by
@lwjohnst86(da81016) - Deploy to Fly isn’t working well, plus move out env deletion to own file #7 by
@lwjohnst86(dc8876b) - Use the new workflow for building docs with Python code #11 by
@lwjohnst86(6762972) - Add pre-commit config file to be synched by
@lwjohnst86(726a2ba) - Needs to push to main, not from PRs #23 by
@lwjohnst86(5e87d20) - Remove commented out Django workflow by
@lwjohnst86(35f9bab) - Update path to reusable workflows by
@lwjohnst86(69e11ac) - Always run on main, but only in PRs with specific files by
@lwjohnst86(8fbc7f0) - Update text of some fields by
@lwjohnst86(0fb318b) - No longer need this file, not pushing to Fly by
@lwjohnst86(b03cb6e) - Rename workflows to be clearer and simpler by
@lwjohnst86(66acef9) - Minor updates to make things clearer #24 by
@lwjohnst86(f2eec93) - Forgot to remove this if condition #25 by
@lwjohnst86(8b896b4) - Increase interval for dependabot to monthly by
@lwjohnst86(6f0f8eb) - Remove these unused workflows by
@lwjohnst86(596c400) - Sync only specific workflows by
@lwjohnst86(a3e929a) - General clean up and fixes to workflows #36 by
@lwjohnst86(1fdc730) - Switch to use the reusable “add to board” #52 by
@lwjohnst86(c9b491c) - Lint is now part of build workflow #57 by
@lwjohnst86(7ec888c) - Updated from Sprout, need permissions for workflow by
@lwjohnst86(e7b7c40) - Use GitHub App for short-lived token creation #63 by
@lwjohnst86(555efb1) - Update to use GitHub App for adding to board #67 by
@lwjohnst86(69aa89d) - Use a shorter name for workflow #68 by
@lwjohnst86(95b31a4) - Use GitHub App token for syncing files #69 by
@lwjohnst86(b62d4b7) - Needs to be
GH_INSTALLATION_TOKENfor GitHub Apps #70 by@lwjohnst86(fdb0a8f) - Syncing workflow needs extra settings #71 by
@lwjohnst86(6ce29b2) - Error with team maybe? and set branch to this repo #72 by
@lwjohnst86(c863489) - Add permissions for setting release of a tag #78 by
@lwjohnst86(f71889c) - Switch to using reusable workflow #83 by
@lwjohnst86(6dcb171) - Explicitly set permissions, move to job-level #84 by
@lwjohnst86(defe712) - Run build package and website workflows on all pushes #86 by
@lwjohnst86(4793c79) - Add security scanning workflows #85 by
@lwjohnst86(9f6d92d) - Use
GH_TOKENto useghcli #90 by@lwjohnst86(a272738) - Publishing and building need to be split #91 by
@lwjohnst86(c8126ad) - Move
GITHUB_TOKENintogithub-tokensecrets #92 by@lwjohnst86(90043fa) - Add test workflow #146 by
@lwjohnst86(ffa9d4b)
👩💻 Miscellaneous
- Started a template repo by
@lwjohnst86(2b3b8b1) - Remove
tabSizefrom VS Code settings file #1 by@signekb(6f161a2) - We don’t use RStudio, so don’t need these by
@lwjohnst86(778064f) - Modify justfile to run Python doc in Quarto docs #12 by
@lwjohnst86(f4b588d) - Ignore some auto-generated files by
@lwjohnst86(b71fc44) - Formatting is weird with qmd files, turned off by
@lwjohnst86(ee03abf) - Config changes based on Quarto and Python website build #13 by
@lwjohnst86(4d97e7c) - Add pre-commit hooks, including for commit linting by
@lwjohnst86(dfbfb20) - Add justfile recipe to lint commits by
@lwjohnst86(b9d287c) - Add commit linting via pre-commit #16 by
@lwjohnst86(55903f3) - Update config and build settings for quartodoc #18 by
@lwjohnst86(f3b9667) - Add jupyter extension to recommended list #21 by
@lwjohnst86(c619115) - Remove Django-specific configs #22 by
@lwjohnst86(39cb33f) - Use justfile as checklist in template #26 by
@lwjohnst86(b45679b) - Small revisions to synching files #27 by
@lwjohnst86(d735574) - Update changelog on bump #28 by
@signekb(6bdaf60) - Removed the
reset-localrecipe #32 by@lwjohnst86(bdd5073) - Use latest commitizen version by
@lwjohnst86(a7abb17) - Remove plantuml recipes and extensions by
@lwjohnst86(f1f9009) - Check if there are commits on the branch before checking commits by
@lwjohnst86(b71251b) - Set template as a
src/layout by@lwjohnst86(dbc0d1f) - Set Python to 3.12 for Ruff by
@lwjohnst86(6f7fe31) cSpelloption was renamed, this matches their new option by@lwjohnst86(e341cc2)- General updates to template #45 by
@lwjohnst86(26d8165) rmneeds-fso it doesn’t error when there is no file #49 by@lwjohnst86(2af4d50)- Remove leftover commented out includes #53 by
@lwjohnst86(16477ef) - Ran pre-commit hooks so repo can be tracked by the CI #54 by
@lwjohnst86(4097498) - Switch to using uv #51 by
@lwjohnst86(f0c7a06) - Build coverage report and badge #56 by
@lwjohnst86(eb5ecb0) - Add bandit security checks to justfile #58 by
@lwjohnst86(6c5a446) - Move pytest options into
pytest.iniso VS Code detects them #59 by@lwjohnst86(1a461d8) - Remove leftover extensions, replace spell checker #61 by
@lwjohnst86(c36296b) - Add spell checker to justfile #60 by
@lwjohnst86(154cd85) - Add some recommended extensions #66 by
@lwjohnst86(393b47a) - Update justfile with recipes from Sprout #75 by
@lwjohnst86(8f28ed3) - Add allowlist to vulture recipe #79 by
@lwjohnst86(600ffcc) - Simplify the PR template #80 by
@lwjohnst86(3e09f3e) - Add a “install pre-commit” justfile recipe #77 by
@lwjohnst86(67cc817) - Add typos as a pre-commit hook #76 by
@lwjohnst86(439eb55) - Don’t regenerate all of CHANGELOG each time #82 by
@lwjohnst86(4a5e3d9) - Add mypy config #89 by
@martonvago(3b56108) - Fix spacing for snippet, use 4 spaces, not 1 #95 by
@lwjohnst86(0fd4e66) - Recommend better reviewed mypy extension #99 by
@lwjohnst86(76240d5) - Update config for non-template package #116 by
@martonvago(096781a) - Remove files not needed in non-template code #114 by
@martonvago(9411f99) - Get latest
seedcase-theme#126 by@martonvago(fc90ddc) - Use correct
.cz.toml#130 by@martonvago(265bcaa) - Update contributors and theme #135 by
@martonvago(818f054) - Match release workflow to other templates #137 by
@martonvago(ba52dba) - Use
bashin justfile so CI doesn’t need zsh #149 by@lwjohnst86(a2bfa6b)
❤️ New contributors
@github-actions[bot]started making automated contributions@martonvagomade their first contribution in #134@pre-commit-ci[bot]started making automated contributions@dependabot[bot]started making automated contributions@lwjohnst86made their first contribution in #150@signekbmade their first contribution in #44