feat(upgrade): Add --check flag to pre-validate upgrade compatibility before running
Mantenedores costumam responder em até 2 dias
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Funcionalidade
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Pouca atividade
- Stack de tecnologia
- react-native, typescript
- Domínio
- cli, mobile-dev
Direção de pesquisa
Comece localizando o ponto de entrada do comando de upgrade da CLI e seu fluxo existente de validação e migração. Defina as verificações somente leitura para a versão de destino, as dependências, os módulos nativos e as alterações projetadas nos arquivos; depois, adicione cobertura para o comportamento de --check. Está concluído quando o comando relata as descobertas sem modificar os arquivos do projeto e mantém os upgrades normais inalterados.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Problem
Running
px @react-native-community/cli upgrade\ to upgrade a React Native project can fail midway through, leaving the project in a broken state. Developers have no way to know if their project is upgrade-compatible until they run the full command.
Proposal
Add a --check\ (or --dry-run) flag to the upgrade command:
\\ash
npx @react-native-community/cli upgrade --check 0.76.5
or
npx @react-native-community/cli upgrade --dry-run 0.76.5
\\
This would:
- Validate that the target version exists on npm
- Check the project's current dependencies against known breaking changes in the target version
- Detect incompatible native modules (e.g., autolinking issues, native code that won't compile with the new RN version)
- Report what files would be modified and what migration steps would be required
- Not actually modify any files
Why this matters
- Upgrading React Native is risky — breaking changes in native code can cause hours of debugging
- A pre-check gives developers a safe way to evaluate upgrade effort before committing
- Existing tools like Expo's \expo doctor\ provide upgrade compatibility checks; bringing this to the CLI would help bare React Native projects too
- Reduces the number of failed upgrades that leave projects in broken states
Example output
\
$ npx @react-native-community/cli upgrade --check 0.76.5
✔ Validated target version 0.76.5
✔ autolinking: all native modules compatible
⚠ Breaking change: New Architecture is now the default in 0.76.5
- Current project uses Old Architecture
- Migration guide: https://reactnative.dev/docs/new-architecture-introduction
⚠ Known issue: Some native modules may require updates (see: #2720)
📝 Files that would be modified: - package.json (update react-native version)
- ios/Podfile (update RN pod references)
- android/app/build.gradle (update compileSdkVersion)
✔ Run upgrade without --check to proceed
\\
Scope
Read-only validation that reports findings without modifying any files. No changes to existing upgrade behavior.
- Linguagem predominante
- TypeScript
- Estrelas
- 2.9k
- Forks
- 952
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de react-native-community/cli
-
run-ios --udid <physical device> throws "No simulator available" because the fallback simulator is resolved eagerlyTalvez já em andamento @huytdps13400 assumiu há 60 dias. Abertabug report
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
react-native-community/cli#2826 ·
Mantenedores costumam responder em até 2 dias
-
`project.ios.automaticPodsInstallation` default of `true` never applies unless `project.ios` is explicitly declared in `react-native.config.js`Talvez já em andamento @huytdps13400 assumiu há 60 dias. Abertabug report
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
react-native-community/cli#2825 ·
Mantenedores costumam responder em até 2 dias
-
run-ios --buildFolder installs the app from the default DerivedData instead of the build folderTalvez já em andamento @lovisschmidt assumiu há 20 dias. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
react-native-community/cli#2869 ·
Mantenedores costumam responder em até 2 dias
-
run-ios on Xcode 27: DeviceHub opens no window when the simulator is shut downTalvez já em andamento @rakodev assumiu há 21 dias. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 25/100
react-native-community/cli#2866 · 2 comentários ·
Mantenedores costumam responder em até 2 dias
-
Tons of errors are ignoredTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
react-native-community/cli#2852 ·
Mantenedores costumam responder em até 2 dias
Todas as issues de react-native-community/cli
Issues semelhantes
-
freshness freshness:observed-only
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
thoroc/context-radar#282 ·
-
bug P2 rust
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia
-
area: web
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
gabe-santana/arkdraw#25 ·
-
bug require-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
expressjs/expressjs.com#2549 · 1 reação ·
Mantenedores costumam responder em até 1 dia
-
bug good first issue hacktoberfest
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
codercops/discord-bot#101 · 1 comentário ·
Mantenedores costumam responder em até 1 dia