Skip to content

Conversation

@cimigree
Copy link
Contributor

@cimigree cimigree commented Jan 28, 2026

closes #1647
closes #1497

Upgrades to Expo 54, the last Expo upgrade that does not force the new architecture.

The biggest differences are related to

  1. using edge to edge on Android, so I had to add some safe area insets to make sure the screen was below the status bar using 'react-native-safe-area-context' (SafeAreaView from react-native is deprecated) and adjust some of the views that involve keyboards -- the password setting screens and the observation create screen. That is why the height component of the keyboard listener. I mostly needed it with Observations and the actions row.

The navigation bar is now colored medium grey, which matches what it used to be and is more noticeable and useful on my Samsung (that has a navigation bar) than the Pixel 8 in most of the photos.

I also had to adjust the status bar content color depending on if the screen was dark or light. For the default, since our app has mostly a white background, I used the dark content. For some others with dark backgrounds (see photos) I used light content. For the Camera screen, I had to use the StatusBar since the options couldn't be set in the tabs.

  1. the expo/file-system being deprecated, so we have to use a legacy version, which we can do at least through Expo 55.

Small Changes

  1. Some other small changes were necessary, like upgrading the node version locally, but it was actually correct in our .nvmrc file
  2. I adjusted some of the tests to try to be less flakey by using different categories -- ones that are more centrally located on the first screen.
  3. I used a useEffect in input passcode because I was getting warnings there from the react compiler
  4. I changed the key in the keyboard accessory because using index is not recommended
image image image

@awana-lockfile-bot
Copy link

awana-lockfile-bot bot commented Jan 28, 2026

package-lock.json changes

Summary

