Repository navigation
Expand file tree
/
Copy pathsupport.json
More file actions
129 lines (129 loc) · 8.53 KB
/
Copy pathsupport.json
File metadata and controls
129 lines (129 loc) · 8.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
{
"comment": "What the matrix has actually proven, not what a peer range claims. runtimes are read from each fixture's installed tree. `fixtures` is the set of cells a library claims to support: CI runs exactly those, so an unsupported SDK is a documented boundary rather than a red build. Update only from a green run.",
"lastVerified": "2026-09-21",
"assertions": {
"peers": "check-peers.mjs — every peer in the installed tree is satisfied",
"bundle": "expo export --platform android — the react-native export condition (src, for inertia)",
"bundle:web": "expo export --platform web — the import condition (dist)",
"range": "check-range.mjs — the declared range admits only combinations that exist"
},
"runtimes": {
"sdk-54": {
"expo": "54.0.37",
"react": "19.1.0",
"react-native": "0.81.5",
"react-native-reanimated": "4.1.7",
"react-native-worklets": "0.5.2"
},
"sdk-57": {
"expo": "57.0.20",
"react": "19.2.3",
"react-native": "0.86.3",
"react-native-reanimated": "4.5.5",
"react-native-worklets": "0.10.1"
}
},
"libraries": {
"@rootnative/inertia": {
"oldestSupported": "sdk-57",
"newestSupported": "sdk-57",
"verified": {
"0.0.12": {
"comment": "Published 2026-09-13 (npm dist-tag latest, tag core+gestures+gradients+svg@0.0.12). The cells below installed the PUBLISHED tarball from the registry, not a candidate: scripts/run-cell.sh sdk-57 @rootnative/inertia@0.0.12, run locally on 2026-09-21 in the CI order (range, install runtime, install candidate, install peers, set candidate, peers, bundle, bundle:web).",
"range": "OK — react >=19.2.3 <20.0.0, react-native >=0.83.0 <0.87.0, react-native-reanimated >=4.5.0 <4.6.0, react-native-worklets >=0.10.0 <0.11.0 are internally consistent (check:range, 2026-09-21).",
"rangeVerifiedOn": "2026-09-21",
"cellsFrom": "published tarball, @rootnative/inertia@0.0.12 from the registry",
"cellsRunOn": "2026-09-21",
"cellsRunBy": "scripts/run-cell.sh, local (macOS, node 24.14.1, yarn 1.22.22)",
"sdk-54": {
"peers": "not run — out of the declared band, by design",
"bundle": "n/a",
"bundle:web": "n/a"
},
"sdk-57": {
"peers": "pass · 1 suppressed (react-native-worklets@0.10.1 wants @react-native/metro-config, listed in peer-exceptions.json)",
"bundle": "pass — Android, 1004 modules",
"bundle:web": "pass — 571 modules"
}
},
"0.0.11": {
"comment": "Published 2026-09-09 (npm dist-tag latest, tag core+gestures+gradients+svg@0.0.11). The peers/bundle cells below come from the packed candidate at inertia 279993c, whose package.json still read 0.0.10 because the release workflow is what bumps the version. The published tarball differs from that candidate only in the version field and the sibling @rootnative/inertia floors, so no compat run has installed the published artifact itself yet — the weekly drift run, which resolves every library at latest with the fixture lockfiles deleted, is what confirms it.",
"range": "OK — re-audited against the published 0.0.11 on 2026-09-09 with check:range, not against the candidate: react >=19.2.3 <20.0.0, react-native >=0.83.0 <0.87.0, react-native-reanimated >=4.5.0 <4.6.0, react-native-worklets >=0.10.0 <0.11.0 are internally consistent. This is the assertion 0.0.10 failed.",
"rangeVerifiedOn": "2026-09-09",
"cellsFrom": "279993c (candidate, pre-bump)",
"candidateRunOn": "2026-09-08",
"candidateRun": "https://github.com/rootnative/inertia/actions/runs/34273666636",
"sdk-54": {
"peers": "fail — out of the declared band, by design",
"bundle": "n/a",
"bundle:web": "n/a"
},
"sdk-57": {
"peers": "pass · 1 suppressed",
"bundle": "pass",
"bundle:web": "pass"
}
},
"0.0.10": {
"comment": "Published 2026-09-06 and never matrix-tested as published: the compat gate landed after the release. Declares react-native >=0.81.0 and react-native-reanimated >=4.0.0.",
"range": "FAIL — admits combinations that cannot install. The newest Reanimated the range accepts requires react-native 0.83 - 0.87, so a fresh install can fail with ERESOLVE. Nothing in inertia changed to cause this; Reanimated narrowed its own range after the release. This is the failure the gate now catches before a publish instead of after.",
"sdk-54": {
"peers": "not run",
"bundle": "not run",
"bundle:web": "not run"
},
"sdk-57": {
"peers": "not run",
"bundle": "not run",
"bundle:web": "not run"
}
}
},
"range": "OK for 0.0.12 and 0.0.11 as published — verified 2026-09-21 and 2026-09-09. NOT OK for 0.0.10, whose ranges predate the narrowing; see the verified entry for it.",
"fixtures": ["sdk-57"],
"note": "Declares the SDK 57 band only, from 0.0.11 on. Flat peer ranges resolve independently, so any range admitting both SDK 54 (RN 0.81 + Reanimated 4.1) and SDK 57 (RN 0.86 + Reanimated 4.5) also admits RN 0.81 + Reanimated 4.6, which cannot install. A consumer on SDK 54 has no supported release: 0.0.11 excludes the band, and 0.0.10 admits it only through a range that npm can reject, so that consumer needs a pinned lockfile it already resolved. Supporting SDK 54 honestly needs a separate release line. Adding sdk-55 and sdk-56 fixtures would show whether the band can widen."
},
"@rootnative/components": {
"oldestSupported": "sdk-57",
"range": "OK — internally consistent as of the SDK 57 band",
"findings": [
{
"id": "optional-peers-are-static-imports",
"severity": "blocking",
"detail": "peerDependenciesMeta marks @expo/vector-icons, react-native-reanimated, react-native-safe-area-context and react-native-worklets optional, but dist imports two of them statically. Metro cannot resolve a static import of an absent module, so the bundle fails before the runtime fallback can apply. src/safe-area.tsx writes `SafeAreaViewImpl ?? View`, which never runs.",
"evidence": "sdk-57, components@0.0.0-alpha.14: \"Unable to resolve module react-native-safe-area-context from dist/chunk-2BK2XBFP.js\". Installing it moves the failure to \"@expo/vector-icons/MaterialCommunityIcons\" from dist/chunk-ECRRYYE3.js.",
"fix": "Dropped the optional flag from @expo/vector-icons and react-native-safe-area-context. The static import is deliberate — a lazy require does not survive tsup `splitting: true`, which is documented in src/safe-area.tsx — so the peers are required, not optional.",
"status": "FIXED in 0.0.0-alpha.16 (published 2026-09-13): peerDependenciesMeta marks only react-native-reanimated and react-native-worklets optional. Verified by the alpha.16 cell on 2026-09-21, where install-peers added vector-icons, safe-area-context and svg as required peers."
}
],
"fixtures": ["sdk-57"],
"newestSupported": "sdk-57",
"verified": {
"0.0.0-alpha.16": {
"comment": "Published 2026-09-13 (npm dist-tag latest; alphas ship on latest). The cells installed the PUBLISHED tarball from the registry: scripts/run-cell.sh sdk-57 @rootnative/components@0.0.0-alpha.16, run locally on 2026-09-21. install-peers added @expo/vector-icons@>=14.0.0, @rootnative/core@>=0.0.0-alpha.16, @rootnative/inertia@>=0.0.11 <0.1.0, react-native-safe-area-context@>=4.0.0, react-native-svg@>=15.0.0, so the tree is what a real consumer gets.",
"range": "OK — internally consistent (check:range, 2026-09-21).",
"cellsFrom": "published tarball, @rootnative/components@0.0.0-alpha.16 from the registry",
"cellsRunOn": "2026-09-21",
"cellsRunBy": "scripts/run-cell.sh, local (macOS, node 24.14.1, yarn 1.22.22)",
"sdk-57": {
"peers": "pass · 1 suppressed",
"bundle": "pass — Android, 1195 modules",
"bundle:web": "pass — 696 modules"
}
},
"0.0.0-alpha.14+unreleased": {
"sdk-57": {
"peers": "pass · 1 suppressed",
"bundle": "pass",
"bundle:web": "pass"
}
}
}
},
"@rootnative/core": {
"oldestSupported": "sdk-57",
"range": "OK — internally consistent as of the SDK 57 band",
"fixtures": ["sdk-57"]
}
}
}