Changelog

Unreleased changes

Please see the fragment files in the changelog.d directory.

0.9.0 - 2026-02-07

Python support

  • Support Python 3.14.

  • Drop support for Python 3.9.

Default styles

  • Support .gd (Godot).

  • Support .hx (Haxe).

  • Support .ly (Lilypond).

  • Support .tex (TeX/LaTeX).

Fixed

  • Support setting custom extension configurations in user config.

    Previously, setting an extension (like chipshot.extensions.yaml) would erase all of the default extension configurations.

Development

  • Migrate the flake8 configuration to pyproject.toml using the flake8-toml-config plugin.

  • Test type annotations against all supported Python versions.

  • Lock the GitHub CI runners to known, predictable versions.

  • Fix and expand the project URLs listed in pyproject.toml.

  • Test package building on minimum Python and build system versions.

  • Automatically maintain the pre-commit config example in the README.

  • Introduce a compatibility module for conditional code.

  • Use Trusted Publishing to publish new releases.

0.8.0 - 2025-04-14

Python support

  • Support Python 3.13.

  • Drop Python 3.8 support.

Changed

  • Show a nice message – not a traceback – when a config file contains no configuration.

Documentation

  • Switch to dirhtml builds.

Development

  • Separate test, lint, and doc dependencies from project dependencies.

  • Migrate to PEP 621 metadata.

  • Use Python 3.13 for most build processes.

  • Add a reusable workflow to prepare releases.

0.7.0 - 2023-12-09

Added

  • Support CSS @charset prologues.

Fixed

  • Log relevant information where many exceptions are raised.

  • Catch exceptions instead of letting them bubble up as a crash.

0.6.0 - 2023-12-07

Added

  • Use hashbang lines to determine the interpreter identity for extension-less scripts.

  • Support encoding comments near the tops of files for Python and Ruby.

  • Support Perl file extensions.

Changed

  • Allow exclusions to match directories, too.

0.5.0 - 2023-12-04

Added

  • Support a top-level exclusions key to exclude specific files.

Changed

  • Rename the "extension" configuration key to "extensions".

Documentation

  • Add Changelog, License, and Colophon pages.

  • Fix TOML syntax in a code sample.

  • Add a link to the Chipshot repository.

Development

  • Add a Dependabot configuration to auto-update GitHub action versions.

  • Add more check-jsonschema pre-commit hooks.

0.4.0 - 2023-11-30

Fixed

  • Fix file writing, which wasn’t rendering newlines correctly.

Changed

  • Determine the configured file encoding only if the file has content.

Documentation

  • Document how to create a new custom style.

0.3.0 - 2023-11-29

Fixed

  • Fix a bug that prevented existing headers from being found if they followed a document prologue.

Changed

  • Standardize how configurations for styles, prologues, and templates are found.

    This helps ensure that the most specific configuration for a given file is always used. For example, code interacting with a file with two extensions (like .jinja.html) will consistently find a configuration for .jinja.html before .html.

  • Rename prolog to prologue everywhere.

  • Rename the configuration keys style and prolog to styles and prologues.

  • Eliminate the "default" config key.

Development

  • Add a workflow that tests Chipshot using GitHub actions.

0.2.0 - 2023-11-28

Added

  • Add two pre-commit hooks: check-headers and update-headers.

Changed

  • Allow template literals in the config file using the template key.

    Paths to template files can be defined in the template_path key.

  • When no configuration file is specified, .chipshot.toml will be loaded first (if it exists).

    pyproject.toml will still be loaded as a fallback if .chipshot.toml doesn’t exist.

  • Rename the --debug flag to --verbose.

Documentation

  • Add initial documentation.

0.1.0 - 2023-11-24

Initial release

  • Support Python 3.8 and higher.

  • Detect and retain existing byte order marks in files.

  • Detect and retain existing newlines in files.

  • Detect and retain existing headers in files that are sufficiently dissimilar to the rendered header.

  • Detect and retain existing prologues in files (like hashbangs in scripts, or XML declarations).

  • Support custom header styles by file extension.