Skip to content

Releases: borgmatic-collective/borgmatic

borgmatic 2.1.3

06 Mar 18:21

Choose a tag to compare

  • #1175: Add a "files_changed" option for customizing Borg's file modification detection.
  • #1175: Add a "msgpack_version_check" option to prevent Borg from validating msgpack's version.
  • #1218: Add a "config show" action to display computed borgmatic configuration as YAML or JSON,
    handy for fetching borgmatic configuration from external scripts. See the documentation for more
    information:
    https://torsion.org/borgmatic/reference/command-line/actions/config-show/
  • #1228: Adjust the "spot" check so error output includes more information about what failed.
  • #1236: Fix the "spot" check to skip hard links, as Borg doesn't produces hashes for them.
  • #1243: Add a "diff" action for viewing the difference between the contents of two archives.
  • #1248: Go back to treating Borg "file not found" warnings (exit code 107) as
    warnings instead of errors. Otherwise, borgmatic can error on files that a user intentionally
    deletes while a backup is running. You can still override this behavior with the
    "borg_exit_codes" option. See the documentation for more information:
    https://torsion.org/borgmatic/how-to/customize-warnings-and-errors/
  • #1248: Un-deprecate the "source_directories_must_exist" option and default it to true, to
    compensate for Borg "file not found" warnings no longer being treated as errors.
  • #1269: Fix the ZFS hook to support datasets with a "canmount" property of "noauto".
  • #1270: Follow symlinks when backing up borgmatic configuration files to support the "bootstrap"
    action.
  • #1274: Add an optional override for the documentation development listen port and use Podman
    Compose if present.
  • #1281: Fix a unicode error when backing up a non-UTF-8 source filename with a
    corresponding system locale.
  • Add a policy about the use of generative AI in the borgmatic codebase:
    https://torsion.org/borgmatic/how-to/develop-on-borgmatic/#use-of-generative-ai

borgmatic 2.1.2

06 Feb 20:55

Choose a tag to compare

  • #1231: If a source file is deleted during a "spot" check, consider the file as non-matching
    and move on instead of immediately failing the entire check.
  • #1250: Fix a regression in which the "--stats" flag hides statistics at default verbosity.
  • #1251: Fix a regression in the ntfy monitoring hook in which borgmatic sends tags incorrectly,
    resulting in "400 Bad Request" from ntfy.
  • #1258: Fix a "codec can't decode byte" error when running commands that output multi-byte unicode
    characters.
  • #1260: Fix for SSH warnings from Borg showing up as JSON logs even without the "--log-json" flag.
  • #1252: Work around Borg returning a warning exit code when a repository/archive check fails. Now,
    borgmatic interprets such failures as errors.
  • Deduplicate overlapping source directories and patterns so they don't throw off "spot" check file
    counts and cause spurious check failures.

borgmatic 2.1.1

27 Jan 21:13

Choose a tag to compare

  • #1241: For the "recreate" action, actually pass the "--dry-run" flag through to Borg instead of
    just skipping the Borg call.
  • #1242: Fix a regression in which the "spot" check hung while collecting archive contents.
  • #1244: When the "unsafe_skip_path_validation_before_create" option is enabled, don't log a
    warning about it.
  • #1245: Fix a regression in which the KeePassXC credential hook password prompt was invisible.
  • #1246: Fix a regression in which the ntfy monitoring hook failed to send a ping when the
    "priority" option was set.

borgmatic 2.1.0

16 Jan 20:44

