Changes

Pre-1.0 Series

Development

current (unreleased)

  • doc Prepared the first version of a package documentation generated with Sphinx (HTML, PDF () and some manual pages).

py-treesum

  • breaking Combine Unix epoch and ISO timestamp values into one record. The parser recognizes the previous format also.

  • breaking Option --ignore-symlink-type is now the default. Deactivate with --no-ignore-symlink-type.

  • breaking Shorten some record markers in the “tabular” output style: ERROR: into ERR: and WARNING: into WARN:.

    Because no parser existed previously the compatibility break is somewhat limited.

  • breaking In the “tabular” output style errors regarding size numbers are sequences of / characters instead of ? previously.

    Because no parser existed previously the compatibility break is somewhat limited.

  • feature Implemented a parser for the “tabular” output style.

  • feature Allow to put warnings into the output. May be dectivated with option without-warnings.

  • feature Implemented option --with-notes to optionally put detailed data about ignored files or directories into the output.

  • bugfix In Python 2: the “surrogateescape” error handler (introduced in v0.11) is not called when is should be called: some illegal UTF-8 is accepted while it should be treated as illegal. This is fixed now.

  • bugfix Obey --ignore-symlink-type also for symbolic links on the command lines.

0.12 (2026-08-29)

py-treesum

  • feature Implemented option --ignore-symlink-type: when not following symlinks to directories and files do also not try to determine the link target’s type (which can be done only when resolving the link).

0.11.1 (2026-08-28)

  • bugfix Fixed wrong publication date in the README.

0.11 (2026-08-28)

py-treesum

  • breaking Message digests for directories that contain non-ASCII filenames changed because of a new filename normalization algorithm.

    The digest values are now independent of the --utf8 or --fsencoding settings. These settings now just determine how filenames in the output are encoded.

    These are tested on a POSIX system using Python versions 2.7, 3.4, 3.5, 3.6, 3.7, 3.9, 3.11 and 3.14 using different locale settings.

  • breaking On most handled errors do not use the concrete OS errno for digesting but an OS independent generic one. Note that this may change message digests in the output.

  • breaking Some record formats of a “treesum” file changed to be more consistent.

  • breaking Make --utf8 the default instead of --fsencoding.

  • breaking Computation of the CRC is now independent of the native OS lineendings that are in effect. Also lines with no records (whitespace only lines, comment lines using ; or #) do not contribute to the CRC.

  • feature Implemented --rfc1924 and --base85 for shorter digest representations in the output. Also implemented --base32 for completeness.

  • bugfix In some cases the TAINTED property of a message digest was not propagated to parent directories properly.

0.10 (2026-08-02)

  • misc Modernize the package builds: switched to a PEP 517 and PEP 518 compatible build system (using pyproject.toml).

    For older Python versions there is a branch build-2.7 in Mercurial that allows builds with older Python versions (using the “legacy” setup.py).

0.9 (2025-05-18)

py-treesum

0.8.1 (2025-04-02)

This is the first non-private release.

Breaking Changes

current

  • Combine Unix epoch and ISO timestamp values into one record line.

  • --ignore-symlink-type is now the default.

  • Shorten some record markers in the “tabular” output style: ERROR: into ERR: and WARNING: into WARN:.

  • In the “tabular” output style errors regarding size numbers are sequences of / characters instead of ? previously.

0.11 (2026-08-28)

py-treesum

  • Message digests for directories that contain non-ASCII filenames changed because of a new filename normalization algorithm.

  • Changed the way how OSError exceptions contribute to message digests.

  • Some record formats of a “treesum” file changed to be more consistent.

  • Computation of the CRC is now independent of the native OS lineendings that are in effect. Also lines with no records (whitespace only lines, comment lines using ; or #) do not contribute to the CRC.