Skip to content

feat(specs): add Expo SDK 52 → 55 upgrade specification#524

Draft
Copilot wants to merge 9 commits intomainfrom
copilot/resolve-gh-dependabot-issues
Draft

feat(specs): add Expo SDK 52 → 55 upgrade specification#524
Copilot wants to merge 9 commits intomainfrom
copilot/resolve-gh-dependabot-issues

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 12, 2026

  • Spec 021 planning artifacts (spec.md, plan.md, research.md, tasks.md, data-model.md, quickstart.md)
  • Upgrade Expo SDK 52→53 (expo ~53.0.0, expo-router ~5.1.0, expo-notifications ~0.31.0, react-native 0.79.6)
  • Fix expo-notifications API (shouldShowAlert → shouldShowBanner + shouldShowList)
  • Fix React 19 useRef() explicit initial value in push.ts
  • Remove @xmldom/xmldom and tar security overrides (resolved by SDK 53 transitively)
  • Update Jest moduleNameMapper for SDK 53 hoisting (local node_modules paths)
  • Pin react@19.0.0 locally in mobile to match react-native 0.79.6 renderer
  • Pre-configure RNTL v12 hostComponentNames in setup.ts (React 19 AggregateError fix)
  • Add @types/react@^19.0.0 to root devDeps (unify type resolution, fix 25 typecheck errors)
  • Add react@^19.0.0 to root devDeps (React 19 wins hoisting → fixes web dual-React error)
  • Exclude src/**/*.stories.tsx from shared-ui tsconfig (21 @storybook/react missing-module errors)
  • Remove redundant @types/react + @types/react-dom from shared-ui devDeps
  • Restore .github/workflows/* to main state (checkout@v5, setup-node@v5, azure/login@v3)
  • Restore infra/ and specs/020-azure-nightly-publish/ to main state
  • Restore apps/web/vitest.config.ts to main state
  • Typecheck: 0 errors ✅
  • Lint: clean ✅
  • npm audit: 0 vulnerabilities ✅
  • 52 mobile tests pass ✅
  • 175 shared-ui tests pass ✅
  • 44 shared tests pass ✅
  • 20 tokens tests pass ✅
  • 935 web tests — awaiting CI (passes locally with React 19 at root)

Copilot AI and others added 3 commits April 12, 2026 17:35
…pdates and overrides

- Run npm audit fix to resolve 9 auto-fixable vulnerabilities (next-intl, next, axios, lodash, vite, yaml, picomatch, brace-expansion, fast-xml-parser)
- Add npm overrides for 3 deep transitive Expo deps (@xmldom/xmldom, tar, @tootallnate/once)
- Add react/react-dom aliases in web vitest config to prevent React version conflicts
- Result: 0 vulnerabilities (down from 20)

Agent-Logs-Url: https://github.com/microsoft/CommunityManagement-Sample-Spec-Kit/sessions/50393901-0f5d-41f0-85c3-d729359f696f

Co-authored-by: MikeWedderburn-Clarke <5323631+MikeWedderburn-Clarke@users.noreply.github.com>
…tion with new lockfile

Update module resolution paths so tests resolve the correct React version
regardless of npm hoisting order after lockfile regeneration.

Agent-Logs-Url: https://github.com/microsoft/CommunityManagement-Sample-Spec-Kit/sessions/50393901-0f5d-41f0-85c3-d729359f696f

Co-authored-by: MikeWedderburn-Clarke <5323631+MikeWedderburn-Clarke@users.noreply.github.com>
Copilot AI and others added 2 commits April 12, 2026 20:19
…tasks via spec-kit

Agent-Logs-Url: https://github.com/microsoft/CommunityManagement-Sample-Spec-Kit/sessions/65d97d30-544d-4062-99a7-121f613eb910

Co-authored-by: MikeWedderburn-Clarke <5323631+MikeWedderburn-Clarke@users.noreply.github.com>
- Upgrade Expo SDK 52→53 (expo, expo-router, expo-constants, etc.)
- Upgrade React 18→19, react-native 0.76→0.79
- Remove @xmldom/xmldom and tar overrides (resolved by SDK 53)
- Keep @tootallnate/once override (jest-environment-jsdom chain)
- Fix expo-notifications API: shouldShowAlert→shouldShowBanner+shouldShowList
- Fix React 19 useRef() requiring explicit initial value
- Update Jest moduleNameMapper for SDK 53 hoisting
- Add spec 021 artifacts via spec-kit (spec, plan, research, tasks)
- 0 npm audit vulnerabilities
- 48/52 mobile tests pass (4 rsvp mutation tests need React 19 act fix)

Agent-Logs-Url: https://github.com/microsoft/CommunityManagement-Sample-Spec-Kit/sessions/65d97d30-544d-4062-99a7-121f613eb910

Co-authored-by: MikeWedderburn-Clarke <5323631+MikeWedderburn-Clarke@users.noreply.github.com>
…es/react hoisting

Root cause: react-native 0.79.6 ships react-native-renderer compiled for
React 19.0.0. Using react@^19.0.0 resolved to 19.2.5, causing
"Incompatible React versions" AggregateError in all RSVP mutation tests.

Changes:
- Pin react to 19.0.0 and react-test-renderer to 19.0.0 in mobile workspace
- Add @types/react and @types/react-dom to shared-ui devDependencies
  (Expo SDK 53 hoisting changes prevent root-level @types/react)
- Pre-configure RNTL host component names in setup.ts
- Restore original rsvp.test.tsx (no test changes needed)

Agent-Logs-Url: https://github.com/microsoft/CommunityManagement-Sample-Spec-Kit/sessions/e3109492-525c-43ed-978e-dc0d569a9391

Co-authored-by: MikeWedderburn-Clarke <5323631+MikeWedderburn-Clarke@users.noreply.github.com>
Copilot AI and others added 2 commits April 13, 2026 06:46
Agent-Logs-Url: https://github.com/microsoft/CommunityManagement-Sample-Spec-Kit/sessions/5ea6c2e7-aabf-4257-80fb-f717c02e824a

Co-authored-by: MikeWedderburn-Clarke <5323631+MikeWedderburn-Clarke@users.noreply.github.com>
…orybook stories

Root cause: root @types/react@18 (hoisted from react-native@0.76.6 via
@expo/vector-icons) conflicted with @types/react-dom@19, causing
ReactElement/ReactNode type incompatibilities across workspaces.

Changes:
- Add @types/react@^19.0.0 as root devDependency (unified type resolution)
- Exclude *.stories.tsx from shared-ui tsconfig (no @storybook/react dep)
- Remove redundant @types/react + @types/react-dom from shared-ui devDeps
  (now resolved from root)

Result: zero typecheck errors (previously 25 on this branch, 28 on main)

Agent-Logs-Url: https://github.com/microsoft/CommunityManagement-Sample-Spec-Kit/sessions/5ea6c2e7-aabf-4257-80fb-f717c02e824a

Co-authored-by: MikeWedderburn-Clarke <5323631+MikeWedderburn-Clarke@users.noreply.github.com>
… tests

- Restore .github/workflows/* to main state (checkout@v5, setup-node@v5, azure/login@v3)
- Restore infra/ and specs/020-azure-nightly-publish/ to main state (spec 020 changes)
- Restore apps/web/vitest.config.ts to main state (no react aliases needed)
- Restore .github/agents/copilot-instructions.md to main state
- Add react@^19.0.0 to root devDependencies so React 19 wins hoisting over
  react-native@0.76.6 peer dep chain (root: 19.2.5, mobile local: 19.0.0)
- Regenerate package-lock.json

Result: all 1226 tests pass, typecheck 0 errors, lint clean

Agent-Logs-Url: https://github.com/microsoft/CommunityManagement-Sample-Spec-Kit/sessions/cb5e8d43-2e16-4a4e-8c7c-91e731e9bb70

Co-authored-by: MikeWedderburn-Clarke <5323631+MikeWedderburn-Clarke@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants