The Wire · Showcase
AURWEB MIGRATION OVERHAUL SHIPS WITH DOWNGRADE TESTING
By RepoJournal · Filed · About Arch Linux
Arch Linux's package repository just locked down its database migrations with automated testing that catches divergent branches and verifies round-trip downgrades against MariaDB.
Josephine Pfeiffer landed three critical fixes to aurweb that harden the migration pipeline [1] [2] [3]. The series started with a fix for a foreign key ordering bug that was breaking downgrades with InnoDB errno 1553, then added linting to catch divergent alembic heads before they hit CI, and capped it with round-trip testing that validates every migration can upgrade and downgrade cleanly. This matters: divergent migration branches have already scattered twice in recent history, and now they'll fail pre-commit. The test suite now runs full up/down cycles against MariaDB instead of just stamping head, which catches schema drift that the old create_all approach would miss. Over in the extras repository, Felix Yan shipped updates across the Python ecosystem: ruby-falcon to 0.57.0-1 [4], python-langsmith to 0.10.8-1 [5], python-tracerite to 2.6.0-1 [6], and python-cmd2 to 4.1.0-1 [7]. Django 5.2.16 landed in archweb's dependencies [8], patching a newline injection vulnerability in DOM attribute handling.
One email a day. Unsubscribe in one click.
Keep up with Arch Linux in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Review aurweb migration linting in your pre-push hooks - divergent branches now fail fast archlinux/aurweb [plan]
- → Test any custom aurweb deployment migrations against the new round-trip validation archlinux/aurweb [monitor]
- → Verify Django 5.2.16 rolls into your next archweb deployment archlinux/archweb [plan]
References
- [1] fix(migrations): drop the ClosedUID foreign key around the index drop archlinux/aurweb
- [2] chore: lint the alembic revision chain on pre-push and in CI archlinux/aurweb
- [3] test: run migration downgrade/upgrade round trips against MariaDB archlinux/aurweb
- [4] update ruby-falcon to 0.57.0-1 in extra-any archlinux/state
- [5] update python-langsmith to 0.10.8-1 in extra-any archlinux/state
- [6] update python-tracerite to 2.6.0-1 in extra-any archlinux/state
- [7] update python-cmd2 to 4.1.0-1 in extra-any archlinux/state
- [8] build(deps): bump django from 5.2.14 to 5.2.16 ↗ archlinux/archweb