tools/compat.py found that the patch's assumptions about middlewared no longer hold.
TrueNAS
B2/S3 providers
Nested snapshots
Hardware-verified
24.10.2.4
ok
ok
—
25.04.2.6
ok
ok
—
25.10.4
ok
ok
nested + providers; 252-snapshot recursive backup of /mnt/Tap, 18m
26.0.0-BETA.3 (unreleased)
ok
BROKEN
—
master (unreleased)
BROKEN
BROKEN
—
verdict
meaning
ok
Every assumption the patch makes about middleware still holds.
BROKEN
middleware changed underneath the patch. apply.shrefuses to apply that module on this version and leaves TrueNAS stock, so backups keep working — without the module's feature.
native
TrueNAS does this itself now. The module retires; it is not a failure.
"ok" means the patch's assumptions hold, checked automatically against iX's
source. It does not mean a human ran a backup on it — that is the Hardware-verified column, which is filled in by hand and only by doing it.
release/26.0.0-BETA.3
nested — the patch will not apply:
call-zfs-dataset-query: plugins/zfs_/dataset.py no longer exists, so zfs.dataset.query is gone
why it matters: SNAPSHOT_BLOCK enumerates FILESYSTEM datasets to build the staging plan
call-zfs-snapshot-delete: plugins/zfs_/snapshot.py no longer exists, so zfs.snapshot.delete is gone
why it matters: delete_snapshot_tree() sweeps the recursive snapshot. Without it every run orphans one snapshot per descendant dataset (250 on a real pool)
call-zfs-snapshot-query: plugins/zfs_/snapshot.py no longer exists, so zfs.snapshot.query is gone
why it matters: delete_snapshot_tree()'s fallback sweep enumerates the tree by name
master
nested — the patch will not apply:
restic-backup: restic_backup('context', 'job', 'entry', 'credentials', 'dry_run', 'rate_limit') — positional parameters changed; the patch calls it as (middleware, job, cloud_backup)
why it matters: SYNC_BLOCK wraps it to tear down bind mounts in a finally
call-zfs-dataset-query: plugins/zfs_/dataset.py no longer exists, so zfs.dataset.query is gone
why it matters: SNAPSHOT_BLOCK enumerates FILESYSTEM datasets to build the staging plan
call-zfs-snapshot-delete: plugins/zfs_/snapshot.py no longer exists, so zfs.snapshot.delete is gone
why it matters: delete_snapshot_tree() sweeps the recursive snapshot. Without it every run orphans one snapshot per descendant dataset (250 on a real pool)
call-zfs-snapshot-query: plugins/zfs_/snapshot.py no longer exists, so zfs.snapshot.query is gone
why it matters: delete_snapshot_tree()'s fallback sweep enumerates the tree by name
providers — the patch will not apply:
restic-config-fn: get_restic_config('entry', 'credentials') — positional parameters changed; the patch calls it as (cloud_backup)
why it matters: RESTIC_BLOCK wraps it to rewrite the repo URL; it calls the original WITHOUT await, so it must stay synchronous
Filed automatically by .github/workflows/compat.yml.
`tools/compat.py` found that the patch's assumptions about middlewared no longer hold.
| TrueNAS | B2/S3 providers | Nested snapshots | Hardware-verified |
| --- | --- | --- | --- |
| 24.10.2.4 | ok | ok | — |
| 25.04.2.6 | ok | ok | — |
| 25.10.4 | ok | ok | nested + providers; 252-snapshot recursive backup of /mnt/Tap, 18m |
| 26.0.0-BETA.3 _(unreleased)_ | ok | **BROKEN** | — |
| master _(unreleased)_ | **BROKEN** | **BROKEN** | — |
| verdict | meaning |
| --- | --- |
| **ok** | Every assumption the patch makes about middleware still holds. |
| **BROKEN** | middleware changed underneath the patch. `apply.sh` **refuses to apply that module** on this version and leaves TrueNAS stock, so backups keep working — without the module's feature. |
| **native** | TrueNAS does this itself now. The module retires; it is not a failure. |
"ok" means *the patch's assumptions hold*, checked automatically against iX's
source. It does not mean a human ran a backup on it — that is the
**Hardware-verified** column, which is filled in by hand and only by doing it.
### release/26.0.0-BETA.3
**nested** — the patch will not apply:
- `call-zfs-dataset-query`: plugins/zfs_/dataset.py no longer exists, so `zfs.dataset.query` is gone
- why it matters: SNAPSHOT_BLOCK enumerates FILESYSTEM datasets to build the staging plan
- `call-zfs-snapshot-delete`: plugins/zfs_/snapshot.py no longer exists, so `zfs.snapshot.delete` is gone
- why it matters: delete_snapshot_tree() sweeps the recursive snapshot. Without it every run orphans one snapshot per descendant dataset (250 on a real pool)
- `call-zfs-snapshot-query`: plugins/zfs_/snapshot.py no longer exists, so `zfs.snapshot.query` is gone
- why it matters: delete_snapshot_tree()'s fallback sweep enumerates the tree by name
### master
**nested** — the patch will not apply:
- `restic-backup`: restic_backup('context', 'job', 'entry', 'credentials', 'dry_run', 'rate_limit') — positional parameters changed; the patch calls it as (middleware, job, cloud_backup)
- why it matters: SYNC_BLOCK wraps it to tear down bind mounts in a finally
- `call-zfs-dataset-query`: plugins/zfs_/dataset.py no longer exists, so `zfs.dataset.query` is gone
- why it matters: SNAPSHOT_BLOCK enumerates FILESYSTEM datasets to build the staging plan
- `call-zfs-snapshot-delete`: plugins/zfs_/snapshot.py no longer exists, so `zfs.snapshot.delete` is gone
- why it matters: delete_snapshot_tree() sweeps the recursive snapshot. Without it every run orphans one snapshot per descendant dataset (250 on a real pool)
- `call-zfs-snapshot-query`: plugins/zfs_/snapshot.py no longer exists, so `zfs.snapshot.query` is gone
- why it matters: delete_snapshot_tree()'s fallback sweep enumerates the tree by name
**providers** — the patch will not apply:
- `restic-config-fn`: get_restic_config('entry', 'credentials') — positional parameters changed; the patch calls it as (cloud_backup)
- why it matters: RESTIC_BLOCK wraps it to rewrite the repo URL; it calls the original WITHOUT await, so it must stay synchronous
_Filed automatically by `.github/workflows/compat.yml`._
Filed by the compat run that landed between the title change and #1 being retitled. The bot now converges on the lowest-numbered matching issue, so this cannot recur.
Duplicate of #1 — closing.
Filed by the compat run that landed between the title change and #1 being retitled. The bot now converges on the lowest-numbered matching issue, so this cannot recur.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
tools/compat.pyfound that the patch's assumptions about middlewared no longer hold.apply.shrefuses to apply that module on this version and leaves TrueNAS stock, so backups keep working — without the module's feature."ok" means the patch's assumptions hold, checked automatically against iX's
source. It does not mean a human ran a backup on it — that is the
Hardware-verified column, which is filled in by hand and only by doing it.
release/26.0.0-BETA.3
nested — the patch will not apply:
call-zfs-dataset-query: plugins/zfs_/dataset.py no longer exists, sozfs.dataset.queryis gonecall-zfs-snapshot-delete: plugins/zfs_/snapshot.py no longer exists, sozfs.snapshot.deleteis gonecall-zfs-snapshot-query: plugins/zfs_/snapshot.py no longer exists, sozfs.snapshot.queryis gonemaster
nested — the patch will not apply:
restic-backup: restic_backup('context', 'job', 'entry', 'credentials', 'dry_run', 'rate_limit') — positional parameters changed; the patch calls it as (middleware, job, cloud_backup)call-zfs-dataset-query: plugins/zfs_/dataset.py no longer exists, sozfs.dataset.queryis gonecall-zfs-snapshot-delete: plugins/zfs_/snapshot.py no longer exists, sozfs.snapshot.deleteis gonecall-zfs-snapshot-query: plugins/zfs_/snapshot.py no longer exists, sozfs.snapshot.queryis goneproviders — the patch will not apply:
restic-config-fn: get_restic_config('entry', 'credentials') — positional parameters changed; the patch calls it as (cloud_backup)Filed automatically by
.github/workflows/compat.yml.Duplicate of #1 — closing.
Filed by the compat run that landed between the title change and #1 being retitled. The bot now converges on the lowest-numbered matching issue, so this cannot recur.