All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- The
freezeyt.Middlewareandfreezeyt.WSGIMiddlewareclasses are removed. Usefreezeyt.ASGIMiddlewareinstead.
- Support ASGI applications in addition to WSGI ones.
ASGI apps must be use
app_interface='asgi'in the freezeyt configuration. - Add the
freezeyt.ASGIMiddlewareclass. This can wrap either an ASGI or WSGI application (selected by theapp_interfaceconfig key). - Custom action functions for
status_handlersmay now be asynchronous.
- freezeyt now uses tinycss2 (with
a custom helper, tinycss2-core-attributes)
to parse CSS.
This should avoid warnings related to syntax that the
cssutilslibrary could not parse.
- The config dictionary is now typed.
- Configuration may be specified in TOML format, using the
--toml-config(-t) CLI option. The YAML format is still supported, but a new option name--yaml-config(-y) is preferred to the backwards-compatible name (--config,-c). - For redirects, the message of
UnexpectedStatuserrors now shows the redirect target.
- For the
Freezeyt-URL-Finderheader, Using single word values (likenone) now works as documented. - The warning about multiple URLs being saved as the same file now deduplicates homepage URLs.
- The
--fail-fastmode now fails faster.
freezeytnow requires Python 3.8 or higher.freezeytis now tested on Python 3.14.
freezeytis now tested on Python 3.13.freezeytis no longer tested on Python 3.7. (#405)
- Deprecate extra pages starting with a slash. Extra page URLs should be relative to the prefix. (#406)
- When a page redirects to a page that would be saved to the same file
(for example
/to/index.html), save the target page regardless of general redirection settings. (#374) - CLI options
appandoutputnow override configuration settings. (#407) - Add
-hCLI option, as an alias to--help(#394) - Errors from infinite redirection loops are reported along with other page-specific errors. (#402)
- The application supplied by the user is now passed to
extra_pagesgenerators. (#392)
freezeytis now tested on Python 3.11 and 3.12.freezeytis now compatible with Werkzeug 3.0.
- The
Freezeyt-ActionHTTP header can now specify whether (and how) to freeze a page. - The
Freezeyt-URL-FinderHTTP header can now specify whether (and how) URLs to follow are found on a page. LinkHTTP headers are now followed.--fail-fastoption (-x, orfail_fastin config): stop freezing after the first errorgh_pagesplugin to simplify publishing to GitHub Pagesfreezeyt.Middleware: WSGI middleware that allows using somefreezeytfeatures in dynamic web apps (even when not freezing)- The application can be specified in configuration, not only as a CLI argument.
freezeyt.VersionMismatch, the exception raised when the config format doesn't match the currentfreezeytversion
- "Status_handlers" were renamed to "actions". The old name is still available and there are no plans to remove it.
- Backslashes in URL paths of extra files are now converted to forward slashes.
A backslash can be inserted using the
%5cescape sequence.
- The status handler configured for
2xxnow applies to200 OKstatuses. - Fixed handling edge cases in paths for extra files.
- Multiple consecutive slashed in
prefixare merged.freezeytprints a warning when this happens. freezeytnow warns when multiple different URLs would be saved to a single file. There are no guarantees about which of the URLs is saved.
Initial release.