Skip to content

Conversation

@cimigree
Copy link
Contributor

@cimigree cimigree commented Jan 5, 2026

closes #1624

Dev Dependency Upgrade (January 2026)

This PR updates the development dependencies as part of our 6 month scheduled maintenance.
Used npm run upgrade-deps:dev and expo-doctor.
I also manually bumped key supporting packages (like Expo SDK patch, React Native patch, Jest, TypeScript) and reviewed compatibility with Expo SDK 53.0.25 and React Native 0.79.6. This quiets the warnings whenever I do npx expo prebuild.

Upgraded Packages

All changes were either minor or patch-level, with the exception of two intentional major upgrades (eslint-plugin-react-hooks and dotenv-cli). All upgrades have been tested locally and in CI.

Package From To
@babel/core 7.28.0 7.28.5
@babel/preset-env 7.28.0 7.28.5
@babel/runtime 7.27.6 7.28.4
@comapeo/cloud 0.1.0 0.3.0
@comapeo/schema 2.1.1 2.2.0
@eslint/eslintrc 3.3.1 3.3.3
@eslint/js 9.30.1 9.39.2
@formatjs/cli 6.7.2 6.8.2
@tanstack/eslint-plugin-query 5.81.2 5.91.2
@turf/distance 7.2.0 7.3.1
@types/react 19.0.10 19.2.7
@types/semver 7.7.0 7.7.1
@wdio/browserstack-service 9.16.2 9.21.0
@wdio/globals 9.16.2 9.17.0
@wdio/local-runner 9.16.2 9.21.0
@wdio/mocha-framework 9.16.2 9.21.0
@wdio/spec-reporter 9.16.2 9.20.0
@wdio/types 9.16.2 9.20.0
babel-jest 30.0.4 30.2.0
dotenv-cli 8.0.0 11.0.0
eslint 9.30.1 9.39.2
eslint-plugin-jest 29.0.1 29.5.0
eslint-plugin-react-hooks 5.2.0 7.0.1
eslint-plugin-testing-library 7.5.3 7.15.1
execa 9.6.0 9.6.1
globals 16.3.0 16.5.0
jest 30.1.3 30.2.0
jest-expo 53.0.5 53.0.13
lint-staged 16.1.2 16.2.7
patch-package 8.0.0 8.0.1
prettier 3.6.2 3.7.4
react-native-svg-transformer 1.5.1 1.5.2
semver 7.7.2 7.7.3
typescript 5.8.3 5.9.3
typescript-eslint (meta) 8.36.0 8.50.0
webdriverio + @wdio/* packages 9.16.2 9.21.0
expo (prod) 53.0.22 53.0.25
expo-image (prod) 2.4.0 2.4.1
react-native (prod) 0.79.5 0.79.6

Packages Not Upgraded

These packages were intentionally held back to avoid premature breaking changes or incompatibilities with Expo SDK 53:

Package Reason
jest-expo Updated to 53.0.13 to match Expo SDK 53.
react-test-renderer React 19 typings and renderers must stay at 19.0.0 to match React 19.0.0 (used by Expo SDK 53).
Metro-related packages (metro, @react-native/*) Held at current versions to align with RN 0.79.6.
@react-navigation/native-stack Skipped (would require upgrading production @react-navigation/native).
@testing-library/react-native Kept at 13.2.0 due to peer dependency compatibility.
@react-native-picker/picker, react-native-gesture-handler, react-native-reanimated, react-native-safe-area-context, react-native-screens, react-native-svg Kept newer versions even though expo doctor recommends older ones. These are compatible with RN 0.79 and verified working in local and CI builds.
@sentry/react-native Stays at v7.6.0 (Expo SDK 53 expects v6.14.0, but we intentionally upgraded to v7 previously).
fastify Stays at v4.29.1 because @comapeo/core@5.2.1 and @comapeo/cloud@0.3.0 require Fastify v4. Note: Fastify v4 reached end of support on June 30, 2025 and is no longer receiving security updates. This should be prioritized for upgrade once @comapeo/core supports Fastify v5.

Breaking Changes & Fixes

eslint-plugin-react-hooks v7

The upgrade to eslint-plugin-react-hooks@7.0.1 introduced stricter React Hooks rules. Updated eslint.config.mjs to:

  • Fix compatibility with v7 flat config format
  • Downgrade new stricter rules (set-state-in-effect, purity, incompatible-library, immutability, refs, globals) from errors to warnings to avoid blocking existing code patterns
    - Is this what we want to do? Or revert the package back to the older version?

@comapeo/schema v2.2.0

The Track type's locations field changed from Position[] to [Position, Position, ...Position[]] (tuple requiring minimum 2 positions). This enforces that tracks must have at least 2 positions to be valid. I don't think we actually have other code or processes for this, so am wondering what else we should do to make sure we have two positions.


Validation

All updates were tested locally and on CI:

  • npm ci, npm run lint, npm test (all 604 tests pass)
  • EAS development build runs correctly on-device
  • expo doctor passes (except for intentionally ignored community registry metadata and intentionally newer packages)
  • npm run test:e2e(Browserstack) runs and passes
  • lint-staged 16 confirmed working in pre-commit hook

…hema requirement. Marks certain es lint hooks as warnings instead of failures.
@cimigree cimigree changed the title choreupgrade dev deps chore: upgrade dev deps Jan 5, 2026
@awana-lockfile-bot
Copy link

package-lock.json changes

Summary

Status Count
ADDED 14
UPDATED 130
REMOVED 39
Click to toggle table visibility
Name Status Previous Current
@ampproject/remapping REMOVED 2.3.0 -
@babel/compat-data UPDATED 7.28.0 7.28.5
@babel/core UPDATED 7.28.0 7.28.5
@babel/generator UPDATED 7.28.3 7.28.5
@babel/helper-create-class-features-plugin UPDATED 7.27.1 7.28.5
@babel/helper-member-expression-to-functions UPDATED 7.27.1 7.28.5
@babel/helper-module-transforms UPDATED 7.27.3 7.28.3
@babel/helper-validator-identifier UPDATED 7.27.1 7.28.5
@babel/helpers UPDATED 7.27.6 7.28.4
@babel/parser UPDATED 7.28.4 7.28.5
@babel/plugin-bugfix-firefox-class-in-computed-class-key UPDATED 7.27.1 7.28.5
@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly UPDATED 7.27.1 7.28.3
@babel/plugin-transform-block-scoping UPDATED 7.28.0 7.28.5
@babel/plugin-transform-class-static-block UPDATED 7.27.1 7.28.3
@babel/plugin-transform-classes UPDATED 7.28.0 7.28.4
@babel/plugin-transform-destructuring UPDATED 7.28.0 7.28.5
@babel/plugin-transform-exponentiation-operator UPDATED 7.27.1 7.28.5
@babel/plugin-transform-logical-assignment-operators UPDATED 7.27.1 7.28.5
@babel/plugin-transform-modules-systemjs UPDATED 7.27.1 7.28.5
@babel/plugin-transform-object-rest-spread UPDATED 7.28.0 7.28.4
@babel/plugin-transform-optional-chaining UPDATED 7.27.1 7.28.5
@babel/plugin-transform-regenerator UPDATED 7.28.0 7.28.4
@babel/preset-env UPDATED 7.28.0 7.28.5
@babel/runtime UPDATED 7.27.6 7.28.4
@babel/traverse UPDATED 7.28.0 7.28.5
@babel/types UPDATED 7.28.4 7.28.5
@browserstack/wdio-browserstack-service ADDED - 2.0.2
@bufbuild/protobuf ADDED - 2.10.2
@comapeo/cloud UPDATED 0.1.0 0.3.0
@comapeo/schema UPDATED 2.1.1 2.2.0
@eslint-community/eslint-utils UPDATED 4.7.0 4.9.0
@eslint/config-array UPDATED 0.21.0 0.21.1
@eslint/config-helpers UPDATED 0.3.0 0.4.2
@eslint/core UPDATED 0.14.0 0.17.0
@eslint/eslintrc UPDATED 3.3.1 3.3.3
@eslint/js UPDATED 9.30.1 9.39.2
@eslint/object-schema UPDATED 2.1.6 2.1.7
@eslint/plugin-kit UPDATED 0.3.3 0.4.1
@expo/cli UPDATED 0.24.21 0.24.23
@expo/devcert UPDATED 1.2.0 1.2.1
@expo/metro-config UPDATED 0.20.17 0.20.18
@expo/osascript UPDATED 2.3.7 2.3.8
@expo/package-manager UPDATED 1.9.8 1.9.9
@expo/schema-utils UPDATED 0.1.7 0.1.8
@formatjs/cli UPDATED 6.7.2 6.8.2
@grpc/grpc-js ADDED - 1.13.3
@grpc/proto-loader ADDED - 0.7.15
@jest/core UPDATED 30.1.3 30.2.0
@jest/reporters UPDATED 30.1.3 30.2.0
@jest/snapshot-utils UPDATED 30.1.2 30.2.0
@jest/test-sequencer UPDATED 30.1.3 30.2.0
@jridgewell/remapping ADDED - 2.3.5
@js-sdsl/ordered-map ADDED - 4.4.2
@mapeo/default-config ADDED - 6.0.0
@mapeo/sqlite-indexer REMOVED 1.0.0-alpha.9 -
@react-native/assets-registry UPDATED 0.79.5 0.79.6
@react-native/community-cli-plugin UPDATED 0.79.5 0.79.6
@react-native/gradle-plugin UPDATED 0.79.5 0.79.6
@tanstack/eslint-plugin-query UPDATED 5.81.2 5.91.2
@turf/distance UPDATED 7.2.0 7.3.1
@types/eslint-scope REMOVED 3.7.7 -
@types/eslint REMOVED 9.6.1 -
@types/react UPDATED 19.0.10 19.2.7
@types/semver UPDATED 7.7.0 7.7.1
@typescript-eslint/eslint-plugin UPDATED 8.36.0 8.50.0
@typescript-eslint/parser UPDATED 8.36.0 8.50.0
@typescript-eslint/project-service UPDATED 8.36.0 8.50.0
@typescript-eslint/scope-manager UPDATED 8.36.0 8.50.0
@typescript-eslint/tsconfig-utils UPDATED 8.36.0 8.50.0
@typescript-eslint/type-utils UPDATED 8.36.0 8.50.0
@typescript-eslint/types UPDATED 8.36.0 8.50.0
@typescript-eslint/typescript-estree UPDATED 8.36.0 8.50.0
@typescript-eslint/utils UPDATED 8.36.0 8.50.0
@typescript-eslint/visitor-keys UPDATED 8.36.0 8.50.0
@wdio/browserstack-service UPDATED 9.16.2 9.21.0
@wdio/dot-reporter UPDATED 9.16.2 9.20.0
@wdio/globals UPDATED 9.16.2 9.17.0
@wdio/local-runner UPDATED 9.16.2 9.21.0
@wdio/mocha-framework UPDATED 9.16.2 9.21.0
@wdio/reporter UPDATED 9.16.2 9.20.0
@wdio/runner UPDATED 9.16.2 9.21.0
@wdio/spec-reporter UPDATED 9.16.2 9.20.0
@wdio/types UPDATED 9.16.2 9.20.0
@wdio/xvfb ADDED - 9.20.0
@webassemblyjs/ast REMOVED 1.14.1 -
@webassemblyjs/floating-point-hex-parser REMOVED 1.13.2 -
@webassemblyjs/helper-api-error REMOVED 1.13.2 -
@webassemblyjs/helper-buffer REMOVED 1.14.1 -
@webassemblyjs/helper-numbers REMOVED 1.13.2 -
@webassemblyjs/helper-wasm-bytecode REMOVED 1.13.2 -
@webassemblyjs/helper-wasm-section REMOVED 1.14.1 -
@webassemblyjs/ieee754 REMOVED 1.13.2 -
@webassemblyjs/leb128 REMOVED 1.13.2 -
@webassemblyjs/utf8 REMOVED 1.13.2 -
@webassemblyjs/wasm-edit REMOVED 1.14.1 -
@webassemblyjs/wasm-gen REMOVED 1.14.1 -
@webassemblyjs/wasm-opt REMOVED 1.14.1 -
@webassemblyjs/wasm-parser REMOVED 1.14.1 -
@webassemblyjs/wast-printer REMOVED 1.14.1 -
@xtuc/ieee754 REMOVED 1.2.0 -
@xtuc/long REMOVED 4.2.2 -
@zip.js/zip.js UPDATED 2.7.60 2.8.11
acorn-import-phases REMOVED 1.0.4 -
acorn-loose REMOVED 8.5.2 -
at-least-node REMOVED 1.0.0 -
babel-jest UPDATED 30.0.4 30.2.0
babel-plugin-jest-hoist UPDATED 30.0.1 30.2.0
babel-preset-current-node-syntax UPDATED 1.1.0 1.2.0
babel-preset-jest UPDATED 30.0.1 30.2.0
better-sqlite3 REMOVED 8.7.0 -
chrome-trace-event REMOVED 1.0.4 -
cjs-module-lexer UPDATED 2.1.0 2.1.1
cli-truncate UPDATED 4.0.0 5.1.1
csstype UPDATED 3.1.3 3.2.3
decamelize UPDATED 6.0.0 6.0.1
diff UPDATED 7.0.0 8.0.2
dotenv-cli UPDATED 8.0.0 11.0.0
drizzle-orm REMOVED 0.30.10 -
edgedriver UPDATED 6.1.1 6.2.0
enhanced-resolve REMOVED 5.18.3 -
es-module-lexer REMOVED 1.7.0 -
eslint-plugin-jest UPDATED 29.0.1 29.5.0
eslint-plugin-react-hooks UPDATED 5.2.0 7.0.1
eslint-plugin-testing-library UPDATED 7.5.3 7.15.1
eslint UPDATED 9.30.1 9.39.2
execa UPDATED 9.6.0 9.6.1
expo-image UPDATED 2.4.0 2.4.1
expo UPDATED 53.0.22 53.0.25
fast-xml-parser UPDATED 4.5.3 5.3.3
fdir ADDED - 6.5.0
get-east-asian-width UPDATED 1.3.0 1.4.0
glob-to-regexp REMOVED 0.4.1 -
globals UPDATED 16.3.0 16.5.0
graphemer REMOVED 1.4.0 -
is-fullwidth-code-point UPDATED 4.0.0 5.1.0
jest-changed-files UPDATED 30.0.5 30.2.0
jest-circus UPDATED 30.1.3 30.2.0
jest-cli UPDATED 30.1.3 30.2.0
jest-config UPDATED 30.1.3 30.2.0
jest-docblock UPDATED 30.0.1 30.2.0
jest-each UPDATED 30.1.0 30.2.0
jest-expo UPDATED 53.0.5 53.0.13
jest-leak-detector UPDATED 30.1.0 30.2.0
jest-resolve-dependencies UPDATED 30.1.3 30.2.0
jest-resolve UPDATED 30.1.3 30.2.0
jest-runner UPDATED 30.1.3 30.2.0
jest-runtime UPDATED 30.1.3 30.2.0
jest UPDATED 30.1.3 30.2.0
js-yaml UPDATED 4.1.0 4.1.1
lilconfig REMOVED 3.1.3 -
lint-staged UPDATED 16.1.2 16.2.7
listr2 UPDATED 8.3.3 9.0.5
loader-runner REMOVED 4.3.0 -
lodash.camelcase ADDED - 4.3.0
mitt ADDED - 3.0.1
modern-tar ADDED - 0.7.3
nano-spawn UPDATED 1.0.2 2.0.0
node-forge UPDATED 1.3.1 1.3.3
patch-package UPDATED 8.0.0 8.0.1
picomatch UPDATED 4.0.2 4.0.3
prettier UPDATED 3.6.2 3.7.4
react-native-svg-transformer UPDATED 1.5.1 1.5.2
react-native UPDATED 0.79.5 0.79.6
schema-utils REMOVED 4.3.3 -
semver UPDATED 7.7.2 7.7.3
send UPDATED 0.19.1 0.19.2
slice-ansi UPDATED 5.0.0 7.1.2
strnum UPDATED 1.1.2 2.1.2
tapable REMOVED 2.3.0 -
terser-webpack-plugin REMOVED 5.3.14 -
tinyglobby ADDED - 0.2.15
tmp UPDATED 0.2.3 0.2.5
typescript-eslint UPDATED 8.36.0 8.50.0
typescript UPDATED 5.8.3 5.9.3
undici UPDATED 6.21.2 6.22.0
uuid UPDATED 10.0.0 11.1.0
watchpack REMOVED 2.4.4 -
webdriver UPDATED 9.16.2 9.21.0
webdriverio UPDATED 9.16.2 9.21.0
webpack-sources REMOVED 3.3.3 -
webpack REMOVED 5.102.0 -
yaml UPDATED 2.8.0 2.8.2
zod-validation-error ADDED - 4.0.2

@cimigree cimigree requested a review from ErikSin January 5, 2026 18:03
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.

Update Dev Dependencies

2 participants