NEWS 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510
  1. 1.4.9.dev0
  2. * #228: Database dump hooks for MySQL/MariaDB, so you can easily dump your databases before backups
  3. run.
  4. 1.4.8
  5. * Monitor backups with Cronhub hook integration. See the documentation for more information:
  6. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#cronhub-hook
  7. * Fix Healthchecks/Cronitor hooks to skip actions when the borgmatic "--dry-run" flag is used.
  8. 1.4.7
  9. * #238: In documentation, clarify when Healthchecks/Cronitor hooks fire in relation to other hooks.
  10. * #239: Upgrade your borgmatic configuration to get new options and comments via
  11. "generate-borgmatic-config --source". See the documentation for more information:
  12. https://torsion.org/borgmatic/docs/how-to/upgrade/#upgrading-your-configuration
  13. 1.4.6
  14. * Verbosity level "-1" for even quieter output: Errors only (#236).
  15. 1.4.5
  16. * Log to file instead of syslog via command-line "--log-file" flag (#233).
  17. 1.4.4
  18. * #234: Support for Borg --keep-exclude-tags and --exclude-nodump options.
  19. 1.4.3
  20. * Monitor backups with Cronitor hook integration. See the documentation for more information:
  21. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#cronitor-hook
  22. 1.4.2
  23. * Extract files to a particular directory via "borgmatic extract --destination" flag.
  24. * Rename "borgmatic extract --restore-path" flag to "--path" to reduce confusion with the separate
  25. "borgmatic restore" action. Any uses of "--restore-path" will continue working.
  26. 1.4.1
  27. * #229: Restore backed up PostgreSQL databases via "borgmatic restore" action. See the
  28. documentation for more information:
  29. https://torsion.org/borgmatic/docs/how-to/backup-your-databases/
  30. * Documentation on how to develop borgmatic's documentation:
  31. https://torsion.org/borgmatic/docs/how-to/develop-on-borgmatic/#documentation-development
  32. 1.4.0
  33. * #225: Database dump hooks for PostgreSQL, so you can easily dump your databases before backups
  34. run.
  35. * #230: Rename "borgmatic list --pattern-from" flag to "--patterns-from" to match Borg.
  36. 1.3.26
  37. * #224: Fix "borgmatic list --successful" with a slightly better heuristic for listing successful
  38. (non-checkpoint) archives.
  39. 1.3.25
  40. * #223: Dead man's switch to detect when backups start failing silently, implemented via
  41. healthchecks.io hook integration. See the documentation for more information:
  42. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#healthchecks-hook
  43. * Documentation on monitoring and alerting options for borgmatic backups:
  44. https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/
  45. * Automatically rewrite links when developing on documentation locally.
  46. 1.3.24
  47. * #86: Add "borgmatic list --successful" flag to only list successful (non-checkpoint) archives.
  48. * Add a suggestion form to all documentation pages, so users can submit ideas for improving the
  49. documentation.
  50. * Update documentation link to community Arch Linux borgmatic package.
  51. 1.3.23
  52. * #174: More detailed error alerting via runtime context available in "on_error" hook.
  53. 1.3.22
  54. * #144: When backups to one of several repositories fails, keep backing up to the other
  55. repositories and report errors afterwards.
  56. 1.3.21
  57. * #192: User-defined hooks for global setup or cleanup that run before/after all actions. See the
  58. documentation for more information:
  59. https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/
  60. 1.3.20
  61. * #205: More robust sample systemd service: boot delay, network dependency, lowered CPU/IO
  62. priority, etc.
  63. * #221: Fix "borgmatic create --progress" output so that it updates on the console in real-time.
  64. 1.3.19
  65. * #219: Fix visibility of "borgmatic prune --stats" output.
  66. 1.3.18
  67. * #220: Fix regression of argument parsing for default actions.
  68. 1.3.17
  69. * #217: Fix error with "borgmatic check --only" command-line flag with "extract" consistency check.
  70. 1.3.16
  71. * #210: Support for Borg check --verify-data flag via borgmatic "data" consistency check.
  72. * #210: Override configured consistency checks via "borgmatic check --only" command-line flag.
  73. * When generating sample configuration with generate-borgmatic-config, add a space after each "#"
  74. comment indicator.
  75. 1.3.15
  76. * #208: Fix for traceback when the "checks" option has an empty value.
  77. * #209: Bypass Borg error about a moved repository via "relocated_repo_access_is_ok" option in
  78. borgmatic storage configuration section.
  79. * #213: Reorder arguments passed to Borg to fix duplicate directories when using Borg patterns.
  80. * #214: Fix for hook erroring with exit code 1 not being interpreted as an error.
  81. 1.3.14
  82. * #204: Do not treat Borg warnings (exit code 1) as failures.
  83. * When validating configuration files, require strings instead of allowing any scalar type.
  84. 1.3.13
  85. * #199: Add note to documentation about using spaces instead of tabs for indentation, as YAML does
  86. not allow tabs.
  87. * #203: Fix compatibility with ruamel.yaml 0.16.x.
  88. * If a "prefix" option in borgmatic's configuration has an empty value (blank or ""), then disable
  89. default prefix.
  90. 1.3.12
  91. * Only log to syslog when run from a non-interactive console (e.g. a cron job).
  92. * Remove unicode byte order mark from syslog output so it doesn't show up as a literal in rsyslog
  93. output. See discussion on #197.
  94. 1.3.11
  95. * #193: Pass through several "borg list" and "borg info" flags like --short, --format, --sort-by,
  96. --first, --last, etc. via borgmatic command-line flags.
  97. * Add borgmatic info --repository and --archive command-line flags to display info for individual
  98. repositories or archives.
  99. * Support for Borg --noatime, --noctime, and --nobirthtime flags via corresponding options in
  100. borgmatic configuration location section.
  101. 1.3.10
  102. * #198: Fix for Borg create error output not showing up at borgmatic verbosity level zero.
  103. 1.3.9
  104. * #195: Switch to command-line actions as more traditional sub-commands, e.g. "borgmatic create",
  105. "borgmatic prune", etc. However, the classic dashed options like "--create" still work!
  106. 1.3.8
  107. * #191: Disable console color via "color" option in borgmatic configuration output section.
  108. 1.3.7
  109. * #196: Fix for unclear error message for invalid YAML merge include.
  110. * #197: Don't color syslog output.
  111. * Change default syslog verbosity to show errors only.
  112. 1.3.6
  113. * #53: Log to syslog in addition to existing console logging. Add --syslog-verbosity flag to
  114. customize the log level. See the documentation for more information:
  115. https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/
  116. * #178: Look for .yml configuration file extension in addition to .yaml.
  117. * #189: Set umask used when executing hooks via "umask" option in borgmatic hooks section.
  118. * Remove Python cache files before each Tox run.
  119. * Add #borgmatic Freenode IRC channel to documentation.
  120. * Add Borg/borgmatic hosting providers section to documentation.
  121. * Add files for building documentation into a Docker image for web serving.
  122. * Upgrade project build server from Drone 0.8 to 1.1.
  123. * Build borgmatic documentation during continuous integration.
  124. * We're nearly at 500 ★s on GitHub. We can do this!
  125. 1.3.5
  126. * #153: Support for various Borg directory environment variables (BORG_CONFIG_DIR, BORG_CACHE_DIR,
  127. etc.) via options in borgmatic's storage configuration.
  128. * #177: Fix for regression with missing verbose log entries.
  129. 1.3.4
  130. * Part of #125: Color borgmatic (but not Borg) output when using an interactive terminal.
  131. * #166: Run tests for all installed versions of Python.
  132. * #168: Update README with continuous integration badge.
  133. * #169: Automatically sort Python imports in code.
  134. * Document installing borgmatic with pip install --user instead of a system Python install.
  135. * Get more reproducible builds by pinning the versions of pip and tox used to run tests.
  136. * Factor out build/test configuration from tox.ini file.
  137. 1.3.3
  138. * Add validate-borgmatic-config command, useful for validating borgmatic config generated by
  139. configuration management or even edited by hand.
  140. 1.3.2
  141. * #160: Fix for hooks executing when using --dry-run. Now hooks are skipped during a dry run.
  142. 1.3.1
  143. * #155: Fix for invalid JSON output when using multiple borgmatic configuration files.
  144. * #157: Fix for seemingly random filename ordering when running through a directory of
  145. configuration files.
  146. * Fix for empty JSON output when using --create --json.
  147. * Now capturing Borg output only when --json flag is used. Previously, borgmatic delayed Borg
  148. output even without the --json flag.
  149. 1.3.0
  150. * #148: Configuration file includes and merging via "!include" tag to support reuse of common
  151. options across configuration files.
  152. 1.2.18
  153. * #147: Support for Borg create/extract --numeric-owner flag via "numeric_owner" option in
  154. borgmatic's location section.
  155. 1.2.17
  156. * #140: List the files within an archive via --list --archive option.
  157. 1.2.16
  158. * #119: Include a sample borgmatic configuration file in the documentation.
  159. * #123: Support for Borg archive restoration via borgmatic --extract command-line flag.
  160. * Refactor documentation into multiple separate pages for clarity and findability.
  161. * Organize options within command-line help into logical groups.
  162. * Exclude tests from distribution packages.
  163. 1.2.15
  164. * #127: Remove date echo from schema example, as it's not a substitute for real logging.
  165. * #132: Leave exclude_patterns glob expansion to Borg, since doing it in borgmatic leads to
  166. confusing behavior.
  167. * #136: Handle and format validation errors raised during argument parsing.
  168. * #138: Allow use of --stats flag when --create or --prune flags are implied.
  169. 1.2.14
  170. * #103: When generating sample configuration with generate-borgmatic-config, document the defaults
  171. for each option.
  172. * #116: When running multiple configuration files, attempt all configuration files even if one of
  173. them errors. Log a summary of results at the end.
  174. * Add borgmatic --version command-line flag to get the current installed version number.
  175. 1.2.13
  176. * #100: Support for --stats command-line flag independent of --verbosity.
  177. * #117: With borgmatic --init command-line flag, proceed without erroring if a repository already
  178. exists.
  179. 1.2.12
  180. * #110: Support for Borg repository initialization via borgmatic --init command-line flag.
  181. * #111: Update Borg create --filter values so a dry run lists files to back up.
  182. * #113: Update README with link to a new/forked Docker image.
  183. * Prevent deprecated --excludes command-line option from being used.
  184. * Refactor README a bit to flow better for first-time users.
  185. * Update README with a few additional borgmatic packages (Debian and Ubuntu).
  186. 1.2.11
  187. * #108: Support for Borg create --progress via borgmatic command-line flag.
  188. 1.2.10
  189. * #105: Support for Borg --chunker-params create option via "chunker_params" option in borgmatic's
  190. storage section.
  191. 1.2.9
  192. * #102: Fix for syntax error that occurred in Python 3.5 and below.
  193. * Make automated tests support running in Python 3.5.
  194. 1.2.8
  195. * #73: Enable consistency checks for only certain repositories via "check_repositories" option in
  196. borgmatic's consistency configuration. Handy for large repositories that take forever to check.
  197. * Include link to issue tracker within various command output.
  198. * Run continuous integration tests on a matrix of Python and Borg versions.
  199. 1.2.7
  200. * #98: Support for Borg --keep-secondly prune option.
  201. * Use Black code formatter and Flake8 code checker as part of running automated tests.
  202. * Add an end-to-end automated test that actually integrates with Borg.
  203. * Set up continuous integration for borgmatic automated tests on projects.evoworx.org.
  204. 1.2.6
  205. * Fix generated configuration to also include a "keep_daily" value so pruning works out of the
  206. box.
  207. 1.2.5
  208. * #57: When generating sample configuration with generate-borgmatic-config, comment out all
  209. optional configuration so as to streamline the initial configuration process.
  210. 1.2.4
  211. * Fix for archive checking traceback due to parameter mismatch.
  212. 1.2.3
  213. * #64, #90, #92: Rewrite of logging system. Now verbosity flags passed to Borg are derived from
  214. borgmatic's log level. Note that the output of borgmatic might slightly change.
  215. * Part of #80: Support for Borg create --read-special via "read_special" option in borgmatic's
  216. location configuration.
  217. * #87: Support for Borg create --checkpoint-interval via "checkpoint_interval" option in
  218. borgmatic's storage configuration.
  219. * #88: Fix declared pykwalify compatibility version range in setup.py to prevent use of ancient
  220. versions of pykwalify with large version numbers.
  221. * #89: Pass --show-rc option to Borg when at highest verbosity level.
  222. * #94: Support for Borg --json option via borgmatic command-line to --create archives.
  223. 1.2.2
  224. * #85: Fix compatibility issue between pykwalify and ruamel.yaml 0.15.52, which manifested in
  225. borgmatic as a pykwalify RuleError.
  226. 1.2.1
  227. * Skip before/after backup hooks when only doing --prune, --check, --list, and/or --info.
  228. * #71: Support for XDG_CONFIG_HOME environment variable for specifying alternate user ~/.config/
  229. path.
  230. * #74, #83: Support for Borg --json option via borgmatic command-line to --list archives or show
  231. archive --info in JSON format, ideal for programmatic consumption.
  232. * #38, #76: Upgrade ruamel.yaml compatibility version range and fix support for Python 3.7.
  233. * #77: Skip non-"*.yaml" config filenames in /etc/borgmatic.d/ so as not to parse backup files,
  234. editor swap files, etc.
  235. * #81: Document user-defined hooks run before/after backup, or on error.
  236. * Add code style guidelines to the documention.
  237. 1.2.0
  238. * #61: Support for Borg --list option via borgmatic command-line to list all archives.
  239. * #61: Support for Borg --info option via borgmatic command-line to display summary information.
  240. * #62: Update README to mention other ways of installing borgmatic.
  241. * Support for Borg --prefix option for consistency checks via "prefix" option in borgmatic's
  242. consistency configuration.
  243. * Add introductory screencast link to documentation.
  244. * #59: Ignore "check_last" and consistency "prefix" when "archives" not in consistency checks.
  245. * #60: Add "Persistent" flag to systemd timer example.
  246. * #63: Support for Borg --nobsdflags option to skip recording bsdflags (e.g. NODUMP, IMMUTABLE) in
  247. archive.
  248. * #69: Support for Borg prune --umask option using value of existing "umask" option in borgmatic's
  249. storage configuration.
  250. * Update tox.ini to only assume Python 3.x instead of Python 3.4 specifically.
  251. * Add ~/.config/borgmatic/config.yaml to default configuration path probing.
  252. * Document how to develop on and contribute to borgmatic.
  253. 1.1.15
  254. * Support for Borg BORG_PASSCOMMAND environment variable to read a password from an external file.
  255. * Fix for Borg create error when using borgmatic's --dry-run and --verbosity options together.
  256. Work-around for behavior introduced in Borg 1.1.3: https://github.com/borgbackup/borg/issues/3298
  257. * #55: Fix for missing tags/releases on Gitea and GitHub project hosting.
  258. * #56: Support for Borg --lock-wait option for the maximum wait for a repository/cache lock.
  259. * #58: Support for using tilde in exclude_patterns to reference home directory.
  260. 1.1.14
  261. * #49: Fix for typo in --patterns-from option.
  262. * #47: Support for Borg --dry-run option via borgmatic command-line.
  263. 1.1.13
  264. * #54: Fix for incorrect consistency check flags passed to Borg when all three checks ("repository",
  265. "archives", and "extract") are specified in borgmatic configuration.
  266. * #48: Add "local_path" to configuration for specifying an alternative Borg executable path.
  267. * #49: Support for Borg experimental --patterns-from and --patterns options for specifying mixed
  268. includes/excludes.
  269. * Moved issue tracker from Taiga to integrated Gitea tracker at
  270. https://projects.torsion.org/witten/borgmatic/issues
  271. 1.1.12
  272. * #46: Declare dependency on pykwalify 1.6 or above, as older versions yield "Unknown key: version"
  273. rule errors.
  274. * Support for Borg --keep-minutely prune option.
  275. 1.1.11
  276. * #26: Add "ssh_command" to configuration for specifying a custom SSH command or options.
  277. * Fix for incorrect /etc/borgmatic.d/ configuration path probing on macOS. This problem manifested
  278. as an error on startup: "[Errno 2] No such file or directory: '/etc/borgmatic.d'".
  279. 1.1.10
  280. * Pass several Unix signals through to child processes like Borg. This means that Borg now properly
  281. shuts down if borgmatic is terminated (e.g. due to a system suspend).
  282. * #30: Support for using tilde in repository paths to reference home directory.
  283. * #43: Support for Borg --files-cache option for setting the files cache operation mode.
  284. * #45: Support for Borg --remote-ratelimit option for limiting upload rate.
  285. * Log invoked Borg commands when at highest verbosity level.
  286. 1.1.9
  287. * #17, #39: Support for user-defined hooks before/after backup, or on error.
  288. * #34: Improve clarity of logging spew at high verbosity levels.
  289. * #30: Support for using tilde in source directory path to reference home directory.
  290. * Require "prefix" in retention section when "archive_name_format" is set. This is to avoid
  291. accidental pruning of archives with a different archive name format. For similar reasons, default
  292. "prefix" to "{hostname}-" if not specified.
  293. * Convert main source repository from Mercurial to Git.
  294. * Update dead links to Borg documentation.
  295. 1.1.8
  296. * #40: Fix to make /etc/borgmatic/config.yaml optional rather than required when using the default
  297. config paths.
  298. 1.1.7
  299. * #29: Add "archive_name_format" to configuration for customizing archive names.
  300. * Fix for traceback when "exclude_from" value is empty in configuration file.
  301. * When pruning, make highest verbosity level list archives kept and pruned.
  302. * Clarification of Python 3 pip usage in documentation.
  303. 1.1.6
  304. * #13, #36: Support for Borg --exclude-from, --exclude-caches, and --exclude-if-present options.
  305. 1.1.5
  306. * #35: New "extract" consistency check that performs a dry-run extraction of the most recent
  307. archive.
  308. 1.1.4
  309. * #18: Added command-line flags for performing a borgmatic run with only pruning, creating, or
  310. checking enabled. This supports use cases like running consistency checks from a different cron
  311. job with a different frequency, or running pruning with a different verbosity level.
  312. 1.1.3
  313. * #15: Support for running multiple config files in /etc/borgmatic.d/ from a single borgmatic run.
  314. * Fix for generate-borgmatic-config writing config with invalid one_file_system value.
  315. 1.1.2
  316. * #33: Fix for passing check_last as integer to subprocess when calling Borg.
  317. 1.1.1
  318. * Part of #33: Fix for upgrade-borgmatic-config converting check_last option as a string instead of
  319. an integer.
  320. * Fix for upgrade-borgmatic-config erroring when consistency checks option is not present.
  321. 1.1.0
  322. * Switched config file format to YAML. Run upgrade-borgmatic-config to upgrade.
  323. * Added generate-borgmatic-config command for initial config creation.
  324. * Dropped Python 2 support. Now Python 3 only.
  325. * #19: Fix for README mention of sample files not included in package.
  326. * #23: Sample files for triggering borgmatic from a systemd timer.
  327. * Support for backing up to multiple repositories.
  328. * To free up space, now pruning backups prior to creating a new backup.
  329. * Enabled test coverage output during tox runs.
  330. * Added logo.
  331. 1.0.3
  332. * #22: Fix for verbosity flag not actually causing verbose output.
  333. 1.0.2
  334. * #21: Fix for traceback when remote_path option is missing.
  335. 1.0.1
  336. * #20: Support for Borg's --remote-path option to use an alternate Borg
  337. executable. See sample/config.
  338. 1.0.0
  339. * Attic is no longer supported, as there hasn't been any recent development on
  340. it. Dropping Attic support will allow faster iteration on Borg-specific
  341. features. If you're still using Attic, this is a good time to switch to Borg!
  342. * Project renamed from atticmatic to borgmatic. See the borgmatic README for
  343. information on upgrading.
  344. 0.1.8
  345. * Fix for handling of spaces in source_directories which resulted in backup up everything.
  346. * Fix for broken links to Borg documentation.
  347. * At verbosity zero, suppressing Borg check stderr spew about "Checking segments".
  348. * Support for Borg --one-file-system.
  349. * Support for Borg create --umask.
  350. * Support for file globs in source_directories.
  351. 0.1.7
  352. * #12: Fixed parsing of punctuation in configuration file.
  353. * Better error message when configuration file is missing.
  354. 0.1.6
  355. * #10: New configuration option for the encryption passphrase.
  356. * #11: Support for Borg's new archive compression feature.
  357. 0.1.5
  358. * Changes to support release on PyPI. Now pip installable by name!
  359. 0.1.4
  360. * Adding test that setup.py version matches release version.
  361. 0.1.3
  362. * #2: Add support for "borg check --last N" to Borg backend.
  363. 0.1.2
  364. * As a convenience to new users, allow a missing default excludes file.
  365. * New issue tracker, linked from documentation.
  366. 0.1.1
  367. * Adding borgmatic cron example, and updating documentation to refer to it.
  368. 0.1.0
  369. * New "borgmatic" command to support Borg backup software, a fork of Attic.
  370. 0.0.7
  371. * Flag for multiple levels of verbosity: some, and lots.
  372. * Improved mocking of Python builtins in unit tests.
  373. 0.0.6
  374. * New configuration section for customizing which Attic consistency checks run, if any.
  375. 0.0.5
  376. * Fixed regression with --verbose output being buffered. This means dropping the helpful error
  377. message introduced in 0.0.4.
  378. 0.0.4
  379. * Now using tox to run tests against multiple versions of Python in one go.
  380. * Helpful error message about how to create a repository if one is missing.
  381. * Troubleshooting section with steps to deal with broken pipes.
  382. * Nosetests config file (setup.cfg) with defaults.
  383. 0.0.3
  384. * After pruning, run attic's consistency checks on all archives.
  385. * Integration tests for argument parsing.
  386. * Documentation updates about repository encryption.
  387. 0.0.2
  388. * Configuration support for additional attic prune flags: keep_within, keep_hourly, keep_yearly,
  389. and prefix.
  390. 0.0.1
  391. * Initial release.