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 Commitizen to be able to automatically create these releases, which uses SemVar as the version numbering scheme.

Because releases are created based on commit messages, we release 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.

0.31.0 (2026-03-20)

Feat

  • ✨ generalize beautification of errors (#309)

0.30.0 (2026-01-06)

Feat

  • re-export print() from rich, use it explain() docs (#265)

0.29.0 (2025-12-21)

Feat

  • add env variable to help debug issues (#223)

0.28.0 (2025-12-16)

Feat

  • colorize output of explain() via rich (#244)

0.27.0 (2025-12-16)

Feat

  • include error type and add red color via rich (#246)

0.26.4 (2025-12-16)

Fix

  • 🐛 properties argument wasn’t actually used, so removed (#253)

0.26.3 (2025-12-16)

Fix

  • 🐛 remove package prefix in error message (#241)

0.26.2 (2025-12-15)

Fix

  • 🐛 add rich as dependency (#251)

0.26.1 (2025-12-15)

Fix

  • 🐛 no traceback and correct rich formatting in IPython (#249)

0.26.0 (2025-12-15)

Feat

  • display helpful error message for empty input (#243)

0.25.0 (2025-12-08)

Feat

  • check foreign keys fields exist (#227)

0.24.0 (2025-12-08)

Feat

  • check primary key exists (#218)

0.23.1 (2025-11-27)

Fix

  • 🐛 add dict check when getting parent instance (#214)

0.23.0 (2025-11-27)

Feat

  • explain() errors (#208)

0.22.2 (2025-11-21)

Fix

  • 🐛 sort and deduplicate issues before raising error (#206)

0.22.1 (2025-11-20)

Fix

  • 🐛 correct euro symbol representation (#207)

0.22.0 (2025-11-20)

Feat

  • support union operator in RequiredCheck (#201)

0.21.0 (2025-11-20)

Feat

  • disallow intersection JSON path operator (#203)

0.20.2 (2025-11-17)

Refactor

  • ♻️ fix name to PropertyField (not descriptor) (#194)

0.20.1 (2025-11-14)

Refactor

  • ♻️ rename to properties in read_json() (#169)

0.20.0 (2025-11-14)

Feat

  • ✨ handle grouped errors under the enum constraint (#183)

0.19.0 (2025-11-14)

Feat

  • handle grouped errors for primary key (#185)

0.18.0 (2025-11-13)

Feat

  • handle grouped foreign key errors (#188)

0.17.0 (2025-11-13)

Feat

  • expose DataPackageError (#192)

0.16.0 (2025-11-13)

Feat

  • ✨ handle grouped errors for licenses (#189)

0.15.0 (2025-11-13)

Feat

  • ✨ use Pydantic in config classes (#184)

0.14.0 (2025-11-05)

Feat

  • handle grouped errors under resource fields (#175)

0.13.0 (2025-11-04)

Feat

  • implement error=True in check() (#167)

0.12.1 (2025-11-04)

Refactor

  • 🚚 rename to extensions.py from custom_checks.py (#158)

0.12.0 (2025-11-03)

Feat

  • adds Extensions meta-class (#165)

0.11.1 (2025-11-03)

Refactor

  • ♻️ handle grouped errors without modifying input (#177)

0.11.0 (2025-11-03)

Feat

  • add example field in resource (#174)

0.10.0 (2025-11-03)

Feat

  • exclude required issues at a given JSON path (#138)

0.9.0 (2025-10-29)

Feat

  • add RequiredCheck (#122)

0.8.7 (2025-10-21)

Refactor

  • ♻️ rename check() arg from descriptor to properties (#143)

0.8.6 (2025-10-21)

Refactor

  • 🚚 rename Exclude class to Exclusion (#145)

0.8.5 (2025-10-17)

Refactor

  • ♻️ rename example dicts from “descriptor” to “properties” (#140)

0.8.4 (2025-10-17)

Refactor

  • ♻️ simplify code to use strict mode (#127)

0.8.3 (2025-10-16)

Refactor

  • 🚚 rename data package schema to include version (#135)

0.8.2 (2025-10-15)

Fix

  • 🐛 filter out path and data errors correctly (#134)

0.8.1 (2025-10-15)

Refactor

  • 🚚 Rule to CustomCheck (#133)

0.8.0 (2025-10-14)

Feat

  • add exclusion by jsonpath (#85)

0.7.3 (2025-10-10)

Refactor

  • 🔥 don’t expose private constants (#113)

0.7.2 (2025-10-10)

Refactor

  • 🔥 remove leftover code (#112)

0.7.1 (2025-10-09)

Refactor

  • ♻️ simplify handling of grouped errors (#81)

0.7.0 (2025-10-09)

Feat

  • implement rule logic (#108)

0.6.3 (2025-10-09)

Refactor

  • ♻️ move functionals to internals (#110)

0.6.2 (2025-10-07)

Refactor

  • ♻️ sort issues and remove duplicates at the very end (#109)

0.6.1 (2025-10-01)

Refactor

  • 🚚 rename target and location to jsonpath (#89)

0.6.0 (2025-09-29)

Feat

  • add example descriptors (#83)

0.5.0 (2025-09-23)

Feat

  • exclude by JSON schema type in check() (#74)

0.4.0 (2025-09-23)

Feat

  • read_json() (#69)

0.3.1 (2025-09-23)

Refactor

  • 🔥 remove unused code after redesign (#77)

0.3.0 (2025-09-22)

Feat

  • add Issue class (#67)

0.2.1 (2025-09-19)

Refactor

  • ♻️ start aligning check() with design (#60)

0.2.0 (2025-09-18)

Feat

  • add Config, Rule, Exclude (#59)

0.1.1 (2025-09-16)

Fix

  • 🐛 fix website build (#27)