-
Notifications
You must be signed in to change notification settings - Fork 1.5k
feat: remove the ability to opt out of the new architecture #2961
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: remove the ability to opt out of the new architecture #2961
Conversation
There was a problem hiding this 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=falseis 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=falseis 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(
frankcalise
left a comment
There was a problem hiding this 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. 🎉
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
# [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
Description
This PR removes the ability to opt OUT of the new architecture. Every ignited app will have
newArchEnabled: truefrom 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=falseyou'll get a warning and the process will exit:Checklist
README.mdand other relevant documentation has been updated with my changes