Skip to content

Commit 83282f0

Browse files
abueideclaude
andcommitted
feat: add shared E2E test library for cross-version testing
- Created examples/shared-e2e with reusable E2E tests - Configured E2E-compat (RN 0.72.9 + React 18.3.1) to use shared tests - Configured E2E-latest (RN 0.84.1 + React 19.2.3) to use shared tests - Removed duplicate test code from both apps - Added Detox configuration for E2E-latest - Updated package.json files with shared-e2e dependency Benefits: - Write tests once, run on all RN versions - Ensures consistent testing across versions - Easy maintenance (update in one place) - Validates SDK works on multiple RN versions Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 33a8fe2 commit 83282f0

175 files changed

Lines changed: 17808 additions & 13386 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

MVP_SUPPORT_PLAN.md

Lines changed: 619 additions & 0 deletions
Large diffs are not rendered by default.

MVP_TASKS.md

Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
# MVP Task List: React Native 0.84 Support
2+
3+
## Phase 1: Testing
4+
5+
### 1. Test E2E-compat (RN 0.72.9 + React 18.3.1)
6+
- [ ] Install dependencies and build
7+
- [ ] Run unit tests
8+
- [ ] Run E2E tests
9+
- [ ] Test on iOS simulator
10+
- [ ] Test on Android emulator
11+
12+
### 2. Test E2E-latest (RN 0.84.1 + React 19.2.3)
13+
- [ ] Install dependencies and build
14+
- [ ] Run unit tests
15+
- [ ] Run E2E tests
16+
- [ ] Test on iOS simulator
17+
- [ ] Test on Android emulator
18+
19+
### 3. Core Functionality Tests (Both Apps)
20+
- [ ] SDK initialization
21+
- [ ] Track events
22+
- [ ] Screen events
23+
- [ ] Identify calls
24+
- [ ] Group calls
25+
- [ ] Alias calls
26+
- [ ] Reset functionality
27+
- [ ] Plugin system (add/remove)
28+
- [ ] Flush functionality
29+
- [ ] Deep linking
30+
- [ ] Background/foreground transitions
31+
- [ ] Storage persistence
32+
- [ ] Network retry logic
33+
34+
### 4. Plugin Compatibility Tests
35+
- [ ] Test @segment/analytics-react-native-plugin-braze
36+
- [ ] Test @segment/analytics-react-native-plugin-facebook-app-events
37+
- [ ] Test @segment/analytics-react-native-plugin-firebase
38+
- [ ] Test @segment/analytics-react-native-plugin-idfa
39+
- [ ] Document any plugin issues found
40+
41+
---
42+
43+
## Phase 2: Code Changes
44+
45+
### 5. Update Core Package
46+
- [ ] Update `packages/core/package.json` peerDependencies:
47+
- `"react": "^18.2.0 || ^19.0.0"`
48+
- `"react-native": ">=0.72.0"`
49+
- [ ] Update `packages/core/package.json` engines:
50+
- `"node": ">=18"`
51+
- [ ] Run `yarn typecheck` in core package
52+
53+
### 6. Update Sovran Package
54+
- [ ] Update `packages/sovran/package.json` peerDependencies:
55+
- `"react": "^18.2.0 || ^19.0.0"`
56+
- `"react-native": ">=0.72.0"`
57+
- [ ] Update `packages/sovran/package.json` engines:
58+
- `"node": ">=18"`
59+
- [ ] Run `yarn typecheck` in sovran package
60+
61+
### 7. Update All Plugin Packages
62+
- [ ] Update each plugin's package.json peerDependencies:
63+
- `"react": "^18.2.0 || ^19.0.0"`
64+
- `"react-native": ">=0.72.0"`
65+
- `"@segment/analytics-react-native": "^2.22.0"`
66+
- [ ] Run `yarn typecheck` in each plugin
67+
68+
### 8. Update Root Package.json
69+
- [ ] Update devDependencies if needed
70+
- [ ] Update engines to `"node": ">=18"`
71+
- [ ] Run `yarn install` to verify
72+
73+
### 9. Update CI/CD
74+
- [ ] Add matrix testing to `.github/workflows/ci.yml`:
75+
- Test E2E-compat example
76+
- Test E2E-latest example
77+
- [ ] Verify CI passes locally using act or similar
78+
79+
---
80+
81+
## Phase 3: Documentation
82+
83+
### 10. Update Main README.md
84+
- [ ] Add compatibility matrix table
85+
- [ ] Add "Tested Configurations" section
86+
- [ ] Add "React Native 0.84 / React 19 Support" section
87+
- [ ] Update installation instructions if needed
88+
- [ ] Add link to UPGRADING.md
89+
90+
### 11. Create UPGRADING.md
91+
- [ ] Add prerequisites section
92+
- [ ] Add step-by-step upgrade instructions
93+
- [ ] Add "Known Issues" section with solutions
94+
- [ ] Add "Breaking Changes" reference
95+
- [ ] Add link to RN_UPGRADE_BREAKING_CHANGES.md
96+
97+
### 12. Update CHANGELOG.md
98+
- [ ] Add [2.22.0] section
99+
- [ ] List added features
100+
- [ ] List changed items
101+
- [ ] List testing improvements
102+
- [ ] Add migration notes
103+
104+
### 13. Create/Update Additional Docs
105+
- [ ] Review and update any other markdown files
106+
- [ ] Update examples README files if needed
107+
- [ ] Add FAQ section if applicable
108+
109+
---
110+
111+
## Phase 4: Release
112+
113+
### 14. Pre-Release Validation
114+
- [ ] All tests passing on E2E-compat
115+
- [ ] All tests passing on E2E-latest
116+
- [ ] TypeScript compilation successful everywhere
117+
- [ ] All documentation updated
118+
- [ ] Version numbers ready to bump
119+
120+
### 15. Beta Release
121+
- [ ] Bump versions to 2.22.0-beta.1
122+
- [ ] Build all packages (`yarn build`)
123+
- [ ] Test local publishing (`yarn pack`)
124+
- [ ] Publish beta to npm
125+
- [ ] Create GitHub pre-release tag
126+
- [ ] Announce in community forum/Slack
127+
128+
### 16. Beta Testing Period
129+
- [ ] Monitor GitHub issues
130+
- [ ] Monitor community feedback
131+
- [ ] Fix any critical issues found
132+
- [ ] Document any workarounds needed
133+
134+
### 17. Stable Release
135+
- [ ] Bump versions to 2.22.0
136+
- [ ] Build all packages
137+
- [ ] Publish to npm
138+
- [ ] Create GitHub release tag
139+
- [ ] Push all changes to repository
140+
141+
---
142+
143+
## Phase 5: Communication
144+
145+
### 18. Release Announcement
146+
- [ ] Write blog post
147+
- [ ] Publish blog post
148+
- [ ] Share on social media
149+
- [ ] Post in community forums
150+
151+
### 19. Customer Communication
152+
- [ ] Send email to customers
153+
- [ ] Update main docs site
154+
- [ ] Update npm package description
155+
- [ ] Respond to any questions in issues/forums
156+
157+
---
158+
159+
## Phase 6: Monitoring
160+
161+
### 20. Post-Release Monitoring
162+
- [ ] Monitor GitHub issues for RN 0.84/React 19 mentions
163+
- [ ] Monitor npm download stats
164+
- [ ] Monitor support ticket queue
165+
- [ ] Track community adoption
166+
167+
### 21. Issue Response
168+
- [ ] Triage new issues within 24h
169+
- [ ] Fix critical (P0) issues immediately
170+
- [ ] Plan hotfix releases if needed
171+
- [ ] Update documentation based on feedback
172+
173+
---
174+
175+
## Rollback Plan (If Needed)
176+
177+
### 22. Emergency Rollback
178+
- [ ] Post warning on GitHub README
179+
- [ ] Deprecate problematic version on npm
180+
- [ ] Publish hotfix or recommend downgrade
181+
- [ ] Communicate to affected users
182+
- [ ] Update documentation with workarounds

0 commit comments

Comments
 (0)