diff --git a/docs/DEPENDENCY_ALIGNMENT.md b/docs/DEPENDENCY_ALIGNMENT.md new file mode 100644 index 000000000..014d31cad --- /dev/null +++ b/docs/DEPENDENCY_ALIGNMENT.md @@ -0,0 +1,174 @@ +# Dependency Alignment Guide + +This document tracks critical dependencies across all projects and their target versions for alignment. + +## Critical Dependencies + +### High Priority - Version Mismatches + +| Package | Target Version | Current Versions | Notes | +|---------|---------------|------------------|-------| +| `@supabase/supabase-js` | **2.81.1** | 2.38.4 - 2.81.1 | Significant spread, alignment critical | +| `typescript` | **5.9.2** | 5.3.3 - 5.9.2 | Update all to latest | +| `react` | **19.1.0** | 18.3.1 - 19.1.0 | Mixed versions | +| `expo` | **54.x** | 52.0.39 - 54.0.21 | Manacore needs update | +| `expo-router` | **6.x** | 4.0.19 - 6.0.14 | Manacore needs update | +| `astro` | **5.16.0** | 5.3.0 - 5.16.0 | Memoro landing needs update | + +### Current Status by Project + +#### Supabase Versions +``` +maerchenzauber: + - backend: 2.50.3 + - mobile: 2.50.3 + +manacore: + - mobile: 2.38.4 ❌ (very outdated) + - web: 2.49.2 + +manadeck: + - backend: 2.58.0 + - mobile: 2.38.4 ❌ (very outdated) + - web: 2.81.1 ✅ + +memoro: + - mobile: 2.49.4 + - web: 2.76.1 +``` + +#### Expo/React Native Versions +``` +maerchenzauber: + - expo: 54.0.21 ✅ + - react-native: 0.81.5 ✅ + - expo-router: 6.0.14 ✅ + +manacore: + - expo: 52.0.39 ❌ (SDK 52, needs update to 54) + - react-native: 0.76.7 ❌ + - expo-router: 4.0.19 ❌ + +manadeck: + - expo: 54.0.13 ✅ + - react-native: 0.81.4 ✅ + - expo-router: 6.0.10 ✅ + +memoro: + - expo: 54.0.0 ✅ + - react-native: 0.81.4 ✅ + - expo-router: 6.0.8 ✅ +``` + +#### NestJS Versions (Backends) +``` +maerchenzauber: NestJS 10.0.0 +manadeck: NestJS 11.0.1 + +Target: Align to NestJS 11.x +``` + +## Migration Priority + +### Phase 1: Critical Alignments (Week 1) + +1. **Manacore Expo Update** (High Risk) + - Upgrade from Expo SDK 52 → 54 + - Update expo-router 4.x → 6.x + - Update react-native 0.76.7 → 0.81.x + - This is the most significant update needed + +2. **Supabase Alignment** + - Update all projects to 2.81.1 + - Test auth flows after update + - Check for breaking changes in RLS + +3. **TypeScript Alignment** + - Update all to 5.9.2 + - Run type-check across all projects + +### Phase 2: Secondary Alignments (Week 2) + +1. **Astro Updates** + - Update Memoro landing from 5.3.0 → 5.16.0 + +2. **SvelteKit/Vite Updates** + - Align Vite versions (6.0.7 → 7.1.10) + - Align SvelteKit versions + +3. **NestJS Alignment** + - Update Maerchenzauber backend 10.x → 11.x + - Test all API endpoints + +## Alignment Commands + +### Update Supabase across all projects: + +```bash +# Maerchenzauber +cd maerchenzauber/apps/backend && pnpm update @supabase/supabase-js@2.81.1 +cd maerchenzauber/apps/mobile && pnpm update @supabase/supabase-js@2.81.1 + +# Manacore +cd manacore/apps/mobile && pnpm update @supabase/supabase-js@2.81.1 +cd manacore/apps/web && pnpm update @supabase/supabase-js@2.81.1 + +# Manadeck +cd manadeck/backend && pnpm update @supabase/supabase-js@2.81.1 +cd manadeck/apps/mobile && pnpm update @supabase/supabase-js@2.81.1 + +# Memoro +cd memoro/apps/mobile && pnpm update @supabase/supabase-js@2.81.1 +cd memoro/apps/web && pnpm update @supabase/supabase-js@2.81.1 +``` + +### Update TypeScript across all projects: + +```bash +pnpm update typescript@5.9.2 --recursive +``` + +## Testing After Alignment + +After updating dependencies, verify: + +1. **Build succeeds**: `pnpm run build` +2. **Type checks pass**: `pnpm run type-check` +3. **Tests pass**: `pnpm run test` +4. **Auth flows work** (especially after Supabase updates) +5. **Mobile apps launch** (especially after Expo updates) + +## Breaking Changes to Watch + +### Supabase 2.38 → 2.81 +- Auth session handling may have changed +- Check `onAuthStateChange` listeners +- Verify RLS policies still work + +### Expo SDK 52 → 54 +- Check expo-router migration guide +- New navigation patterns in 6.x +- Screen options changes +- Layout changes + +### NestJS 10 → 11 +- Decorator changes +- Module resolution changes +- Check middleware compatibility + +## Recommended Tools + +- **Renovate/Dependabot**: Auto-update dependencies +- **pnpm outdated**: Check for outdated packages +- **turbo prune**: Create minimal installs for specific projects + +## Tracking Updates + +Mark completed updates: + +- [ ] Supabase alignment (all projects) +- [ ] TypeScript alignment (all projects) +- [ ] Manacore Expo SDK update +- [ ] Astro alignment +- [ ] NestJS alignment +- [ ] SvelteKit/Vite alignment