This is an automated email from the ASF dual-hosted git repository.
yasithdev pushed a commit to branch modernization
in repository https://gitbox.apache.org/repos/asf/airavata-portals.git
The following commit(s) were added to refs/heads/modernization by this push:
new fbbb378d0 docs(modernization): branch strategy for the umbrella
fbbb378d0 is described below
commit fbbb378d0a036d8e60b98a3390ddd7e5e8b62688
Author: yasithdev <[email protected]>
AuthorDate: Tue Apr 21 09:42:28 2026 -0400
docs(modernization): branch strategy for the umbrella
---
...6-04-21-portal-modernization-branch-strategy.md | 33 ++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git
a/airavata-django-portal/docs/superpowers/plans/2026-04-21-portal-modernization-branch-strategy.md
b/airavata-django-portal/docs/superpowers/plans/2026-04-21-portal-modernization-branch-strategy.md
new file mode 100644
index 000000000..5c781abef
--- /dev/null
+++
b/airavata-django-portal/docs/superpowers/plans/2026-04-21-portal-modernization-branch-strategy.md
@@ -0,0 +1,33 @@
+# Modernization Branch Strategy
+
+The `modernization` branch is the long-lived integration branch for the
+portal modernization umbrella (spec:
+`docs/superpowers/specs/2026-04-21-portal-modernization-design.md`).
+
+## Baseline
+
+`modernization` was branched from `feat/sdk-and-devenv` (not `main`), so it
+inherits in-flight foundational fixes that preceded the umbrella:
+
+- SSE `SharedWorker`-based EventSource sharing across pages
+- uvicorn / ASGI swap (replaces Django `runserver`)
+- SQLite WAL + busy_timeout for session concurrency
+- Save-deployment `SharingType` enum binding fix
+- Multiple Vue 3 destroyed()→unmounted() fixes
+
+When the umbrella PR is opened (Task 7), the base is `main`, so the PR will
+roll up both the pre-umbrella fixes and the five modernization tracks.
+
+## Rules
+
+1. Every track (D, C, B, Pre-A, A) lands on its own feature branch.
+2. Feature branches merge into `modernization`, not `main`.
+3. `modernization` merges to `main` exactly once, at the end of the
+ umbrella, after every track's done-criteria pass.
+4. Any track can be reverted independently by a revert-merge against
+ `modernization`.
+
+Feature-branch naming: `track-<letter>/<short-slug>`.
+Examples: `track-d/python-hygiene`, `track-c/monorepo-tooling`,
+`track-b/library-swaps`, `track-pre-a/test-harness`,
+`track-a/vue-composition-ts-pinia`.