Skip to content

chore: Move new iOS implementation out of gamma directory - #4390

Merged
kmichalikk merged 1 commit into
mainfrom
@kmichalikk/flatten-gamma-dirs-ios
Jul 23, 2026
Merged

kmichalikk merged 1 commit into
mainfrom
@kmichalikk/flatten-gamma-dirs-ios

Conversation

@kmichalikk

Copy link
Copy Markdown
Contributor

Closes https://github.com/software-mansion/react-native-screens-labs/issues/1654

Description

This PR moves new implementation files for iOS out of gamma/ directory.

Changes

  • moved files

Before & after - visual documentation

n/a

Test plan

Build the app and make sure it loads correctly.

Checklist

  • Included code example that can be used to test this change.
  • For visual changes, included screenshots / GIFs / recordings documenting the change.
  • For API changes, updated relevant public types.
  • Ensured that CI passes

@kmichalikk kmichalikk self-assigned this Jul 22, 2026
@kmichalikk
kmichalikk marked this pull request as draft July 22, 2026 15:23
@kmichalikk
kmichalikk force-pushed the @kmichalikk/flatten-gamma-dirs-ios branch from cbe6944 to bd99900 Compare July 22, 2026 16:26
@kmichalikk
kmichalikk changed the base branch from main to @kmichalikk/remove-rns-gamma-enabled July 22, 2026 16:27
@kmichalikk kmichalikk changed the title @kmichalikk/flatten gamma dirs ios chore: Move new iOS implementation out of gamma directory Jul 22, 2026
@kmichalikk
kmichalikk marked this pull request as ready for review July 22, 2026 16:27
@kmichalikk
kmichalikk force-pushed the @kmichalikk/remove-rns-gamma-enabled branch from 9a6ceed to 973cd52 Compare July 23, 2026 11:48
Base automatically changed from @kmichalikk/remove-rns-gamma-enabled to main July 23, 2026 12:39
@kmichalikk
kmichalikk force-pushed the @kmichalikk/flatten-gamma-dirs-ios branch from bd99900 to 5a0b372 Compare July 23, 2026 12:40
@kmichalikk
kmichalikk requested a review from kkafar July 23, 2026 12:40

@kkafar kkafar left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good. Let's make sure it builds and proceed.

@kmichalikk
kmichalikk merged commit 68dce52 into main Jul 23, 2026
6 checks passed
@kmichalikk
kmichalikk deleted the @kmichalikk/flatten-gamma-dirs-ios branch July 23, 2026 13:08
kkafar added a commit that referenced this pull request Jul 24, 2026
#4402)

## Description

