- #76, #77: Add a command line flag --ignore-mtime to archive-tool check to ignore the file modification time in the checks.
- #81, #82: archive-tool ls fails with :exc:`TypeError` if the path of a file in the archive contains two consecutive blanks.
- #75: Drop :class:`distutils.version.StrictVersion` deprecated since Python 3.10 in favour of our own helper :class:`archive.tools.Version` based on :class:`packaging.version.Version`. This adds a dependency on :mod:`packaging`.
- #74, #80: Review build tool chain.
- #83: Simplify implementation of :func:`archive.tools.tmp_chdir` and :func:`archive.tools.tmp_umask` using :mod:`contextlib`.
- #52, #70: Add a backup-tool script.
- #54: Add command line flags --directory <dir> to archive-tool create. The script will change into this directory prior creating the archive if provided.
- #54: Add new keyword argument fileinfos that :class:`Manifest` and :meth:`Archive.create` accept.
- #57, #66: Add :func:`diff_manifest`. The archive-tool diff command with --report-meta flag also reports differences in file system metadata for directories and symbol links.
- #50, #51: Add a header with some metadata to the index in a mail archive created by :class:`MailArchive`.
- #62, #63: Explicitely select POSIX.1-2001 (pax) format in the tarfile. This fixes failing verification if the archive contains a directory with a long path name.
- #67: Add :mod:`archive.index` providing :class:`ArchiveIndex`.
- #60: Drop support for Python 3.4 and 3.5.
- The comment keyword argument to :class:`MailArchive` has been dropped, ref. #51.
- #59: Change :attr:`Archive.path` to the absolute path of the archive.
- #57: Do not take the paths relative to the base directory in the archive-tool diff command.
- #58: Weaken the condition introduced in #9 that basedir must be a directory.
- #61: Review date helper functions in :mod:`archive.tools`
- Add :func:`date_str_rfc5322`.
- :func:`parse_date` now also accepts date strings as returned by :meth:`datetime.datetime.isoformat`.
- Make compression keyword argument to :meth:`Archive.create` optional. The default will be derived from the suffixes of the path argument.
- #65: Add a method :meth:`Archive.extract_member` to extract an individual member of the archive.
- #53, #54: Spurious :exc:`FileNotFoundError` from :meth:`Archive.create` when passing a relative path as workdir argument.
- #55, #57: archive-tool diff fails with :exc:`TypeError`.
- #56, #57: Inconsistent result from archive-tool diff with option --skip-dir-content.
- #64, #65: :meth:`Archive.extract` does not preserve the file modification time for symbol links.
- #48: Review and standardize some error messages.
- #68: Add :mod:`archive.config`.
- #46, #47: archive-tool fails with :exc:`NameError` when trying to emit a warning.
- #45: The files argument to archive-tool check defaults to the archive's basedir.
- Fix: some test data have not been included in the source distribution.
- #15, #43: Add archive-tool find subcommand.
- #38, #39: Add archive-tool diff subcommand.
- #40, #44: Add setting tags in the header of the manifest.
- #41: Add a :meth:`Archive.extract` method.
- Add a :meth:`Manifest.sort` method.
- Reorganization of the archive-tool script, move the code into submodules in the new archive.cli package.
- #33: archive-tool create should have an option to exclude files.
- #35: :class:`FileInfo` calculates checksums lazily.
- #34: files of unsupported type are ignored when creating an archive. A warning is emitted instead of raising an error.
- #36: Drop support for strings in the file name arguments path, paths, basedir, and workdir of the methods :meth:`Archive.create` and :meth:`Archive.open`. These arguments require :class:`Path` objects now.
- #37: archive-tool create throws an error when trying to explicitly add a symlink.
- #28: support deduplication.
- #26 and #30: add support for custom metadata:
- Add methods :meth:`Archive.add_metadata` and :meth:`Archive.get_metadata` to add and to retrieve custom metadata to and from archives.
- Add a list of metadata items in the header of the manifest.
- Bump manifest version to 1.1.
- #4, #32: Add :class:`MailArchive` implementing a special flavour of an :class:`Archive` for storing mails.
- #27: Add command line flags --prefix <dir> and --stdin to archive-tool check.
- #23 and #26: review the API of :class:`Archive`:
- Add two methods :meth:`Archive.create` and :meth:`Archive.open` that create and read archives respectively.
- The :meth:`Archive.__init__` method does not create or open archives any longer.
- :meth:`Archive.verify` does not accept the mode argument any more.
- :class:`Archive` keeps a file object to read the tarfile. It is opened in :meth:`Archive.open`. :meth:`Archive.verify` does not reopen the tarfile, but relies on the internal file object to be left open.
- Add a :meth:`Archive.close` method.
- :class:`Archive` implements the context manager protocol.
- #20: :meth:`Archive.create` takes a working directory as optional argument.
- #29: Verify fails if archive contains hard links.
- #25: archive-tool check should ignore metadata.
- Initial release.