From 920d8564027d16973d47ec8e695e19e6ad53522c Mon Sep 17 00:00:00 2001 From: Sujin Kim Date: Tue, 21 Jul 2026 03:27:37 +0000 Subject: [PATCH 1/3] fix(alembic): linearize two heads onto 3f9a1c7b2e04 PRs #12818 (b988f01b17a1) and #12869 (a1c4e7b93f22) each branched a migration off 3f9a1c7b2e04 and merged independently, leaving two alembic heads and failing scripts/check-multiple-alembic-heads.py. Per the alembic README (keep a single linear head; never merge), reparent the later-merged a1c4e7b93f22 (kernel history perms) onto the earlier b988f01b17a1 (fair-share uniqueness). The two migrations are independent, so ordering is safe. Chain is now: 3f9a1c7b2e04 -> b988f01b17a1 -> a1c4e7b93f22 Co-Authored-By: Claude Opus 4.8 --- .../a1c4e7b93f22_add_kernel_history_read_permissions.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ai/backend/manager/models/alembic/versions/a1c4e7b93f22_add_kernel_history_read_permissions.py b/src/ai/backend/manager/models/alembic/versions/a1c4e7b93f22_add_kernel_history_read_permissions.py index 38a257c777d..8037827741e 100644 --- a/src/ai/backend/manager/models/alembic/versions/a1c4e7b93f22_add_kernel_history_read_permissions.py +++ b/src/ai/backend/manager/models/alembic/versions/a1c4e7b93f22_add_kernel_history_read_permissions.py @@ -1,7 +1,7 @@ """add kernel history read permissions to roles that can read kernels Revision ID: a1c4e7b93f22 -Revises: 3f9a1c7b2e04 +Revises: b988f01b17a1 Create Date: 2026-07-20 00:00:00.000000 """ @@ -11,7 +11,7 @@ # revision identifiers, used by Alembic. revision = "a1c4e7b93f22" -down_revision = "3f9a1c7b2e04" +down_revision = "b988f01b17a1" branch_labels = None depends_on = None From 0154805866e22dcd478a2b8648429ac6edf25a69 Mon Sep 17 00:00:00 2001 From: Sujin Kim Date: Tue, 21 Jul 2026 03:32:46 +0000 Subject: [PATCH 2/3] docs(changelog): add newsfragment for alembic head linearization Satisfies the timeline-check towncrier gate on #12978. Co-Authored-By: Claude Opus 4.8 --- changes/12978.misc.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changes/12978.misc.md diff --git a/changes/12978.misc.md b/changes/12978.misc.md new file mode 100644 index 00000000000..704470720bf --- /dev/null +++ b/changes/12978.misc.md @@ -0,0 +1 @@ +Linearize the two diverged alembic heads (`b988f01b17a1`, `a1c4e7b93f22`) into a single head by reparenting `a1c4e7b93f22` onto `b988f01b17a1`. From 314cb3b426d705df810d73ceb79d14e35c94765d Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Tue, 21 Jul 2026 13:48:47 +0900 Subject: [PATCH 3/3] fix(alembic): reconcile diverged heads with a merge migration Revert the earlier reparent of a1c4e7b93f22 (its down_revision goes back to 3f9a1c7b2e04) and instead add an empty merge migration 577c7a215934 whose down_revision is the tuple of the two heads. Per the alembic guardrails, when main itself has two or more heads the correct fix is an empty merge migration, not editing the diverged (possibly already-released) migrations' down_revision. Chain is now: 3f9a1c7b2e04 -> b988f01b17a1 -> 577c7a215934 3f9a1c7b2e04 -> a1c4e7b93f22 -> 577c7a215934 Co-Authored-By: Claude Opus 4.8 --- changes/12978.misc.md | 2 +- ...c7a215934_merge_heads_b988f01b17a1_and_.py | 22 +++++++++++++++++++ ...f22_add_kernel_history_read_permissions.py | 4 ++-- 3 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 src/ai/backend/manager/models/alembic/versions/577c7a215934_merge_heads_b988f01b17a1_and_.py diff --git a/changes/12978.misc.md b/changes/12978.misc.md index 704470720bf..01d5ebd71f9 100644 --- a/changes/12978.misc.md +++ b/changes/12978.misc.md @@ -1 +1 @@ -Linearize the two diverged alembic heads (`b988f01b17a1`, `a1c4e7b93f22`) into a single head by reparenting `a1c4e7b93f22` onto `b988f01b17a1`. +Reconcile the two diverged alembic heads (`b988f01b17a1`, `a1c4e7b93f22`) by adding an empty merge migration (`577c7a215934`) instead of editing the released migrations' `down_revision`. diff --git a/src/ai/backend/manager/models/alembic/versions/577c7a215934_merge_heads_b988f01b17a1_and_.py b/src/ai/backend/manager/models/alembic/versions/577c7a215934_merge_heads_b988f01b17a1_and_.py new file mode 100644 index 00000000000..cb63f4c62bc --- /dev/null +++ b/src/ai/backend/manager/models/alembic/versions/577c7a215934_merge_heads_b988f01b17a1_and_.py @@ -0,0 +1,22 @@ +"""merge heads b988f01b17a1 and a1c4e7b93f22 + +Revision ID: 577c7a215934 +Revises: b988f01b17a1, a1c4e7b93f22 +Create Date: 2026-07-21 13:46:17.583476 + +""" + +# revision identifiers, used by Alembic. +revision = "577c7a215934" +down_revision = ("b988f01b17a1", "a1c4e7b93f22") +# Part of: NEXT_RELEASE_VERSION +branch_labels = None +depends_on = None + + +def upgrade() -> None: + pass + + +def downgrade() -> None: + pass diff --git a/src/ai/backend/manager/models/alembic/versions/a1c4e7b93f22_add_kernel_history_read_permissions.py b/src/ai/backend/manager/models/alembic/versions/a1c4e7b93f22_add_kernel_history_read_permissions.py index 8037827741e..38a257c777d 100644 --- a/src/ai/backend/manager/models/alembic/versions/a1c4e7b93f22_add_kernel_history_read_permissions.py +++ b/src/ai/backend/manager/models/alembic/versions/a1c4e7b93f22_add_kernel_history_read_permissions.py @@ -1,7 +1,7 @@ """add kernel history read permissions to roles that can read kernels Revision ID: a1c4e7b93f22 -Revises: b988f01b17a1 +Revises: 3f9a1c7b2e04 Create Date: 2026-07-20 00:00:00.000000 """ @@ -11,7 +11,7 @@ # revision identifiers, used by Alembic. revision = "a1c4e7b93f22" -down_revision = "b988f01b17a1" +down_revision = "3f9a1c7b2e04" branch_labels = None depends_on = None