12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712 |
- 2.0.7.dev0
- * #1100: Fix a bug in which "borg --version" failing isn't considered a "fail" state in a command
- hook.
- 2.0.6
- * #1068: Fix a warning from LVM about leaked file descriptors.
- * #1086: Fix for the "spot" check breaking when the "--progress" flag is used.
- * #1089: Fix for the "spot" check erroring when a checksum command errors.
- * #1091: Fix for the "config generate" action generating invalid configuration when upgrading
- deprecated command hooks.
- * #1093: Fix for the LVM hook erroring when the "--dry-run" flag is used.
- * #1094: Fix incorrect documentation about customizing Borg exit codes:
- https://torsion.org/borgmatic/docs/how-to/customize-warnings-and-errors/
- * #1095: Fix for the "spot" check's "xxh64sum_command" option erroring on commands containing
- spaces.
- * Add support for Borg 2's "s3:" and "b2:" repository URLs, so you can backup to S3 or B2 cloud
- storage services even without using Rclone.
- * During the "spot" check, truncate log messages containing many file paths.
- 2.0.5
- * #1033: Add a "password_transport" option to the MariaDB and MySQL database hooks for customizing
- how borgmatic transmits passwords to the database client.
- * #1078: Add "keep_3monthly" and "keep_13weekly" options for customizing "prune" action archive
- retention.
- * #1078: Add a "use_chunks_archive" option for controlling whether Borg uses its chunks cache
- directory.
- * #1078: For the "compact" action, pass "--dry-run" through to Borg.
- * #1085: Fix a regression in which the default monitoring verbosity is 0 (warnings only) instead of
- 1 (info about steps borgmatic is taking). This prevented logs from showing up in monitoring
- services like Healthchecks unless you had an explicit monitoring verbosity set.
- * Move Mastodon social hosting from Fosstodon to FLOSS.social: https://floss.social/@borgmatic
- * The borgmatic project no longer accepts pull requests on GitHub. But see
- https://torsion.org/borgmatic/#contributing for how you can still submit pull requests. You can
- even use your GitHub account to login.
- 2.0.4
- * #1072: Fix path rewriting for non-root patterns in the ZFS, Btrfs, and LVM hooks.
- * #1073: Clarify the documentation about when an "after: error" command hook runs and how it
- differs from other hooks:
- https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/
- * #1075: Fix an incorrect warning about Borg placeholders being unsupported in a command hook.
- * #1080: If the exact same "everything" command hook is present in multiple configuration files,
- only run it once.
- 2.0.3
- * #1065: Fix a regression in monitoring hooks in which an error pinged the finish state instead of
- the fail state.
- * #1066: Add a "states" option to command hooks, so you can optionally skip an "after" hook if
- borgmatic encounters an error.
- * #1071: Fix an error in the LVM hook when removing a snapshot directory.
- 2.0.2
- * #1035: Document potential performance issues and workarounds with the ZFS, Btrfs, and LVM hooks:
- https://torsion.org/borgmatic/docs/how-to/snapshot-your-filesystems/
- * #1053: Display a nicer error message when the "recreate" action encounters an archive that
- already exists.
- * #1059: Fix a regression in which soft failure exit codes in command hooks were not respected.
- * #1060: Fix action command hooks getting run too many times when multiple borgmatic actions are
- executed (implicitly or explicitly).
- * #1060: Don't run action command hooks for actions listed in the "skip_actions" option.
- * #1062: Fix a regression that broke environment variable interpolation.
- * #1063: List the configured "when" action names in the log entries for command hooks.
- 2.0.1
- * #1057: Fix argument parsing to avoid using Python 3.12+ string features. Now borgmatic will
- work with Python 3.9, 3.10, and 3.11 again.
- 2.0.0
- * TL;DR: More flexible, completely revamped command hooks. All configuration options settable on
- the command-line. New configuration options for many command-line flags (including verbosity!).
- New "key import" and "recreate" actions. Almost everything is backwards compatible—but mind those
- deprecation warnings!
- * #262: Add a "default_actions" option that supports disabling default actions when borgmatic is
- run without any command-line arguments.
- * #303: Deprecate the "--override" flag in favor of direct command-line flags for every borgmatic
- configuration option. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#configuration-overrides
- * #303: Add configuration options that serve as defaults for some (but not all) command-line
- action flags. For example, each entry in "repositories:" now has an "encryption" option that
- applies to the "repo-create" action, serving as a default for the "--encryption" flag. See the
- documentation for more information: https://torsion.org/borgmatic/docs/reference/configuration/
- * #345: Add a "key import" action to import a repository key from backup.
- * #422: Add home directory expansion to file-based and KeePassXC credential hooks.
- * #610: Add a "recreate" action for recreating archives, for instance for retroactively excluding
- particular files from existing archives.
- * #790, #821: Deprecate all "before_*", "after_*" and "on_error" command hooks in favor of more
- flexible "commands:". See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/
- * #790: BREAKING: For both new and deprecated command hooks, run a configured "after" hook even if
- an error occurs first. This allows you to perform cleanup steps that correspond to "before"
- preparation commands—even when something goes wrong.
- * #790: BREAKING: Run all command hooks (both new and deprecated) respecting the
- "working_directory" option if configured, meaning that hook commands are run in that directory.
- * #793: Add configuration options for all verbosity and logging flags, so you don't have to set
- them on the command-line.
- * #836: Add a custom command option for the SQLite hook.
- * #837: Add custom command options for the MongoDB hook.
- * #1010: When using Borg 2, don't pass the "--stats" flag to "borg prune".
- * #1020: Document a database use case involving a temporary database client container:
- https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#database-containers
- * #1037: Fix an error with the "extract" action when both a remote repository and a
- "working_directory" are used.
- * #1044: Fix an error in the systemd credential hook when the credential name contains a "."
- character.
- * #1047: Add "key-file" and "yubikey" options to the KeePassXC credential hook.
- * #1048: Fix a "no such file or directory" error in ZFS, Btrfs, and LVM hooks with nested
- directories that reside on separate devices/filesystems.
- * #1050: Fix a failure in the "spot" check when the archive contains a symlink.
- * #1051: Add configuration filename to the "Successfully ran configuration file" log message.
- 1.9.14
- * #409: With the PagerDuty monitoring hook, send borgmatic logs to PagerDuty so they show up in the
- incident UI. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#pagerduty-hook
- * #936: Clarify Zabbix monitoring hook documentation about creating items:
- https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#zabbix-hook
- * #1017: Fix a regression in which some MariaDB/MySQL passwords were not escaped correctly.
- * #1021: Fix a regression in which the "exclude_patterns" option didn't expand "~" (the user's
- home directory). This fix means that all "patterns" and "patterns_from" also now expand "~".
- * #1023: Fix an error in the Btrfs hook when attempting to snapshot a read-only subvolume. Now,
- read-only subvolumes are ignored since Btrfs can't actually snapshot them.
- 1.9.13
- * #975: Add a "compression" option to the PostgreSQL database hook.
- * #1001: Fix a ZFS error during snapshot cleanup.
- * #1003: In the Zabbix monitoring hook, support Zabbix 7.2's authentication changes.
- * #1009: Send database passwords to MariaDB and MySQL via anonymous pipe, which is more secure than
- using an environment variable.
- * #1013: Send database passwords to MongoDB via anonymous pipe, which is more secure than using
- "--password" on the command-line!
- * #1015: When ctrl-C is pressed, more strongly encourage Borg to actually exit.
- * Add a "verify_tls" option to the Uptime Kuma monitoring hook for disabling TLS verification.
- * Add "tls" options to the MariaDB and MySQL database hooks to enable or disable TLS encryption
- between client and server.
- 1.9.12
- * #1005: Fix the credential hooks to avoid using Python 3.12+ string features. Now borgmatic will
- work with Python 3.9, 3.10, and 3.11 again.
- 1.9.11
- * #795: Add credential loading from file, KeePassXC, and Docker/Podman secrets. See the
- documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/provide-your-passwords/
- * #996: Fix the "create" action to omit the repository label prefix from Borg's output when
- databases are enabled.
- * #998: Send the "encryption_passphrase" option to Borg via an anonymous pipe, which is more secure
- than using an environment variable.
- * #999: Fix a runtime directory error from a conflict between "extra_borg_options" and special file
- detection.
- * #1001: For the ZFS, Btrfs, and LVM hooks, only make snapshots for root patterns that come from
- a borgmatic configuration option (e.g. "source_directories")—not from other hooks within
- borgmatic.
- * #1001: Fix a ZFS/LVM error due to colliding snapshot mount points for nested datasets or logical
- volumes.
- * #1001: Don't try to snapshot ZFS datasets that have the "canmount=off" property.
- * Fix another error in the Btrfs hook when a subvolume mounted at "/" is configured in borgmatic's
- source directories.
- 1.9.10
- * #966: Add a "{credential ...}" syntax for loading systemd credentials into borgmatic
- configuration files. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/provide-your-passwords/
- * #987: Fix a "list" action error when the "encryption_passcommand" option is set.
- * #987: When both "encryption_passcommand" and "encryption_passphrase" are configured, prefer
- "encryption_passphrase" even if it's an empty value.
- * #988: With the "max_duration" option or the "--max-duration" flag, run the archives and
- repository checks separately so they don't interfere with one another. Previously, borgmatic
- refused to run checks in this situation.
- * #989: Fix the log message code to avoid using Python 3.10+ logging features. Now borgmatic will
- work with Python 3.9 again.
- * Capture and delay any log records produced before logging is fully configured, so early log
- records don't get lost.
- * Add support for Python 3.13.
- 1.9.9
- * #635: Log the repository path or label on every relevant log message, not just some logs.
- * #961: When the "encryption_passcommand" option is set, call the command once from borgmatic to
- collect the encryption passphrase and then pass it to Borg multiple times. See the documentation
- for more information: https://torsion.org/borgmatic/docs/how-to/provide-your-passwords/
- * #981: Fix a "spot" check file count delta error.
- * #982: Fix for borgmatic "exclude_patterns" and "exclude_from" recursing into excluded
- subdirectories.
- * #983: Fix the Btrfs hook to support subvolumes with names like "@home" different from their
- mount points.
- * #985: Change the default value for the "--original-hostname" flag from "localhost" to no host
- specified. This way, the "restore" action works without a hostname if there's a single matching
- database dump.
- 1.9.8
- * #979: Fix root patterns so they don't have an invalid "sh:" prefix before getting passed to Borg.
- * Expand the recent contributors documentation section to include ticket submitters—not just code
- contributors—because there are multiple ways to contribute to the project! See:
- https://torsion.org/borgmatic/#recent-contributors
- 1.9.7
- * #855: Add a Sentry monitoring hook. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#sentry-hook
- * #968: Fix for a "spot" check error when a filename in the most recent archive contains a newline.
- * #970: Fix for an error when there's a blank line in the configured patterns or excludes.
- * #971: Fix for "exclude_from" files being completely ignored.
- * #977: Fix for "exclude_patterns" and "exclude_from" not supporting explicit pattern styles (e.g.,
- "sh:" or "re:").
- 1.9.6
- * #959: Fix an error in the Btrfs hook when a subvolume mounted at "/" is configured in borgmatic's
- source directories.
- * #960: Fix for archives storing relative source directory paths such that they contain the working
- directory.
- * #960: Fix the "spot" check to support relative source directory paths.
- * #962: For the ZFS, Btrfs, and LVM hooks, perform path rewriting for excludes and patterns in
- addition to the existing source directories rewriting.
- * #962: Under the hood, merge all configured source directories, excludes, and patterns into a
- unified temporary patterns file for passing to Borg. The borgmatic configuration options remain
- unchanged.
- * #962: For the LVM hook, add support for nested logical volumes.
- * #965: Fix a borgmatic runtime directory error when running the "spot" check with a database hook
- enabled.
- * #969: Fix the "restore" action to work on database dumps without a port when a default port is
- present in configuration.
- * Fix the "spot" check to no longer consider pipe files within an archive for file comparisons.
- * Fix the "spot" check to have a nicer error when there are no source paths to compare.
- * Fix auto-excluding of special files (when databases are configured) to support relative source
- directory paths.
- * Drop support for Python 3.8, which has been end-of-lifed.
- 1.9.5
- * #418: Backup and restore databases that have the same name but with different ports, hostnames,
- or hooks.
- * #947: To avoid a hang in the database hooks, error and exit when the borgmatic runtime
- directory overlaps with the configured excludes.
- * #954: Fix a findmnt command error in the Btrfs hook by switching to parsing JSON output.
- * #956: Fix the printing of a color reset code even when color is disabled.
- * #958: Drop colorama as a library dependency.
- * When the ZFS, Btrfs, or LVM hooks aren't configured, don't try to cleanup snapshots for them.
- 1.9.4
- * #80 (beta): Add an LVM hook for snapshotting and backing up LVM logical volumes. See the
- documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/snapshot-your-filesystems/
- * #251 (beta): Add a Btrfs hook for snapshotting and backing up Btrfs subvolumes. See the
- documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/snapshot-your-filesystems/
- * #926: Fix a library error when running within a PyInstaller bundle.
- * #950: Fix a snapshot unmount error in the ZFS hook when using nested datasets.
- * Update the ZFS hook to discover and snapshot ZFS datasets even if they are parent/grandparent
- directories of your source directories.
- * Reorganize data source and monitoring hooks to make developing new hooks easier.
- 1.9.3
- * #261 (beta): Add a ZFS hook for snapshotting and backing up ZFS datasets. See the documentation
- for more information: https://torsion.org/borgmatic/docs/how-to/snapshot-your-filesystems/
- * Remove any temporary copies of the manifest file created in support of the "bootstrap" action.
- * Deprecate the "store_config_files" option at the global scope and move it under the "bootstrap"
- hook. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/extract-a-backup/#extract-the-configuration-files-used-to-create-an-archive
- * Require the runtime directory to be an absolute path.
- * Add a "--deleted" flag to the "repo-list" action for listing deleted archives that haven't
- yet been compacted (Borg 2 only).
- * Promote the "spot" check from a beta feature to stable.
- 1.9.2
- * #441: Apply the "umask" option to all relevant actions, not just some of them.
- * #722: Remove the restriction that the "extract" and "mount" actions must match a single
- repository. Now they work more like other actions, where each repository is applied in turn.
- * #932: Fix the missing build backend setting in pyproject.toml to allow Fedora builds.
- * #934: Update the logic that probes for the borgmatic streaming database dump, bootstrap
- metadata, and check state directories to support more platforms and use cases. See the
- documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#runtime-directory
- * #934: Add the "RuntimeDirectory" and "StateDirectory" options to the sample systemd service
- file to support the new runtime and state directory logic.
- * #939: Fix borgmatic ignoring the "BORG_RELOCATED_REPO_ACCESS_IS_OK" and
- "BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK" environment variables.
- * Add a Pushover monitoring hook. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#pushover-hook
- 1.9.1
- * #928: Fix the user runtime directory location on macOS (and possibly Cygwin).
- * #930: Fix an error with the sample systemd service when no credentials are configured.
- * #931: Fix an error when implicitly upgrading the check state directory from ~/.borgmatic to
- ~/.local/state/borgmatic across filesystems.
- 1.9.0
- * #609: Fix the glob expansion of "source_directories" values to respect the "working_directory"
- option.
- * #609: BREAKING: Apply the "working_directory" option to all actions, not just "create". This
- includes repository paths, destination paths, mount points, etc.
- * #562: Deprecate the "borgmatic_source_directory" option in favor of "user_runtime_directory"
- and "user_state_directory".
- * #562: BREAKING: Move the default borgmatic streaming database dump and bootstrap metadata
- directory from ~/.borgmatic to /run/user/$UID/borgmatic, which is more XDG-compliant. You can
- override this location with the new "user_runtime_directory" option. Existing archives with
- database dumps at the old location are still restorable.
- * #562, #638: Move the default check state directory from ~/.borgmatic to
- ~/.local/state/borgmatic. This is more XDG-compliant and also prevents these state files from
- getting backed up (unless you explicitly include them). You can override this location with the
- new "user_state_directory" option. After the first time you run the "check" action with borgmatic
- 1.9.0, you can safely delete the ~/.borgmatic directory.
- * #838: BREAKING: With Borg 1.4+, store database dumps and bootstrap metadata in a "/borgmatic"
- directory within a backup archive, so the path doesn't depend on the current user. This means
- that you can now backup as one user and restore or bootstrap as another user, among other use
- cases.
- * #902: Add loading of encrypted systemd credentials. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/provide-your-passwords/#using-systemd-service-credentials
- * #911: Add a "key change-passphrase" action to change the passphrase protecting a repository key.
- * #914: Fix a confusing apparent hang when when the repository location changes, and instead
- show a helpful error message.
- * #915: BREAKING: Rename repository actions like "rcreate" to more explicit names like
- "repo-create" for compatibility with recent changes in Borg 2.0.0b10.
- * #918: BREAKING: When databases are configured, don't auto-enable the "one_file_system" option,
- as existing auto-excludes of special files should be sufficient to prevent Borg from hanging on
- them. But if this change causes problems for you, you can always enable "one_file_system"
- explicitly.
- * #919: Clarify the command-line help for the "--config" flag.
- * #919: Document a policy for versioning and breaking changes:
- https://torsion.org/borgmatic/docs/how-to/upgrade/#versioning-and-breaking-changes
- * #921: BREAKING: Change soft failure command hooks to skip only the current repository rather than
- all repositories in the configuration file.
- * #922: Replace setup.py (Python packaging metadata) with the more modern pyproject.toml.
- * When using Borg 2, default the "archive_name_format" option to just "{hostname}", as Borg 2 does
- not require unique archive names; identical archive names form a common "series" that can be
- targeted together. See the Borg 2 documentation for more information:
- https://borgbackup.readthedocs.io/en/2.0.0b13/changes.html#borg-1-2-x-1-4-x-to-borg-2-0
- * Add support for Borg 2's "rclone:" repository URLs, so you can backup to 70+ cloud storage
- services whether or not they support Borg explicitly.
- * Add support for Borg 2's "sftp://" repository URLs.
- * Update the "--match-archives" and "--archive" flags to support Borg 2 series names or archive
- hashes.
- * Add a "--match-archives" flag to the "prune" action.
- * Add "--local-path" and "--remote-path" flags to the "config bootstrap" action for setting the
- Borg executable paths used for bootstrapping.
- * Add a "--user-runtime-directory" flag to the "config bootstrap" action for helping borgmatic
- locate the bootstrap metadata stored in an archive.
- * Add a Zabbix monitoring hook. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#zabbix-hook
- * Add a tarball of borgmatic's HTML documentation to the packages on the project page.
- 1.8.14
- * #896: Fix an error in borgmatic rcreate/init on an empty repository directory with Borg 1.4.
- * #898: Add glob ("*") support to the "--repository" flag. Just quote any values containing
- globs so your shell doesn't interpret them.
- * #899: Fix for a "bad character" Borg error in which the "spot" check fed Borg an invalid pattern.
- * #900: Fix for a potential traceback (TypeError) during the handling of another error.
- * #904: Clarify the configuration reference about the "spot" check options:
- https://torsion.org/borgmatic/docs/reference/configuration/
- * #905: Fix the "source_directories_must_exist" option to work with relative "source_directories"
- paths when a "working_directory" is set.
- * #906: Add documentation details for how to run custom database dump commands using binaries from
- running containers:
- https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#database-containers
- * Fix a regression in which the "color" option had no effect.
- * Add a recent contributors section to the documentation, because credit where credit's due! See:
- https://torsion.org/borgmatic/#recent-contributors
- 1.8.13
- * #298: Add "delete" and "rdelete" actions to delete archives or entire repositories.
- * #785: Add an "only_run_on" option to consistency checks so you can limit a check to running on
- particular days of the week. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/deal-with-very-large-backups/#check-days
- * #885: Add an Uptime Kuma monitoring hook. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#uptime-kuma-hook
- * #886: Fix a PagerDuty hook traceback with Python < 3.10.
- * #889: Fix the Healthchecks ping body size limit, restoring it to the documented 100,000 bytes.
- 1.8.12
- * #817: Add a "--max-duration" flag to the "check" action and a "max_duration" option to the
- repository check configuration. This tells Borg to interrupt a repository check after a certain
- duration.
- * #860: Fix interaction between environment variable interpolation in constants and shell escaping.
- * #863: When color output is disabled (explicitly or implicitly), don't prefix each log line with
- the log level.
- * #865: Add an "upload_buffer_size" option to set the size of the upload buffer used in "create"
- action.
- * #866: Fix "Argument list too long" error in the "spot" check when checking hundreds of thousands
- of files at once.
- * #874: Add the configured repository label as "repository_label" to the interpolated variables
- passed to before/after command hooks.
- * #881: Fix "Unrecognized argument" error when the same value is used with different command-line
- flags.
- * In the "spot" check, don't try to hash symlinked directories.
- 1.8.11
- * #815: Add optional Healthchecks auto-provisioning via "create_slug" option.
- * #851: Fix lack of file extraction when using "extract --strip-components all" on a path with a
- leading slash.
- * #854: Fix a traceback when the "data" consistency check is used.
- * #857: Fix a traceback with "check --only spot" when the "spot" check is unconfigured.
- 1.8.10
- * #656 (beta): Add a "spot" consistency check that compares file counts and contents between your
- source files and the latest archive, ensuring they fall within configured tolerances. This can
- catch problems like incorrect excludes, inadvertent deletes, files changed by malware, etc. See
- the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/deal-with-very-large-backups/#spot-check
- * #779: When "--match-archives *" is used with "check" action, don't skip Borg's orphaned objects
- check.
- * #842: When a command hook exits with a soft failure, ping the log and finish states for any
- configured monitoring hooks.
- * #843: Add documentation link to Loki dashboard for borgmatic:
- https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#loki-hook
- * #847: Fix "--json" error when Borg includes non-JSON warnings in JSON output.
- * #848: SECURITY: Mask the password when logging a MongoDB dump or restore command.
- * Fix handling of the NO_COLOR environment variable to ignore an empty value.
- * Add documentation about backing up containerized databases by configuring borgmatic to exec into
- a container to run a dump command:
- https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#database-containers
- 1.8.9
- * #311: Add custom dump/restore command options for MySQL and MariaDB.
- * #811: Add an "access_token" option to the ntfy monitoring hook for authenticating
- without username/password.
- * #827: When the "--json" flag is given, suppress console escape codes so as not to
- interfere with JSON output.
- * #829: Fix "--override" values containing deprecated section headers not actually overriding
- configuration options under deprecated section headers.
- * #835: Add support for the NO_COLOR environment variable. See the documentation for more
- information:
- https://torsion.org/borgmatic/docs/how-to/set-up-backups/#colored-output
- * #839: Add log sending for the Apprise logging hook, enabled by default. See the documentation for
- more information:
- https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#apprise-hook
- * #839: Document a potentially breaking shell quoting edge case within error hooks:
- https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#error-hooks
- * #840: When running the "rcreate" action and the repository already exists but with a different
- encryption mode than requested, error.
- * Switch from Drone to Gitea Actions for continuous integration.
- * Rename scripts/run-end-to-end-dev-tests to scripts/run-end-to-end-tests and use it in both dev
- and CI for better dev-CI parity.
- * Clarify documentation about restoring a database: borgmatic does not create the database upon
- restore.
- 1.8.8
- * #370: For the PostgreSQL hook, pass the "PGSSLMODE" environment variable through to Borg when the
- database's configuration omits the "ssl_mode" option.
- * #818: Allow the "--repository" flag to match across multiple configuration files.
- * #820: Fix broken repository detection in the "rcreate" action with Borg 1.4. The issue did not
- occur with other versions of Borg.
- * #822: Fix broken escaping logic in the PostgreSQL hook's "pg_dump_command" option.
- * SECURITY: Prevent additional shell injection attacks within the PostgreSQL hook.
- 1.8.7
- * #736: Store included configuration files within each backup archive in support of the "config
- bootstrap" action. Previously, only top-level configuration files were stored.
- * #798: Elevate specific Borg warnings to errors or squash errors to
- * warnings. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/customize-warnings-and-errors/
- * #810: SECURITY: Prevent shell injection attacks within the PostgreSQL hook, the MongoDB hook, the
- SQLite hook, the "borgmatic borg" action, and command hook variable/constant interpolation.
- * #814: Fix a traceback when providing an invalid "--override" value for a list option.
- 1.8.6
- * #767: Add an "--ssh-command" flag to the "config bootstrap" action for setting a custom SSH
- command, as no configuration is available (including the "ssh_command" option) until
- bootstrapping completes.
- * #794: Fix a traceback when the "repositories" option contains both strings and key/value pairs.
- * #800: Add configured repository labels to the JSON output for all actions.
- * #802: The "check --force" flag now runs checks even if "check" is in "skip_actions".
- * #804: Validate the configured action names in the "skip_actions" option.
- * #807: Stream SQLite databases directly to Borg instead of dumping to an intermediate file.
- * When logging commands that borgmatic executes, log the environment variables that
- borgmatic sets for those commands. (But don't log their values, since they often contain
- passwords.)
- 1.8.5
- * #701: Add a "skip_actions" option to skip running particular actions, handy for append-only or
- checkless configurations. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/set-up-backups/#skipping-actions
- * #701: Deprecate the "disabled" value for the "checks" option in favor of the new "skip_actions"
- option.
- * #745: Constants now apply to included configuration, not just the file doing the includes. As a
- side effect of this change, constants no longer apply to option names and only substitute into
- configuration values.
- * #779: Add a "--match-archives" flag to the "check" action for selecting the archives to check,
- overriding the existing "archive_name_format" and "match_archives" options in configuration.
- * #779: Only parse "--override" values as complex data types when they're for options of those
- types.
- * #782: Fix environment variable interpolation within configured repository paths.
- * #782: Add configuration constant overriding via the existing "--override" flag.
- * #783: Upgrade ruamel.yaml dependency to support version 0.18.x.
- * #784: Drop support for Python 3.7, which has been end-of-lifed.
- 1.8.4
- * #715: Add a monitoring hook for sending backup status to a variety of monitoring services via the
- Apprise library. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#apprise-hook
- * #748: When an archive filter causes no matching archives for the "rlist" or "info"
- actions, warn the user and suggest how to remove the filter.
- * #768: Fix a traceback when an invalid command-line flag or action is used.
- * #771: Fix normalization of deprecated sections ("location:", "storage:", "hooks:", etc.) to
- support empty sections without erroring.
- * #774: Disallow the "--dry-run" flag with the "borg" action, as borgmatic can't guarantee the Borg
- command won't have side effects.
- 1.8.3
- * #665: BREAKING: Simplify logging logic as follows: Syslog verbosity is now disabled by
- default, but setting the "--syslog-verbosity" flag enables it regardless of whether you're at an
- interactive console. Additionally, "--log-file-verbosity" and "--monitoring-verbosity" now
- default to 1 (info about steps borgmatic is taking) instead of 0. And both syslog logging and
- file logging can be enabled simultaneously.
- * #743: Add a monitoring hook for sending backup status and logs to Grafana Loki. See the
- documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#loki-hook
- * #753: When "archive_name_format" is not set, filter archives using the default archive name
- format.
- * #754: Fix error handling to log command output as one record per line instead of truncating
- too-long output and swallowing the end of some Borg error messages.
- * #757: Update documentation so "sudo borgmatic" works for pipx borgmatic installations.
- * #761: Fix for borgmatic not stopping Borg immediately when the user presses ctrl-C.
- * Update documentation to recommend installing/upgrading borgmatic with pipx instead of pip. See the
- documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/set-up-backups/#installation
- https://torsion.org/borgmatic/docs/how-to/upgrade/#upgrading-borgmatic
- 1.8.2
- * #345: Add "key export" action to export a copy of the repository key for safekeeping in case
- the original goes missing or gets damaged.
- * #727: Add a MariaDB database hook that uses native MariaDB commands instead of the deprecated
- MySQL ones. Be aware though that any existing backups made with the "mysql_databases:" hook are
- only restorable with a "mysql_databases:" configuration.
- * #738: Fix for potential data loss (data not getting restored) in which the database "restore"
- action didn't actually restore anything and indicated success anyway.
- * Remove the deprecated use of the MongoDB hook's "--db" flag for database restoration.
- * Add source code reference documentation for getting oriented with the borgmatic code as a
- developer: https://torsion.org/borgmatic/docs/reference/source-code/
- 1.8.1
- * #326: Add documentation for restoring a database to an alternate host:
- https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#restore-to-an-alternate-host
- * #697: Add documentation for "bootstrap" action:
- https://torsion.org/borgmatic/docs/how-to/extract-a-backup/#extract-the-configuration-files-used-to-create-an-archive
- * #725: Add "store_config_files" option for disabling the automatic backup of configuration files
- used by the "config bootstrap" action.
- * #728: Fix for "prune" action error when using the "keep_exclude_tags" option.
- * #730: Fix for Borg's interactive prompt on the "check --repair" action automatically getting
- answered "NO" even when the "check_i_know_what_i_am_doing" option isn't set.
- * #732: Include multiple configuration files with a single "!include". See the documentation for
- more information:
- https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#multiple-merge-includes
- * #734: Omit "--glob-archives" or "--match-archives" Borg flag when its value would be "*" (meaning
- all archives).
- 1.8.0
- * #575: BREAKING: For the "borgmatic borg" action, instead of implicitly injecting
- repository/archive into the resulting Borg command-line, pass repository to Borg via an
- environment variable and make archive available for explicit use in your commands. See the
- documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/run-arbitrary-borg-commands/
- * #719: Fix an error when running "borg key export" through borgmatic.
- * #720: Fix an error when dumping a database and the "exclude_nodump" option is set.
- * #724: Add "check_i_know_what_i_am_doing" option to bypass Borg confirmation prompt when running
- "check --repair".
- * When merging two configuration files, error gracefully if the two files do not adhere to the same
- format.
- * #721: Remove configuration sections ("location:", "storage:", "hooks:", etc.), while still
- keeping deprecated support for them. Now, all options are at the same level, and you don't need
- to worry about commenting/uncommenting section headers when you change an option (if you remove
- your sections first).
- * #721: BREAKING: The retention prefix and the consistency prefix can no longer have different
- values (unless one is not set).
- * #721: BREAKING: The storage umask and the hooks umask can no longer have different values (unless
- one is not set).
- * BREAKING: Flags like "--config" that previously took multiple values now need to be given once
- per value, e.g. "--config first.yaml --config second.yaml" instead of "--config first.yaml
- second.yaml". This prevents argument parsing errors on ambiguous commands.
- * BREAKING: Remove the deprecated (and silently ignored) "--successful" flag on the "list" action,
- as newer versions of Borg list successful (non-checkpoint) archives by default.
- * All deprecated configuration option values now generate warning logs.
- * Remove the deprecated (and non-functional) "--excludes" flag in favor of excludes within
- configuration.
- * Fix an error when logging too-long command output during error handling. Now, long command output
- is truncated before logging.
- 1.7.15
- * #326: Add configuration options and command-line flags for backing up a database from one
- location while restoring it somewhere else.
- * #399: Add a documentation troubleshooting note for MySQL/MariaDB authentication errors.
- * #529: Remove upgrade-borgmatic-config command for upgrading borgmatic 1.1.0 INI-style
- configuration.
- * #529: Deprecate generate-borgmatic-config in favor of new "config generate" action.
- * #529: Deprecate validate-borgmatic-config in favor of new "config validate" action.
- * #697, #712, #716: Extract borgmatic configuration from backup via new "config bootstrap"
- action—even when borgmatic has no configuration yet!
- * #669: Add sample systemd user service for running borgmatic as a non-root user.
- * #711, #713: Fix an error when "data" check time files are accessed without getting upgraded
- first.
- 1.7.14
- * #484: Add a new verbosity level (-2) to disable output entirely (for console, syslog, log file,
- or monitoring), so not even errors are shown.
- * #688: Tweak archive check probing logic to use the newest timestamp found when multiple exist.
- * #659: Add Borg 2 date-based matching flags to various actions for archive selection.
- * #703: Fix an error when loading the configuration schema on Fedora Linux.
- * #704: Fix "check" action error when repository and archive checks are configured but the archive
- check gets skipped due to the configured frequency.
- * #706: Fix "--archive latest" on "list" and "info" actions that only worked on the first of
- multiple configured repositories.
- 1.7.13
- * #375: Restore particular PostgreSQL schemas from a database dump via "borgmatic restore --schema"
- flag. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#restore-particular-schemas
- * #678: Fix error from PostgreSQL when dumping a database with a "format" of "plain".
- * #678: Fix PostgreSQL hook to support "psql_command" and "pg_restore_command" options containing
- commands with arguments.
- * #678: Fix calls to psql in PostgreSQL hook to ignore "~/.psqlrc", whose settings can break
- database dumping.
- * #680: Add support for logging each log line as a JSON object via global "--log-json" flag.
- * #682: Fix "source_directories_must_exist" option to expand globs and tildes in source directories.
- * #684: Rename "master" development branch to "main" to use more inclusive language. You'll need to
- update your development checkouts accordingly.
- * #686: Add fish shell completion script so you can tab-complete on the borgmatic command-line. See
- the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/set-up-backups/#shell-completion
- * #687: Fix borgmatic error when not finding the configuration schema for certain "pip install
- --editable" development installs.
- * #688: Fix archive checks being skipped even when particular archives haven't been checked
- recently. This occurred when using multiple borgmatic configuration files with different
- "archive_name_format"s, for instance.
- * #691: Fix error in "borgmatic restore" action when the configured repository path is relative
- instead of absolute.
- * #694: Run "borgmatic borg" action without capturing output so interactive prompts and flags like
- "--progress" still work.
- 1.7.12
- * #413: Add "log_file" context to command hooks so your scripts can consume the borgmatic log file.
- See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/
- * #666, #670: Fix error when running the "info" action with the "--match-archives" or "--archive"
- flags. Also fix the "--match-archives"/"--archive" flags to correctly override the
- "match_archives" configuration option for the "transfer", "list", "rlist", and "info" actions.
- * #668: Fix error when running the "prune" action with both "archive_name_format" and "prefix"
- options set.
- * #672: Selectively shallow merge certain mappings or sequences when including configuration files.
- See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#shallow-merge
- * #672: Selectively omit list values when including configuration files. See the documentation for
- more information:
- https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#list-merge
- * #673: View the results of configuration file merging via "validate-borgmatic-config --show" flag.
- See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#debugging-includes
- * Add optional support for running end-to-end tests and building documentation with rootless Podman
- instead of Docker.
- 1.7.11
- * #479, #588: BREAKING: Automatically use the "archive_name_format" option to filter which archives
- get used for borgmatic actions that operate on multiple archives. Override this behavior with the
- new "match_archives" option in the storage section. This change is "breaking" in that it silently
- changes which archives get considered for "rlist", "prune", "check", etc. See the documentation
- for more information:
- https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#archive-naming
- * #479, #588: The "prefix" options have been deprecated in favor of the new "archive_name_format"
- auto-matching behavior and the "match_archives" option.
- * #658: Add "--log-file-format" flag for customizing the log message format. See the documentation
- for more information:
- https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/#logging-to-file
- * #662: Fix regression in which the "check_repositories" option failed to match repositories.
- * #663: Fix regression in which the "transfer" action produced a traceback.
- * Add spellchecking of source code during test runs.
- 1.7.10
- * #396: When a database command errors, display and log the error message instead of swallowing it.
- * #501: Optionally error if a source directory does not exist via "source_directories_must_exist"
- option in borgmatic's location configuration.
- * #576: Add support for "file://" paths within "repositories" option.
- * #612: Define and use custom constants in borgmatic configuration files. See the documentation for
- more information:
- https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#constant-interpolation
- * #618: Add support for BORG_FILES_CACHE_TTL environment variable via "borg_files_cache_ttl" option
- in borgmatic's storage configuration.
- * #623: Fix confusing message when an error occurs running actions for a configuration file.
- * #635: Add optional repository labels so you can select a repository via "--repository yourlabel"
- at the command-line. See the configuration reference for more information:
- https://torsion.org/borgmatic/docs/reference/configuration/
- * #649: Add documentation on backing up a database running in a container:
- https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#database-containers
- * #655: Fix error when databases are configured and a source directory doesn't exist.
- * Add code style plugins to enforce use of Python f-strings and prevent single-letter variables.
- To join in the pedantry, refresh your test environment with "tox --recreate".
- * Rename scripts/run-full-dev-tests to scripts/run-end-to-end-dev-tests and make it run end-to-end
- tests only. Continue using tox to run unit and integration tests.
- 1.7.9
- * #295: Add a SQLite database dump/restore hook.
- * #304: Change the default action order when no actions are specified on the command-line to:
- "create", "prune", "compact", "check". If you'd like to retain the old ordering ("prune" and
- "compact" first), then specify actions explicitly on the command-line.
- * #304: Run any command-line actions in the order specified instead of using a fixed ordering.
- * #564: Add "--repository" flag to all actions where it makes sense, so you can run borgmatic on
- a single configured repository instead of all of them.
- * #628: Add a Healthchecks "log" state to send borgmatic logs to Healthchecks without signalling
- success or failure.
- * #647: Add "--strip-components all" feature on the "extract" action to remove leading path
- components of files you extract. Must be used with the "--path" flag.
- * Add support for Python 3.11.
- 1.7.8
- * #620: With the "create" action and the "--list" ("--files") flag, only show excluded files at
- verbosity 2.
- * #621: Add optional authentication to the ntfy monitoring hook.
- * With the "create" action, only one of "--list" ("--files") and "--progress" flags can be used.
- This lines up with the new behavior in Borg 2.0.0b5.
- * Internally support new Borg 2.0.0b5 "--filter" status characters / item flags for the "create"
- action.
- * Fix the "create" action with the "--dry-run" flag querying for databases when a PostgreSQL/MySQL
- "all" database is configured. Now, these queries are skipped due to the dry run.
- * Add "--repository" flag to the "rcreate" action to optionally select one configured repository to
- create.
- * Add "--progress" flag to the "transfer" action, new in Borg 2.0.0b5.
- * Add "checkpoint_volume" configuration option to creates checkpoints every specified number of
- bytes during a long-running backup, new in Borg 2.0.0b5.
- 1.7.7
- * #642: Add MySQL database hook "add_drop_database" configuration option to control whether dumped
- MySQL databases get dropped right before restore.
- * #643: Fix for potential data loss (data not getting backed up) when dumping large "directory"
- format PostgreSQL/MongoDB databases. Prior to the fix, these dumps would not finish writing to
- disk before Borg consumed them. Now, the dumping process completes before Borg starts. This only
- applies to "directory" format databases; other formats still stream to Borg without using
- temporary disk space.
- * Fix MongoDB "directory" format to work with mongodump/mongorestore without error. Prior to this
- fix, only the "archive" format worked.
- 1.7.6
- * #393, #438, #560: Optionally dump "all" PostgreSQL/MySQL databases to separate files instead of
- one combined dump file, allowing more convenient restores of individual databases. You can enable
- this by specifying the database dump "format" option when the database is named "all".
- * #602: Fix logs that interfere with JSON output by making warnings go to stderr instead of stdout.
- * #622: Fix traceback when include merging configuration files on ARM64.
- * #629: Skip warning about excluded special files when no special files have been excluded.
- * #630: Add configuration options for database command customization: "list_options",
- "restore_options", and "analyze_options" for PostgreSQL, "restore_options" for MySQL, and
- "restore_options" for MongoDB.
- 1.7.5
- * #311: Override PostgreSQL dump/restore commands via configuration options.
- * #604: Fix traceback when a configuration section is present but lacking any options.
- * #607: Clarify documentation examples for include merging and deep merging.
- * #611: Fix "data" consistency check to support "check_last" and consistency "prefix" options.
- * #613: Clarify documentation about multiple repositories and separate configuration files.
- 1.7.4
- * #596: Fix special file detection erroring when broken symlinks are encountered.
- * #597, #598: Fix regression in which "check" action errored on certain systems ("Cannot determine
- Borg repository ID").
- 1.7.3
- * #357: Add "break-lock" action for removing any repository and cache locks leftover from Borg
- aborting.
- * #360: To prevent Borg hangs, unconditionally delete stale named pipes before dumping databases.
- * #587: When database hooks are enabled, auto-exclude special files from a "create" action to
- prevent Borg from hanging. You can override/prevent this behavior by explicitly setting the
- "read_special" option to true.
- * #587: Warn when ignoring a configured "read_special" value of false, as true is needed when
- database hooks are enabled.
- * #589: Update sample systemd service file to allow system "idle" (e.g. a video monitor turning
- off) while borgmatic is running.
- * #590: Fix for potential data loss (data not getting backed up) when the "patterns_from" option
- was used with "source_directories" (or the "~/.borgmatic" path existed, which got injected into
- "source_directories" implicitly). The fix is for borgmatic to convert "source_directories" into
- patterns whenever "patterns_from" is used, working around a Borg bug:
- https://github.com/borgbackup/borg/issues/6994
- * #590: In "borgmatic create --list" output, display which files get excluded from the backup due
- to patterns or excludes.
- * #591: Add support for Borg 2's "--match-archives" flag. This replaces "--glob-archives", which
- borgmatic now treats as an alias for "--match-archives". But note that the two flags have
- slightly different syntax. See the Borg 2 changelog for more information:
- https://borgbackup.readthedocs.io/en/2.0.0b3/changes.html#version-2-0-0b3-2022-10-02
- * Fix for "borgmatic --archive latest" not finding the latest archive when a verbosity is set.
- 1.7.2
- * #577: Fix regression in which "borgmatic info --archive ..." showed repository info instead of
- archive info with Borg 1.
- * #582: Fix hang when database hooks are enabled and "patterns" contains a parent directory of
- "~/.borgmatic".
- 1.7.1
- * #542: Make the "source_directories" option optional. This is useful for "check"-only setups or
- using "patterns" exclusively.
- * #574: Fix for potential data loss (data not getting backed up) when the "patterns" option was
- used with "source_directories" (or the "~/.borgmatic" path existed, which got injected into
- "source_directories" implicitly). The fix is for borgmatic to convert "source_directories" into
- patterns whenever "patterns" is used, working around a Borg bug:
- https://github.com/borgbackup/borg/issues/6994
- 1.7.0
- * #463: Add "before_actions" and "after_actions" command hooks that run before/after all the
- actions for each repository. These new hooks are a good place to run per-repository steps like
- mounting/unmounting a remote filesystem.
- * #463: Update documentation to cover per-repository configurations:
- https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/
- * #557: Support for Borg 2 while still working with Borg 1. This includes new borgmatic actions
- like "rcreate" (replaces "init"), "rlist" (list archives in repository), "rinfo" (show repository
- info), and "transfer" (for upgrading Borg repositories). For the most part, borgmatic tries to
- smooth over differences between Borg 1 and 2 to make your upgrade process easier. However, there
- are still a few cases where Borg made breaking changes. See the Borg 2.0 changelog for more
- information: https://www.borgbackup.org/releases/borg-2.0.html
- * #557: If you install Borg 2, you'll need to manually upgrade your existing Borg 1 repositories
- before use. Note that Borg 2 stable is not yet released as of this borgmatic release, so don't
- use Borg 2 for production until it is! See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/upgrade/#upgrading-borg
- * #557: Rename several configuration options to match Borg 2: "remote_rate_limit" is now
- "upload_rate_limit", "numeric_owner" is "numeric_ids", and "bsd_flags" is "flags". borgmatic
- still works with the old options.
- * #557: Remote repository paths without the "ssh://" syntax are deprecated but still supported for
- now. Remote repository paths containing "~" are deprecated in borgmatic and no longer work in
- Borg 2.
- * #557: Omitting the "--archive" flag on the "list" action is deprecated when using Borg 2. Use
- the new "rlist" action instead.
- * #557: The "--dry-run" flag can now be used with the "rcreate"/"init" action.
- * #565: Fix handling of "repository" and "data" consistency checks to prevent invalid Borg flags.
- * #566: Modify "mount" and "extract" actions to require the "--repository" flag when multiple
- repositories are configured.
- * #571: BREAKING: Remove old-style command-line action flags like "--create, "--list", etc. If
- you're already using actions like "create" and "list" instead, this change should not affect you.
- * #571: BREAKING: Rename "--files" flag on "prune" action to "--list", as it lists archives, not
- files.
- * #571: Add "--list" as alias for "--files" flag on "create" and "export-tar" actions.
- * Add support for disabling TLS verification in Healthchecks monitoring hook with "verify_tls"
- option.
- 1.6.6
- * #559: Update documentation about configuring multiple consistency checks or multiple databases.
- * #560: Fix all database hooks to error when the requested database to restore isn't present in the
- Borg archive.
- * #561: Fix command-line "--override" flag to continue supporting old configuration file formats.
- * #563: Fix traceback with "create" action and "--json" flag when a database hook is configured.
- 1.6.5
- * #553: Fix logging to include the full traceback when Borg experiences an internal error, not just
- the first few lines.
- * #554: Fix all monitoring hooks to warn if the server returns an HTTP 4xx error. This can happen
- with Healthchecks, for instance, when using an invalid ping URL.
- * #555: Fix environment variable plumbing so options like "encryption_passphrase" and
- "encryption_passcommand" in one configuration file aren't used for other configuration files.
- 1.6.4
- * #546, #382: Keep your repository passphrases and database passwords outside of borgmatic's
- configuration file with environment variable interpolation. See the documentation for more
- information: https://torsion.org/borgmatic/docs/how-to/provide-your-passwords/
- 1.6.3
- * #541: Add "borgmatic list --find" flag for searching for files across multiple archives, useful
- for hunting down that file you accidentally deleted so you can extract it. See the documentation
- for more information:
- https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/#searching-for-a-file
- * #543: Add a monitoring hook for sending push notifications via ntfy. See the documentation for
- more information: https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#ntfy-hook
- * Fix Bash completion script to no longer alter your shell's settings (complain about unset
- variables or error on pipe failures).
- * Deprecate "borgmatic list --successful" flag, as listing only non-checkpoint (successful)
- archives is now the default in newer versions of Borg.
- 1.6.2
- * #523: Reduce the default consistency check frequency and support configuring the frequency
- independently for each check. Also add "borgmatic check --force" flag to ignore configured
- frequencies. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/deal-with-very-large-backups/#check-frequency
- * #536: Fix generate-borgmatic-config to support more complex schema changes like the new
- Healthchecks configuration options when the "--source" flag is used.
- * #538: Add support for "borgmatic borg debug" command.
- * #539: Add "generate-borgmatic-config --overwrite" flag to replace an existing destination file.
- * Add Bash completion script so you can tab-complete the borgmatic command-line. See the
- documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/set-up-backups/#shell-completion
- 1.6.1
- * #294: Add Healthchecks monitoring hook "ping_body_limit" option to configure how many bytes of
- logs to send to the Healthchecks server.
- * #402: Remove the error when "archive_name_format" is specified but a retention prefix isn't.
- * #420: Warn when an unsupported variable is used in a hook command.
- * #439: Change connection failures for monitoring hooks (Healthchecks, Cronitor, PagerDuty, and
- Cronhub) to be warnings instead of errors. This way, the monitoring system failing does not block
- backups.
- * #460: Add Healthchecks monitoring hook "send_logs" option to enable/disable sending borgmatic
- logs to the Healthchecks server.
- * #525: Add Healthchecks monitoring hook "states" option to only enable pinging for particular
- monitoring states (start, finish, fail).
- * #528: Improve the error message when a configuration override contains an invalid value.
- * #531: BREAKING: When deep merging common configuration, merge colliding list values by appending
- them. Previously, one list replaced the other.
- * #532: When a configuration include is a relative path, load it from either the current working
- directory or from the directory containing the file doing the including. Previously, only the
- working directory was used.
- * Add a randomized delay to the sample systemd timer to spread out the load on a server.
- * Change the configuration format for borgmatic monitoring hooks (Healthchecks, Cronitor,
- PagerDuty, and Cronhub) to specify the ping URL / integration key as a named option. The intent
- is to support additional options (some in this release). This change is backwards-compatible.
- * Add emojis to documentation table of contents to make it easier to find particular how-to and
- reference guides at a glance.
- 1.6.0
- * #381: BREAKING: Greatly simplify configuration file reuse by deep merging when including common
- configuration. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#include-merging
- * #473: BREAKING: Instead of executing "before" command hooks before all borgmatic actions run (and
- "after" hooks after), execute these hooks right before/after the corresponding action. E.g.,
- "before_check" now runs immediately before the "check" action. This better supports running
- timing-sensitive tasks like pausing containers. Side effect: before/after command hooks now run
- once for each configured repository instead of once per configuration file. Additionally, the
- "repositories" interpolated variable has been changed to "repository", containing the path to the
- current repository for the hook. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/
- * #513: Add mention of sudo's "secure_path" option to borgmatic installation documentation.
- * #515: Fix "borgmatic borg key ..." to pass parameters to Borg in the correct order.
- * #516: Fix handling of TERM signal to exit borgmatic, not just forward the signal to Borg.
- * #517: Fix borgmatic exit code (so it's zero) when initial Borg calls fail but later retries
- succeed.
- * Change Healthchecks logs truncation size from 10k bytes to 100k bytes, corresponding to that
- same change on Healthchecks.io.
- 1.5.24
- * #431: Add "working_directory" option to support source directories with relative paths.
- * #444: When loading a configuration file that is unreadable due to file permissions, warn instead
- of erroring. This supports running borgmatic as a non-root user with configuration in ~/.config
- even if there is an unreadable global configuration file in /etc.
- * #469: Add "repositories" context to "before_*" and "after_*" command action hooks. See the
- documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/
- * #486: Fix handling of "patterns_from" and "exclude_from" options to error instead of warning when
- referencing unreadable files and "create" action is run.
- * #507: Fix Borg usage error in the "compact" action when running "borgmatic --dry-run". Now, skip
- "compact" entirely during a dry run.
- 1.5.23
- * #394: Compact repository segments and free space with new "borgmatic compact" action. Borg 1.2+
- only. Also run "compact" by default when no actions are specified, as "prune" in Borg 1.2 no
- longer frees up space unless "compact" is run.
- * #394: When using the "atime", "bsd_flags", "numeric_owner", or "remote_rate_limit" options,
- tailor the flags passed to Borg depending on the Borg version.
- * #480, #482: Fix traceback when a YAML validation error occurs.
- 1.5.22
- * #288: Add database dump hook for MongoDB.
- * #470: Move mysqldump options to the beginning of the command due to MySQL bug 30994.
- * #471: When command-line configuration override produces a parse error, error cleanly instead of
- tracebacking.
- * #476: Fix unicode error when restoring particular MySQL databases.
- * Drop support for Python 3.6, which has been end-of-lifed.
- * Add support for Python 3.10.
- 1.5.21
- * #28: Optionally retry failing backups via "retries" and "retry_wait" configuration options.
- * #306: Add "list_options" MySQL configuration option for passing additional arguments to MySQL
- list command.
- * #459: Add support for old version (2.x) of jsonschema library.
- 1.5.20
- * Re-release with correct version without dev0 tag.
- 1.5.19
- * #387: Fix error when configured source directories are not present on the filesystem at the time
- of backup. Now, Borg will complain, but the backup will still continue.
- * #455: Mention changing borgmatic path in cron documentation.
- * Update sample systemd service file with more granular read-only filesystem settings.
- * Move Gitea and GitHub hosting from a personal namespace to an organization for better
- collaboration with related projects.
- * 1k ★s on GitHub!
- 1.5.18
- * #389: Fix "message too long" error when logging to rsyslog.
- * #440: Fix traceback that can occur when dumping a database.
- 1.5.17
- * #437: Fix error when configuration file contains "umask" option.
- * Remove test dependency on vim and /dev/urandom.
- 1.5.16
- * #379: Suppress console output in sample crontab and systemd service files.
- * #407: Fix syslog logging on FreeBSD.
- * #430: Fix hang when restoring a PostgreSQL "tar" format database dump.
- * Better error messages! Switch the library used for validating configuration files (from pykwalify
- to jsonschema).
- * Link borgmatic Ansible role from installation documentation:
- https://torsion.org/borgmatic/docs/how-to/set-up-backups/#other-ways-to-install
- 1.5.15
- * #419: Document use case of running backups conditionally based on laptop power level:
- https://torsion.org/borgmatic/docs/how-to/backup-to-a-removable-drive-or-an-intermittent-server/
- * #425: Run arbitrary Borg commands with new "borgmatic borg" action. See the documentation for
- more information: https://torsion.org/borgmatic/docs/how-to/run-arbitrary-borg-commands/
- 1.5.14
- * #390: Add link to Hetzner storage offering from the documentation.
- * #398: Clarify canonical home of borgmatic in documentation.
- * #406: Clarify that spaces in path names should not be backslashed in path names.
- * #423: Fix error handling to error loudly when Borg gets killed due to running out of memory!
- * Fix build so as not to attempt to build and push documentation for a non-main branch.
- * "Fix" build failure with Alpine Edge by switching from Edge to Alpine 3.13.
- * Move #borgmatic IRC channel from Freenode to Libera Chat due to Freenode takeover drama.
- IRC connection info: https://torsion.org/borgmatic/#issues
- 1.5.13
- * #373: Document that passphrase is used for Borg keyfile encryption, not just repokey encryption.
- * #404: Add support for ruamel.yaml 0.17.x YAML parsing library.
- * Update systemd service example to return a permission error when a system call isn't permitted
- (instead of terminating borgmatic outright).
- * Drop support for Python 3.5, which has been end-of-lifed.
- * Add support for Python 3.9.
- * Update versions of test dependencies (test_requirements.txt and test containers).
- * Only support black code formatter on Python 3.8+. New black dependencies make installation
- difficult on older versions of Python.
- * Replace "improve this documentation" form with link to support and ticket tracker.
- 1.5.12
- * Fix for previous release with incorrect version suffix in setup.py. No other changes.
- 1.5.11
- * #341: Add "temporary_directory" option for changing Borg's temporary directory.
- * #352: Lock down systemd security settings in sample systemd service file.
- * #355: Fix traceback when a database hook value is null in a configuration file.
- * #361: Merge override values when specifying the "--override" flag multiple times. The previous
- behavior was to take the value of the last "--override" flag only.
- * #367: Fix traceback when upgrading old INI-style configuration with upgrade-borgmatic-config.
- * #368: Fix signal forwarding from borgmatic to Borg resulting in recursion traceback.
- * #369: Document support for Borg placeholders in repository names.
- 1.5.10
- * #347: Add hooks that run for the "extract" action: "before_extract" and "after_extract".
- * #350: Fix traceback when a configuration directory is non-readable due to directory permissions.
- * Add documentation navigation links on left side of all documentation pages.
- * Clarify documentation on configuration overrides, specifically the portion about list syntax:
- http://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#configuration-overrides
- * Clarify documentation overview of monitoring options:
- http://torsion.org/borgmatic/docs/how-to/monitor-your-backups/
- 1.5.9
- * #300: Add "borgmatic export-tar" action to export an archive to a tar-formatted file or stream.
- * #339: Fix for intermittent timing-related test failure of logging function.
- * Clarify database documentation about excluding named pipes and character/block devices to prevent
- hangs.
- * Add documentation on how to make backups redundant with multiple repositories:
- https://torsion.org/borgmatic/docs/how-to/make-backups-redundant/
- 1.5.8
- * #336: Fix for traceback when running Cronitor, Cronhub, and PagerDuty monitor hooks.
- 1.5.7
- * #327: Fix broken pass-through of BORG_* environment variables to Borg.
- * #328: Fix duplicate logging to Healthchecks and send "after_*" hooks output to Healthchecks.
- * #331: Add SSL support to PostgreSQL database configuration.
- * #333: Fix for potential data loss (data not getting backed up) when borgmatic omitted configured
- source directories in certain situations. Specifically, this occurred when two source directories
- on different filesystems were related by parentage (e.g. "/foo" and "/foo/bar/baz") and the
- one_file_system option was enabled.
- * Update documentation code fragments theme to better match the rest of the page.
- * Improve configuration reference documentation readability via more aggressive word-wrapping in
- configuration schema descriptions.
- 1.5.6
- * #292: Allow before_backup and similar hooks to exit with a soft failure without altering the
- monitoring status on Healthchecks or other providers. Support this by waiting to ping monitoring
- services with a "start" status until after before_* hooks finish. Failures in before_* hooks
- still trigger a monitoring "fail" status.
- * #316: Fix hang when a stale database dump named pipe from an aborted borgmatic run remains on
- disk.
- * #323: Fix for certain configuration options like ssh_command impacting Borg invocations for
- separate configuration files.
- * #324: Add "borgmatic extract --strip-components" flag to remove leading path components when
- extracting an archive.
- * Tweak comment indentation in generated configuration file for clarity.
- * Link to Borgmacator GNOME AppIndicator from monitoring documentation.
- 1.5.5
- * #314: Fix regression in support for PostgreSQL's "directory" dump format. Unlike other dump
- formats, the "directory" dump format does not stream directly to/from Borg.
- * #315: Fix enabled database hooks to implicitly set one_file_system configuration option to true.
- This prevents Borg from reading devices like /dev/zero and hanging.
- * #316: Fix hang when streaming a database dump to Borg with implicit duplicate source directories
- by deduplicating them first.
- * #319: Fix error message when there are no MySQL databases to dump for "all" databases.
- * Improve documentation around the installation process. Specifically, making borgmatic commands
- runnable via the system PATH and offering a global install option.
- 1.5.4
- * #310: Fix legitimate database dump command errors (exit code 1) not being treated as errors by
- borgmatic.
- * For database dumps, replace the named pipe on every borgmatic run. This prevent hangs on stale
- pipes left over from previous runs.
- * Fix error handling to handle more edge cases when executing commands.
- 1.5.3
- * #258: Stream database dumps and restores directly to/from Borg without using any additional
- filesystem space. This feature is automatic, and works even on restores from archives made with
- previous versions of borgmatic.
- * #293: Documentation on macOS launchd permissions issues with work-around for Full Disk Access.
- * Remove "borgmatic restore --progress" flag, as it now conflicts with streaming database restores.
- 1.5.2
- * #301: Fix MySQL restore error on "all" database dump by excluding system tables.
- * Fix PostgreSQL restore error on "all" database dump by using "psql" for the restore instead of
- "pg_restore".
- 1.5.1
- * #289: Tired of looking up the latest successful archive name in order to pass it to borgmatic
- actions? Me too. Now you can specify "--archive latest" to all actions that accept an archive
- flag.
- * #290: Fix the "--stats" and "--files" flags so that they yield output at verbosity 0.
- * Reduce the default verbosity of borgmatic logs sent to Healthchecks monitoring hook. Now, it's
- warnings and errors only. You can increase the verbosity via the "--monitoring-verbosity" flag.
- * Add security policy documentation in SECURITY.md.
- 1.5.0
- * #245: Monitor backups with PagerDuty hook integration. See the documentation for more
- information: https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#pagerduty-hook
- * #255: Add per-action hooks: "before_prune", "after_prune", "before_check", and "after_check".
- * #274: Add ~/.config/borgmatic.d as another configuration directory default.
- * #277: Customize Healthchecks log level via borgmatic "--monitoring-verbosity" flag.
- * #280: Change "exclude_if_present" option to support multiple filenames that indicate a directory
- should be excluded from backups, rather than just a single filename.
- * #284: Backup to a removable drive or intermittent server via "soft failure" feature. See the
- documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/backup-to-a-removable-drive-or-an-intermittent-server/
- * #287: View consistency check progress via "--progress" flag for "check" action.
- * For "create" and "prune" actions, no longer list files or show detailed stats at any verbosities
- by default. You can opt back in with "--files" or "--stats" flags.
- * For "list" and "info" actions, show repository names even at verbosity 0.
- 1.4.22
- * #276, #285: Disable colored output when "--json" flag is used, so as to produce valid JSON output.
- * After a backup of a database dump in directory format, properly remove the dump directory.
- * In "borgmatic --help", don't expand $HOME in listing of default "--config" paths.
- 1.4.21
- * #268: Override particular configuration options from the command-line via "--override" flag. See
- the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#configuration-overrides
- * #270: Only trigger "on_error" hooks and monitoring failures for "prune", "create", and "check"
- actions, and not for other actions.
- * When pruning with verbosity level 1, list pruned and kept archives. Previously, this information
- was only shown at verbosity level 2.
- 1.4.20
- * Fix repository probing during "borgmatic init" to respect verbosity flag and remote_path option.
- * #249: Update Healthchecks/Cronitor/Cronhub monitoring integrations to fire for "check" and
- "prune" actions, not just "create".
- 1.4.19
- * #259: Optionally change the internal database dump path via "borgmatic_source_directory" option
- in location configuration section.
- * #271: Support piping "borgmatic list" output to grep by logging certain log levels to console
- stdout and others to stderr.
- * Retain colored output when piping or redirecting in an interactive terminal.
- * Add end-to-end tests for database dump and restore. These are run on developer machines with
- Docker Compose for approximate parity with continuous integration tests.
- 1.4.18
- * Fix "--repository" flag to accept relative paths.
- * Fix "borgmatic umount" so it only runs Borg once instead of once per repository / configuration
- file.
- * #253: Mount whole repositories via "borgmatic mount" without any "--archive" flag.
- * #269: Filter listed paths via "borgmatic list --path" flag.
- 1.4.17
- * #235: Pass extra options directly to particular Borg commands, handy for Borg options that
- borgmatic does not yet support natively. Use "extra_borg_options" in the storage configuration
- section.
- * #266: Attempt to repair any inconsistencies found during a consistency check via
- "borgmatic check --repair" flag.
- 1.4.16
- * #256: Fix for "before_backup" hook not triggering an error when the command contains "borg" and
- has an exit code of 1.
- * #257: Fix for garbled Borg file listing when using "borgmatic create --progress" with
- verbosity level 1 or 2.
- * #260: Fix for missing Healthchecks monitoring payload or HTTP 500 due to incorrect unicode
- encoding.
- 1.4.15
- * Fix for database dump removal incorrectly skipping some database dumps.
- * #123: Support for mounting an archive as a FUSE filesystem via "borgmatic mount" action, and
- unmounting via "borgmatic umount". See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/extract-a-backup/#mount-a-filesystem
- 1.4.14
- * Show summary log errors regardless of verbosity level, and log the "summary:" header with a log
- level based on the contained summary logs.
- 1.4.13
- * Show full error logs at "--verbosity 0" so you can see command output without upping the
- verbosity level.
- 1.4.12
- * #247: With "borgmatic check", consider Borg warnings as errors.
- * Dial back the display of inline error logs a bit, so failed command output doesn't appear
- multiple times in the logs (well, except for the summary).
- 1.4.11
- * #241: When using the Healthchecks monitoring hook, include borgmatic logs in the payloads for
- completion and failure pings.
- * With --verbosity level 1 or 2, show error logs both inline when they occur and in the summary
- logs at the bottom. With lower verbosity levels, suppress the summary and show error logs when
- they occur.
- 1.4.10
- * #246: Fix for "borgmatic restore" showing success and incorrectly extracting archive files, even
- when no databases are configured to restore. As this can overwrite files from the archive and
- lead to data loss, please upgrade to get the fix before using "borgmatic restore".
- * Reopen the file given by "--log-file" flag if an external program rotates the log file while
- borgmatic is running.
- 1.4.9
- * #228: Database dump hooks for MySQL/MariaDB, so you can easily dump your databases before backups
- run.
- * #243: Fix repository does not exist error with "borgmatic extract" when repository is remote.
- 1.4.8
- * Monitor backups with Cronhub hook integration. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#cronhub-hook
- * Fix Healthchecks/Cronitor hooks to skip actions when the borgmatic "--dry-run" flag is used.
- 1.4.7
- * #238: In documentation, clarify when Healthchecks/Cronitor hooks fire in relation to other hooks.
- * #239: Upgrade your borgmatic configuration to get new options and comments via
- "generate-borgmatic-config --source". See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/upgrade/#upgrading-your-configuration
- 1.4.6
- * Verbosity level "-1" for even quieter output: Errors only (#236).
- 1.4.5
- * Log to file instead of syslog via command-line "--log-file" flag (#233).
- 1.4.4
- * #234: Support for Borg --keep-exclude-tags and --exclude-nodump options.
- 1.4.3
- * Monitor backups with Cronitor hook integration. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#cronitor-hook
- 1.4.2
- * Extract files to a particular directory via "borgmatic extract --destination" flag.
- * Rename "borgmatic extract --restore-path" flag to "--path" to reduce confusion with the separate
- "borgmatic restore" action. Any uses of "--restore-path" will continue working.
- 1.4.1
- * #229: Restore backed up PostgreSQL databases via "borgmatic restore" action. See the
- documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/backup-your-databases/
- * Documentation on how to develop borgmatic's documentation:
- https://torsion.org/borgmatic/docs/how-to/develop-on-borgmatic/#documentation-development
- 1.4.0
- * #225: Database dump hooks for PostgreSQL, so you can easily dump your databases before backups
- run.
- * #230: Rename "borgmatic list --pattern-from" flag to "--patterns-from" to match Borg.
- 1.3.26
- * #224: Fix "borgmatic list --successful" with a slightly better heuristic for listing successful
- (non-checkpoint) archives.
- 1.3.25
- * #223: Dead man's switch to detect when backups start failing silently, implemented via
- healthchecks.io hook integration. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#healthchecks-hook
- * Documentation on monitoring and alerting options for borgmatic backups:
- https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/
- * Automatically rewrite links when developing on documentation locally.
- 1.3.24
- * #86: Add "borgmatic list --successful" flag to only list successful (non-checkpoint) archives.
- * Add a suggestion form to all documentation pages, so users can submit ideas for improving the
- documentation.
- * Update documentation link to community Arch Linux borgmatic package.
- 1.3.23
- * #174: More detailed error alerting via runtime context available in "on_error" hook.
- 1.3.22
- * #144: When backups to one of several repositories fails, keep backing up to the other
- repositories and report errors afterwards.
- 1.3.21
- * #192: User-defined hooks for global setup or cleanup that run before/after all actions. See the
- documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/
- 1.3.20
- * #205: More robust sample systemd service: boot delay, network dependency, lowered CPU/IO
- priority, etc.
- * #221: Fix "borgmatic create --progress" output so that it updates on the console in real-time.
- 1.3.19
- * #219: Fix visibility of "borgmatic prune --stats" output.
- 1.3.18
- * #220: Fix regression of argument parsing for default actions.
- 1.3.17
- * #217: Fix error with "borgmatic check --only" command-line flag with "extract" consistency check.
- 1.3.16
- * #210: Support for Borg check --verify-data flag via borgmatic "data" consistency check.
- * #210: Override configured consistency checks via "borgmatic check --only" command-line flag.
- * When generating sample configuration with generate-borgmatic-config, add a space after each "#"
- comment indicator.
- 1.3.15
- * #208: Fix for traceback when the "checks" option has an empty value.
- * #209: Bypass Borg error about a moved repository via "relocated_repo_access_is_ok" option in
- borgmatic storage configuration section.
- * #213: Reorder arguments passed to Borg to fix duplicate directories when using Borg patterns.
- * #214: Fix for hook erroring with exit code 1 not being interpreted as an error.
- 1.3.14
- * #204: Do not treat Borg warnings (exit code 1) as failures.
- * When validating configuration files, require strings instead of allowing any scalar type.
- 1.3.13
- * #199: Add note to documentation about using spaces instead of tabs for indentation, as YAML does
- not allow tabs.
- * #203: Fix compatibility with ruamel.yaml 0.16.x.
- * If a "prefix" option in borgmatic's configuration has an empty value (blank or ""), then disable
- default prefix.
- 1.3.12
- * Only log to syslog when run from a non-interactive console (e.g. a cron job).
- * Remove unicode byte order mark from syslog output so it doesn't show up as a literal in rsyslog
- output. See discussion on #197.
- 1.3.11
- * #193: Pass through several "borg list" and "borg info" flags like --short, --format, --sort-by,
- --first, --last, etc. via borgmatic command-line flags.
- * Add borgmatic info --repository and --archive command-line flags to display info for individual
- repositories or archives.
- * Support for Borg --noatime, --noctime, and --nobirthtime flags via corresponding options in
- borgmatic configuration location section.
- 1.3.10
- * #198: Fix for Borg create error output not showing up at borgmatic verbosity level zero.
- 1.3.9
- * #195: Switch to command-line actions as more traditional sub-commands, e.g. "borgmatic create",
- "borgmatic prune", etc. However, the classic dashed options like "--create" still work!
- 1.3.8
- * #191: Disable console color via "color" option in borgmatic configuration output section.
- 1.3.7
- * #196: Fix for unclear error message for invalid YAML merge include.
- * #197: Don't color syslog output.
- * Change default syslog verbosity to show errors only.
- 1.3.6
- * #53: Log to syslog in addition to existing console logging. Add --syslog-verbosity flag to
- customize the log level. See the documentation for more information:
- https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/
- * #178: Look for .yml configuration file extension in addition to .yaml.
- * #189: Set umask used when executing hooks via "umask" option in borgmatic hooks section.
- * Remove Python cache files before each Tox run.
- * Add #borgmatic Freenode IRC channel to documentation.
- * Add Borg/borgmatic hosting providers section to documentation.
- * Add files for building documentation into a Docker image for web serving.
- * Upgrade project build server from Drone 0.8 to 1.1.
- * Build borgmatic documentation during continuous integration.
- * We're nearly at 500 ★s on GitHub. We can do this!
- 1.3.5
- * #153: Support for various Borg directory environment variables (BORG_CONFIG_DIR, BORG_CACHE_DIR,
- etc.) via options in borgmatic's storage configuration.
- * #177: Fix for regression with missing verbose log entries.
- 1.3.4
- * Part of #125: Color borgmatic (but not Borg) output when using an interactive terminal.
- * #166: Run tests for all installed versions of Python.
- * #168: Update README with continuous integration badge.
- * #169: Automatically sort Python imports in code.
- * Document installing borgmatic with pip install --user instead of a system Python install.
- * Get more reproducible builds by pinning the versions of pip and tox used to run tests.
- * Factor out build/test configuration from tox.ini file.
- 1.3.3
- * Add validate-borgmatic-config command, useful for validating borgmatic config generated by
- configuration management or even edited by hand.
- 1.3.2
- * #160: Fix for hooks executing when using --dry-run. Now hooks are skipped during a dry run.
- 1.3.1
- * #155: Fix for invalid JSON output when using multiple borgmatic configuration files.
- * #157: Fix for seemingly random filename ordering when running through a directory of
- configuration files.
- * Fix for empty JSON output when using --create --json.
- * Now capturing Borg output only when --json flag is used. Previously, borgmatic delayed Borg
- output even without the --json flag.
- 1.3.0
- * #148: Configuration file includes and merging via "!include" tag to support reuse of common
- options across configuration files.
- 1.2.18
- * #147: Support for Borg create/extract --numeric-owner flag via "numeric_owner" option in
- borgmatic's location section.
- 1.2.17
- * #140: List the files within an archive via --list --archive option.
- 1.2.16
- * #119: Include a sample borgmatic configuration file in the documentation.
- * #123: Support for Borg archive restoration via borgmatic --extract command-line flag.
- * Refactor documentation into multiple separate pages for clarity and findability.
- * Organize options within command-line help into logical groups.
- * Exclude tests from distribution packages.
- 1.2.15
- * #127: Remove date echo from schema example, as it's not a substitute for real logging.
- * #132: Leave exclude_patterns glob expansion to Borg, since doing it in borgmatic leads to
- confusing behavior.
- * #136: Handle and format validation errors raised during argument parsing.
- * #138: Allow use of --stats flag when --create or --prune flags are implied.
- 1.2.14
- * #103: When generating sample configuration with generate-borgmatic-config, document the defaults
- for each option.
- * #116: When running multiple configuration files, attempt all configuration files even if one of
- them errors. Log a summary of results at the end.
- * Add borgmatic --version command-line flag to get the current installed version number.
- 1.2.13
- * #100: Support for --stats command-line flag independent of --verbosity.
- * #117: With borgmatic --init command-line flag, proceed without erroring if a repository already
- exists.
- 1.2.12
- * #110: Support for Borg repository initialization via borgmatic --init command-line flag.
- * #111: Update Borg create --filter values so a dry run lists files to back up.
- * #113: Update README with link to a new/forked Docker image.
- * Prevent deprecated --excludes command-line option from being used.
- * Refactor README a bit to flow better for first-time users.
- * Update README with a few additional borgmatic packages (Debian and Ubuntu).
- 1.2.11
- * #108: Support for Borg create --progress via borgmatic command-line flag.
- 1.2.10
- * #105: Support for Borg --chunker-params create option via "chunker_params" option in borgmatic's
- storage section.
- 1.2.9
- * #102: Fix for syntax error that occurred in Python 3.5 and below.
- * Make automated tests support running in Python 3.5.
- 1.2.8
- * #73: Enable consistency checks for only certain repositories via "check_repositories" option in
- borgmatic's consistency configuration. Handy for large repositories that take forever to check.
- * Include link to issue tracker within various command output.
- * Run continuous integration tests on a matrix of Python and Borg versions.
- 1.2.7
- * #98: Support for Borg --keep-secondly prune option.
- * Use Black code formatter and Flake8 code checker as part of running automated tests.
- * Add an end-to-end automated test that actually integrates with Borg.
- * Set up continuous integration for borgmatic automated tests on projects.evoworx.org.
- 1.2.6
- * Fix generated configuration to also include a "keep_daily" value so pruning works out of the
- box.
- 1.2.5
- * #57: When generating sample configuration with generate-borgmatic-config, comment out all
- optional configuration so as to streamline the initial configuration process.
- 1.2.4
- * Fix for archive checking traceback due to parameter mismatch.
- 1.2.3
- * #64, #90, #92: Rewrite of logging system. Now verbosity flags passed to Borg are derived from
- borgmatic's log level. Note that the output of borgmatic might slightly change.
- * Part of #80: Support for Borg create --read-special via "read_special" option in borgmatic's
- location configuration.
- * #87: Support for Borg create --checkpoint-interval via "checkpoint_interval" option in
- borgmatic's storage configuration.
- * #88: Fix declared pykwalify compatibility version range in setup.py to prevent use of ancient
- versions of pykwalify with large version numbers.
- * #89: Pass --show-rc option to Borg when at highest verbosity level.
- * #94: Support for Borg --json option via borgmatic command-line to --create archives.
- 1.2.2
- * #85: Fix compatibility issue between pykwalify and ruamel.yaml 0.15.52, which manifested in
- borgmatic as a pykwalify RuleError.
- 1.2.1
- * Skip before/after backup hooks when only doing --prune, --check, --list, and/or --info.
- * #71: Support for XDG_CONFIG_HOME environment variable for specifying alternate user ~/.config/
- path.
- * #74, #83: Support for Borg --json option via borgmatic command-line to --list archives or show
- archive --info in JSON format, ideal for programmatic consumption.
- * #38, #76: Upgrade ruamel.yaml compatibility version range and fix support for Python 3.7.
- * #77: Skip non-"*.yaml" config filenames in /etc/borgmatic.d/ so as not to parse backup files,
- editor swap files, etc.
- * #81: Document user-defined hooks run before/after backup, or on error.
- * Add code style guidelines to the documentation.
- 1.2.0
- * #61: Support for Borg --list option via borgmatic command-line to list all archives.
- * #61: Support for Borg --info option via borgmatic command-line to display summary information.
- * #62: Update README to mention other ways of installing borgmatic.
- * Support for Borg --prefix option for consistency checks via "prefix" option in borgmatic's
- consistency configuration.
- * Add introductory screencast link to documentation.
- * #59: Ignore "check_last" and consistency "prefix" when "archives" not in consistency checks.
- * #60: Add "Persistent" flag to systemd timer example.
- * #63: Support for Borg --nobsdflags option to skip recording bsdflags (e.g. NODUMP, IMMUTABLE) in
- archive.
- * #69: Support for Borg prune --umask option using value of existing "umask" option in borgmatic's
- storage configuration.
- * Update tox.ini to only assume Python 3.x instead of Python 3.4 specifically.
- * Add ~/.config/borgmatic/config.yaml to default configuration path probing.
- * Document how to develop on and contribute to borgmatic.
- 1.1.15
- * Support for Borg BORG_PASSCOMMAND environment variable to read a password from an external file.
- * Fix for Borg create error when using borgmatic's --dry-run and --verbosity options together.
- Work-around for behavior introduced in Borg 1.1.3: https://github.com/borgbackup/borg/issues/3298
- * #55: Fix for missing tags/releases on Gitea and GitHub project hosting.
- * #56: Support for Borg --lock-wait option for the maximum wait for a repository/cache lock.
- * #58: Support for using tilde in exclude_patterns to reference home directory.
- 1.1.14
- * #49: Fix for typo in --patterns-from option.
- * #47: Support for Borg --dry-run option via borgmatic command-line.
- 1.1.13
- * #54: Fix for incorrect consistency check flags passed to Borg when all three checks ("repository",
- "archives", and "extract") are specified in borgmatic configuration.
- * #48: Add "local_path" to configuration for specifying an alternative Borg executable path.
- * #49: Support for Borg experimental --patterns-from and --patterns options for specifying mixed
- includes/excludes.
- * Moved issue tracker from Taiga to integrated Gitea tracker at
- https://projects.torsion.org/borgmatic-collective/borgmatic/issues
- 1.1.12
- * #46: Declare dependency on pykwalify 1.6 or above, as older versions yield "Unknown key: version"
- rule errors.
- * Support for Borg --keep-minutely prune option.
- 1.1.11
- * #26: Add "ssh_command" to configuration for specifying a custom SSH command or options.
- * Fix for incorrect /etc/borgmatic.d/ configuration path probing on macOS. This problem manifested
- as an error on startup: "[Errno 2] No such file or directory: '/etc/borgmatic.d'".
- 1.1.10
- * Pass several Unix signals through to child processes like Borg. This means that Borg now properly
- shuts down if borgmatic is terminated (e.g. due to a system suspend).
- * #30: Support for using tilde in repository paths to reference home directory.
- * #43: Support for Borg --files-cache option for setting the files cache operation mode.
- * #45: Support for Borg --remote-ratelimit option for limiting upload rate.
- * Log invoked Borg commands when at highest verbosity level.
- 1.1.9
- * #17, #39: Support for user-defined hooks before/after backup, or on error.
- * #34: Improve clarity of logging spew at high verbosity levels.
- * #30: Support for using tilde in source directory path to reference home directory.
- * Require "prefix" in retention section when "archive_name_format" is set. This is to avoid
- accidental pruning of archives with a different archive name format. For similar reasons, default
- "prefix" to "{hostname}-" if not specified.
- * Convert main source repository from Mercurial to Git.
- * Update dead links to Borg documentation.
- 1.1.8
- * #40: Fix to make /etc/borgmatic/config.yaml optional rather than required when using the default
- config paths.
- 1.1.7
- * #29: Add "archive_name_format" to configuration for customizing archive names.
- * Fix for traceback when "exclude_from" value is empty in configuration file.
- * When pruning, make highest verbosity level list archives kept and pruned.
- * Clarification of Python 3 pip usage in documentation.
- 1.1.6
- * #13, #36: Support for Borg --exclude-from, --exclude-caches, and --exclude-if-present options.
- 1.1.5
- * #35: New "extract" consistency check that performs a dry-run extraction of the most recent
- archive.
- 1.1.4
- * #18: Added command-line flags for performing a borgmatic run with only pruning, creating, or
- checking enabled. This supports use cases like running consistency checks from a different cron
- job with a different frequency, or running pruning with a different verbosity level.
- 1.1.3
- * #15: Support for running multiple config files in /etc/borgmatic.d/ from a single borgmatic run.
- * Fix for generate-borgmatic-config writing config with invalid one_file_system value.
- 1.1.2
- * #33: Fix for passing check_last as integer to subprocess when calling Borg.
- 1.1.1
- * Part of #33: Fix for upgrade-borgmatic-config converting check_last option as a string instead of
- an integer.
- * Fix for upgrade-borgmatic-config erroring when consistency checks option is not present.
- 1.1.0
- * Switched config file format to YAML. Run upgrade-borgmatic-config to upgrade.
- * Added generate-borgmatic-config command for initial config creation.
- * Dropped Python 2 support. Now Python 3 only.
- * #19: Fix for README mention of sample files not included in package.
- * #23: Sample files for triggering borgmatic from a systemd timer.
- * Support for backing up to multiple repositories.
- * To free up space, now pruning backups prior to creating a new backup.
- * Enabled test coverage output during tox runs.
- * Added logo.
- 1.0.3
- * #22: Fix for verbosity flag not actually causing verbose output.
- 1.0.2
- * #21: Fix for traceback when remote_path option is missing.
- 1.0.1
- * #20: Support for Borg's --remote-path option to use an alternate Borg
- executable. See sample/config.
- 1.0.0
- * Attic is no longer supported, as there hasn't been any recent development on
- it. Dropping Attic support will allow faster iteration on Borg-specific
- features. If you're still using Attic, this is a good time to switch to Borg!
- * Project renamed from atticmatic to borgmatic. See the borgmatic README for
- information on upgrading.
- 0.1.8
- * Fix for handling of spaces in source_directories which resulted in backup up everything.
- * Fix for broken links to Borg documentation.
- * At verbosity zero, suppressing Borg check stderr spew about "Checking segments".
- * Support for Borg --one-file-system.
- * Support for Borg create --umask.
- * Support for file globs in source_directories.
- 0.1.7
- * #12: Fixed parsing of punctuation in configuration file.
- * Better error message when configuration file is missing.
- 0.1.6
- * #10: New configuration option for the encryption passphrase.
- * #11: Support for Borg's new archive compression feature.
- 0.1.5
- * Changes to support release on PyPI. Now pip installable by name!
- 0.1.4
- * Adding test that setup.py version matches release version.
- 0.1.3
- * #2: Add support for "borg check --last N" to Borg backend.
- 0.1.2
- * As a convenience to new users, allow a missing default excludes file.
- * New issue tracker, linked from documentation.
- 0.1.1
- * Adding borgmatic cron example, and updating documentation to refer to it.
- 0.1.0
- * New "borgmatic" command to support Borg backup software, a fork of Attic.
- 0.0.7
- * Flag for multiple levels of verbosity: some, and lots.
- * Improved mocking of Python builtins in unit tests.
- 0.0.6
- * New configuration section for customizing which Attic consistency checks run, if any.
- 0.0.5
- * Fixed regression with --verbose output being buffered. This means dropping the helpful error
- message introduced in 0.0.4.
- 0.0.4
- * Now using tox to run tests against multiple versions of Python in one go.
- * Helpful error message about how to create a repository if one is missing.
- * Troubleshooting section with steps to deal with broken pipes.
- * Nosetests config file (setup.cfg) with defaults.
- 0.0.3
- * After pruning, run attic's consistency checks on all archives.
- * Integration tests for argument parsing.
- * Documentation updates about repository encryption.
- 0.0.2
- * Configuration support for additional attic prune flags: keep_within, keep_hourly, keep_yearly,
- and prefix.
- 0.0.1
- * Initial release.
|