232 lines
5.7 KiB
Markdown
232 lines
5.7 KiB
Markdown
|
|
# TODO List - Deprecation Fixes & Testing Recommendations
|
||
|
|
|
||
|
|
**Last Updated**: 2024-12-28
|
||
|
|
**Status**: All recommendations documented
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ Completed Tasks
|
||
|
|
|
||
|
|
1. ✅ **Removed @types/pino** - Pino v8 includes built-in types
|
||
|
|
2. ✅ **Upgraded ESLint to v9** - All apps and root updated
|
||
|
|
3. ✅ **Updated TypeScript ESLint to v8** - ESLint 9 compatible
|
||
|
|
4. ✅ **Created ESLint 9 flat config** - `eslint.config.js` created
|
||
|
|
5. ✅ **Updated lint-staged config** - Works with ESLint 9
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔄 In Progress
|
||
|
|
|
||
|
|
### Testing & Verification
|
||
|
|
|
||
|
|
1. **Test ESLint 9 Migration** ⏳
|
||
|
|
- [ ] Run `pnpm lint` from root - verify all packages lint
|
||
|
|
- [ ] Test each service individually
|
||
|
|
- [ ] Test each package individually
|
||
|
|
- [ ] Test each app individually
|
||
|
|
- [ ] Verify flat config is being used
|
||
|
|
- [ ] Check for ESLint errors or warnings
|
||
|
|
|
||
|
|
2. **Verify No ESLint 8 Warnings** ⏳
|
||
|
|
- [ ] Run `pnpm install` and check for ESLint warnings
|
||
|
|
- [ ] Verify all apps use ESLint 9
|
||
|
|
- [ ] Check services for ESLint dependencies
|
||
|
|
- [ ] Verify no ESLint 8 references remain
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📋 Pending Tasks
|
||
|
|
|
||
|
|
### High Priority Testing
|
||
|
|
|
||
|
|
3. **Test TypeScript Compilation** 📋
|
||
|
|
- [ ] Run `pnpm type-check` from root
|
||
|
|
- [ ] Verify all packages compile successfully
|
||
|
|
- [ ] Fix any TypeScript errors
|
||
|
|
- [ ] Test each package individually
|
||
|
|
|
||
|
|
4. **Test Builds** 📋
|
||
|
|
- [ ] Run `pnpm build` from root
|
||
|
|
- [ ] Verify all packages build successfully
|
||
|
|
- [ ] Test each service build
|
||
|
|
- [ ] Test each package build
|
||
|
|
- [ ] Test each app build
|
||
|
|
|
||
|
|
5. **Test Unit Tests** 📋
|
||
|
|
- [ ] Run `pnpm test` from root
|
||
|
|
- [ ] Verify all tests pass
|
||
|
|
- [ ] Check test coverage
|
||
|
|
- [ ] Fix any failing tests
|
||
|
|
|
||
|
|
6. **Test Next.js ESLint Compatibility** 📋
|
||
|
|
- [ ] Test `next lint` in portal-public
|
||
|
|
- [ ] Test `next lint` in portal-internal
|
||
|
|
- [ ] Verify Next.js ESLint config works with ESLint 9
|
||
|
|
- [ ] Update Next.js ESLint config if needed
|
||
|
|
|
||
|
|
### Medium Priority
|
||
|
|
|
||
|
|
7. **Test Pre-commit Hooks** 📋
|
||
|
|
- [ ] Make test commit with linting errors
|
||
|
|
- [ ] Verify errors are caught
|
||
|
|
- [ ] Make test commit with formatting issues
|
||
|
|
- [ ] Verify auto-fix works
|
||
|
|
- [ ] Test lint-staged with ESLint 9
|
||
|
|
|
||
|
|
8. **Test CI/CD Pipelines** 📋
|
||
|
|
- [ ] Verify GitHub Actions workflows run
|
||
|
|
- [ ] Check lint job passes
|
||
|
|
- [ ] Check type-check job passes
|
||
|
|
- [ ] Check test job passes
|
||
|
|
- [ ] Check build job passes
|
||
|
|
|
||
|
|
9. **Update Service ESLint Configs** 📋
|
||
|
|
- [ ] Check if services need package-specific ESLint configs
|
||
|
|
- [ ] Update service configs if needed
|
||
|
|
- [ ] Verify services use root config or have their own
|
||
|
|
|
||
|
|
10. **Test ESLint Config Compatibility** 📋
|
||
|
|
- [ ] Verify flat config works with all packages
|
||
|
|
- [ ] Test rule overrides
|
||
|
|
- [ ] Verify plugin compatibility
|
||
|
|
- [ ] Test type-checking rules
|
||
|
|
|
||
|
|
### Low Priority / Cleanup
|
||
|
|
|
||
|
|
11. **Remove Old ESLint Config** 📋
|
||
|
|
- [ ] After verification, remove `.eslintrc.js`
|
||
|
|
- [ ] Update any references to old config
|
||
|
|
- [ ] Document migration in commit message
|
||
|
|
|
||
|
|
12. **Document ESLint 9 Migration** 📋
|
||
|
|
- [ ] Update README with ESLint 9 info
|
||
|
|
- [ ] Document flat config format
|
||
|
|
- [ ] Update contributing guide
|
||
|
|
- [ ] Add migration notes
|
||
|
|
|
||
|
|
13. **Monitor Subdependencies** 📋
|
||
|
|
- [ ] Set up quarterly review process
|
||
|
|
- [ ] Create script to check outdated packages
|
||
|
|
- [ ] Document update strategy
|
||
|
|
- [ ] Schedule first review (3 months)
|
||
|
|
|
||
|
|
14. **Test Integration Tests** 📋
|
||
|
|
- [ ] Run integration tests
|
||
|
|
- [ ] Verify service-to-service communication
|
||
|
|
- [ ] Test database operations
|
||
|
|
- [ ] Test external service integrations
|
||
|
|
|
||
|
|
15. **Test Error Handling** 📋
|
||
|
|
- [ ] Verify ESLint errors are properly reported
|
||
|
|
- [ ] Test error messages are clear
|
||
|
|
- [ ] Verify error recovery
|
||
|
|
|
||
|
|
16. **Test Prettier Integration** 📋
|
||
|
|
- [ ] Verify Prettier works with ESLint 9
|
||
|
|
- [ ] Test formatting on commit
|
||
|
|
- [ ] Verify no conflicts
|
||
|
|
|
||
|
|
17. **Performance Testing** 📋
|
||
|
|
- [ ] Measure lint time
|
||
|
|
- [ ] Compare with ESLint 8
|
||
|
|
- [ ] Verify no significant slowdown
|
||
|
|
- [ ] Document performance metrics
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎯 Priority Order
|
||
|
|
|
||
|
|
### Immediate (This Week)
|
||
|
|
1. ✅ Test ESLint 9 migration (linting)
|
||
|
|
2. ✅ Verify no ESLint 8 warnings
|
||
|
|
3. ⏳ Test TypeScript compilation
|
||
|
|
4. ⏳ Test builds
|
||
|
|
5. ⏳ Test unit tests
|
||
|
|
|
||
|
|
### Short Term (Next Week)
|
||
|
|
6. ⏳ Test Next.js ESLint compatibility
|
||
|
|
7. ⏳ Test pre-commit hooks
|
||
|
|
8. ⏳ Test CI/CD pipelines
|
||
|
|
9. ⏳ Update service ESLint configs if needed
|
||
|
|
|
||
|
|
### Medium Term (Next Month)
|
||
|
|
10. ⏳ Remove old ESLint config
|
||
|
|
11. ⏳ Document migration
|
||
|
|
12. ⏳ Set up subdependency monitoring
|
||
|
|
|
||
|
|
### Ongoing
|
||
|
|
13. ⏳ Monitor subdependencies quarterly
|
||
|
|
14. ⏳ Performance monitoring
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📊 Testing Status
|
||
|
|
|
||
|
|
### Completed ✅
|
||
|
|
- Removed @types/pino
|
||
|
|
- Upgraded ESLint to v9
|
||
|
|
- Updated TypeScript ESLint to v8
|
||
|
|
- Created ESLint 9 flat config
|
||
|
|
- Updated lint-staged config
|
||
|
|
|
||
|
|
### In Progress ⏳
|
||
|
|
- ESLint 9 migration testing
|
||
|
|
- Warning verification
|
||
|
|
|
||
|
|
### Pending 📋
|
||
|
|
- TypeScript compilation tests
|
||
|
|
- Build tests
|
||
|
|
- Unit tests
|
||
|
|
- Integration tests
|
||
|
|
- CI/CD tests
|
||
|
|
- Documentation
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🚀 Quick Start Testing
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 1. Verify installation
|
||
|
|
pnpm install
|
||
|
|
|
||
|
|
# 2. Check warnings
|
||
|
|
pnpm install 2>&1 | grep -i "WARN" | grep -v "subdependencies"
|
||
|
|
|
||
|
|
# 3. Test linting
|
||
|
|
pnpm lint
|
||
|
|
|
||
|
|
# 4. Test type checking
|
||
|
|
pnpm type-check
|
||
|
|
|
||
|
|
# 5. Test builds
|
||
|
|
pnpm build
|
||
|
|
|
||
|
|
# 6. Test tests
|
||
|
|
pnpm test
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📝 Notes
|
||
|
|
|
||
|
|
- ESLint 9 uses flat config (ES modules)
|
||
|
|
- Old `.eslintrc.js` can be kept for reference
|
||
|
|
- Next.js may need special configuration
|
||
|
|
- Some packages may need package-specific configs
|
||
|
|
- Subdependency warnings are informational only
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ Success Criteria
|
||
|
|
|
||
|
|
All tasks complete when:
|
||
|
|
- ✅ All linting passes
|
||
|
|
- ✅ All type checks pass
|
||
|
|
- ✅ All builds succeed
|
||
|
|
- ✅ All tests pass
|
||
|
|
- ✅ Git hooks work
|
||
|
|
- ✅ CI/CD passes
|
||
|
|
- ✅ No critical warnings
|
||
|
|
- ✅ Documentation updated
|
||
|
|
|