Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build(deps): update all dependencies to most-current possible #8262

Merged
merged 12 commits into from
Feb 5, 2025

Conversation

mikehardy
Copy link
Collaborator

@mikehardy mikehardy commented Feb 3, 2025

Description

This just brings our internal infrastructure and test app etc up to date.

REVIEWERS

Reviewers: look at this one commit by commit. Each commit is separate and does one thing. Review should be really easy that way

Step 1 ✅: update all dependencies to their highest version that is not a semver-major change

This gets the easy stuff out of the way and gives us a stable baseline for the harder semver-major work

Step 2 ✅: handle non-react-native semver-majors - this is to try to get a working baseline of any big changes before we bump react-native and it's related packages

  • node minimum requirements changed to v20 in some packages, updated github workflows etc
  • inquirer changed, forward-ported to new API
  • detox and firebase rules-unit-testing changed and our patches no longer applied, forward-ported patches
  • sinonjs changed but just needed a transitive dep addition of assert
  • coverage reporting on codecov seems to be acting up, may need investigation

Step 3 ✅ : bump react-native.

Looks like we're stuck on 0.76+ until react-native-macos catches up, as we need the main react-native and the out-of-tree react-native-macos platform to agree on their major version

Step 4 ✅ : bump all the lint stuff

Required some minor adjustments but nothing functional

Related issues

This should let us see what the original poster sees here:

Release Summary

All the commits will be conventional commits, but none of them will be one of the keywords that triggers release, they'll all be build(deps) or chore

Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
    • Yes
  • My change supports the following platforms;
    • Android
    • iOS
  • My change includes tests;
    • e2e tests added or updated in packages/\*\*/e2e
    • jest tests added or updated in packages/\*\*/__tests__
  • I have updated TypeScript types that are affected by my change.
  • This is a breaking change;
    • Yes
    • No

Test Plan

Lots and lots of testing. Currently step 1 passes local jest android and ios tests

Note: the functions tests disabled in the last commit need to be re-enabled and underlying issues fixed


Think react-native-firebase is great? Please consider supporting the project with any of the below:

Copy link

vercel bot commented Feb 3, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
react-native-firebase ✅ Ready (Inspect) Visit Preview 💬 Add feedback Feb 5, 2025 4:16am

@mikehardy mikehardy force-pushed the @mikehardy/update-dependencies branch from 2a20220 to 8785de0 Compare February 3, 2025 21:21
@mikehardy mikehardy force-pushed the @mikehardy/update-dependencies branch from 1bd1641 to 1848676 Compare February 4, 2025 03:58
@mikehardy mikehardy force-pushed the @mikehardy/update-dependencies branch from 1848676 to 46fc4cf Compare February 4, 2025 12:51
@mikehardy mikehardy force-pushed the @mikehardy/update-dependencies branch from 46fc4cf to 26c3577 Compare February 4, 2025 23:23
@mikehardy mikehardy force-pushed the @mikehardy/update-dependencies branch from 96eef7e to d5aee4f Compare February 5, 2025 02:21
@mikehardy mikehardy force-pushed the @mikehardy/update-dependencies branch from 6f17963 to a24fc52 Compare February 5, 2025 04:00
@mikehardy mikehardy added the Workflow: Needs Review Pending feedback or review from a maintainer. label Feb 5, 2025
@mikehardy mikehardy force-pushed the @mikehardy/update-dependencies branch from a24fc52 to 2315bf5 Compare February 5, 2025 04:09
…ersion

These were the easy changes - though Detox patch file needed a forward-port

Additionally sinon must be pinned at 17.0.0, 17.0.1 does not work.
… node v20

most of the semver-majors appeared to be dropping support for node v16 and v18
this one has been pinned forever, nice to drift up to current finally
the required patch is very small, but the patch file itself contained
lots of codegen hunks - these apply cleanly but only on the current version,
as the version moves the patch file has many rejected hunks despite the core
fix we are trying to patch in continuing to work

removing the codegen hunks solves this

best way to generate a patch is to run a `./gradlew clean` in `tests/android`
and (after carefully saving your patched files just in case...) a `git clean -d -x -f`
in the node_modules directory to remove any generated files

then `npx patch-package <package name> --use-npm` (--use-npm is needed because
patch-package doesn't work with modern yarn yet to generate patches...)
- use 0.76: react-native-macos is still on 0.76 so 0.77+ not achievable yet
- 0.76.6 has a allowRecursiveCommitsWithSynchronousMountOnAndroid pick which fails, so use 0.76.5
- note new platform minimums: macos 11.0, iOS 15.1, android 24

This defers updates to eslint and typescript types - they are unblocked by the
react-native bump but they are major changes in their own right and will be performed
separately
this one can correctly find the nyc command so coverage tests run
without this detox never gets the ReactContext because the way to do
so changed completely with new architecture, and detox times out
… comply

there are always slight changes as you update, none of them were worth fighting
much vs changing except the no-unused-var one - I enforced that but ignored leading _ chars
just a devDependency for plugin generation...*should* be fine?
… issues

this should be fixed and reverted as soon as possible, but may be done outside this PR
Copy link
Member

@russellwheatley russellwheatley left a comment

Choose a reason for hiding this comment

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

LGTM. I guess next on the TODO is to fix functions package so we can unblock those e2e tests. Excellent work as ever, Mike 💯

@mikehardy
Copy link
Collaborator Author

@russellwheatley @MichaelVerdon

LGTM. I guess next on the TODO is to fix functions package so we can unblock those e2e tests. Excellent work as ever, Mike 💯

Thanks Russell - yeah, the very very next thing I'll do is immediately open a PR draft that has this as the base but reverts that commit and also brings your database test (which passes on old arch but should fail on new arch if the poster's information was accurate) - then we'll have all the new arch stuff at once. I think we'll all learn something figuring out why nulls are handled differently between old and new arch...

I don't feel proprietary about actually fixing it since I've got some other stuff cooking right now (Michael - you want to give it a shot?) but I can tee up the branch at least and then come back around to it in a few days if need be

@mikehardy mikehardy merged commit 86f7476 into main Feb 5, 2025
18 of 19 checks passed
@mikehardy mikehardy deleted the @mikehardy/update-dependencies branch February 5, 2025 15:42
@mikehardy mikehardy removed Workflow: Needs Review Pending feedback or review from a maintainer. Needs Attention labels Feb 5, 2025
@mikehardy mikehardy mentioned this pull request Feb 6, 2025
8 tasks
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.

3 participants