Sync dev with main (02.55.00) #206
Reference in New Issue
Block a user
Delete Branch "sync/main-into-dev"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
devhad diverged far frommain— stuck on the old01.45.x-devline, 83 commits behind and 13 unique (mostly superseded) commits ahead. This merges all ofmain(02.55.00) intodevso it's current again.Conflicts were resolved in main's favor, then all shared files were forced to main's exact content. The result:
dev's tree equalsmain's, except for 7 inert historical SQL migration stubs unique to dev (e.g./* 01.45.05 — no schema changes */), which are kept to preserve migration history.Why this is safe (investigated beforehand)
None of dev's 13 unique commits held anything missing from main:
pkgmanifest points togit.mokoconsulting.tech/.../updates.xml).getOrCreateInstancemodal API throughout.01.44.x–01.45.07-dev): superseded by main's02.55.00.dev's unique commits remain in history as merge ancestors; nothing is discarded.
Docs/sync only — no new code.
Two related backup-management fixes. Retention (records/days to keep): - The retention fieldset was defined in profile.xml but never rendered in the profile editor, so retention_days/retention_count were invisible. Render the retention fieldset on the Archive tab. - retention_days/retention_count were read by nothing, so they pruned no backups. Add RetentionManager::prune(), called from completeRecord() in both BackupEngine and SteppedBackupEngine after a backup finishes. Policy: delete a completed/warning backup when EITHER it is older than retention_days OR it falls outside the newest retention_count copies (0 = unlimited for that rule). Deleting a record also removes its archive and log file. - Correct misleading language/schema text ("use global default" — no such global backup-retention setting exists) to "0 = unlimited". Purge Old Backups button: - The modal only opened via a fragile selector match on the toolbar button's inline onclick, which Joomla 6's Atum toolbar does not render, so the button did nothing. Wrap Joomla.submitbutton to open the modal for the backups.purgeModal task, keeping the selector as a fallback.