Skip to content

Commit 5a024bd

Browse files
ankit-ycaupyay
andauthored
chore(ci): hold the eslint and babel majors that React Native and Next block (#2189)
Both majors were attempted and both fail on an upstream constraint rather than on anything in this repo. @babel/core 8 is refused by @react-native/babel-preset 0.81, which asserts Babel ^7.0.0-0 at load time. eslint 10 is refused twice over: by eslint-config-next 15's rushstack patch on the frontend, and on mobile by @babel/eslint-parser, whose ESLint 10 release requires @babel/core 8 and so lands behind the same React Native constraint. Backend and desktop lint clean on eslint 10 today. The repo holds at 9 anyway so the four workspaces move together instead of running two ESLint majors side by side. Co-authored-by: Ankit Upadhyay <ankit@dunexploration.com>
1 parent 6e22aa6 commit 5a024bd

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

.github/dependabot.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,31 @@ updates:
7979
# patches) so the pair only moves atomically with the runtime upgrade
8080
# (#2125) - a patch bump here without the override recreates the mismatch.
8181
- dependency-name: 'playwright'
82+
# @babel/core 8 cannot be installed while the app is on React Native
83+
# 0.81: @react-native/babel-preset asserts Babel "^7.0.0-0" at load time
84+
# and throws "Requires Babel ^7.0.0-0, but was loaded with 8.0.1" for
85+
# every mobile file (#2116). This is a hard assertion inside the preset,
86+
# not something a config can work around. Unfreeze with the React Native
87+
# upgrade that ships a Babel 8 compatible preset.
88+
- dependency-name: '@babel/core'
89+
update-types: ['version-update:semver-major']
90+
# eslint 10 is blocked in two workspaces at once (#2180), so the repo
91+
# stays on 9 until both clear:
92+
# frontend - eslint-config-next 15.x loads @rushstack/eslint-patch,
93+
# which refuses to patch an ESLint it does not recognise and fails
94+
# with "Failed to patch ESLint because the calling module was not
95+
# recognized". eslint-config-next 16 drops the patch and declares
96+
# eslint >=9, so this clears with the Next 16 upgrade.
97+
# mobileAppYC - @react-native/eslint-config parses with
98+
# @babel/eslint-parser, whose scope manager ESLint 10 rejects
99+
# ("scopeManager.addGlobals is not a function"). Only
100+
# @babel/eslint-parser 8 supports ESLint 10, and it requires
101+
# @babel/core ^8, which React Native blocks per the entry above.
102+
# Backend and desktop were verified to lint clean on 10 already; the hold
103+
# is only so all four workspaces move together rather than splitting the
104+
# toolchain across two ESLint majors.
105+
- dependency-name: 'eslint'
106+
update-types: ['version-update:semver-major']
82107
groups:
83108
# Every group is minor-and-patch only, including the named ones below. A
84109
# named group without `update-types` silently swallows MAJORS too, which is

0 commit comments

Comments
 (0)