Status Count
ADDED 33
UPDATED 98
DOWNGRADED 19
REMOVED 30
Click to toggle table visibility
Name Status Previous Current
@babel/code-frame UPDATED 7.27.1 7.28.6
@babel/generator UPDATED 7.28.5 7.28.6
@babel/helper-create-class-features-plugin UPDATED 7.28.5 7.28.6
@babel/helper-plugin-utils UPDATED 7.27.1 7.28.6
@babel/helper-replace-supers UPDATED 7.27.1 7.28.6
@babel/parser UPDATED 7.28.5 7.28.6
@babel/plugin-proposal-decorators UPDATED 7.28.0 7.28.6
@babel/plugin-syntax-decorators UPDATED 7.27.1 7.28.6
@babel/preset-react UPDATED 7.27.1 7.28.5
@babel/template UPDATED 7.27.2 7.28.6
@babel/traverse UPDATED 7.28.5 7.28.6
@babel/types UPDATED 7.28.5 7.28.6
@esbuild/aix-ppc64 ADDED - 0.25.2
@esbuild/android-arm ADDED - 0.25.2
@esbuild/android-arm64 ADDED - 0.25.2
@esbuild/android-x64 ADDED - 0.25.2
@esbuild/darwin-arm64 ADDED - 0.25.2
@esbuild/darwin-x64 ADDED - 0.25.2
@esbuild/freebsd-arm64 ADDED - 0.25.2
@esbuild/freebsd-x64 ADDED - 0.25.2
@esbuild/linux-arm ADDED - 0.25.2
@esbuild/linux-arm64 ADDED - 0.25.2
@esbuild/linux-ia32 ADDED - 0.25.2
@esbuild/linux-loong64 ADDED - 0.25.2
@esbuild/linux-mips64el ADDED - 0.25.2
@esbuild/linux-ppc64 ADDED - 0.25.2
@esbuild/linux-riscv64 ADDED - 0.25.2
@esbuild/linux-s390x ADDED - 0.25.2
@esbuild/linux-x64 ADDED - 0.25.2
@esbuild/netbsd-arm64 ADDED - 0.25.2
@esbuild/netbsd-x64 ADDED - 0.25.2
@esbuild/openbsd-arm64 ADDED - 0.25.2
@esbuild/openbsd-x64 ADDED - 0.25.2
@esbuild/sunos-x64 ADDED - 0.25.2
@esbuild/win32-arm64 ADDED - 0.25.2
@esbuild/win32-ia32 ADDED - 0.25.2
@esbuild/win32-x64 ADDED - 0.25.2
@expo/cli REMOVED 0.24.23 -
@expo/code-signing-certificates UPDATED 0.0.5 0.0.6
@expo/config-plugins UPDATED 10.1.2 54.0.4
@expo/config-types UPDATED 53.0.5 54.0.10
@expo/config UPDATED 11.0.13 12.0.13
@expo/devtools ADDED - 0.1.8
@expo/env UPDATED 1.0.7 2.0.8
@expo/fingerprint UPDATED 0.13.4 0.15.4
@expo/image-utils UPDATED 0.7.6 0.8.8
@expo/json-file UPDATED 9.1.5 10.0.8
@expo/metro-config REMOVED 0.20.18 -
@expo/metro ADDED - 54.2.0
@expo/package-manager UPDATED 1.9.9 1.9.10
@expo/plist UPDATED 0.3.5 0.4.8
@expo/prebuild-config UPDATED 9.0.12 54.0.8
@expo/vector-icons REMOVED 14.0.4 -
@expo/xcpretty UPDATED 4.3.2 4.4.0
@isaacs/balanced-match ADDED - 4.0.1
@isaacs/brace-expansion ADDED - 5.0.0
@jest/core DOWNGRADED 30.2.0 29.7.0
@jest/reporters DOWNGRADED 30.2.0 29.7.0
@jest/snapshot-utils REMOVED 30.2.0 -
@jest/source-map DOWNGRADED 30.0.1 29.6.3
@jest/test-sequencer DOWNGRADED 30.2.0 29.7.0
@pkgr/core REMOVED 0.2.9 -
@react-native/assets-registry UPDATED 0.79.6 0.81.5
@react-native/community-cli-plugin UPDATED 0.79.6 0.81.5
@react-native/debugger-frontend UPDATED 0.79.6 0.81.5
@react-native/dev-middleware UPDATED 0.79.6 0.81.5
@react-native/gradle-plugin UPDATED 0.79.6 0.81.5
@react-native/normalize-colors UPDATED 0.79.6 0.81.5
@types/better-sqlite3 REMOVED 7.6.13 -
@unrs/resolver-binding-android-arm-eabi REMOVED 1.11.0 -
@unrs/resolver-binding-android-arm64 REMOVED 1.11.0 -
@unrs/resolver-binding-darwin-arm64 REMOVED 1.11.0 -
@unrs/resolver-binding-darwin-x64 REMOVED 1.11.0 -
@unrs/resolver-binding-freebsd-x64 REMOVED 1.11.0 -
@unrs/resolver-binding-linux-arm-gnueabihf REMOVED 1.11.0 -
@unrs/resolver-binding-linux-arm-musleabihf REMOVED 1.11.0 -
@unrs/resolver-binding-linux-arm64-gnu REMOVED 1.11.0 -
@unrs/resolver-binding-linux-arm64-musl REMOVED 1.11.0 -
@unrs/resolver-binding-linux-ppc64-gnu REMOVED 1.11.0 -
@unrs/resolver-binding-linux-riscv64-gnu REMOVED 1.11.0 -
@unrs/resolver-binding-linux-riscv64-musl REMOVED 1.11.0 -
@unrs/resolver-binding-linux-s390x-gnu REMOVED 1.11.0 -
@unrs/resolver-binding-linux-x64-gnu REMOVED 1.11.0 -
@unrs/resolver-binding-linux-x64-musl REMOVED 1.11.0 -
@unrs/resolver-binding-wasm32-wasi REMOVED 1.11.0 -
@unrs/resolver-binding-win32-arm64-msvc REMOVED 1.11.0 -
@unrs/resolver-binding-win32-ia32-msvc REMOVED 1.11.0 -
@unrs/resolver-binding-win32-x64-msvc REMOVED 1.11.0 -
babel-plugin-react-compiler ADDED - 1.0.0
babel-plugin-react-native-web UPDATED 0.19.13 0.21.2
babel-preset-expo UPDATED 13.2.4 54.0.9
cjs-module-lexer DOWNGRADED 2.1.1 1.4.3
dedent UPDATED 1.6.0 1.7.1
detect-libc UPDATED 1.0.3 2.1.2
exit-x REMOVED 0.2.2 -
expo-application UPDATED 6.1.5 7.0.8
expo-asset UPDATED 11.1.7 12.0.12
expo-av UPDATED 15.1.7 16.0.8
expo-build-properties UPDATED 0.14.8 1.0.10
expo-camera UPDATED 16.1.11 17.0.10
expo-constants UPDATED 17.1.7 18.0.13
expo-crypto UPDATED 14.1.5 15.0.8
expo-dev-client UPDATED 5.2.4 6.0.20
expo-dev-launcher UPDATED 5.1.16 6.0.20
expo-dev-menu-interface UPDATED 1.10.0 2.0.0
expo-dev-menu UPDATED 6.1.14 7.0.18
expo-device UPDATED 7.1.4 8.0.10
expo-document-picker UPDATED 13.1.6 14.0.8
expo-file-system UPDATED 18.1.11 19.0.21
expo-font UPDATED 13.3.2 14.0.10
expo-image-loader UPDATED 5.1.0 6.0.0
expo-image-manipulator UPDATED 13.1.7 14.0.8
expo-image UPDATED 2.4.1 3.0.11
expo-localization UPDATED 16.1.6 17.0.8
expo-location UPDATED 18.1.6 19.0.8
expo-manifests UPDATED 0.16.6 1.0.10
expo-modules-autolinking UPDATED 2.1.14 3.0.24
expo-modules-core UPDATED 2.5.0 3.0.29
expo-secure-store UPDATED 14.2.4 15.0.8
expo-sensors UPDATED 14.1.4 15.0.8
expo-server ADDED - 1.0.5
expo-splash-screen UPDATED 0.30.10 31.0.13
expo-system-ui UPDATED 5.0.11 6.0.9
expo-task-manager UPDATED 13.1.6 14.0.9
expo-updates-interface UPDATED 1.1.0 2.0.0
expo UPDATED 53.0.25 54.0.31
istanbul-lib-source-maps DOWNGRADED 5.0.6 4.0.1
istanbul-reports UPDATED 3.1.7 3.2.0
jest-changed-files DOWNGRADED 30.2.0 29.7.0
jest-circus DOWNGRADED 30.2.0 29.7.0
jest-cli DOWNGRADED 30.2.0 29.7.0
jest-config DOWNGRADED 30.2.0 29.7.0
jest-docblock DOWNGRADED 30.2.0 29.7.0
jest-each DOWNGRADED 30.2.0 29.7.0
jest-expo UPDATED 53.0.13 54.0.16
jest-leak-detector DOWNGRADED 30.2.0 29.7.0
jest-resolve-dependencies DOWNGRADED 30.2.0 29.7.0
jest-resolve DOWNGRADED 30.2.0 29.7.0
jest-runner DOWNGRADED 30.2.0 29.7.0
jest-runtime DOWNGRADED 30.2.0 29.7.0
jest DOWNGRADED 30.2.0 29.7.0
lightningcss-android-arm64 ADDED - 1.31.1
lightningcss-darwin-arm64 UPDATED 1.27.0 1.31.1
lightningcss-darwin-x64 UPDATED 1.27.0 1.31.1
lightningcss-freebsd-x64 UPDATED 1.27.0 1.31.1
lightningcss-linux-arm-gnueabihf UPDATED 1.27.0 1.31.1
lightningcss-linux-arm64-gnu UPDATED 1.27.0 1.31.1
lightningcss-linux-arm64-musl UPDATED 1.27.0 1.31.1
lightningcss-linux-x64-gnu UPDATED 1.27.0 1.31.1
lightningcss-linux-x64-musl UPDATED 1.27.0 1.31.1
lightningcss-win32-arm64-msvc UPDATED 1.27.0 1.31.1
lightningcss-win32-x64-msvc UPDATED 1.27.0 1.31.1
lightningcss UPDATED 1.27.0 1.31.1
metro-babel-transformer UPDATED 0.82.0 0.83.3
metro-cache-key UPDATED 0.82.0 0.83.3
metro-cache UPDATED 0.82.0 0.83.3
metro-core UPDATED 0.82.0 0.83.3
metro-file-map UPDATED 0.82.0 0.83.3
metro-minify-terser UPDATED 0.82.0 0.83.3
metro-resolver UPDATED 0.82.0 0.83.3
metro-source-map UPDATED 0.82.0 0.83.3
metro-symbolicate UPDATED 0.82.0 0.83.3
metro-transform-plugins UPDATED 0.82.0 0.83.3
metro-transform-worker UPDATED 0.82.0 0.83.3
metro UPDATED 0.82.0 0.83.3
napi-postinstall REMOVED 0.3.0 -
ob1 UPDATED 0.82.0 0.83.3
pure-rand DOWNGRADED 7.0.1 6.1.0
react-native-edge-to-edge REMOVED 1.6.0 -
react-native-reanimated UPDATED 3.19.0 3.19.5
react-native UPDATED 0.79.6 0.81.5
react-test-renderer UPDATED 19.0.0 19.1.0
react UPDATED 19.0.0 19.1.0
resolve-global ADDED - 1.0.0
scheduler UPDATED 0.25.0 0.26.0
serve-static UPDATED 1.16.2 1.16.3
sucrase UPDATED 3.35.0 3.35.1
synckit REMOVED 0.11.11 -
unimodules-app-loader UPDATED 5.1.3 6.0.8
unrs-resolver REMOVED 1.11.0 -

