yasithdev opened a new pull request, #107:
URL: https://github.com/apache/airavata-portals/pull/107

   ## Summary
   
   Executes the modernization umbrella spec at
   
`airavata-django-portal/docs/superpowers/specs/2026-04-21-portal-modernization-design.md`.
   
   All 5 tracks landed as independent squashed merges on the long-lived
   `modernization` branch; this PR lands them together onto `main`.
   
   - **Track D — Python hygiene** (`merge: 902b8e052e`). pytz → stdlib
     zoneinfo; Wagtail 6.3 → 7.3.1 (scope-expanded); wagtailcodeblock
     1.28 → 1.29; djangorestframework `<4` cap widened; F401 cleanups.
   - **Track C — Monorepo tooling** (`merge: 98ecf2072b`). Shared `tooling/`
     workspace (ESLint 9 flat + Prettier + Vite helper + strict tsconfig).
     Yarn 1 → npm workspaces (umbrella deviation; see spec).
   - **Track B — Library swaps** (`merge: b49a1cf20f`). moment → native
     `Intl`; CodeMirror 5 → 6 via shared `<CodeEditor>`; bootstrap-4.0.0-beta
     fossil deleted; lodash removed (inline debounce); vue-slider-component
     beta pin rationale.
   - **Track Pre-A — Test harness** (`merge: 509366959e`). Vitest (jsdom) +
     Playwright (storageState-cached auth); 1 showcase Vitest test + 1
     example Playwright journey; root `test`/`test:e2e` wired; 5
     pre-existing broken tests fixed or retired.
   - **Track A — Vue Composition + TypeScript + Pinia** (`merge: 98544ff6fd`).
     179 `.vue` files → `<script setup lang=\"ts\">`; 86 API models + ~20
     utility `.js` → `.ts`; Vuex deleted, 3 domain-driven Pinia stores;
     Vue 2 residue eliminated; Track C-demoted ESLint rules re-elevated to
     error; zero `@ts-expect-error`/`@ts-ignore`.
   
   Also includes the pre-umbrella `feat/sdk-and-devenv` foundation work
   (SSE SharedWorker, uvicorn/ASGI, Wagtail 7 compatibility, SQLite WAL,
   multiple UI fixes) — `modernization` was branched off that feature
   branch rather than `main`, so the combined diff rolls both in.
   
   ## Test plan
   
   - [x] `npm run test --workspaces --if-present` — 33 tests pass (31 api +
         2 workspace)
   - [x] `npx playwright test --config=tooling/playwright.config.ts --list` —
         2 tests listable
   - [x] `npm run typecheck` — strict TS (allowJs: false) passes
   - [x] `npm run build --workspaces --if-present` — all workspaces build;
         manifest keys byte-identical for admin/auth/dataparsers/workspace
   - [x] `npm run lint` — 0 errors, 1 warning (documented `vue/no-v-html`
         exception for Wagtail CMS content)
   - [x] `uv run ruff check .` — same pre-existing 110-error count (outside
         umbrella scope)
   - [x] `uv run ty check .` — same pre-existing 304 diagnostics
   - [x] `uv run pytest -q` — 69 passed / 6 pre-existing Wagtail-7 IAM
         failures (same as modernization baseline)
   - [x] Umbrella grep audit — zero legacy idioms (destroyed/beforeDestroy/
         \$set/\$off/mapGetters/mapMutations/mapActions/moment/codemirror5)
   - [x] No Bootstrap 4 fossil / no vendored jQuery
   - [x] `scripts/pin_audit.py` — every `<` pin has a rationale comment
   - [x] Test count did not decay since Pre-A baseline
   
   ## Deviations from original umbrella spec
   
   1. **Track D scope expanded.** The umbrella scoped setuptools<81 as "keep
      or bump wagtailcodeblock". Investigation revealed the pin was
      mis-rooted: wagtailcodeblock never actually needed pkg_resources, but
      1.30 was incompatible with Wagtail 6. Expanded Track D to bump Wagtail
      6.3 → 7.3.1 to unblock wagtailcodeblock 1.29 and drop setuptools<81
      cleanly.
   2. **Track C package manager.** Switched Yarn 1 → npm workspaces instead
      of staying on Yarn 1. Rationale: npm ships with Node (no corepack
      dependency), aligns with Node-ecosystem default. Umbrella spec section
      "Package manager" amended with the deviation rationale in commit
      `b47d9f2ea4`.
   3. **Track C ESLint strictness.** Vue Style Guide + Vue 2 deprecation
      rules were demoted to `warn` during Track C (fighting Track C's 800+
      violations was throwaway given Track A's rewrite); re-elevated to
      `error` at the end of Track A (milestone 7).
   4. **Track Pre-A scope.** Dropped to "scaffolding-only MVP" — 1 example
      Vitest test + 1 example Playwright journey instead of the original
      25 + 12 targets. Track A authored real test coverage implicitly as it
      rewrote 179 .vue files.
   
   Full track specs + plans live under
   `airavata-django-portal/docs/superpowers/{specs,plans}/`.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to