Choose a tag to compare

  • TL;DR: Many logging, memory, and performance improvements. Mind those breaking changes!
  • #485: When running commands (database clients, command hooks, etc.), elevate stderr output to
    show up as borgmatic error logs.
  • #858: With the "--log-json" flag, log borgmatic's own logs as JSON, not just Borg's.
  • #1092: BREAKING: Treat most Borg warnings as errors by default, so for instance backups now fail
    when source directories are missing. You can still override this behavior with the
    "borg_exit_codes" option. See the documentation for more information:
    https://torsion.org/borgmatic/how-to/customize-warnings-and-errors/
  • #1092: Deprecate the "source_directories_must_exist" option, as borgmatic now treats "backup file
    not found" warnings from Borg as errors, which accomplishes the same thing.
  • #1132: BREAKING/SECURITY: For the Healthchecks, Apprise, Pagerduty, and Loki monitoring hooks,
    disable log sending when not explicitly enabled. This avoids revealing private log information to
    third-party services. To send logs anyway, set the monitoring hook's "send_logs" option to
    "true".
  • #1204: When verbosity levels differ between console/monitoring/syslog/file, log Borg's output to
    each one at a different level. Previously, it was logged at the maximum level of all the
    verbosities.
  • #1208: Fix for the "restore" action incorrectly extracting more database dumps than the
    "--database" flag specifies.
  • #1210: Fix an error when running the "spot" check or "extract" action with the "progress" option
    or "--progress" flag.
  • #1211: Fix an error about the runtime directory getting excluded by tweaking its logic and
    lowering the error to a warning.
  • #1212: Fix an error when restoring multiple directory-format database dumps at once.
  • #1213: BREAKING: Support disabling both constant and variable interpolation by escaping with
    backslashes. For instance, interpret "\{name\}" as literally "{name}" instead of trying to
    resolve it as a constant/variable.
  • #1220: Cleanup snapshots immediately after ZFS, LVM, or Btrfs hooks error—rather than waiting
    until the next time borgmatic runs.
  • #1221: Add an "unsafe_skip_path_validation_before_create" option to skip pre-backup safety
    validation so as to reduce backup times on large filesystems.
  • #1224: When running an "extract" check with the "--progress" flag, show file extraction progress.
  • #1225: Improve performance and greatly reduce memory usage during pre-backup safety validation on
    large filesystems.
  • #1230: Fix another warning from LVM about leaked file descriptors, this time when calling
    "lvcreate" from a command hook.
  • #1234: Fix for the ntfy monitoring hook erroring on emojis in the "title" option.
  • When syslog verbosity is enabled, log to systemd's journal (if present) with
    structured data. See the documentation for more information:
    https://torsion.org/borgmatic/reference/command-line/logging/#systemd-journal
  • SECURITY: Prevent shell injection attacks via constant interpolation in command hooks. (This was
    already implemented for deprecated "before_*"/"after_*" command hooks.)
  • Fix for an error in the "key import" action when importing a key from stdin.
  • Fix the "recreate" action to include borgmatic-specific paths (database dumps, etc.) in recreated
    archives.
  • Update the "list" action to support the "--json" flag when the "--archive" flag is also used.
  • Promote the ZFS, LVM, and Btrfs hooks from beta features to stable.

borgmatic 2.0.13

21 Dec 01:19

Choose a tag to compare

  • #1054: Allow the Btrfs hook to create and delete snapshots even when running
    as a non-root user. See the documentation for more information:
    https://torsion.org/borgmatic/reference/configuration/data-sources/btrfs/#non-root-user
  • #1179: Add a "file_list_format" option for setting the "list" action's output format and an
    "archive_list_format" option for setting the "repo-list" action's format.
  • #1192: Fix for over-aggressive deduplication of source directories that contain the borgmatic
    runtime directory, potentially resulting in data loss (data not getting backed up) when
    snapshotting these source directories.
  • #1192, #1163: Document potential interactions between security settings in borgmatic's sample
    systemd service file and the ZFS, LVM, and Btrfs hooks.
  • #1193: In the documentation for the MariaDB/MySQL database hooks, clarify how to set custom
    command-line flags for database commands.
  • #1193: For the MariaDB and MySQL database hooks, add a "socket_path" option for Unix socket
    database connections.
  • #1193: For the MariaDB and MySQL database hooks, creates a consistent snapshot by dumping all
    tables in a single transaction.
  • #1194: Fix for an incorrect diff command shown when running the "generate config" action with a
    source configuration file.
  • #1195: Fix a regression in the ZFS, LVM, and Btrfs hooks in which snapshotted paths ignored
    global excludes.
  • #1201: Document a problematic interaction between borgmatic and systemd-tmpfiles:
    https://torsion.org/borgmatic/reference/configuration/runtime-directory/#systemd-tmpfiles
  • #1203: Fix that errors and exits when the borgmatic runtime directory is partially excluded by
    configured excludes. Previously, borgmatic only errored when the runtime directory was completely
    excluded.
  • #1206: Adjust Btrfs snapshot paths so that Borg 1.x gets file cache hits when backing them up,
    improving performance.
  • Update the sample systemd timer with a shorter random delay when catching up on a missed run.

borgmatic 2.0.12

26 Nov 23:40

Choose a tag to compare

  • #1127: Fix for the database hooks not respecting the "working_directory" option.
  • #1181: Add an "ask_for_password" option to the KeePassXC credential hook for disabling
    KeePassXC's password prompt, e.g. if you're only using a key file to decrypt your database.
  • #1184: Fix the fish shell completion's detection of version mismatches.
  • #1186: Fix a regression in the Btrfs hook in which subvolume snapshots didn't get cleaned up
    until the start of the next borgmatic run.
  • In the SQLite database hook, run SQLite such that it exits upon encountering an error instead of,
    you know, not doing that.
  • Add documentation on repositories, including SSH, Rclone, S3, and B2:
    https://torsion.org/borgmatic/reference/configuration/repositories/
  • Improve documentation search results for individual configuration options.
  • Add borgmatic release artifacts (wheel and tarball) to each release on the releases page:
    https://projects.torsion.org/borgmatic-collective/borgmatic/releases
  • Move the tarball of borgmatic's HTML documentation from the packages page to the releases page.

borgmatic 2.0.11

03 Nov 03:42

