这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@markrickert
Copy link
Member

Description

This PR removes the ability to opt OUT of the new architecture. Every ignited app will have newArchEnabled: true from now on.

Screenshots

The prompts no longer ask you if you want to enable the new arch or not, but if you pass --new-arch=false you'll get a warning and the process will exit:

Screenshot 2025-05-29 at 6 11 45 PM

Checklist

  • README.md and other relevant documentation has been updated with my changes
  • I have manually tested this, including by generating a new app locally (see docs).

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR enforces the new architecture by removing the opt-out paths and flags, updating defaults to always enable newArchEnabled, and cleaning up related code and documentation.

  • Remove legacy dependency-version swaps and prompts for disabling the new architecture
  • Update CLI command to exit with a warning when --new-arch=false is passed
  • Adjust docs, boilerplate, and README tables to reflect that the new architecture is always on

Reviewed Changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/tools/dependencies.ts Removed unused dependency-management utilities (merged into commands)
src/commands/new.ts Deleted opt-out logic, added immediate exit on --new-arch=false, and duplicated utility stub
docs/cli/Ignite-CLI.md Removed new-arch experimental flag entry and updated examples
docs/README.md Simplified table separator and locked MMKV version to v3
README.md Same table adjustments as docs/README.md
boilerplate/app.json Set "newArchEnabled" default to true
Comments suppressed due to low confidence (3)

src/commands/new.ts:201

  • There aren’t any automated tests covering the new exit path when --new-arch=false is passed. Consider adding a unit or integration test to verify the warning message and non-zero exit behavior.
if (options.newArch !== undefined && boolFlag(options.newArch) === false) {

docs/cli/Ignite-CLI.md:106

  • [nitpick] The markdown list formatting here is inconsistent (double hyphens). Standardize to a single hyphen per item for clarity and to match surrounding list style.
-  - `new-arch` enables [The New Architecture](https://reactnative.dev/docs/new-architecture-intro)

src/commands/new.ts:1040

  • The duplicated findAndRemoveDependencies implementation at the end of this file duplicates code previously in src/tools/dependencies.ts and is unused here. Consider removing this dead code or factoring it into a shared utility module to avoid duplication.
export function findAndRemoveDependencies(

Copy link
Contributor

@frankcalise frankcalise left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work! Less to maintain and pushes the community in the right direction.

Also nice idea to ditch some of those deprecated flags. 🎉

@markrickert markrickert merged commit 95191f7 into feat/expo-sdk-53 May 30, 2025
1 check passed
@markrickert markrickert deleted the mrickert/expo53/new-arch-removal branch May 30, 2025 14:13
@markrickert markrickert mentioned this pull request Jun 3, 2025
8 tasks
markrickert pushed a commit that referenced this pull request Jul 2, 2025
BREAKING CHANGE: adopt new architecture by default and remove legacy support (#2961 by @markrickert)

- Enable New Architecture in all new projects; legacy option removed from CLI
- Boilerplate and CLI now assume New Arch by default

feat: upgrade to Expo SDK 53 with Android edge-to-edge support (#2938 by @fpena)

- Upgrade to Expo SDK 53 and align all dependencies
- Add support for Android edge-to-edge using SystemBars
- Update app.json, jest-expo, metro.config, and related config for compatibility

feat: remove mobx-state-tree and enable bring-your-own state management (#2960 by @markrickert)

- Remove MST from boilerplate and CLI
- Replace with lightweight React Context examples for demo state
- Support persistence via useMMKVString

feat: simplify theming with refactored ThemeProvider (#2970 by @markrickert)

- Refactor useAppTheme and ThemeProvider for easier integration

fix: address compatibility issues with React 19, TypeScript, and tests (#2966, #2968 by @objecttiveSee)

- Solve TS 5.4/React 19 type issues and downgrade TS to 5.3.3
- Fix failing snapshots and metro test conditions
- Add missing ESLint plugin and clean up demo code

chore: update docs, config, and version alignment (#2964 by @frankcalise)

- Sync README, quickstart, and context docs
- Enforce node >= 20 and update linting rules across project
infinitered-circleci pushed a commit that referenced this pull request Jul 2, 2025
# [11.0.0](v10.5.3...v11.0.0) (2025-07-02)

* Ignite v11 (Expo SDK 53) (#2938) ([154d2ed](154d2ed)), closes [#2938](#2938) [#2938](#2938) [#2960](#2960) [#2970](#2970) [#2966](#2966) [#2968](#2968) [#2964](#2964)

### Bug Fixes

* **BackHandler:** switch to non-deprecated listener syntax [#2966](#2966) [skip ci] ([aeb3ee9](aeb3ee9))
* **types:** update useRef with default undefined value ([#2968](#2968)) [skip ci] ([1f7a8fe](1f7a8fe))

### BREAKING CHANGES

* adopt new architecture by default and remove legacy support (#2961 by @markrickert)

- Enable New Architecture in all new projects; legacy option removed from CLI
- Boilerplate and CLI now assume New Arch by default
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.

4 participants