Skip to content

chore(main): release 4.0.0#102

Open
MaxG87 wants to merge 1 commit into
mainfrom
release-please--branches--main
Open

chore(main): release 4.0.0#102
MaxG87 wants to merge 1 commit into
mainfrom
release-please--branches--main

Conversation

@MaxG87
Copy link
Copy Markdown
Owner

@MaxG87 MaxG87 commented Apr 23, 2026

🤖 I have created a release beep boop

4.0.0 (2026-05-31)

⚠ BREAKING CHANGES

  • Names that form absolute paths are rejected to avoid bad surprises when using ButterBackup.
  • config: Setting the Compression value for Restic configurations is no longer supported.
  • Drop Python 3.10
  • Bump minimum supported Python to 3.11

Features

  • Add --file-system option to format-device CLI command (442ecc4)
  • add Configuration wrapper model with deviceConfigurations sublist (fa49e1b)
  • add optional dest argument to open command (ba7faa6)
  • add SudoPassCmd field to Configuration (04569ff)
  • Allow btrfs file system argument for BtrFS-Rsync too (f6ff28c)
  • Allow configuration files in YAML, JSON5 and TOML (7a6655d)
  • Change default file system for restic to ext4 (6f504c5)
  • config: Drop Compression value from Restic configuration (c4ae3a7)
  • Continue with othen devices on close unmount confusion (483de4a)
  • Enforce certain restrictions on Names (810171c)
  • implement --file-system option for format-device command (cdfd75f)
  • implement SudoPassCmd to refresh sudo cache (7ddc0a3)
  • Open all devices in same directory using their Names as folder names (c368f9a)
  • open mounts all devices to shared tmpdir under Name subdirectory with error handling (90c190e)
  • pass SudoPassCmd into do_backup and refresh sudo session in both backends (78c0c39)
  • Reject names that form absolute Paths (6ebb1e7)

Dependencies

  • Bump all dependencies - prod and dev (f6a03b2)
  • Bump all production dependencies (3c9b037)
  • Bump all production dependencies (faa1b7d)
  • Bump minimum supported Python to 3.11 (c751d60)
  • Bump storage-device-managers to 2.0.0 (dc11c4f)
  • Bump to storage-device-managers to Git upstream (32d2f5d)
  • dev: Bump all development dependencies (0e3a620)
  • dev: Bump all development dependencies (24f5caa)
  • dev: Bump the development-dependencies group with 3 updates (#118) (e5cb51d)
  • Drop Python 3.10 (4437736)

Documentation

  • Add introduction text to configuration section (781c666)
  • add Konfigurationsdateien section to README (ef6777f)
  • Minor editorial changes to new sections (0cadafa)
  • Remove quotes from keys in JSON5 documentation (5502c48)
  • Set up multi-language READMEs for project (e9a2e8f)
  • Stress expected file ending by renaming example files (9217b1d)
  • test: Add helpful comment to test helper (dab53aa)

This PR was generated with Release Please. See documentation.

@MaxG87 MaxG87 changed the title chore(main): release 3.7.0 chore(main): release 4.0.0 Apr 23, 2026
@MaxG87 MaxG87 force-pushed the release-please--branches--main branch 6 times, most recently from 7e2029b to 593c5cd Compare April 27, 2026 19:44
@MaxG87 MaxG87 force-pushed the release-please--branches--main branch 2 times, most recently from b218031 to db2d760 Compare May 8, 2026 07:11
@MaxG87 MaxG87 force-pushed the release-please--branches--main branch 3 times, most recently from 19b46a6 to 902a2dd Compare May 16, 2026 23:34
@MaxG87 MaxG87 force-pushed the release-please--branches--main branch 2 times, most recently from b7e63ba to 5115a20 Compare May 17, 2026 12:37
@prataffel
Copy link
Copy Markdown
Contributor

prataffel commented May 26, 2026

Hey,

This looks very cool -- especially the SudoPassCmd.

I don't know if the support for many different config file formats is, however, worth perusing -- this sounds to me like more overhead. I'd in any way prefer to have the file endings correspond to the file type. I see that this is not trivial -- you could have more than one file under ~/.config/butter-backup.<ending> and would need to rank them -- but maybe this just supports only using one type?
However, allowing comments is quite nice, I think; hence, I'd be in favor of toml or json5.

Might touching the config files, anyways, be an opportunity to merge exclude files with the configuration? ExcludePatternsFile is in there, already, and factoring them out might increase readability -- but one could introduce ExcludePattern, which would take a list of patterns.

@MaxG87
Copy link
Copy Markdown
Owner Author

MaxG87 commented May 26, 2026

Thank you very much for the remarks.

I was considering to make the ending match the file format but tried to avoid the effort. Maybe I'll give it a try, though. The support for so many formats isn't really a burden so far. Otherwise I wouldn't have added all of them. Lets see how that will develop if the file ending reflects the format.

I am not so optimistic regarding the ExcludePatterns option. My exclude patterns file is 67 lines long and grows occasionally. Duplicating it to every device configuration would bloat the configuration files. How many patterns would do you maintain?

@prataffel
Copy link
Copy Markdown
Contributor

prataffel commented May 27, 2026

I am not so optimistic regarding the ExcludePatterns option. My exclude patterns file is 67 lines long and grows occasionally. Duplicating it to every device configuration would bloat the configuration files. How many patterns would do you maintain?

That is true. I have 2 times ~30... 40 lines of excludes. With a nice config format, I could just fold them automatically, most of the time. But maybe such an addition would distract more than it would help.

How do you consider to allow a config file in ~/.config/butter-backup/config.<ending> (or whatever filename seems reasonable to you)? Such a directory could be a natural home for the exclude files (that is at least how it appears to me). But I think the current status is also very fine:).

@MaxG87
Copy link
Copy Markdown
Owner Author

MaxG87 commented May 28, 2026

I have thought about this.

I really like to move the configuration into a dedicated folder. A major release is the correct opportunity to do so.

I will not add an ExcludePattern list to the configuration. I see only three ways to implement it:

  1. Write it to a temporary file: This would make the execution more brittle and require handling a long-lived context.
  2. Reimplement file selection manually and be aware whether restic or rsync needs to be mimicked. This is way to complex and will not happen.
  3. Pass over all elements of the list to the command line of restic or rsync at once. This is super dangerous, as it could lead to a too long argument list, making the backup program crash. I am not looking forward to getting that issue under control.

With a new config folder, I think most of the issues of an exclude patterns file will be addressed.

@MaxG87 MaxG87 force-pushed the release-please--branches--main branch from 5115a20 to 05686c1 Compare May 29, 2026 15:50
@MaxG87 MaxG87 force-pushed the release-please--branches--main branch from 05686c1 to 8926c6a Compare May 31, 2026 20:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants