Skip to content

feat: soporte React Native 0.80.2 [BREAKING]#70

Closed
pablonortiz wants to merge 15 commits intomasterfrom
APPSRN-476-soporte-react-native-0.80.2
Closed

feat: soporte React Native 0.80.2 [BREAKING]#70
pablonortiz wants to merge 15 commits intomasterfrom
APPSRN-476-soporte-react-native-0.80.2

Conversation

@pablonortiz
Copy link
Copy Markdown
Contributor

@pablonortiz pablonortiz commented Mar 19, 2026

Link al ticket

Descripción del requerimiento

  • Agregar soporte para React Native 0.80.2 en el package @janiscommerce/ui-native, migrando dependencias nativas al modelo de peerDependencies y actualizando la compatibilidad con reanimated v3.

Descripción de la solución

  • Se movieron 5 dependencias nativas de dependencies a peerDependencies:
    • react-native-gesture-handler (>=2.9.0)
    • react-native-reanimated (>=3.16.0, antes era pin exacto a 2.17.0)
    • react-native-svg (>=12.0.0)
    • react-native-safe-area-context (>=4.6.0)
    • @react-native-async-storage/async-storage (>=1.19.0)
  • Se amplió el rango de react-native a >=0.71.5 <0.82.0 y react a <20.0.0
  • Se modernizó android/build.gradle con patrón safeExtGet, compileSdk 35 y Java 17
  • Se reemplazó CheckedIcon.defaultProps por default parameters (React 19 deprecation)
  • Se agregó test para CheckedIcon con default props
  • Se estandarizó Node.js a v22 en .nvmrc y en todos los CI workflows (build-status, coverage-status, npm-publish, npm-publish-beta, publish-docs)
  • Se agregó workflow de publicación beta

Nivel de pruebas requerido

Documentación y ejemplos

MARCAR NIVEL DESCRIPCIÓN CONDICIONES
[X] CRÍTICO: Cambios Mayores Se consideran cambios que afectan partes fundamentales del sistema o funcionalidades que impactan múltiples módulos de la app. Generar APK para pruebas. Utilizar perfil regular. Realizar pruebas exhaustivas en todos los módulos afectados.
[ ] ALTO: Cambios moderados Cambios que afectan aspectos importantes pero no críticos de la aplicación. Se puede probar localmente, salvo que surja necesidad de crear un APK. Utilizar perfil regular para las pruebas.
[ ] MEDIO: Cambios menores Cambios menores que impactan una parte del flujo o ajustes que no modifican la funcionalidad general. Validación localmente. Se puede usar perfil dev
[ ] BAJO: Ajustes Modificaciones pequeñas que no impactan el rendimiento o funcionalidad general de la app. Validación localmente. Se puede usar perfil dev

¿Cómo se puede probar?

Caso a probar Resultado esperado Resultado obtenido Observaciones
Instalar el package en una app con RN 0.80.2 y reanimated 3.x Se instala sin errores de peer dependencies
Renderizar componentes que usan BottomSheet (usa reanimated) Se renderizan correctamente con reanimated v3
Renderizar componentes que usan SVG (iconos, gráficos) Se renderizan correctamente
Renderizar CheckedIcon sin props Usa defaults correctamente (color: white, size: 16)
Renderizar CheckedIcon con props custom Usa los valores proporcionados
Build Android con compileSdk 35 y Java 17 El build compila sin errores
Instalar sin react-native-reanimated en el proyecto npm/yarn muestra warning de peer dependency faltante Confirma breaking change
Instalar con react-native-reanimated 2.x npm/yarn muestra warning (requiere >=3.16.0) Confirma breaking change
Verificar que los CI workflows corren con Node 22 Los jobs de build, coverage, publish y docs usan Node 22 Verificar en GitHub Actions
Verificar todos los componentes del design system Todos renderizan correctamente Test visual completo

Evidencias, pruebas de cómo funciona

  • Pendiente de agregar al testear

Link a la documentación

  • N/A

Datos extra a tener en cuenta

  • BREAKING CHANGE: Este PR debe liberarse como major version 2.0.0 (no 1.27.0)
  • El cambio más impactante es la migración de react-native-reanimated de v2 (pin 2.17.0) a v3 (>=3.16.0)
  • Los consumidores ahora deben tener instaladas las 5 dependencias nativas que se movieron a peerDeps
  • Node.js estandarizado a v22 en todo el proyecto (.nvmrc y todos los workflows)
  • La API pública de los componentes no cambia, salvo el refactor de defaultProps en CheckedIcon
  • Forma parte de la Fase 1 del plan de migración a RN 0.80.2 (sin dependencias internas)