The `[ios] react-native-screens` job in
[react-native-community/nightly-tests](https://github.com/react-native-community/nightly-tests)
started failing on 2026-07-24
([run](https://github.com/react-native-community/nightly-tests/actions/runs/30072803584/job/89419595185)):

```
node_modules/react-native-screens/ios/stack/screen/RNSStackScreenHeaderCoordinator.mm:2:9: fatal error: 'RCTAssert.h' file not found
    2 | #import "RCTAssert.h"
```

React Native nightlies ship prebuilt React core (`React-Core-prebuilt`),
where core headers are only reachable as framework-style imports
(`<React/...>`). The bare quote-form `#import "RCTAssert.h"` does not
resolve against it.

The import has been present since #3868 (June), but was latent: the file
lived under `ios/gamma/`, which the podspec excluded unless
`RNS_GAMMA_ENABLED=1` — nightly-tests never compiled it. The
`4.27.0-nightly-20260723` package is the first one containing
#4390/#4391 (gamma removal), so the file now compiles unconditionally
and the broken import fired. The RN side did not change between the
passing and failing runs (both used prebuilt core).

FabricExample CI does not catch this because it builds against pinned
stable RN with source-built `React-Core`, where the bare import happens
to resolve through CocoaPods header search paths.

Closes:
software-mansion/react-native-screens-labs#1690

## Changes

- `RNSStackScreenHeaderCoordinator.mm`: `#import "RCTAssert.h"` →
`#import <React/RCTAssert.h>` (the actual fix) and `#import
"React/RCTLog.h"` → `#import <React/RCTLog.h>`
- `RNSStackNavigationController.mm`: `#import "React/RCTAssert.h"` →
`#import <React/RCTAssert.h>`

The two quote-form `"React/..."` imports likely resolved via clang's
fallback to framework search, but they are the same class of risk and
every other file in the codebase (17 occurrences) already uses the angle
form.

## Test plan

- Audited the whole native tree: no `#import "React/..."` or bare
React-core quote imports remain in `ios/`, `common/`, `cpp/`; the only
remaining `#import "RCT..."` occurrences are the library's own category
headers (`RCTConvert+RNSTabs.h`, `RCTSurfaceTouchHandler+RNSUtility.h`,
etc.).
- The change is import-form-only; the resulting imports are identical to
the ones already used by sibling files in the same target (e.g.
`ios/stack/header/RNSStackHeaderMenuCoordinator.mm`).
- Final confirmation comes from the next
`react-native-community/nightly-tests` run after this lands in a nightly
publish.

## Checklist

- [ ] Included code example that can be used to test this change.
- [ ] For visual changes, included screenshots / GIFs / recordings
documenting the change.
- [ ] For API changes, updated relevant public types.
- [ ] Ensured that CI passes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@t0maboro t0maboro mentioned this pull request Aug 5, 2026
4 tasks
t0maboro added a commit that referenced this pull request Aug 5, 2026
## Description

The `[ios] react-native-screens` job in

[react-native-community/nightly-tests](https://github.com/react-native-community/nightly-tests)
started failing on 2026-07-24

([run](https://github.com/react-native-community/nightly-tests/actions/runs/30072803584/job/89419595185)):

```
node_modules/react-native-screens/ios/stack/screen/RNSStackScreenHeaderCoordinator.mm:2:9: fatal error: 'RCTAssert.h' file not found
    2 | #import "RCTAssert.h"
```

React Native nightlies ship prebuilt React core (`React-Core-prebuilt`),
where core headers are only reachable as framework-style imports
(`<React/...>`). The bare quote-form `#import "RCTAssert.h"` does not
resolve against it.

The import has been present since #3868 (June), but was latent: the file
lived under `ios/gamma/`, which the podspec excluded unless
`RNS_GAMMA_ENABLED=1` — nightly-tests never compiled it. The
`4.27.0-nightly-20260723` package is the first one containing
#4390/#4391 (gamma removal), so the file now compiles unconditionally
and the broken import fired. The RN side did not change between the
passing and failing runs (both used prebuilt core).

FabricExample CI does not catch this because it builds against pinned
stable RN with source-built `React-Core`, where the bare import happens
to resolve through CocoaPods header search paths.

Closes:

software-mansion/react-native-screens-labs#1690

## Changes

- `RNSStackScreenHeaderCoordinator.mm`: `#import "RCTAssert.h"` →
`#import <React/RCTAssert.h>` (the actual fix) and `#import
"React/RCTLog.h"` → `#import <React/RCTLog.h>`
- `RNSStackNavigationController.mm`: `#import "React/RCTAssert.h"` →
`#import <React/RCTAssert.h>`

The two quote-form `"React/..."` imports likely resolved via clang's
fallback to framework search, but they are the same class of risk and
every other file in the codebase (17 occurrences) already uses the angle
form.

## Test plan

- Audited the whole native tree: no `#import "React/..."` or bare
React-core quote imports remain in `ios/`, `common/`, `cpp/`; the only
remaining `#import "RCT..."` occurrences are the library's own category
headers (`RCTConvert+RNSTabs.h`, `RCTSurfaceTouchHandler+RNSUtility.h`,
etc.).
- The change is import-form-only; the resulting imports are identical to
the ones already used by sibling files in the same target (e.g.
`ios/stack/header/RNSStackHeaderMenuCoordinator.mm`).
- Final confirmation comes from the next
`react-native-community/nightly-tests` run after this lands in a nightly
publish.

## Checklist

- [ ] Included code example that can be used to test this change.
- [ ] For visual changes, included screenshots / GIFs / recordings
documenting the change.
- [ ] For API changes, updated relevant public types.
- [ ] Ensured that CI passes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit d372cb8)

Co-authored-by: Kacper Kafara <kacper.kafara@swmansion.com>
Co-authored-by: Claude Fable 5 <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