Skip to content

Release 1.0.0-rc.6 - #20

Merged
dillardblom merged 27 commits into
mainfrom
rc6
Oct 23, 2026
Merged

dillardblom merged 27 commits into
mainfrom
rc6

Conversation

@dillardblom

Copy link
Copy Markdown
Owner

Sixth release candidate for 1.0.0. App version 0.9.12; the tag will be v1.0.0-rc.6. Fixes from two disaster recovery simulations and a user report. If no problems are reported for about a week, 1.0.0 will be this same code.

Daily backup time in the administrator's time zone (#19)

  • The time was taken as UTC (Nextcloud runs PHP in UTC), so 03:00 ran at 05:00 in Berlin. The time is now saved with the administrator's time zone (the browser's), and the field shows that zone.
  • A time saved before is converted once, to the server's default_timezone or else the first administrator's time zone. It then shows when it actually ran (02:30 UTC becomes 04:30 Europe/Berlin in summer).
  • A schedule saved in another zone is shown in the viewer's zone, also on days the clocks change.

Full restore over SMB stopped with "Decryption failed"

  • A restore from a Hetzner Storage Box over SMB to Canada stopped after 17 hours: a read over the long line handed out wrong bytes. The backup itself was fine; the same files restored identically afterwards.
  • A blob that does not decrypt on the first read, of a file or of the database, is now read once more on its own request. The read is logged as a warning that says how the first read differed (zeros, the right bytes shifted, or other bytes), to find the cause; only a second failure stops the restore.

Full restore onto MySQL/MariaDB stopped with "Incorrect string value"

  • Tables the restore creates (of apps that are not installed yet) got 3-byte utf8, so rows with emoji failed. They now get this installation's character set and collation (utf8mb4). Found in a simulation onto MariaDB; the integration test now restores an emoji.

Admin page

  • The sections use more of the screen (up to 1400 pixels instead of 900), so the list of backup runs fits without scrolling sideways.

Documentation

  • README: roadmap, tested disaster recoveries, measurements for OVH S3, Storage Box over SFTP and SMB, building the SMB extension when PECL is down, what works without shell access.
  • The disaster recovery guide lists shell access among what you need.

Tested

  • Unit tests (181, 8 new) and psalm pass. New tests read a damaged blob once more, for files and for a database dump.
  • Full-restore integration test, all 11 variants (every crossing between PostgreSQL, MariaDB and SQLite, legacy backups, SFTP): passed.
  • Disaster recovery simulation of 138 GB (20 users, calendars, contacts, mail, shares, team folders with an ACL, versions, trash) via OVH S3 from MariaDB onto MariaDB: all 15,772 files and every database count identical (it found the utf8mb4 problem above).
  • The same simulation via a Hetzner Storage Box over SMB (Germany → Canada) from MariaDB onto SQLite, following the guide: all 15,772 files and every database count identical, in 27.6 hours, without a single blob read again. (The rc.5 attempt stopped after 17 hours with the read error above; the reread was not needed this time.)
  • Local review: findings fixed.

Fixes #19

…how to set it up, and that without it a backup started with the button only moves while the page is open
…, every N hours, locations one after the other, editable notes (1.1.0)
…im onto MariaDB, SMB sim onto SQLite before 1.0.0; nc01 onto MariaDB after)
…set and collation (utf8mb4 on MySQL/MariaDB); test with an emoji
…thout shell access; guide lists shell access; changelog for rc6
… on a request of its own before the restore gives up
…d before is converted once so it shows as it ran
…e; schedule conversion right on days the clocks change; the field follows a changed schedule time zone
…0.1 items (salvage mode, leftover restore files, single-file restore)
@coderabbiteu

coderabbiteu Bot commented Oct 23, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 9915c9b4-30de-4eff-b668-f66203e7c2f3
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@dillardblom dillardblom changed the title 1.0.0-rc.6: schedule in the administrator's time zone, second read of a damaged blob, utf8mb4 for created tables Release 1.0.0-rc.6 Oct 23, 2026
@dillardblom
dillardblom merged commit 965440d into main Oct 23, 2026
88 of 89 checks passed
@dillardblom
dillardblom deleted the rc6 branch October 23, 2026 23:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Experience: Scheduled time is using UTC and not the actual time zone

1 participant