CHANGELOG:

### Changed
- Moved react-native-gesture-handler, react-native-reanimated, react-native-svg, react-native-safe-area-context and @react-native-async-storage/async-storage from dependencies to peerDependencies [APPSRN-476](https://janiscommerce.atlassian.net/browse/APPSRN-476)
- Updated react-native-reanimated requirement from pinned 2.17.0 to >=3.16.0 [APPSRN-476](https://janiscommerce.atlassian.net/browse/APPSRN-476)
- Replaced CheckedIcon.defaultProps with default parameters for React 19 compatibility [APPSRN-476](https://janiscommerce.atlassian.net/browse/APPSRN-476)
- Widened react-native peer dependency range to >=0.71.5 <0.82.0 [APPSRN-476](https://janiscommerce.atlassian.net/browse/APPSRN-476)
- Widened react peer dependency range to >=17.0.2 <20.0.0 [APPSRN-476](https://janiscommerce.atlassian.net/browse/APPSRN-476)
- Modernized Android build.gradle with safeExtGet pattern, compileSdk 35 and Java 17 [APPSRN-476](https://janiscommerce.atlassian.net/browse/APPSRN-476)
- Standardized Node.js to v22 in .nvmrc and all CI workflows [APPSRN-476](https://janiscommerce.atlassian.net/browse/APPSRN-476)

### Added
- Test for CheckedIcon rendering with default props [APPSRN-476](https://janiscommerce.atlassian.net/browse/APPSRN-476)
- Beta publish workflow for pre-release branches [APPSRN-476](https://janiscommerce.atlassian.net/browse/APPSRN-476)

- Widen peer dependency ranges for react and react-native
- Move native dependencies from dependencies to peerDependencies
- Modernize android/build.gradle with safeExtGet pattern and SDK 35
- Replace defaultProps with default parameters in CheckedIcon.tsx
- Add test for default props coverage in CheckedIcon
…endencies

Dependencies moved from direct dependencies to peerDependencies need
to remain in devDependencies for tests to resolve the modules
Actualiza .nvmrc y todos los workflows de GitHub Actions a Node 22.
Regenera package-lock.json con npm v10.9.4 (Node 22).
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 19, 2026

Warning

Rate limit exceeded

@pablonortiz has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 25 minutes and 53 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 25 minutes and 53 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 07ae5adb-5c5f-4d3d-b98a-52996f7ae6e3

📥 Commits

Reviewing files that changed from the base of the PR and between 08f0c28 and 0422ee3.

📒 Files selected for processing (11)
  • .github/workflows/build-status.yml
  • .github/workflows/coverage-status.yml
  • .github/workflows/npm-publish-beta.yml
  • .github/workflows/npm-publish.yml
  • .github/workflows/publish-docs.yml
  • .nvmrc
  • CHANGELOG.md
  • android/build.gradle
  • package.json
  • src/components/atoms/CheckBox/icon/CheckedIcon.test.tsx
  • src/components/atoms/CheckBox/icon/CheckedIcon.tsx
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch APPSRN-476-soporte-react-native-0.80.2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@coveralls
Copy link
Copy Markdown

coveralls commented Mar 23, 2026

Pull Request Test Coverage Report for Build 23657276739

Details

  • 1 of 1 (100.0%) changed or added relevant line in 1 file are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage remained the same at 100.0%

Totals Coverage Status
Change from base Build 23018651156: 0.0%
Covered Lines: 758
Relevant Lines: 758

💛 - Coveralls

pablonortiz and others added 2 commits March 23, 2026 15:50
…ngelog

- Fix shell injection en npm-publish-beta.yml (usar env var para ref_name)
- Upgrade actions/checkout y actions/setup-node a v4 en todos los workflows
- Bump reanimated devDep de 2.17.0 a 3.16.0 (alinear con peerDep >=3.16.0)
- Reemplazar lintOptions deprecado por lint en android/build.gradle
- Agregar entries al CHANGELOG [Unreleased]

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@pablonortiz pablonortiz marked this pull request as ready for review March 27, 2026 16:39
- Mantener version 2.0.0 del branch de RN 0.80.2
- Incluir entry de 1.26.1 en CHANGELOG

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.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