NEWS 96 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712
  1. 2.0.7.dev0
  2. * #1100: Fix a bug in which "borg --version" failing isn't considered a "fail" state in a command
  3. hook.
  4. 2.0.6
  5. * #1068: Fix a warning from LVM about leaked file descriptors.
  6. * #1086: Fix for the "spot" check breaking when the "--progress" flag is used.
  7. * #1089: Fix for the "spot" check erroring when a checksum command errors.
  8. * #1091: Fix for the "config generate" action generating invalid configuration when upgrading
  9. deprecated command hooks.
  10. * #1093: Fix for the LVM hook erroring when the "--dry-run" flag is used.
  11. * #1094: Fix incorrect documentation about customizing Borg exit codes:
  12. https://torsion.org/borgmatic/docs/how-to/customize-warnings-and-errors/
  13. * #1095: Fix for the "spot" check's "xxh64sum_command" option erroring on commands containing
  14. spaces.
  15. * Add support for Borg 2's "s3:" and "b2:" repository URLs, so you can backup to S3 or B2 cloud
  16. storage services even without using Rclone.
  17. * During the "spot" check, truncate log messages containing many file paths.
  18. 2.0.5
  19. * #1033: Add a "password_transport" option to the MariaDB and MySQL database hooks for customizing
  20. how borgmatic transmits passwords to the database client.
  21. * #1078: Add "keep_3monthly" and "keep_13weekly" options for customizing "prune" action archive
  22. retention.
  23. * #1078: Add a "use_chunks_archive" option for controlling whether Borg uses its chunks cache
  24. directory.
  25. * #1078: For the "compact" action, pass "--dry-run" through to Borg.
  26. * #1085: Fix a regression in which the default monitoring verbosity is 0 (warnings only) instead of
  27. 1 (info about steps borgmatic is taking). This prevented logs from showing up in monitoring
  28. services like Healthchecks unless you had an explicit monitoring verbosity set.
  29. * Move Mastodon social hosting from Fosstodon to FLOSS.social: https://floss.social/@borgmatic
  30. * The borgmatic project no longer accepts pull requests on GitHub. But see
  31. https://torsion.org/borgmatic/#contributing for how you can still submit pull requests. You can
  32. even use your GitHub account to login.
  33. 2.0.4
  34. * #1072: Fix path rewriting for non-root patterns in the ZFS, Btrfs, and LVM hooks.
  35. * #1073: Clarify the documentation about when an "after: error" command hook runs and how it
  36. differs from other hooks:
  37. https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/
  38. * #1075: Fix an incorrect warning about Borg placeholders being unsupported in a command hook.
  39. * #1080: If the exact same "everything" command hook is present in multiple configuration files,
  40. only run it once.
  41. 2.0.3
  42. * #1065: Fix a regression in monitoring hooks in which an error pinged the finish state instead of
  43. the fail state.
  44. * #1066: Add a "states" option to command hooks, so you can optionally skip an "after" hook if
  45. borgmatic encounters an error.
  46. * #1071: Fix an error in the LVM hook when removing a snapshot directory.
  47. 2.0.2
  48. * #1035: Document potential performance issues and workarounds with the ZFS, Btrfs, and LVM hooks:
  49. https://torsion.org/borgmatic/docs/how-to/snapshot-your-filesystems/
  50. * #1053: Display a nicer error message when the "recreate" action encounters an archive that
  51. already exists.
  52. * #1059: Fix a regression in which soft failure exit codes in command hooks were not respected.
  53. * #1060: Fix action command hooks getting run too many times when multiple borgmatic actions are
  54. executed (implicitly or explicitly).
  55. * #1060: Don't run action command hooks for actions listed in the "skip_actions" option.
  56. * #1062: Fix a regression that broke environment variable interpolation.
  57. * #1063: List the configured "when" action names in the log entries for command hooks.
  58. 2.0.1
  59. * #1057: Fix argument parsing to avoid using Python 3.12+ string features. Now borgmatic will
  60. work with Python 3.9, 3.10, and 3.11 again.
  61. 2.0.0
  62. * TL;DR: More flexible, completely revamped command hooks. All configuration options settable on
  63. the command-line. New configuration options for many command-line flags (including verbosity!).
  64. New "key import" and "recreate" actions. Almost everything is backwards compatible—but mind those
  65. deprecation warnings!
  66. * #262: Add a "default_actions" option that supports disabling default actions when borgmatic is
  67. run without any command-line arguments.
  68. * #303: Deprecate the "--override" flag in favor of direct command-line flags for every borgmatic
  69. configuration option. See the documentation for more information:
  70. https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#configuration-overrides
  71. * #303: Add configuration options that serve as defaults for some (but not all) command-line
  72. action flags. For example, each entry in "repositories:" now has an "encryption" option that
  73. applies to the "repo-create" action, serving as a default for the "--encryption" flag. See the
  74. documentation for more information: https://torsion.org/borgmatic/docs/reference/configuration/
  75. * #345: Add a "key import" action to import a repository key from backup.
  76. * #422: Add home directory expansion to file-based and KeePassXC credential hooks.
  77. * #610: Add a "recreate" action for recreating archives, for instance for retroactively excluding
  78. particular files from existing archives.
  79. * #790, #821: Deprecate all "before_*", "after_*" and "on_error" command hooks in favor of more
  80. flexible "commands:". See the documentation for more information:
  81. https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/
  82. * #790: BREAKING: For both new and deprecated command hooks, run a configured "after" hook even if
  83. an error occurs first. This allows you to perform cleanup steps that correspond to "before"
  84. preparation commands—even when something goes wrong.
  85. * #790: BREAKING: Run all command hooks (both new and deprecated) respecting the
  86. "working_directory" option if configured, meaning that hook commands are run in that directory.
  87. * #793: Add configuration options for all verbosity and logging flags, so you don't have to set
  88. them on the command-line.
  89. * #836: Add a custom command option for the SQLite hook.
  90. * #837: Add custom command options for the MongoDB hook.
  91. * #1010: When using Borg 2, don't pass the "--stats" flag to "borg prune".
  92. * #1020: Document a database use case involving a temporary database client container:
  93. https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#database-containers
  94. * #1037: Fix an error with the "extract" action when both a remote repository and a
  95. "working_directory" are used.
  96. * #1044: Fix an error in the systemd credential hook when the credential name contains a "."
  97. character.
  98. * #1047: Add "key-file" and "yubikey" options to the KeePassXC credential hook.
  99. * #1048: Fix a "no such file or directory" error in ZFS, Btrfs, and LVM hooks with nested
  100. directories that reside on separate devices/filesystems.
  101. * #1050: Fix a failure in the "spot" check when the archive contains a symlink.
  102. * #1051: Add configuration filename to the "Successfully ran configuration file" log message.
  103. 1.9.14
  104. * #409: With the PagerDuty monitoring hook, send borgmatic logs to PagerDuty so they show up in the
  105. incident UI. See the documentation for more information:
  106. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#pagerduty-hook
  107. * #936: Clarify Zabbix monitoring hook documentation about creating items:
  108. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#zabbix-hook
  109. * #1017: Fix a regression in which some MariaDB/MySQL passwords were not escaped correctly.
  110. * #1021: Fix a regression in which the "exclude_patterns" option didn't expand "~" (the user's
  111. home directory). This fix means that all "patterns" and "patterns_from" also now expand "~".
  112. * #1023: Fix an error in the Btrfs hook when attempting to snapshot a read-only subvolume. Now,
  113. read-only subvolumes are ignored since Btrfs can't actually snapshot them.
  114. 1.9.13
  115. * #975: Add a "compression" option to the PostgreSQL database hook.
  116. * #1001: Fix a ZFS error during snapshot cleanup.
  117. * #1003: In the Zabbix monitoring hook, support Zabbix 7.2's authentication changes.
  118. * #1009: Send database passwords to MariaDB and MySQL via anonymous pipe, which is more secure than
  119. using an environment variable.
  120. * #1013: Send database passwords to MongoDB via anonymous pipe, which is more secure than using
  121. "--password" on the command-line!
  122. * #1015: When ctrl-C is pressed, more strongly encourage Borg to actually exit.
  123. * Add a "verify_tls" option to the Uptime Kuma monitoring hook for disabling TLS verification.
  124. * Add "tls" options to the MariaDB and MySQL database hooks to enable or disable TLS encryption
  125. between client and server.
  126. 1.9.12
  127. * #1005: Fix the credential hooks to avoid using Python 3.12+ string features. Now borgmatic will
  128. work with Python 3.9, 3.10, and 3.11 again.
  129. 1.9.11
  130. * #795: Add credential loading from file, KeePassXC, and Docker/Podman secrets. See the
  131. documentation for more information:
  132. https://torsion.org/borgmatic/docs/how-to/provide-your-passwords/
  133. * #996: Fix the "create" action to omit the repository label prefix from Borg's output when
  134. databases are enabled.
  135. * #998: Send the "encryption_passphrase" option to Borg via an anonymous pipe, which is more secure
  136. than using an environment variable.
  137. * #999: Fix a runtime directory error from a conflict between "extra_borg_options" and special file
  138. detection.
  139. * #1001: For the ZFS, Btrfs, and LVM hooks, only make snapshots for root patterns that come from
  140. a borgmatic configuration option (e.g. "source_directories")—not from other hooks within
  141. borgmatic.
  142. * #1001: Fix a ZFS/LVM error due to colliding snapshot mount points for nested datasets or logical
  143. volumes.
  144. * #1001: Don't try to snapshot ZFS datasets that have the "canmount=off" property.
  145. * Fix another error in the Btrfs hook when a subvolume mounted at "/" is configured in borgmatic's
  146. source directories.
  147. 1.9.10
  148. * #966: Add a "{credential ...}" syntax for loading systemd credentials into borgmatic
  149. configuration files. See the documentation for more information:
  150. https://torsion.org/borgmatic/docs/how-to/provide-your-passwords/
  151. * #987: Fix a "list" action error when the "encryption_passcommand" option is set.
  152. * #987: When both "encryption_passcommand" and "encryption_passphrase" are configured, prefer
  153. "encryption_passphrase" even if it's an empty value.
  154. * #988: With the "max_duration" option or the "--max-duration" flag, run the archives and
  155. repository checks separately so they don't interfere with one another. Previously, borgmatic
  156. refused to run checks in this situation.
  157. * #989: Fix the log message code to avoid using Python 3.10+ logging features. Now borgmatic will
  158. work with Python 3.9 again.
  159. * Capture and delay any log records produced before logging is fully configured, so early log
  160. records don't get lost.
  161. * Add support for Python 3.13.
  162. 1.9.9
  163. * #635: Log the repository path or label on every relevant log message, not just some logs.
  164. * #961: When the "encryption_passcommand" option is set, call the command once from borgmatic to
  165. collect the encryption passphrase and then pass it to Borg multiple times. See the documentation
  166. for more information: https://torsion.org/borgmatic/docs/how-to/provide-your-passwords/
  167. * #981: Fix a "spot" check file count delta error.
  168. * #982: Fix for borgmatic "exclude_patterns" and "exclude_from" recursing into excluded
  169. subdirectories.
  170. * #983: Fix the Btrfs hook to support subvolumes with names like "@home" different from their
  171. mount points.
  172. * #985: Change the default value for the "--original-hostname" flag from "localhost" to no host
  173. specified. This way, the "restore" action works without a hostname if there's a single matching
  174. database dump.
  175. 1.9.8
  176. * #979: Fix root patterns so they don't have an invalid "sh:" prefix before getting passed to Borg.
  177. * Expand the recent contributors documentation section to include ticket submitters—not just code
  178. contributors—because there are multiple ways to contribute to the project! See:
  179. https://torsion.org/borgmatic/#recent-contributors
  180. 1.9.7
  181. * #855: Add a Sentry monitoring hook. See the documentation for more information:
  182. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#sentry-hook
  183. * #968: Fix for a "spot" check error when a filename in the most recent archive contains a newline.
  184. * #970: Fix for an error when there's a blank line in the configured patterns or excludes.
  185. * #971: Fix for "exclude_from" files being completely ignored.
  186. * #977: Fix for "exclude_patterns" and "exclude_from" not supporting explicit pattern styles (e.g.,
  187. "sh:" or "re:").
  188. 1.9.6
  189. * #959: Fix an error in the Btrfs hook when a subvolume mounted at "/" is configured in borgmatic's
  190. source directories.
  191. * #960: Fix for archives storing relative source directory paths such that they contain the working
  192. directory.
  193. * #960: Fix the "spot" check to support relative source directory paths.
  194. * #962: For the ZFS, Btrfs, and LVM hooks, perform path rewriting for excludes and patterns in
  195. addition to the existing source directories rewriting.
  196. * #962: Under the hood, merge all configured source directories, excludes, and patterns into a
  197. unified temporary patterns file for passing to Borg. The borgmatic configuration options remain
  198. unchanged.
  199. * #962: For the LVM hook, add support for nested logical volumes.
  200. * #965: Fix a borgmatic runtime directory error when running the "spot" check with a database hook
  201. enabled.
  202. * #969: Fix the "restore" action to work on database dumps without a port when a default port is
  203. present in configuration.
  204. * Fix the "spot" check to no longer consider pipe files within an archive for file comparisons.
  205. * Fix the "spot" check to have a nicer error when there are no source paths to compare.
  206. * Fix auto-excluding of special files (when databases are configured) to support relative source
  207. directory paths.
  208. * Drop support for Python 3.8, which has been end-of-lifed.
  209. 1.9.5
  210. * #418: Backup and restore databases that have the same name but with different ports, hostnames,
  211. or hooks.
  212. * #947: To avoid a hang in the database hooks, error and exit when the borgmatic runtime
  213. directory overlaps with the configured excludes.
  214. * #954: Fix a findmnt command error in the Btrfs hook by switching to parsing JSON output.
  215. * #956: Fix the printing of a color reset code even when color is disabled.
  216. * #958: Drop colorama as a library dependency.
  217. * When the ZFS, Btrfs, or LVM hooks aren't configured, don't try to cleanup snapshots for them.
  218. 1.9.4
  219. * #80 (beta): Add an LVM hook for snapshotting and backing up LVM logical volumes. See the
  220. documentation for more information:
  221. https://torsion.org/borgmatic/docs/how-to/snapshot-your-filesystems/
  222. * #251 (beta): Add a Btrfs hook for snapshotting and backing up Btrfs subvolumes. See the
  223. documentation for more information:
  224. https://torsion.org/borgmatic/docs/how-to/snapshot-your-filesystems/
  225. * #926: Fix a library error when running within a PyInstaller bundle.
  226. * #950: Fix a snapshot unmount error in the ZFS hook when using nested datasets.
  227. * Update the ZFS hook to discover and snapshot ZFS datasets even if they are parent/grandparent
  228. directories of your source directories.
  229. * Reorganize data source and monitoring hooks to make developing new hooks easier.
  230. 1.9.3
  231. * #261 (beta): Add a ZFS hook for snapshotting and backing up ZFS datasets. See the documentation
  232. for more information: https://torsion.org/borgmatic/docs/how-to/snapshot-your-filesystems/
  233. * Remove any temporary copies of the manifest file created in support of the "bootstrap" action.
  234. * Deprecate the "store_config_files" option at the global scope and move it under the "bootstrap"
  235. hook. See the documentation for more information:
  236. https://torsion.org/borgmatic/docs/how-to/extract-a-backup/#extract-the-configuration-files-used-to-create-an-archive
  237. * Require the runtime directory to be an absolute path.
  238. * Add a "--deleted" flag to the "repo-list" action for listing deleted archives that haven't
  239. yet been compacted (Borg 2 only).
  240. * Promote the "spot" check from a beta feature to stable.
  241. 1.9.2
  242. * #441: Apply the "umask" option to all relevant actions, not just some of them.
  243. * #722: Remove the restriction that the "extract" and "mount" actions must match a single
  244. repository. Now they work more like other actions, where each repository is applied in turn.
  245. * #932: Fix the missing build backend setting in pyproject.toml to allow Fedora builds.
  246. * #934: Update the logic that probes for the borgmatic streaming database dump, bootstrap
  247. metadata, and check state directories to support more platforms and use cases. See the
  248. documentation for more information:
  249. https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#runtime-directory
  250. * #934: Add the "RuntimeDirectory" and "StateDirectory" options to the sample systemd service
  251. file to support the new runtime and state directory logic.
  252. * #939: Fix borgmatic ignoring the "BORG_RELOCATED_REPO_ACCESS_IS_OK" and
  253. "BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK" environment variables.
  254. * Add a Pushover monitoring hook. See the documentation for more information:
  255. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#pushover-hook
  256. 1.9.1
  257. * #928: Fix the user runtime directory location on macOS (and possibly Cygwin).
  258. * #930: Fix an error with the sample systemd service when no credentials are configured.
  259. * #931: Fix an error when implicitly upgrading the check state directory from ~/.borgmatic to
  260. ~/.local/state/borgmatic across filesystems.
  261. 1.9.0
  262. * #609: Fix the glob expansion of "source_directories" values to respect the "working_directory"
  263. option.
  264. * #609: BREAKING: Apply the "working_directory" option to all actions, not just "create". This
  265. includes repository paths, destination paths, mount points, etc.
  266. * #562: Deprecate the "borgmatic_source_directory" option in favor of "user_runtime_directory"
  267. and "user_state_directory".
  268. * #562: BREAKING: Move the default borgmatic streaming database dump and bootstrap metadata
  269. directory from ~/.borgmatic to /run/user/$UID/borgmatic, which is more XDG-compliant. You can
  270. override this location with the new "user_runtime_directory" option. Existing archives with
  271. database dumps at the old location are still restorable.
  272. * #562, #638: Move the default check state directory from ~/.borgmatic to
  273. ~/.local/state/borgmatic. This is more XDG-compliant and also prevents these state files from
  274. getting backed up (unless you explicitly include them). You can override this location with the
  275. new "user_state_directory" option. After the first time you run the "check" action with borgmatic
  276. 1.9.0, you can safely delete the ~/.borgmatic directory.
  277. * #838: BREAKING: With Borg 1.4+, store database dumps and bootstrap metadata in a "/borgmatic"
  278. directory within a backup archive, so the path doesn't depend on the current user. This means
  279. that you can now backup as one user and restore or bootstrap as another user, among other use
  280. cases.
  281. * #902: Add loading of encrypted systemd credentials. See the documentation for more information:
  282. https://torsion.org/borgmatic/docs/how-to/provide-your-passwords/#using-systemd-service-credentials
  283. * #911: Add a "key change-passphrase" action to change the passphrase protecting a repository key.
  284. * #914: Fix a confusing apparent hang when when the repository location changes, and instead
  285. show a helpful error message.
  286. * #915: BREAKING: Rename repository actions like "rcreate" to more explicit names like
  287. "repo-create" for compatibility with recent changes in Borg 2.0.0b10.
  288. * #918: BREAKING: When databases are configured, don't auto-enable the "one_file_system" option,
  289. as existing auto-excludes of special files should be sufficient to prevent Borg from hanging on
  290. them. But if this change causes problems for you, you can always enable "one_file_system"
  291. explicitly.
  292. * #919: Clarify the command-line help for the "--config" flag.
  293. * #919: Document a policy for versioning and breaking changes:
  294. https://torsion.org/borgmatic/docs/how-to/upgrade/#versioning-and-breaking-changes
  295. * #921: BREAKING: Change soft failure command hooks to skip only the current repository rather than
  296. all repositories in the configuration file.
  297. * #922: Replace setup.py (Python packaging metadata) with the more modern pyproject.toml.
  298. * When using Borg 2, default the "archive_name_format" option to just "{hostname}", as Borg 2 does
  299. not require unique archive names; identical archive names form a common "series" that can be
  300. targeted together. See the Borg 2 documentation for more information:
  301. https://borgbackup.readthedocs.io/en/2.0.0b13/changes.html#borg-1-2-x-1-4-x-to-borg-2-0
  302. * Add support for Borg 2's "rclone:" repository URLs, so you can backup to 70+ cloud storage
  303. services whether or not they support Borg explicitly.
  304. * Add support for Borg 2's "sftp://" repository URLs.
  305. * Update the "--match-archives" and "--archive" flags to support Borg 2 series names or archive
  306. hashes.
  307. * Add a "--match-archives" flag to the "prune" action.
  308. * Add "--local-path" and "--remote-path" flags to the "config bootstrap" action for setting the
  309. Borg executable paths used for bootstrapping.
  310. * Add a "--user-runtime-directory" flag to the "config bootstrap" action for helping borgmatic
  311. locate the bootstrap metadata stored in an archive.
  312. * Add a Zabbix monitoring hook. See the documentation for more information:
  313. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#zabbix-hook
  314. * Add a tarball of borgmatic's HTML documentation to the packages on the project page.
  315. 1.8.14
  316. * #896: Fix an error in borgmatic rcreate/init on an empty repository directory with Borg 1.4.
  317. * #898: Add glob ("*") support to the "--repository" flag. Just quote any values containing
  318. globs so your shell doesn't interpret them.
  319. * #899: Fix for a "bad character" Borg error in which the "spot" check fed Borg an invalid pattern.
  320. * #900: Fix for a potential traceback (TypeError) during the handling of another error.
  321. * #904: Clarify the configuration reference about the "spot" check options:
  322. https://torsion.org/borgmatic/docs/reference/configuration/
  323. * #905: Fix the "source_directories_must_exist" option to work with relative "source_directories"
  324. paths when a "working_directory" is set.
  325. * #906: Add documentation details for how to run custom database dump commands using binaries from
  326. running containers:
  327. https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#database-containers
  328. * Fix a regression in which the "color" option had no effect.
  329. * Add a recent contributors section to the documentation, because credit where credit's due! See:
  330. https://torsion.org/borgmatic/#recent-contributors
  331. 1.8.13
  332. * #298: Add "delete" and "rdelete" actions to delete archives or entire repositories.
  333. * #785: Add an "only_run_on" option to consistency checks so you can limit a check to running on
  334. particular days of the week. See the documentation for more information:
  335. https://torsion.org/borgmatic/docs/how-to/deal-with-very-large-backups/#check-days
  336. * #885: Add an Uptime Kuma monitoring hook. See the documentation for more information:
  337. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#uptime-kuma-hook
  338. * #886: Fix a PagerDuty hook traceback with Python < 3.10.
  339. * #889: Fix the Healthchecks ping body size limit, restoring it to the documented 100,000 bytes.
  340. 1.8.12
  341. * #817: Add a "--max-duration" flag to the "check" action and a "max_duration" option to the
  342. repository check configuration. This tells Borg to interrupt a repository check after a certain
  343. duration.
  344. * #860: Fix interaction between environment variable interpolation in constants and shell escaping.
  345. * #863: When color output is disabled (explicitly or implicitly), don't prefix each log line with
  346. the log level.
  347. * #865: Add an "upload_buffer_size" option to set the size of the upload buffer used in "create"
  348. action.
  349. * #866: Fix "Argument list too long" error in the "spot" check when checking hundreds of thousands
  350. of files at once.
  351. * #874: Add the configured repository label as "repository_label" to the interpolated variables
  352. passed to before/after command hooks.
  353. * #881: Fix "Unrecognized argument" error when the same value is used with different command-line
  354. flags.
  355. * In the "spot" check, don't try to hash symlinked directories.
  356. 1.8.11
  357. * #815: Add optional Healthchecks auto-provisioning via "create_slug" option.
  358. * #851: Fix lack of file extraction when using "extract --strip-components all" on a path with a
  359. leading slash.
  360. * #854: Fix a traceback when the "data" consistency check is used.
  361. * #857: Fix a traceback with "check --only spot" when the "spot" check is unconfigured.
  362. 1.8.10
  363. * #656 (beta): Add a "spot" consistency check that compares file counts and contents between your
  364. source files and the latest archive, ensuring they fall within configured tolerances. This can
  365. catch problems like incorrect excludes, inadvertent deletes, files changed by malware, etc. See
  366. the documentation for more information:
  367. https://torsion.org/borgmatic/docs/how-to/deal-with-very-large-backups/#spot-check
  368. * #779: When "--match-archives *" is used with "check" action, don't skip Borg's orphaned objects
  369. check.
  370. * #842: When a command hook exits with a soft failure, ping the log and finish states for any
  371. configured monitoring hooks.
  372. * #843: Add documentation link to Loki dashboard for borgmatic:
  373. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#loki-hook
  374. * #847: Fix "--json" error when Borg includes non-JSON warnings in JSON output.
  375. * #848: SECURITY: Mask the password when logging a MongoDB dump or restore command.
  376. * Fix handling of the NO_COLOR environment variable to ignore an empty value.
  377. * Add documentation about backing up containerized databases by configuring borgmatic to exec into
  378. a container to run a dump command:
  379. https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#database-containers
  380. 1.8.9
  381. * #311: Add custom dump/restore command options for MySQL and MariaDB.
  382. * #811: Add an "access_token" option to the ntfy monitoring hook for authenticating
  383. without username/password.
  384. * #827: When the "--json" flag is given, suppress console escape codes so as not to
  385. interfere with JSON output.
  386. * #829: Fix "--override" values containing deprecated section headers not actually overriding
  387. configuration options under deprecated section headers.
  388. * #835: Add support for the NO_COLOR environment variable. See the documentation for more
  389. information:
  390. https://torsion.org/borgmatic/docs/how-to/set-up-backups/#colored-output
  391. * #839: Add log sending for the Apprise logging hook, enabled by default. See the documentation for
  392. more information:
  393. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#apprise-hook
  394. * #839: Document a potentially breaking shell quoting edge case within error hooks:
  395. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#error-hooks
  396. * #840: When running the "rcreate" action and the repository already exists but with a different
  397. encryption mode than requested, error.
  398. * Switch from Drone to Gitea Actions for continuous integration.
  399. * Rename scripts/run-end-to-end-dev-tests to scripts/run-end-to-end-tests and use it in both dev
  400. and CI for better dev-CI parity.
  401. * Clarify documentation about restoring a database: borgmatic does not create the database upon
  402. restore.
  403. 1.8.8
  404. * #370: For the PostgreSQL hook, pass the "PGSSLMODE" environment variable through to Borg when the
  405. database's configuration omits the "ssl_mode" option.
  406. * #818: Allow the "--repository" flag to match across multiple configuration files.
  407. * #820: Fix broken repository detection in the "rcreate" action with Borg 1.4. The issue did not
  408. occur with other versions of Borg.
  409. * #822: Fix broken escaping logic in the PostgreSQL hook's "pg_dump_command" option.
  410. * SECURITY: Prevent additional shell injection attacks within the PostgreSQL hook.
  411. 1.8.7
  412. * #736: Store included configuration files within each backup archive in support of the "config
  413. bootstrap" action. Previously, only top-level configuration files were stored.
  414. * #798: Elevate specific Borg warnings to errors or squash errors to
  415. * warnings. See the documentation for more information:
  416. https://torsion.org/borgmatic/docs/how-to/customize-warnings-and-errors/
  417. * #810: SECURITY: Prevent shell injection attacks within the PostgreSQL hook, the MongoDB hook, the
  418. SQLite hook, the "borgmatic borg" action, and command hook variable/constant interpolation.
  419. * #814: Fix a traceback when providing an invalid "--override" value for a list option.
  420. 1.8.6
  421. * #767: Add an "--ssh-command" flag to the "config bootstrap" action for setting a custom SSH
  422. command, as no configuration is available (including the "ssh_command" option) until
  423. bootstrapping completes.
  424. * #794: Fix a traceback when the "repositories" option contains both strings and key/value pairs.
  425. * #800: Add configured repository labels to the JSON output for all actions.
  426. * #802: The "check --force" flag now runs checks even if "check" is in "skip_actions".
  427. * #804: Validate the configured action names in the "skip_actions" option.
  428. * #807: Stream SQLite databases directly to Borg instead of dumping to an intermediate file.
  429. * When logging commands that borgmatic executes, log the environment variables that
  430. borgmatic sets for those commands. (But don't log their values, since they often contain
  431. passwords.)
  432. 1.8.5
  433. * #701: Add a "skip_actions" option to skip running particular actions, handy for append-only or
  434. checkless configurations. See the documentation for more information:
  435. https://torsion.org/borgmatic/docs/how-to/set-up-backups/#skipping-actions
  436. * #701: Deprecate the "disabled" value for the "checks" option in favor of the new "skip_actions"
  437. option.
  438. * #745: Constants now apply to included configuration, not just the file doing the includes. As a
  439. side effect of this change, constants no longer apply to option names and only substitute into
  440. configuration values.
  441. * #779: Add a "--match-archives" flag to the "check" action for selecting the archives to check,
  442. overriding the existing "archive_name_format" and "match_archives" options in configuration.
  443. * #779: Only parse "--override" values as complex data types when they're for options of those
  444. types.
  445. * #782: Fix environment variable interpolation within configured repository paths.
  446. * #782: Add configuration constant overriding via the existing "--override" flag.
  447. * #783: Upgrade ruamel.yaml dependency to support version 0.18.x.
  448. * #784: Drop support for Python 3.7, which has been end-of-lifed.
  449. 1.8.4
  450. * #715: Add a monitoring hook for sending backup status to a variety of monitoring services via the
  451. Apprise library. See the documentation for more information:
  452. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#apprise-hook
  453. * #748: When an archive filter causes no matching archives for the "rlist" or "info"
  454. actions, warn the user and suggest how to remove the filter.
  455. * #768: Fix a traceback when an invalid command-line flag or action is used.
  456. * #771: Fix normalization of deprecated sections ("location:", "storage:", "hooks:", etc.) to
  457. support empty sections without erroring.
  458. * #774: Disallow the "--dry-run" flag with the "borg" action, as borgmatic can't guarantee the Borg
  459. command won't have side effects.
  460. 1.8.3
  461. * #665: BREAKING: Simplify logging logic as follows: Syslog verbosity is now disabled by
  462. default, but setting the "--syslog-verbosity" flag enables it regardless of whether you're at an
  463. interactive console. Additionally, "--log-file-verbosity" and "--monitoring-verbosity" now
  464. default to 1 (info about steps borgmatic is taking) instead of 0. And both syslog logging and
  465. file logging can be enabled simultaneously.
  466. * #743: Add a monitoring hook for sending backup status and logs to Grafana Loki. See the
  467. documentation for more information:
  468. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#loki-hook
  469. * #753: When "archive_name_format" is not set, filter archives using the default archive name
  470. format.
  471. * #754: Fix error handling to log command output as one record per line instead of truncating
  472. too-long output and swallowing the end of some Borg error messages.
  473. * #757: Update documentation so "sudo borgmatic" works for pipx borgmatic installations.
  474. * #761: Fix for borgmatic not stopping Borg immediately when the user presses ctrl-C.
  475. * Update documentation to recommend installing/upgrading borgmatic with pipx instead of pip. See the
  476. documentation for more information:
  477. https://torsion.org/borgmatic/docs/how-to/set-up-backups/#installation
  478. https://torsion.org/borgmatic/docs/how-to/upgrade/#upgrading-borgmatic
  479. 1.8.2
  480. * #345: Add "key export" action to export a copy of the repository key for safekeeping in case
  481. the original goes missing or gets damaged.
  482. * #727: Add a MariaDB database hook that uses native MariaDB commands instead of the deprecated
  483. MySQL ones. Be aware though that any existing backups made with the "mysql_databases:" hook are
  484. only restorable with a "mysql_databases:" configuration.
  485. * #738: Fix for potential data loss (data not getting restored) in which the database "restore"
  486. action didn't actually restore anything and indicated success anyway.
  487. * Remove the deprecated use of the MongoDB hook's "--db" flag for database restoration.
  488. * Add source code reference documentation for getting oriented with the borgmatic code as a
  489. developer: https://torsion.org/borgmatic/docs/reference/source-code/
  490. 1.8.1
  491. * #326: Add documentation for restoring a database to an alternate host:
  492. https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#restore-to-an-alternate-host
  493. * #697: Add documentation for "bootstrap" action:
  494. https://torsion.org/borgmatic/docs/how-to/extract-a-backup/#extract-the-configuration-files-used-to-create-an-archive
  495. * #725: Add "store_config_files" option for disabling the automatic backup of configuration files
  496. used by the "config bootstrap" action.
  497. * #728: Fix for "prune" action error when using the "keep_exclude_tags" option.
  498. * #730: Fix for Borg's interactive prompt on the "check --repair" action automatically getting
  499. answered "NO" even when the "check_i_know_what_i_am_doing" option isn't set.
  500. * #732: Include multiple configuration files with a single "!include". See the documentation for
  501. more information:
  502. https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#multiple-merge-includes
  503. * #734: Omit "--glob-archives" or "--match-archives" Borg flag when its value would be "*" (meaning
  504. all archives).
  505. 1.8.0
  506. * #575: BREAKING: For the "borgmatic borg" action, instead of implicitly injecting
  507. repository/archive into the resulting Borg command-line, pass repository to Borg via an
  508. environment variable and make archive available for explicit use in your commands. See the
  509. documentation for more information:
  510. https://torsion.org/borgmatic/docs/how-to/run-arbitrary-borg-commands/
  511. * #719: Fix an error when running "borg key export" through borgmatic.
  512. * #720: Fix an error when dumping a database and the "exclude_nodump" option is set.
  513. * #724: Add "check_i_know_what_i_am_doing" option to bypass Borg confirmation prompt when running
  514. "check --repair".
  515. * When merging two configuration files, error gracefully if the two files do not adhere to the same
  516. format.
  517. * #721: Remove configuration sections ("location:", "storage:", "hooks:", etc.), while still
  518. keeping deprecated support for them. Now, all options are at the same level, and you don't need
  519. to worry about commenting/uncommenting section headers when you change an option (if you remove
  520. your sections first).
  521. * #721: BREAKING: The retention prefix and the consistency prefix can no longer have different
  522. values (unless one is not set).
  523. * #721: BREAKING: The storage umask and the hooks umask can no longer have different values (unless
  524. one is not set).
  525. * BREAKING: Flags like "--config" that previously took multiple values now need to be given once
  526. per value, e.g. "--config first.yaml --config second.yaml" instead of "--config first.yaml
  527. second.yaml". This prevents argument parsing errors on ambiguous commands.
  528. * BREAKING: Remove the deprecated (and silently ignored) "--successful" flag on the "list" action,
  529. as newer versions of Borg list successful (non-checkpoint) archives by default.
  530. * All deprecated configuration option values now generate warning logs.
  531. * Remove the deprecated (and non-functional) "--excludes" flag in favor of excludes within
  532. configuration.
  533. * Fix an error when logging too-long command output during error handling. Now, long command output
  534. is truncated before logging.
  535. 1.7.15
  536. * #326: Add configuration options and command-line flags for backing up a database from one
  537. location while restoring it somewhere else.
  538. * #399: Add a documentation troubleshooting note for MySQL/MariaDB authentication errors.
  539. * #529: Remove upgrade-borgmatic-config command for upgrading borgmatic 1.1.0 INI-style
  540. configuration.
  541. * #529: Deprecate generate-borgmatic-config in favor of new "config generate" action.
  542. * #529: Deprecate validate-borgmatic-config in favor of new "config validate" action.
  543. * #697, #712, #716: Extract borgmatic configuration from backup via new "config bootstrap"
  544. action—even when borgmatic has no configuration yet!
  545. * #669: Add sample systemd user service for running borgmatic as a non-root user.
  546. * #711, #713: Fix an error when "data" check time files are accessed without getting upgraded
  547. first.
  548. 1.7.14
  549. * #484: Add a new verbosity level (-2) to disable output entirely (for console, syslog, log file,
  550. or monitoring), so not even errors are shown.
  551. * #688: Tweak archive check probing logic to use the newest timestamp found when multiple exist.
  552. * #659: Add Borg 2 date-based matching flags to various actions for archive selection.
  553. * #703: Fix an error when loading the configuration schema on Fedora Linux.
  554. * #704: Fix "check" action error when repository and archive checks are configured but the archive
  555. check gets skipped due to the configured frequency.
  556. * #706: Fix "--archive latest" on "list" and "info" actions that only worked on the first of
  557. multiple configured repositories.
  558. 1.7.13
  559. * #375: Restore particular PostgreSQL schemas from a database dump via "borgmatic restore --schema"
  560. flag. See the documentation for more information:
  561. https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#restore-particular-schemas
  562. * #678: Fix error from PostgreSQL when dumping a database with a "format" of "plain".
  563. * #678: Fix PostgreSQL hook to support "psql_command" and "pg_restore_command" options containing
  564. commands with arguments.
  565. * #678: Fix calls to psql in PostgreSQL hook to ignore "~/.psqlrc", whose settings can break
  566. database dumping.
  567. * #680: Add support for logging each log line as a JSON object via global "--log-json" flag.
  568. * #682: Fix "source_directories_must_exist" option to expand globs and tildes in source directories.
  569. * #684: Rename "master" development branch to "main" to use more inclusive language. You'll need to
  570. update your development checkouts accordingly.
  571. * #686: Add fish shell completion script so you can tab-complete on the borgmatic command-line. See
  572. the documentation for more information:
  573. https://torsion.org/borgmatic/docs/how-to/set-up-backups/#shell-completion
  574. * #687: Fix borgmatic error when not finding the configuration schema for certain "pip install
  575. --editable" development installs.
  576. * #688: Fix archive checks being skipped even when particular archives haven't been checked
  577. recently. This occurred when using multiple borgmatic configuration files with different
  578. "archive_name_format"s, for instance.
  579. * #691: Fix error in "borgmatic restore" action when the configured repository path is relative
  580. instead of absolute.
  581. * #694: Run "borgmatic borg" action without capturing output so interactive prompts and flags like
  582. "--progress" still work.
  583. 1.7.12
  584. * #413: Add "log_file" context to command hooks so your scripts can consume the borgmatic log file.
  585. See the documentation for more information:
  586. https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/
  587. * #666, #670: Fix error when running the "info" action with the "--match-archives" or "--archive"
  588. flags. Also fix the "--match-archives"/"--archive" flags to correctly override the
  589. "match_archives" configuration option for the "transfer", "list", "rlist", and "info" actions.
  590. * #668: Fix error when running the "prune" action with both "archive_name_format" and "prefix"
  591. options set.
  592. * #672: Selectively shallow merge certain mappings or sequences when including configuration files.
  593. See the documentation for more information:
  594. https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#shallow-merge
  595. * #672: Selectively omit list values when including configuration files. See the documentation for
  596. more information:
  597. https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#list-merge
  598. * #673: View the results of configuration file merging via "validate-borgmatic-config --show" flag.
  599. See the documentation for more information:
  600. https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#debugging-includes
  601. * Add optional support for running end-to-end tests and building documentation with rootless Podman
  602. instead of Docker.
  603. 1.7.11
  604. * #479, #588: BREAKING: Automatically use the "archive_name_format" option to filter which archives
  605. get used for borgmatic actions that operate on multiple archives. Override this behavior with the
  606. new "match_archives" option in the storage section. This change is "breaking" in that it silently
  607. changes which archives get considered for "rlist", "prune", "check", etc. See the documentation
  608. for more information:
  609. https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#archive-naming
  610. * #479, #588: The "prefix" options have been deprecated in favor of the new "archive_name_format"
  611. auto-matching behavior and the "match_archives" option.
  612. * #658: Add "--log-file-format" flag for customizing the log message format. See the documentation
  613. for more information:
  614. https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/#logging-to-file
  615. * #662: Fix regression in which the "check_repositories" option failed to match repositories.
  616. * #663: Fix regression in which the "transfer" action produced a traceback.
  617. * Add spellchecking of source code during test runs.
  618. 1.7.10
  619. * #396: When a database command errors, display and log the error message instead of swallowing it.
  620. * #501: Optionally error if a source directory does not exist via "source_directories_must_exist"
  621. option in borgmatic's location configuration.
  622. * #576: Add support for "file://" paths within "repositories" option.
  623. * #612: Define and use custom constants in borgmatic configuration files. See the documentation for
  624. more information:
  625. https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#constant-interpolation
  626. * #618: Add support for BORG_FILES_CACHE_TTL environment variable via "borg_files_cache_ttl" option
  627. in borgmatic's storage configuration.
  628. * #623: Fix confusing message when an error occurs running actions for a configuration file.
  629. * #635: Add optional repository labels so you can select a repository via "--repository yourlabel"
  630. at the command-line. See the configuration reference for more information:
  631. https://torsion.org/borgmatic/docs/reference/configuration/
  632. * #649: Add documentation on backing up a database running in a container:
  633. https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#database-containers
  634. * #655: Fix error when databases are configured and a source directory doesn't exist.
  635. * Add code style plugins to enforce use of Python f-strings and prevent single-letter variables.
  636. To join in the pedantry, refresh your test environment with "tox --recreate".
  637. * Rename scripts/run-full-dev-tests to scripts/run-end-to-end-dev-tests and make it run end-to-end
  638. tests only. Continue using tox to run unit and integration tests.
  639. 1.7.9
  640. * #295: Add a SQLite database dump/restore hook.
  641. * #304: Change the default action order when no actions are specified on the command-line to:
  642. "create", "prune", "compact", "check". If you'd like to retain the old ordering ("prune" and
  643. "compact" first), then specify actions explicitly on the command-line.
  644. * #304: Run any command-line actions in the order specified instead of using a fixed ordering.
  645. * #564: Add "--repository" flag to all actions where it makes sense, so you can run borgmatic on
  646. a single configured repository instead of all of them.
  647. * #628: Add a Healthchecks "log" state to send borgmatic logs to Healthchecks without signalling
  648. success or failure.
  649. * #647: Add "--strip-components all" feature on the "extract" action to remove leading path
  650. components of files you extract. Must be used with the "--path" flag.
  651. * Add support for Python 3.11.
  652. 1.7.8
  653. * #620: With the "create" action and the "--list" ("--files") flag, only show excluded files at
  654. verbosity 2.
  655. * #621: Add optional authentication to the ntfy monitoring hook.
  656. * With the "create" action, only one of "--list" ("--files") and "--progress" flags can be used.
  657. This lines up with the new behavior in Borg 2.0.0b5.
  658. * Internally support new Borg 2.0.0b5 "--filter" status characters / item flags for the "create"
  659. action.
  660. * Fix the "create" action with the "--dry-run" flag querying for databases when a PostgreSQL/MySQL
  661. "all" database is configured. Now, these queries are skipped due to the dry run.
  662. * Add "--repository" flag to the "rcreate" action to optionally select one configured repository to
  663. create.
  664. * Add "--progress" flag to the "transfer" action, new in Borg 2.0.0b5.
  665. * Add "checkpoint_volume" configuration option to creates checkpoints every specified number of
  666. bytes during a long-running backup, new in Borg 2.0.0b5.
  667. 1.7.7
  668. * #642: Add MySQL database hook "add_drop_database" configuration option to control whether dumped
  669. MySQL databases get dropped right before restore.
  670. * #643: Fix for potential data loss (data not getting backed up) when dumping large "directory"
  671. format PostgreSQL/MongoDB databases. Prior to the fix, these dumps would not finish writing to
  672. disk before Borg consumed them. Now, the dumping process completes before Borg starts. This only
  673. applies to "directory" format databases; other formats still stream to Borg without using
  674. temporary disk space.
  675. * Fix MongoDB "directory" format to work with mongodump/mongorestore without error. Prior to this
  676. fix, only the "archive" format worked.
  677. 1.7.6
  678. * #393, #438, #560: Optionally dump "all" PostgreSQL/MySQL databases to separate files instead of
  679. one combined dump file, allowing more convenient restores of individual databases. You can enable
  680. this by specifying the database dump "format" option when the database is named "all".
  681. * #602: Fix logs that interfere with JSON output by making warnings go to stderr instead of stdout.
  682. * #622: Fix traceback when include merging configuration files on ARM64.
  683. * #629: Skip warning about excluded special files when no special files have been excluded.
  684. * #630: Add configuration options for database command customization: "list_options",
  685. "restore_options", and "analyze_options" for PostgreSQL, "restore_options" for MySQL, and
  686. "restore_options" for MongoDB.
  687. 1.7.5
  688. * #311: Override PostgreSQL dump/restore commands via configuration options.
  689. * #604: Fix traceback when a configuration section is present but lacking any options.
  690. * #607: Clarify documentation examples for include merging and deep merging.
  691. * #611: Fix "data" consistency check to support "check_last" and consistency "prefix" options.
  692. * #613: Clarify documentation about multiple repositories and separate configuration files.
  693. 1.7.4
  694. * #596: Fix special file detection erroring when broken symlinks are encountered.
  695. * #597, #598: Fix regression in which "check" action errored on certain systems ("Cannot determine
  696. Borg repository ID").
  697. 1.7.3
  698. * #357: Add "break-lock" action for removing any repository and cache locks leftover from Borg
  699. aborting.
  700. * #360: To prevent Borg hangs, unconditionally delete stale named pipes before dumping databases.
  701. * #587: When database hooks are enabled, auto-exclude special files from a "create" action to
  702. prevent Borg from hanging. You can override/prevent this behavior by explicitly setting the
  703. "read_special" option to true.
  704. * #587: Warn when ignoring a configured "read_special" value of false, as true is needed when
  705. database hooks are enabled.
  706. * #589: Update sample systemd service file to allow system "idle" (e.g. a video monitor turning
  707. off) while borgmatic is running.
  708. * #590: Fix for potential data loss (data not getting backed up) when the "patterns_from" option
  709. was used with "source_directories" (or the "~/.borgmatic" path existed, which got injected into
  710. "source_directories" implicitly). The fix is for borgmatic to convert "source_directories" into
  711. patterns whenever "patterns_from" is used, working around a Borg bug:
  712. https://github.com/borgbackup/borg/issues/6994
  713. * #590: In "borgmatic create --list" output, display which files get excluded from the backup due
  714. to patterns or excludes.
  715. * #591: Add support for Borg 2's "--match-archives" flag. This replaces "--glob-archives", which
  716. borgmatic now treats as an alias for "--match-archives". But note that the two flags have
  717. slightly different syntax. See the Borg 2 changelog for more information:
  718. https://borgbackup.readthedocs.io/en/2.0.0b3/changes.html#version-2-0-0b3-2022-10-02
  719. * Fix for "borgmatic --archive latest" not finding the latest archive when a verbosity is set.
  720. 1.7.2
  721. * #577: Fix regression in which "borgmatic info --archive ..." showed repository info instead of
  722. archive info with Borg 1.
  723. * #582: Fix hang when database hooks are enabled and "patterns" contains a parent directory of
  724. "~/.borgmatic".
  725. 1.7.1
  726. * #542: Make the "source_directories" option optional. This is useful for "check"-only setups or
  727. using "patterns" exclusively.
  728. * #574: Fix for potential data loss (data not getting backed up) when the "patterns" option was
  729. used with "source_directories" (or the "~/.borgmatic" path existed, which got injected into
  730. "source_directories" implicitly). The fix is for borgmatic to convert "source_directories" into
  731. patterns whenever "patterns" is used, working around a Borg bug:
  732. https://github.com/borgbackup/borg/issues/6994
  733. 1.7.0
  734. * #463: Add "before_actions" and "after_actions" command hooks that run before/after all the
  735. actions for each repository. These new hooks are a good place to run per-repository steps like
  736. mounting/unmounting a remote filesystem.
  737. * #463: Update documentation to cover per-repository configurations:
  738. https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/
  739. * #557: Support for Borg 2 while still working with Borg 1. This includes new borgmatic actions
  740. like "rcreate" (replaces "init"), "rlist" (list archives in repository), "rinfo" (show repository
  741. info), and "transfer" (for upgrading Borg repositories). For the most part, borgmatic tries to
  742. smooth over differences between Borg 1 and 2 to make your upgrade process easier. However, there
  743. are still a few cases where Borg made breaking changes. See the Borg 2.0 changelog for more
  744. information: https://www.borgbackup.org/releases/borg-2.0.html
  745. * #557: If you install Borg 2, you'll need to manually upgrade your existing Borg 1 repositories
  746. before use. Note that Borg 2 stable is not yet released as of this borgmatic release, so don't
  747. use Borg 2 for production until it is! See the documentation for more information:
  748. https://torsion.org/borgmatic/docs/how-to/upgrade/#upgrading-borg
  749. * #557: Rename several configuration options to match Borg 2: "remote_rate_limit" is now
  750. "upload_rate_limit", "numeric_owner" is "numeric_ids", and "bsd_flags" is "flags". borgmatic
  751. still works with the old options.
  752. * #557: Remote repository paths without the "ssh://" syntax are deprecated but still supported for
  753. now. Remote repository paths containing "~" are deprecated in borgmatic and no longer work in
  754. Borg 2.
  755. * #557: Omitting the "--archive" flag on the "list" action is deprecated when using Borg 2. Use
  756. the new "rlist" action instead.
  757. * #557: The "--dry-run" flag can now be used with the "rcreate"/"init" action.
  758. * #565: Fix handling of "repository" and "data" consistency checks to prevent invalid Borg flags.
  759. * #566: Modify "mount" and "extract" actions to require the "--repository" flag when multiple
  760. repositories are configured.
  761. * #571: BREAKING: Remove old-style command-line action flags like "--create, "--list", etc. If
  762. you're already using actions like "create" and "list" instead, this change should not affect you.
  763. * #571: BREAKING: Rename "--files" flag on "prune" action to "--list", as it lists archives, not
  764. files.
  765. * #571: Add "--list" as alias for "--files" flag on "create" and "export-tar" actions.
  766. * Add support for disabling TLS verification in Healthchecks monitoring hook with "verify_tls"
  767. option.
  768. 1.6.6
  769. * #559: Update documentation about configuring multiple consistency checks or multiple databases.
  770. * #560: Fix all database hooks to error when the requested database to restore isn't present in the
  771. Borg archive.
  772. * #561: Fix command-line "--override" flag to continue supporting old configuration file formats.
  773. * #563: Fix traceback with "create" action and "--json" flag when a database hook is configured.
  774. 1.6.5
  775. * #553: Fix logging to include the full traceback when Borg experiences an internal error, not just
  776. the first few lines.
  777. * #554: Fix all monitoring hooks to warn if the server returns an HTTP 4xx error. This can happen
  778. with Healthchecks, for instance, when using an invalid ping URL.
  779. * #555: Fix environment variable plumbing so options like "encryption_passphrase" and
  780. "encryption_passcommand" in one configuration file aren't used for other configuration files.
  781. 1.6.4
  782. * #546, #382: Keep your repository passphrases and database passwords outside of borgmatic's
  783. configuration file with environment variable interpolation. See the documentation for more
  784. information: https://torsion.org/borgmatic/docs/how-to/provide-your-passwords/
  785. 1.6.3
  786. * #541: Add "borgmatic list --find" flag for searching for files across multiple archives, useful
  787. for hunting down that file you accidentally deleted so you can extract it. See the documentation
  788. for more information:
  789. https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/#searching-for-a-file
  790. * #543: Add a monitoring hook for sending push notifications via ntfy. See the documentation for
  791. more information: https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#ntfy-hook
  792. * Fix Bash completion script to no longer alter your shell's settings (complain about unset
  793. variables or error on pipe failures).
  794. * Deprecate "borgmatic list --successful" flag, as listing only non-checkpoint (successful)
  795. archives is now the default in newer versions of Borg.
  796. 1.6.2
  797. * #523: Reduce the default consistency check frequency and support configuring the frequency
  798. independently for each check. Also add "borgmatic check --force" flag to ignore configured
  799. frequencies. See the documentation for more information:
  800. https://torsion.org/borgmatic/docs/how-to/deal-with-very-large-backups/#check-frequency
  801. * #536: Fix generate-borgmatic-config to support more complex schema changes like the new
  802. Healthchecks configuration options when the "--source" flag is used.
  803. * #538: Add support for "borgmatic borg debug" command.
  804. * #539: Add "generate-borgmatic-config --overwrite" flag to replace an existing destination file.
  805. * Add Bash completion script so you can tab-complete the borgmatic command-line. See the
  806. documentation for more information:
  807. https://torsion.org/borgmatic/docs/how-to/set-up-backups/#shell-completion
  808. 1.6.1
  809. * #294: Add Healthchecks monitoring hook "ping_body_limit" option to configure how many bytes of
  810. logs to send to the Healthchecks server.
  811. * #402: Remove the error when "archive_name_format" is specified but a retention prefix isn't.
  812. * #420: Warn when an unsupported variable is used in a hook command.
  813. * #439: Change connection failures for monitoring hooks (Healthchecks, Cronitor, PagerDuty, and
  814. Cronhub) to be warnings instead of errors. This way, the monitoring system failing does not block
  815. backups.
  816. * #460: Add Healthchecks monitoring hook "send_logs" option to enable/disable sending borgmatic
  817. logs to the Healthchecks server.
  818. * #525: Add Healthchecks monitoring hook "states" option to only enable pinging for particular
  819. monitoring states (start, finish, fail).
  820. * #528: Improve the error message when a configuration override contains an invalid value.
  821. * #531: BREAKING: When deep merging common configuration, merge colliding list values by appending
  822. them. Previously, one list replaced the other.
  823. * #532: When a configuration include is a relative path, load it from either the current working
  824. directory or from the directory containing the file doing the including. Previously, only the
  825. working directory was used.
  826. * Add a randomized delay to the sample systemd timer to spread out the load on a server.
  827. * Change the configuration format for borgmatic monitoring hooks (Healthchecks, Cronitor,
  828. PagerDuty, and Cronhub) to specify the ping URL / integration key as a named option. The intent
  829. is to support additional options (some in this release). This change is backwards-compatible.
  830. * Add emojis to documentation table of contents to make it easier to find particular how-to and
  831. reference guides at a glance.
  832. 1.6.0
  833. * #381: BREAKING: Greatly simplify configuration file reuse by deep merging when including common
  834. configuration. See the documentation for more information:
  835. https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#include-merging
  836. * #473: BREAKING: Instead of executing "before" command hooks before all borgmatic actions run (and
  837. "after" hooks after), execute these hooks right before/after the corresponding action. E.g.,
  838. "before_check" now runs immediately before the "check" action. This better supports running
  839. timing-sensitive tasks like pausing containers. Side effect: before/after command hooks now run
  840. once for each configured repository instead of once per configuration file. Additionally, the
  841. "repositories" interpolated variable has been changed to "repository", containing the path to the
  842. current repository for the hook. See the documentation for more information:
  843. https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/
  844. * #513: Add mention of sudo's "secure_path" option to borgmatic installation documentation.
  845. * #515: Fix "borgmatic borg key ..." to pass parameters to Borg in the correct order.
  846. * #516: Fix handling of TERM signal to exit borgmatic, not just forward the signal to Borg.
  847. * #517: Fix borgmatic exit code (so it's zero) when initial Borg calls fail but later retries
  848. succeed.
  849. * Change Healthchecks logs truncation size from 10k bytes to 100k bytes, corresponding to that
  850. same change on Healthchecks.io.
  851. 1.5.24
  852. * #431: Add "working_directory" option to support source directories with relative paths.
  853. * #444: When loading a configuration file that is unreadable due to file permissions, warn instead
  854. of erroring. This supports running borgmatic as a non-root user with configuration in ~/.config
  855. even if there is an unreadable global configuration file in /etc.
  856. * #469: Add "repositories" context to "before_*" and "after_*" command action hooks. See the
  857. documentation for more information:
  858. https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/
  859. * #486: Fix handling of "patterns_from" and "exclude_from" options to error instead of warning when
  860. referencing unreadable files and "create" action is run.
  861. * #507: Fix Borg usage error in the "compact" action when running "borgmatic --dry-run". Now, skip
  862. "compact" entirely during a dry run.
  863. 1.5.23
  864. * #394: Compact repository segments and free space with new "borgmatic compact" action. Borg 1.2+
  865. only. Also run "compact" by default when no actions are specified, as "prune" in Borg 1.2 no
  866. longer frees up space unless "compact" is run.
  867. * #394: When using the "atime", "bsd_flags", "numeric_owner", or "remote_rate_limit" options,
  868. tailor the flags passed to Borg depending on the Borg version.
  869. * #480, #482: Fix traceback when a YAML validation error occurs.
  870. 1.5.22
  871. * #288: Add database dump hook for MongoDB.
  872. * #470: Move mysqldump options to the beginning of the command due to MySQL bug 30994.
  873. * #471: When command-line configuration override produces a parse error, error cleanly instead of
  874. tracebacking.
  875. * #476: Fix unicode error when restoring particular MySQL databases.
  876. * Drop support for Python 3.6, which has been end-of-lifed.
  877. * Add support for Python 3.10.
  878. 1.5.21
  879. * #28: Optionally retry failing backups via "retries" and "retry_wait" configuration options.
  880. * #306: Add "list_options" MySQL configuration option for passing additional arguments to MySQL
  881. list command.
  882. * #459: Add support for old version (2.x) of jsonschema library.
  883. 1.5.20
  884. * Re-release with correct version without dev0 tag.
  885. 1.5.19
  886. * #387: Fix error when configured source directories are not present on the filesystem at the time
  887. of backup. Now, Borg will complain, but the backup will still continue.
  888. * #455: Mention changing borgmatic path in cron documentation.
  889. * Update sample systemd service file with more granular read-only filesystem settings.
  890. * Move Gitea and GitHub hosting from a personal namespace to an organization for better
  891. collaboration with related projects.
  892. * 1k ★s on GitHub!
  893. 1.5.18
  894. * #389: Fix "message too long" error when logging to rsyslog.
  895. * #440: Fix traceback that can occur when dumping a database.
  896. 1.5.17
  897. * #437: Fix error when configuration file contains "umask" option.
  898. * Remove test dependency on vim and /dev/urandom.
  899. 1.5.16
  900. * #379: Suppress console output in sample crontab and systemd service files.
  901. * #407: Fix syslog logging on FreeBSD.
  902. * #430: Fix hang when restoring a PostgreSQL "tar" format database dump.
  903. * Better error messages! Switch the library used for validating configuration files (from pykwalify
  904. to jsonschema).
  905. * Link borgmatic Ansible role from installation documentation:
  906. https://torsion.org/borgmatic/docs/how-to/set-up-backups/#other-ways-to-install
  907. 1.5.15
  908. * #419: Document use case of running backups conditionally based on laptop power level:
  909. https://torsion.org/borgmatic/docs/how-to/backup-to-a-removable-drive-or-an-intermittent-server/
  910. * #425: Run arbitrary Borg commands with new "borgmatic borg" action. See the documentation for
  911. more information: https://torsion.org/borgmatic/docs/how-to/run-arbitrary-borg-commands/
  912. 1.5.14
  913. * #390: Add link to Hetzner storage offering from the documentation.
  914. * #398: Clarify canonical home of borgmatic in documentation.
  915. * #406: Clarify that spaces in path names should not be backslashed in path names.
  916. * #423: Fix error handling to error loudly when Borg gets killed due to running out of memory!
  917. * Fix build so as not to attempt to build and push documentation for a non-main branch.
  918. * "Fix" build failure with Alpine Edge by switching from Edge to Alpine 3.13.
  919. * Move #borgmatic IRC channel from Freenode to Libera Chat due to Freenode takeover drama.
  920. IRC connection info: https://torsion.org/borgmatic/#issues
  921. 1.5.13
  922. * #373: Document that passphrase is used for Borg keyfile encryption, not just repokey encryption.
  923. * #404: Add support for ruamel.yaml 0.17.x YAML parsing library.
  924. * Update systemd service example to return a permission error when a system call isn't permitted
  925. (instead of terminating borgmatic outright).
  926. * Drop support for Python 3.5, which has been end-of-lifed.
  927. * Add support for Python 3.9.
  928. * Update versions of test dependencies (test_requirements.txt and test containers).
  929. * Only support black code formatter on Python 3.8+. New black dependencies make installation
  930. difficult on older versions of Python.
  931. * Replace "improve this documentation" form with link to support and ticket tracker.
  932. 1.5.12
  933. * Fix for previous release with incorrect version suffix in setup.py. No other changes.
  934. 1.5.11
  935. * #341: Add "temporary_directory" option for changing Borg's temporary directory.
  936. * #352: Lock down systemd security settings in sample systemd service file.
  937. * #355: Fix traceback when a database hook value is null in a configuration file.
  938. * #361: Merge override values when specifying the "--override" flag multiple times. The previous
  939. behavior was to take the value of the last "--override" flag only.
  940. * #367: Fix traceback when upgrading old INI-style configuration with upgrade-borgmatic-config.
  941. * #368: Fix signal forwarding from borgmatic to Borg resulting in recursion traceback.
  942. * #369: Document support for Borg placeholders in repository names.
  943. 1.5.10
  944. * #347: Add hooks that run for the "extract" action: "before_extract" and "after_extract".
  945. * #350: Fix traceback when a configuration directory is non-readable due to directory permissions.
  946. * Add documentation navigation links on left side of all documentation pages.
  947. * Clarify documentation on configuration overrides, specifically the portion about list syntax:
  948. http://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#configuration-overrides
  949. * Clarify documentation overview of monitoring options:
  950. http://torsion.org/borgmatic/docs/how-to/monitor-your-backups/
  951. 1.5.9
  952. * #300: Add "borgmatic export-tar" action to export an archive to a tar-formatted file or stream.
  953. * #339: Fix for intermittent timing-related test failure of logging function.
  954. * Clarify database documentation about excluding named pipes and character/block devices to prevent
  955. hangs.
  956. * Add documentation on how to make backups redundant with multiple repositories:
  957. https://torsion.org/borgmatic/docs/how-to/make-backups-redundant/
  958. 1.5.8
  959. * #336: Fix for traceback when running Cronitor, Cronhub, and PagerDuty monitor hooks.
  960. 1.5.7
  961. * #327: Fix broken pass-through of BORG_* environment variables to Borg.
  962. * #328: Fix duplicate logging to Healthchecks and send "after_*" hooks output to Healthchecks.
  963. * #331: Add SSL support to PostgreSQL database configuration.
  964. * #333: Fix for potential data loss (data not getting backed up) when borgmatic omitted configured
  965. source directories in certain situations. Specifically, this occurred when two source directories
  966. on different filesystems were related by parentage (e.g. "/foo" and "/foo/bar/baz") and the
  967. one_file_system option was enabled.
  968. * Update documentation code fragments theme to better match the rest of the page.
  969. * Improve configuration reference documentation readability via more aggressive word-wrapping in
  970. configuration schema descriptions.
  971. 1.5.6
  972. * #292: Allow before_backup and similar hooks to exit with a soft failure without altering the
  973. monitoring status on Healthchecks or other providers. Support this by waiting to ping monitoring
  974. services with a "start" status until after before_* hooks finish. Failures in before_* hooks
  975. still trigger a monitoring "fail" status.
  976. * #316: Fix hang when a stale database dump named pipe from an aborted borgmatic run remains on
  977. disk.
  978. * #323: Fix for certain configuration options like ssh_command impacting Borg invocations for
  979. separate configuration files.
  980. * #324: Add "borgmatic extract --strip-components" flag to remove leading path components when
  981. extracting an archive.
  982. * Tweak comment indentation in generated configuration file for clarity.
  983. * Link to Borgmacator GNOME AppIndicator from monitoring documentation.
  984. 1.5.5
  985. * #314: Fix regression in support for PostgreSQL's "directory" dump format. Unlike other dump
  986. formats, the "directory" dump format does not stream directly to/from Borg.
  987. * #315: Fix enabled database hooks to implicitly set one_file_system configuration option to true.
  988. This prevents Borg from reading devices like /dev/zero and hanging.
  989. * #316: Fix hang when streaming a database dump to Borg with implicit duplicate source directories
  990. by deduplicating them first.
  991. * #319: Fix error message when there are no MySQL databases to dump for "all" databases.
  992. * Improve documentation around the installation process. Specifically, making borgmatic commands
  993. runnable via the system PATH and offering a global install option.
  994. 1.5.4
  995. * #310: Fix legitimate database dump command errors (exit code 1) not being treated as errors by
  996. borgmatic.
  997. * For database dumps, replace the named pipe on every borgmatic run. This prevent hangs on stale
  998. pipes left over from previous runs.
  999. * Fix error handling to handle more edge cases when executing commands.
  1000. 1.5.3
  1001. * #258: Stream database dumps and restores directly to/from Borg without using any additional
  1002. filesystem space. This feature is automatic, and works even on restores from archives made with
  1003. previous versions of borgmatic.
  1004. * #293: Documentation on macOS launchd permissions issues with work-around for Full Disk Access.
  1005. * Remove "borgmatic restore --progress" flag, as it now conflicts with streaming database restores.
  1006. 1.5.2
  1007. * #301: Fix MySQL restore error on "all" database dump by excluding system tables.
  1008. * Fix PostgreSQL restore error on "all" database dump by using "psql" for the restore instead of
  1009. "pg_restore".
  1010. 1.5.1
  1011. * #289: Tired of looking up the latest successful archive name in order to pass it to borgmatic
  1012. actions? Me too. Now you can specify "--archive latest" to all actions that accept an archive
  1013. flag.
  1014. * #290: Fix the "--stats" and "--files" flags so that they yield output at verbosity 0.
  1015. * Reduce the default verbosity of borgmatic logs sent to Healthchecks monitoring hook. Now, it's
  1016. warnings and errors only. You can increase the verbosity via the "--monitoring-verbosity" flag.
  1017. * Add security policy documentation in SECURITY.md.
  1018. 1.5.0
  1019. * #245: Monitor backups with PagerDuty hook integration. See the documentation for more
  1020. information: https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#pagerduty-hook
  1021. * #255: Add per-action hooks: "before_prune", "after_prune", "before_check", and "after_check".
  1022. * #274: Add ~/.config/borgmatic.d as another configuration directory default.
  1023. * #277: Customize Healthchecks log level via borgmatic "--monitoring-verbosity" flag.
  1024. * #280: Change "exclude_if_present" option to support multiple filenames that indicate a directory
  1025. should be excluded from backups, rather than just a single filename.
  1026. * #284: Backup to a removable drive or intermittent server via "soft failure" feature. See the
  1027. documentation for more information:
  1028. https://torsion.org/borgmatic/docs/how-to/backup-to-a-removable-drive-or-an-intermittent-server/
  1029. * #287: View consistency check progress via "--progress" flag for "check" action.
  1030. * For "create" and "prune" actions, no longer list files or show detailed stats at any verbosities
  1031. by default. You can opt back in with "--files" or "--stats" flags.
  1032. * For "list" and "info" actions, show repository names even at verbosity 0.
  1033. 1.4.22
  1034. * #276, #285: Disable colored output when "--json" flag is used, so as to produce valid JSON output.
  1035. * After a backup of a database dump in directory format, properly remove the dump directory.
  1036. * In "borgmatic --help", don't expand $HOME in listing of default "--config" paths.
  1037. 1.4.21
  1038. * #268: Override particular configuration options from the command-line via "--override" flag. See
  1039. the documentation for more information:
  1040. https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#configuration-overrides
  1041. * #270: Only trigger "on_error" hooks and monitoring failures for "prune", "create", and "check"
  1042. actions, and not for other actions.
  1043. * When pruning with verbosity level 1, list pruned and kept archives. Previously, this information
  1044. was only shown at verbosity level 2.
  1045. 1.4.20
  1046. * Fix repository probing during "borgmatic init" to respect verbosity flag and remote_path option.
  1047. * #249: Update Healthchecks/Cronitor/Cronhub monitoring integrations to fire for "check" and
  1048. "prune" actions, not just "create".
  1049. 1.4.19
  1050. * #259: Optionally change the internal database dump path via "borgmatic_source_directory" option
  1051. in location configuration section.
  1052. * #271: Support piping "borgmatic list" output to grep by logging certain log levels to console
  1053. stdout and others to stderr.
  1054. * Retain colored output when piping or redirecting in an interactive terminal.
  1055. * Add end-to-end tests for database dump and restore. These are run on developer machines with
  1056. Docker Compose for approximate parity with continuous integration tests.
  1057. 1.4.18
  1058. * Fix "--repository" flag to accept relative paths.
  1059. * Fix "borgmatic umount" so it only runs Borg once instead of once per repository / configuration
  1060. file.
  1061. * #253: Mount whole repositories via "borgmatic mount" without any "--archive" flag.
  1062. * #269: Filter listed paths via "borgmatic list --path" flag.
  1063. 1.4.17
  1064. * #235: Pass extra options directly to particular Borg commands, handy for Borg options that
  1065. borgmatic does not yet support natively. Use "extra_borg_options" in the storage configuration
  1066. section.
  1067. * #266: Attempt to repair any inconsistencies found during a consistency check via
  1068. "borgmatic check --repair" flag.
  1069. 1.4.16
  1070. * #256: Fix for "before_backup" hook not triggering an error when the command contains "borg" and
  1071. has an exit code of 1.
  1072. * #257: Fix for garbled Borg file listing when using "borgmatic create --progress" with
  1073. verbosity level 1 or 2.
  1074. * #260: Fix for missing Healthchecks monitoring payload or HTTP 500 due to incorrect unicode
  1075. encoding.
  1076. 1.4.15
  1077. * Fix for database dump removal incorrectly skipping some database dumps.
  1078. * #123: Support for mounting an archive as a FUSE filesystem via "borgmatic mount" action, and
  1079. unmounting via "borgmatic umount". See the documentation for more information:
  1080. https://torsion.org/borgmatic/docs/how-to/extract-a-backup/#mount-a-filesystem
  1081. 1.4.14
  1082. * Show summary log errors regardless of verbosity level, and log the "summary:" header with a log
  1083. level based on the contained summary logs.
  1084. 1.4.13
  1085. * Show full error logs at "--verbosity 0" so you can see command output without upping the
  1086. verbosity level.
  1087. 1.4.12
  1088. * #247: With "borgmatic check", consider Borg warnings as errors.
  1089. * Dial back the display of inline error logs a bit, so failed command output doesn't appear
  1090. multiple times in the logs (well, except for the summary).
  1091. 1.4.11
  1092. * #241: When using the Healthchecks monitoring hook, include borgmatic logs in the payloads for
  1093. completion and failure pings.
  1094. * With --verbosity level 1 or 2, show error logs both inline when they occur and in the summary
  1095. logs at the bottom. With lower verbosity levels, suppress the summary and show error logs when
  1096. they occur.
  1097. 1.4.10
  1098. * #246: Fix for "borgmatic restore" showing success and incorrectly extracting archive files, even
  1099. when no databases are configured to restore. As this can overwrite files from the archive and
  1100. lead to data loss, please upgrade to get the fix before using "borgmatic restore".
  1101. * Reopen the file given by "--log-file" flag if an external program rotates the log file while
  1102. borgmatic is running.
  1103. 1.4.9
  1104. * #228: Database dump hooks for MySQL/MariaDB, so you can easily dump your databases before backups
  1105. run.
  1106. * #243: Fix repository does not exist error with "borgmatic extract" when repository is remote.
  1107. 1.4.8
  1108. * Monitor backups with Cronhub hook integration. See the documentation for more information:
  1109. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#cronhub-hook
  1110. * Fix Healthchecks/Cronitor hooks to skip actions when the borgmatic "--dry-run" flag is used.
  1111. 1.4.7
  1112. * #238: In documentation, clarify when Healthchecks/Cronitor hooks fire in relation to other hooks.
  1113. * #239: Upgrade your borgmatic configuration to get new options and comments via
  1114. "generate-borgmatic-config --source". See the documentation for more information:
  1115. https://torsion.org/borgmatic/docs/how-to/upgrade/#upgrading-your-configuration
  1116. 1.4.6
  1117. * Verbosity level "-1" for even quieter output: Errors only (#236).
  1118. 1.4.5
  1119. * Log to file instead of syslog via command-line "--log-file" flag (#233).
  1120. 1.4.4
  1121. * #234: Support for Borg --keep-exclude-tags and --exclude-nodump options.
  1122. 1.4.3
  1123. * Monitor backups with Cronitor hook integration. See the documentation for more information:
  1124. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#cronitor-hook
  1125. 1.4.2
  1126. * Extract files to a particular directory via "borgmatic extract --destination" flag.
  1127. * Rename "borgmatic extract --restore-path" flag to "--path" to reduce confusion with the separate
  1128. "borgmatic restore" action. Any uses of "--restore-path" will continue working.
  1129. 1.4.1
  1130. * #229: Restore backed up PostgreSQL databases via "borgmatic restore" action. See the
  1131. documentation for more information:
  1132. https://torsion.org/borgmatic/docs/how-to/backup-your-databases/
  1133. * Documentation on how to develop borgmatic's documentation:
  1134. https://torsion.org/borgmatic/docs/how-to/develop-on-borgmatic/#documentation-development
  1135. 1.4.0
  1136. * #225: Database dump hooks for PostgreSQL, so you can easily dump your databases before backups
  1137. run.
  1138. * #230: Rename "borgmatic list --pattern-from" flag to "--patterns-from" to match Borg.
  1139. 1.3.26
  1140. * #224: Fix "borgmatic list --successful" with a slightly better heuristic for listing successful
  1141. (non-checkpoint) archives.
  1142. 1.3.25
  1143. * #223: Dead man's switch to detect when backups start failing silently, implemented via
  1144. healthchecks.io hook integration. See the documentation for more information:
  1145. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#healthchecks-hook
  1146. * Documentation on monitoring and alerting options for borgmatic backups:
  1147. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/
  1148. * Automatically rewrite links when developing on documentation locally.
  1149. 1.3.24
  1150. * #86: Add "borgmatic list --successful" flag to only list successful (non-checkpoint) archives.
  1151. * Add a suggestion form to all documentation pages, so users can submit ideas for improving the
  1152. documentation.
  1153. * Update documentation link to community Arch Linux borgmatic package.
  1154. 1.3.23
  1155. * #174: More detailed error alerting via runtime context available in "on_error" hook.
  1156. 1.3.22
  1157. * #144: When backups to one of several repositories fails, keep backing up to the other
  1158. repositories and report errors afterwards.
  1159. 1.3.21
  1160. * #192: User-defined hooks for global setup or cleanup that run before/after all actions. See the
  1161. documentation for more information:
  1162. https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/
  1163. 1.3.20
  1164. * #205: More robust sample systemd service: boot delay, network dependency, lowered CPU/IO
  1165. priority, etc.
  1166. * #221: Fix "borgmatic create --progress" output so that it updates on the console in real-time.
  1167. 1.3.19
  1168. * #219: Fix visibility of "borgmatic prune --stats" output.
  1169. 1.3.18
  1170. * #220: Fix regression of argument parsing for default actions.
  1171. 1.3.17
  1172. * #217: Fix error with "borgmatic check --only" command-line flag with "extract" consistency check.
  1173. 1.3.16
  1174. * #210: Support for Borg check --verify-data flag via borgmatic "data" consistency check.
  1175. * #210: Override configured consistency checks via "borgmatic check --only" command-line flag.
  1176. * When generating sample configuration with generate-borgmatic-config, add a space after each "#"
  1177. comment indicator.
  1178. 1.3.15
  1179. * #208: Fix for traceback when the "checks" option has an empty value.
  1180. * #209: Bypass Borg error about a moved repository via "relocated_repo_access_is_ok" option in
  1181. borgmatic storage configuration section.
  1182. * #213: Reorder arguments passed to Borg to fix duplicate directories when using Borg patterns.
  1183. * #214: Fix for hook erroring with exit code 1 not being interpreted as an error.
  1184. 1.3.14
  1185. * #204: Do not treat Borg warnings (exit code 1) as failures.
  1186. * When validating configuration files, require strings instead of allowing any scalar type.
  1187. 1.3.13
  1188. * #199: Add note to documentation about using spaces instead of tabs for indentation, as YAML does
  1189. not allow tabs.
  1190. * #203: Fix compatibility with ruamel.yaml 0.16.x.
  1191. * If a "prefix" option in borgmatic's configuration has an empty value (blank or ""), then disable
  1192. default prefix.
  1193. 1.3.12
  1194. * Only log to syslog when run from a non-interactive console (e.g. a cron job).
  1195. * Remove unicode byte order mark from syslog output so it doesn't show up as a literal in rsyslog
  1196. output. See discussion on #197.
  1197. 1.3.11
  1198. * #193: Pass through several "borg list" and "borg info" flags like --short, --format, --sort-by,
  1199. --first, --last, etc. via borgmatic command-line flags.
  1200. * Add borgmatic info --repository and --archive command-line flags to display info for individual
  1201. repositories or archives.
  1202. * Support for Borg --noatime, --noctime, and --nobirthtime flags via corresponding options in
  1203. borgmatic configuration location section.
  1204. 1.3.10
  1205. * #198: Fix for Borg create error output not showing up at borgmatic verbosity level zero.
  1206. 1.3.9
  1207. * #195: Switch to command-line actions as more traditional sub-commands, e.g. "borgmatic create",
  1208. "borgmatic prune", etc. However, the classic dashed options like "--create" still work!
  1209. 1.3.8
  1210. * #191: Disable console color via "color" option in borgmatic configuration output section.
  1211. 1.3.7
  1212. * #196: Fix for unclear error message for invalid YAML merge include.
  1213. * #197: Don't color syslog output.
  1214. * Change default syslog verbosity to show errors only.
  1215. 1.3.6
  1216. * #53: Log to syslog in addition to existing console logging. Add --syslog-verbosity flag to
  1217. customize the log level. See the documentation for more information:
  1218. https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/
  1219. * #178: Look for .yml configuration file extension in addition to .yaml.
  1220. * #189: Set umask used when executing hooks via "umask" option in borgmatic hooks section.
  1221. * Remove Python cache files before each Tox run.
  1222. * Add #borgmatic Freenode IRC channel to documentation.
  1223. * Add Borg/borgmatic hosting providers section to documentation.
  1224. * Add files for building documentation into a Docker image for web serving.
  1225. * Upgrade project build server from Drone 0.8 to 1.1.
  1226. * Build borgmatic documentation during continuous integration.
  1227. * We're nearly at 500 ★s on GitHub. We can do this!
  1228. 1.3.5
  1229. * #153: Support for various Borg directory environment variables (BORG_CONFIG_DIR, BORG_CACHE_DIR,
  1230. etc.) via options in borgmatic's storage configuration.
  1231. * #177: Fix for regression with missing verbose log entries.
  1232. 1.3.4
  1233. * Part of #125: Color borgmatic (but not Borg) output when using an interactive terminal.
  1234. * #166: Run tests for all installed versions of Python.
  1235. * #168: Update README with continuous integration badge.
  1236. * #169: Automatically sort Python imports in code.
  1237. * Document installing borgmatic with pip install --user instead of a system Python install.
  1238. * Get more reproducible builds by pinning the versions of pip and tox used to run tests.
  1239. * Factor out build/test configuration from tox.ini file.
  1240. 1.3.3
  1241. * Add validate-borgmatic-config command, useful for validating borgmatic config generated by
  1242. configuration management or even edited by hand.
  1243. 1.3.2
  1244. * #160: Fix for hooks executing when using --dry-run. Now hooks are skipped during a dry run.
  1245. 1.3.1
  1246. * #155: Fix for invalid JSON output when using multiple borgmatic configuration files.
  1247. * #157: Fix for seemingly random filename ordering when running through a directory of
  1248. configuration files.
  1249. * Fix for empty JSON output when using --create --json.
  1250. * Now capturing Borg output only when --json flag is used. Previously, borgmatic delayed Borg
  1251. output even without the --json flag.
  1252. 1.3.0
  1253. * #148: Configuration file includes and merging via "!include" tag to support reuse of common
  1254. options across configuration files.
  1255. 1.2.18
  1256. * #147: Support for Borg create/extract --numeric-owner flag via "numeric_owner" option in
  1257. borgmatic's location section.
  1258. 1.2.17
  1259. * #140: List the files within an archive via --list --archive option.
  1260. 1.2.16
  1261. * #119: Include a sample borgmatic configuration file in the documentation.
  1262. * #123: Support for Borg archive restoration via borgmatic --extract command-line flag.
  1263. * Refactor documentation into multiple separate pages for clarity and findability.
  1264. * Organize options within command-line help into logical groups.
  1265. * Exclude tests from distribution packages.
  1266. 1.2.15
  1267. * #127: Remove date echo from schema example, as it's not a substitute for real logging.
  1268. * #132: Leave exclude_patterns glob expansion to Borg, since doing it in borgmatic leads to
  1269. confusing behavior.
  1270. * #136: Handle and format validation errors raised during argument parsing.
  1271. * #138: Allow use of --stats flag when --create or --prune flags are implied.
  1272. 1.2.14
  1273. * #103: When generating sample configuration with generate-borgmatic-config, document the defaults
  1274. for each option.
  1275. * #116: When running multiple configuration files, attempt all configuration files even if one of
  1276. them errors. Log a summary of results at the end.
  1277. * Add borgmatic --version command-line flag to get the current installed version number.
  1278. 1.2.13
  1279. * #100: Support for --stats command-line flag independent of --verbosity.
  1280. * #117: With borgmatic --init command-line flag, proceed without erroring if a repository already
  1281. exists.
  1282. 1.2.12
  1283. * #110: Support for Borg repository initialization via borgmatic --init command-line flag.
  1284. * #111: Update Borg create --filter values so a dry run lists files to back up.
  1285. * #113: Update README with link to a new/forked Docker image.
  1286. * Prevent deprecated --excludes command-line option from being used.
  1287. * Refactor README a bit to flow better for first-time users.
  1288. * Update README with a few additional borgmatic packages (Debian and Ubuntu).
  1289. 1.2.11
  1290. * #108: Support for Borg create --progress via borgmatic command-line flag.
  1291. 1.2.10
  1292. * #105: Support for Borg --chunker-params create option via "chunker_params" option in borgmatic's
  1293. storage section.
  1294. 1.2.9
  1295. * #102: Fix for syntax error that occurred in Python 3.5 and below.
  1296. * Make automated tests support running in Python 3.5.
  1297. 1.2.8
  1298. * #73: Enable consistency checks for only certain repositories via "check_repositories" option in
  1299. borgmatic's consistency configuration. Handy for large repositories that take forever to check.
  1300. * Include link to issue tracker within various command output.
  1301. * Run continuous integration tests on a matrix of Python and Borg versions.
  1302. 1.2.7
  1303. * #98: Support for Borg --keep-secondly prune option.
  1304. * Use Black code formatter and Flake8 code checker as part of running automated tests.
  1305. * Add an end-to-end automated test that actually integrates with Borg.
  1306. * Set up continuous integration for borgmatic automated tests on projects.evoworx.org.
  1307. 1.2.6
  1308. * Fix generated configuration to also include a "keep_daily" value so pruning works out of the
  1309. box.
  1310. 1.2.5
  1311. * #57: When generating sample configuration with generate-borgmatic-config, comment out all
  1312. optional configuration so as to streamline the initial configuration process.
  1313. 1.2.4
  1314. * Fix for archive checking traceback due to parameter mismatch.
  1315. 1.2.3
  1316. * #64, #90, #92: Rewrite of logging system. Now verbosity flags passed to Borg are derived from
  1317. borgmatic's log level. Note that the output of borgmatic might slightly change.
  1318. * Part of #80: Support for Borg create --read-special via "read_special" option in borgmatic's
  1319. location configuration.
  1320. * #87: Support for Borg create --checkpoint-interval via "checkpoint_interval" option in
  1321. borgmatic's storage configuration.
  1322. * #88: Fix declared pykwalify compatibility version range in setup.py to prevent use of ancient
  1323. versions of pykwalify with large version numbers.
  1324. * #89: Pass --show-rc option to Borg when at highest verbosity level.
  1325. * #94: Support for Borg --json option via borgmatic command-line to --create archives.
  1326. 1.2.2
  1327. * #85: Fix compatibility issue between pykwalify and ruamel.yaml 0.15.52, which manifested in
  1328. borgmatic as a pykwalify RuleError.
  1329. 1.2.1
  1330. * Skip before/after backup hooks when only doing --prune, --check, --list, and/or --info.
  1331. * #71: Support for XDG_CONFIG_HOME environment variable for specifying alternate user ~/.config/
  1332. path.
  1333. * #74, #83: Support for Borg --json option via borgmatic command-line to --list archives or show
  1334. archive --info in JSON format, ideal for programmatic consumption.
  1335. * #38, #76: Upgrade ruamel.yaml compatibility version range and fix support for Python 3.7.
  1336. * #77: Skip non-"*.yaml" config filenames in /etc/borgmatic.d/ so as not to parse backup files,
  1337. editor swap files, etc.
  1338. * #81: Document user-defined hooks run before/after backup, or on error.
  1339. * Add code style guidelines to the documentation.
  1340. 1.2.0
  1341. * #61: Support for Borg --list option via borgmatic command-line to list all archives.
  1342. * #61: Support for Borg --info option via borgmatic command-line to display summary information.
  1343. * #62: Update README to mention other ways of installing borgmatic.
  1344. * Support for Borg --prefix option for consistency checks via "prefix" option in borgmatic's
  1345. consistency configuration.
  1346. * Add introductory screencast link to documentation.
  1347. * #59: Ignore "check_last" and consistency "prefix" when "archives" not in consistency checks.
  1348. * #60: Add "Persistent" flag to systemd timer example.
  1349. * #63: Support for Borg --nobsdflags option to skip recording bsdflags (e.g. NODUMP, IMMUTABLE) in
  1350. archive.
  1351. * #69: Support for Borg prune --umask option using value of existing "umask" option in borgmatic's
  1352. storage configuration.
  1353. * Update tox.ini to only assume Python 3.x instead of Python 3.4 specifically.
  1354. * Add ~/.config/borgmatic/config.yaml to default configuration path probing.
  1355. * Document how to develop on and contribute to borgmatic.
  1356. 1.1.15
  1357. * Support for Borg BORG_PASSCOMMAND environment variable to read a password from an external file.
  1358. * Fix for Borg create error when using borgmatic's --dry-run and --verbosity options together.
  1359. Work-around for behavior introduced in Borg 1.1.3: https://github.com/borgbackup/borg/issues/3298
  1360. * #55: Fix for missing tags/releases on Gitea and GitHub project hosting.
  1361. * #56: Support for Borg --lock-wait option for the maximum wait for a repository/cache lock.
  1362. * #58: Support for using tilde in exclude_patterns to reference home directory.
  1363. 1.1.14
  1364. * #49: Fix for typo in --patterns-from option.
  1365. * #47: Support for Borg --dry-run option via borgmatic command-line.
  1366. 1.1.13
  1367. * #54: Fix for incorrect consistency check flags passed to Borg when all three checks ("repository",
  1368. "archives", and "extract") are specified in borgmatic configuration.
  1369. * #48: Add "local_path" to configuration for specifying an alternative Borg executable path.
  1370. * #49: Support for Borg experimental --patterns-from and --patterns options for specifying mixed
  1371. includes/excludes.
  1372. * Moved issue tracker from Taiga to integrated Gitea tracker at
  1373. https://projects.torsion.org/borgmatic-collective/borgmatic/issues
  1374. 1.1.12
  1375. * #46: Declare dependency on pykwalify 1.6 or above, as older versions yield "Unknown key: version"
  1376. rule errors.
  1377. * Support for Borg --keep-minutely prune option.
  1378. 1.1.11
  1379. * #26: Add "ssh_command" to configuration for specifying a custom SSH command or options.
  1380. * Fix for incorrect /etc/borgmatic.d/ configuration path probing on macOS. This problem manifested
  1381. as an error on startup: "[Errno 2] No such file or directory: '/etc/borgmatic.d'".
  1382. 1.1.10
  1383. * Pass several Unix signals through to child processes like Borg. This means that Borg now properly
  1384. shuts down if borgmatic is terminated (e.g. due to a system suspend).
  1385. * #30: Support for using tilde in repository paths to reference home directory.
  1386. * #43: Support for Borg --files-cache option for setting the files cache operation mode.
  1387. * #45: Support for Borg --remote-ratelimit option for limiting upload rate.
  1388. * Log invoked Borg commands when at highest verbosity level.
  1389. 1.1.9
  1390. * #17, #39: Support for user-defined hooks before/after backup, or on error.
  1391. * #34: Improve clarity of logging spew at high verbosity levels.
  1392. * #30: Support for using tilde in source directory path to reference home directory.
  1393. * Require "prefix" in retention section when "archive_name_format" is set. This is to avoid
  1394. accidental pruning of archives with a different archive name format. For similar reasons, default
  1395. "prefix" to "{hostname}-" if not specified.
  1396. * Convert main source repository from Mercurial to Git.
  1397. * Update dead links to Borg documentation.
  1398. 1.1.8
  1399. * #40: Fix to make /etc/borgmatic/config.yaml optional rather than required when using the default
  1400. config paths.
  1401. 1.1.7
  1402. * #29: Add "archive_name_format" to configuration for customizing archive names.
  1403. * Fix for traceback when "exclude_from" value is empty in configuration file.
  1404. * When pruning, make highest verbosity level list archives kept and pruned.
  1405. * Clarification of Python 3 pip usage in documentation.
  1406. 1.1.6
  1407. * #13, #36: Support for Borg --exclude-from, --exclude-caches, and --exclude-if-present options.
  1408. 1.1.5
  1409. * #35: New "extract" consistency check that performs a dry-run extraction of the most recent
  1410. archive.
  1411. 1.1.4
  1412. * #18: Added command-line flags for performing a borgmatic run with only pruning, creating, or
  1413. checking enabled. This supports use cases like running consistency checks from a different cron
  1414. job with a different frequency, or running pruning with a different verbosity level.
  1415. 1.1.3
  1416. * #15: Support for running multiple config files in /etc/borgmatic.d/ from a single borgmatic run.
  1417. * Fix for generate-borgmatic-config writing config with invalid one_file_system value.
  1418. 1.1.2
  1419. * #33: Fix for passing check_last as integer to subprocess when calling Borg.
  1420. 1.1.1
  1421. * Part of #33: Fix for upgrade-borgmatic-config converting check_last option as a string instead of
  1422. an integer.
  1423. * Fix for upgrade-borgmatic-config erroring when consistency checks option is not present.
  1424. 1.1.0
  1425. * Switched config file format to YAML. Run upgrade-borgmatic-config to upgrade.
  1426. * Added generate-borgmatic-config command for initial config creation.
  1427. * Dropped Python 2 support. Now Python 3 only.
  1428. * #19: Fix for README mention of sample files not included in package.
  1429. * #23: Sample files for triggering borgmatic from a systemd timer.
  1430. * Support for backing up to multiple repositories.
  1431. * To free up space, now pruning backups prior to creating a new backup.
  1432. * Enabled test coverage output during tox runs.
  1433. * Added logo.
  1434. 1.0.3
  1435. * #22: Fix for verbosity flag not actually causing verbose output.
  1436. 1.0.2
  1437. * #21: Fix for traceback when remote_path option is missing.
  1438. 1.0.1
  1439. * #20: Support for Borg's --remote-path option to use an alternate Borg
  1440. executable. See sample/config.
  1441. 1.0.0
  1442. * Attic is no longer supported, as there hasn't been any recent development on
  1443. it. Dropping Attic support will allow faster iteration on Borg-specific
  1444. features. If you're still using Attic, this is a good time to switch to Borg!
  1445. * Project renamed from atticmatic to borgmatic. See the borgmatic README for
  1446. information on upgrading.
  1447. 0.1.8
  1448. * Fix for handling of spaces in source_directories which resulted in backup up everything.
  1449. * Fix for broken links to Borg documentation.
  1450. * At verbosity zero, suppressing Borg check stderr spew about "Checking segments".
  1451. * Support for Borg --one-file-system.
  1452. * Support for Borg create --umask.
  1453. * Support for file globs in source_directories.
  1454. 0.1.7
  1455. * #12: Fixed parsing of punctuation in configuration file.
  1456. * Better error message when configuration file is missing.
  1457. 0.1.6
  1458. * #10: New configuration option for the encryption passphrase.
  1459. * #11: Support for Borg's new archive compression feature.
  1460. 0.1.5
  1461. * Changes to support release on PyPI. Now pip installable by name!
  1462. 0.1.4
  1463. * Adding test that setup.py version matches release version.
  1464. 0.1.3
  1465. * #2: Add support for "borg check --last N" to Borg backend.
  1466. 0.1.2
  1467. * As a convenience to new users, allow a missing default excludes file.
  1468. * New issue tracker, linked from documentation.
  1469. 0.1.1
  1470. * Adding borgmatic cron example, and updating documentation to refer to it.
  1471. 0.1.0
  1472. * New "borgmatic" command to support Borg backup software, a fork of Attic.
  1473. 0.0.7
  1474. * Flag for multiple levels of verbosity: some, and lots.
  1475. * Improved mocking of Python builtins in unit tests.
  1476. 0.0.6
  1477. * New configuration section for customizing which Attic consistency checks run, if any.
  1478. 0.0.5
  1479. * Fixed regression with --verbose output being buffered. This means dropping the helpful error
  1480. message introduced in 0.0.4.
  1481. 0.0.4
  1482. * Now using tox to run tests against multiple versions of Python in one go.
  1483. * Helpful error message about how to create a repository if one is missing.
  1484. * Troubleshooting section with steps to deal with broken pipes.
  1485. * Nosetests config file (setup.cfg) with defaults.
  1486. 0.0.3
  1487. * After pruning, run attic's consistency checks on all archives.
  1488. * Integration tests for argument parsing.
  1489. * Documentation updates about repository encryption.
  1490. 0.0.2
  1491. * Configuration support for additional attic prune flags: keep_within, keep_hourly, keep_yearly,
  1492. and prefix.
  1493. 0.0.1
  1494. * Initial release.