a2ui-project / a2ui-project/a2ui
Consider widening React peer dep range to include React 17
- Lenguaje dominante
- TypeScript
- Estrellas
- 16.4k
- Forks
- 1.3k
- Merge medio
- 3 d 15 h
- PR fusionados (30 d)
- 134
Descripción
### Summary
`@a2ui/react` declares `peerDependencies` of `react` / `react-dom` as `^18.0.0 || ^19.0.0` across every published version (0.8.0 → 0.10.2). This prevents installation in React 17 codebases without `--legacy-peer-deps` or `--force`, even when the runtime features used are React 17-compatible.
### Ask
Would the maintainers consider one of:
1. Widening the peer range to `^17.0.0 || ^18.0.0 || ^19.0.0` if the package doesn't depend on React 18-only APIs.
2. Publishing a `0.9.x`-line release scoped to React 17, if 18+ features are required in newer versions.
### Motivation
React 17 is still widely deployed. Downstream consumers currently must set `legacy-peer-deps=true` globally, which papers over all peer-dep issues in their tree, not just this one.
### Environment
- Package: `@a2ui/react@0.9.1` (also verified 0.8.0, 0.9.0, 0.10.2)
- npm: 10.x
- Consumer: React 17.0.2 app
### React 18-only API audit
Happy to help audit the source if that would speed a decision — a quick grep for `useId`, `useSyncExternalStore`, `useTransition`, `useDeferredValue`, `useInsertionEffect`, or `createRoot`-only paths would tell us whether the current implementation actually requires React 18.
Guía de contribución
Línea de trabajo
Revisa los archivos package.json para comprobar la declaración de peerDependencies. Después, audita el código fuente en busca de APIs específicas de React 18+ como useId, useSyncExternalStore o createRoot. Si no encuentras ninguna, actualiza el rango de peerDependencies en package.json para incluir ^17.0.0. Prueba el cambio compilando el paquete y verificando que se instala correctamente en un proyecto de React 17.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- react, typescript
- Área
- developer-experience, tooling
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Estado de actividad
- Activo
- Claridad
- Bien especificado
- Aptitud para principiantes
- 75/100