jellyfin / jellyfin-expo

Jellyfin Mobile for iOS
https://jellyfin.org
Mozilla Public License 2.0
292 stars 63 forks source link

Upgrade to expo 47 #515

Open snordmann opened 3 weeks ago

snordmann commented 3 weeks ago

Related to https://github.com/jellyfin/jellyfin-expo/issues/492

I am going to work on this PR in the next few days.

snordmann commented 3 weeks ago

damn expo got hands.

I tried now multiple things to update expo (well mainly expo-cli upgrade), and somehow the build or tests always break in unforeseen ways.

It'd be awesome, if somebody with familiarity in this codebase and/or expo could help me. Feel free to reach out to me!

thornbill commented 2 weeks ago

Yeah there are normally a few breaking changes in each version but the release notes typically document the needed changes pretty well.

snordmann commented 2 weeks ago

What I am currently wondering is: Do you just skip the dependency tree building in npm install with --force --legacy-peer-deps? It seems that most of the mobx dependencies expect react 16, but we are using react 18 already.

Is that normal? Should I npm install with --legacy-peer-deps enabled? How did you generate the package-lock?

snordmann commented 2 weeks ago

I have missed updating the devDependencies (esp. jest-expo to something that is compatible with version 47). After that upgrade I changed some of the snapshots to also include some new properties that are included (btw. I am now using npm install with the --legacy-peer-deps option).

The last error that I have a still pretty cryptic to me: PrettyFormatPluginError: Invalid string lengthRangeError: Invalid string length

This error is for the files:

I don't understand why only these test files (and snapshots) are affected. Is it because the snapshots are so small? Is is something else that differentiates these three tests from the others? I don't know, but I will find that out in the next week.