Choose a tag to compare

  • #957: Document borgmatic's limitations around parallelism—both its own and Borg's. See the
    documentation for more information:
    https://torsion.org/borgmatic/how-to/make-per-application-backups/#limitations
  • #1165: Fix for when the systemd service directories (RuntimeDirectory and StateDirectory) each
    contain multiple paths.
  • #1168: Fix for the "list", "info", and "delete" options in "extra_borg_options" being ignored
    when "--archive" is omitted with Borg 1.x.
  • #1169: Fix for a regression in the ZFS, LVM, and Btrfs hooks in which partial excludes of
    snapshot paths were ignored.
  • #1170: Fix for an inconsistent log level for Borg's last output line before exiting.
  • #1172: Add an "environment" option to the Sentry monitoring hook.
  • #1176: Fix the "--repository" flag not applying to command hooks.
  • Add a "rename" option to "extra_borg_options" to support passing arbitrary flags to "borg
    rename".
  • Add documentation on patterns and excludes:
    https://torsion.org/borgmatic/reference/configuration/patterns-and-excludes/
  • Drop support for Python 3.9, which has been end-of-lifed.

borgmatic 2.0.10

24 Oct 04:50

Choose a tag to compare

  • #427: Expand the "extra_borg_options" option to support passing arbitrary Borg flags to every
    Borg sub-command that borgmatic uses. As part of this, deprecate the "init" option under
    "borg_extra_options" in favor of "repo_create".
  • #942: Factor reference material out of the documentation how-to guides. This means there's now a
    whole reference section in the docs! Check it out: https://torsion.org/borgmatic/
  • #973: For the MariaDB and MySQL database hooks, add a "skip_names" option to ignore particular
    databases when dumping "all".
  • #1150: Fix for a runtime directory error when the "create" action is used with the "--log-json"
    flag.
  • #1150: Fix for a runtime directory error when the configured patterns contain a global exclude.
  • #1161: Fix a traceback (TypeError) in the "check" action with Python 3.14.
  • #1166: Add a "borg_key_file" option for setting the Borg repository key file path.
  • Add documentation search.
  • Change the URL of the local documentation development server to be more like the production URL.

borgmatic 2.0.9

07 Oct 16:57

Choose a tag to compare

  • #1105: More accurately collect Btrfs subvolumes to snapshot. As part of this, the Btrfs hook no
    longer uses "findmnt" and the "findmnt_command" option is deprecated.
  • #1123: Add loading of systemd credentials even when running borgmatic outside of a systemd
    service.
  • #1149: Add support for Python 3.14.
  • #1149: Include automated tests in the source dist tarball uploaded to PyPI.
  • #1151: Fix snapshotting in the ZFS, Btrfs, and LVM hooks to play nicely with the Borg 1.4+
    "slashdot" hack within source directory paths.
  • #1152: Fix a regression in the Loki monitoring hook in which log messages weren't sending.
  • #1156: Fix snapshotting in the ZFS, Btrfs, and LVM hooks to snapshot both parent and child
    volumes/filesystems instead of just the parent. As part of this fix, borgmatic no longer
    deduplicates patterns except for those containing the borgmatic runtime directory.
  • Fix a traceback (TypeError) regression in the "spot" check when the "local_path" option isn't
    set.

borgmatic 2.0.8

20 Sep 00:33

Choose a tag to compare

  • #1114: Document systemd configuration changes for the ZFS filesystem hook.
  • #1116: Add dumping of database containers via their container names, handy for backing up
    database containers from the host. See the documentation for more information:
    https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#database-client-on-the-host
  • #1116: Add optional database labels to make it easier to find your dumps within a Borg archive.
  • #1118: Fix a bug in which Borg hangs during database backup when different filesystems are in
    use.
  • #1122: To prevent the user from inadvertently excluding the "bootstrap" action's manifest, always
    error and exit when the borgmatic runtime directory overlaps with the configured excludes.
  • #1125: Clarify documentation about ZFS, Btrfs, and LVM snapshotting when a separate
    filesystem is mounted in the source directory. (Spoiler: The separate filesystem doesn't get
    included in the snapshot.)
  • #1126: Create LVM snapshots as read-write to avoid an error when snapshotting ext4 filesystems
    with orphaned files that need recovery.
  • #1133: Fix the "spot" check to include borgmatic configuration files that were backed up to
    support the "bootstrap" action.
  • #1136: For all database hooks, record metadata about the dumps contained within an archive.
  • #1139: Set "borgmatic" as the user agent when connecting to monitoring services.
  • #1146: Fix a broken "create" action and "--archive latest" flag when multiple archives share the
    same name with Borg 2.
  • Treat configuration file permissions issues as errors instead of warnings.
  • When running tests, use Ruff for faster and more comprehensive code linting and formatting,
    replacing Flake8, Black, isort, etc.
  • Switch from pipx to uv for installing development tools, and added tox-uv for speeding up test
    environment creation. See the developer documentation for more information:
    https://torsion.org/borgmatic/docs/how-to/develop-on-borgmatic/