@socket-security
Copy link

socket-security bot commented Jan 28, 2026

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatednpm/​babel-preset-expo@​13.2.4 ⏵ 54.0.997 +24100100 +1100100

View full report

@cimigree cimigree requested a review from ErikSin January 28, 2026 21:54
@ErikSin
Copy link
Contributor

ErikSin commented Jan 29, 2026

For posteristy, as discussed during the meeting, we should attempt to upgrade our node environment to the lts node release (v24).

@awana-lockfile-bot
Copy link

src/backend/package-lock.json changes

Summary

Status Count
ADDED 25
Click to toggle table visibility
Name Status Previous Current
@esbuild/aix-ppc64 ADDED - 0.25.5
@esbuild/android-arm ADDED - 0.25.5
@esbuild/android-arm64 ADDED - 0.25.5
@esbuild/android-x64 ADDED - 0.25.5
@esbuild/darwin-arm64 ADDED - 0.25.5
@esbuild/darwin-x64 ADDED - 0.25.5
@esbuild/freebsd-arm64 ADDED - 0.25.5
@esbuild/freebsd-x64 ADDED - 0.25.5
@esbuild/linux-arm ADDED - 0.25.5
@esbuild/linux-arm64 ADDED - 0.25.5
@esbuild/linux-ia32 ADDED - 0.25.5
@esbuild/linux-loong64 ADDED - 0.25.5
@esbuild/linux-mips64el ADDED - 0.25.5
@esbuild/linux-ppc64 ADDED - 0.25.5
@esbuild/linux-riscv64 ADDED - 0.25.5
@esbuild/linux-s390x ADDED - 0.25.5
@esbuild/linux-x64 ADDED - 0.25.5
@esbuild/netbsd-arm64 ADDED - 0.25.5
@esbuild/netbsd-x64 ADDED - 0.25.5
@esbuild/openbsd-arm64 ADDED - 0.25.5
@esbuild/openbsd-x64 ADDED - 0.25.5
@esbuild/sunos-x64 ADDED - 0.25.5
@esbuild/win32-arm64 ADDED - 0.25.5
@esbuild/win32-ia32 ADDED - 0.25.5
@esbuild/win32-x64 ADDED - 0.25.5

@socket-security
Copy link

socket-security bot commented Feb 3, 2026

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn Critical
Critical CVE: npm @isaacs/brace-expansion has Uncontrolled Resource Consumption

CVE: GHSA-7h2j-956f-4vf2 @isaacs/brace-expansion has Uncontrolled Resource Consumption (CRITICAL)

Affected versions: < 5.0.1

Patched version: 5.0.1

From: package-lock.jsonnpm/@isaacs/brace-expansion@5.0.0

ℹ Read more on: This package | This alert | What is a critical CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known critical CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@isaacs/brace-expansion@5.0.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@cimigree
Copy link
Contributor Author

cimigree commented Feb 3, 2026

Also Upgraded to Node 24
Updated the .nvmrc
I also had to update the build-translations.mjs file because In Node 24, the path property was removed from Dirent objects. This means file.path now returns undefined, which causes errors when trying to use it with path.join().

@ErikSin
Copy link
Contributor

ErikSin commented Feb 3, 2026

Also Upgraded to Node 24
Updated the .nvmrc

Im pleasantly surprised that went without a hitch. I was expecting all the CI to break!

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.

Upgrade to Expo 54 Fix flaky e2e tests

3 participants