-
-
Notifications
You must be signed in to change notification settings - Fork 67
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
Feature/update-expo-to-51 #539
Conversation
3d55c96
to
e02a385
Compare
Quality Gate passedIssues Measures |
So this error is occurring before any testing actually happens,
Reviewing detailed test results, this shows up:
|
This is the part that has me particularly concerned:
This seems to imply that mismatched versions of react can create this issue, and |
... chasing this down further, it looks like if we update to Observer decorators (speaking with little experience with mobx here so I'm probably going to get some stuff wrong) were moved into either export default class Foo {
this.property = 'wahtever'
constructor() {
makeObservable(this, {
property: [ ignore, observable ]
})
}
} mobx@6 does not like the @thornbill -- What does Broken code here if you wanna look... https://github.com/enigma0Z/jellyfin-expo/tree/feature/update-expo-to-15-update-mobx |
So, after even MORE digging, updating Jest / RN testing libraries, I think that the "invalid string length" errors are coming from a circular dependency in a component, as best as I can tell either generated by mobx or caused by uupdating underlying code. All of the "invalid string length"'s stack traces (yay yes the actually have traces now) look like this now.
|
I would also add that chasing this down is mostly so i can do development on my iPhone, though the tests here are failing, the expo go app apparently works on iPhone |
Hey @enigma0Z, it is awesome to see you are interested in contributing here! I now have access to a modern Mac for development, so I am no longer blocked from making some of the necessary changes here. 🎉 As you discovered, we really need to deal with the In some other projects I started using
|
Yeah, the expo update has been a bit of a goofy nightmare of weirdly conflicting deps, but I think mobx is at the core of them, mostly that mobx-sync(-lite) wants react 16.x and Expo 51 wants react 18.x. I'll look at zustand of Expo 51 and see if I can maybe front-load some of the migration work. If I get anywhere reasonable you'll see a new PR. |
…store setups to use `_get` and `_set` for future prep
…tive or something similar -- this only happens in ts files
3df8129
to
209a2ac
Compare
Quality Gate passedIssues Measures |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR is being closed; it's based on an out-of-date branch of code and will be superseded by expo 52.
Rationale: to do new local development, current version of Expo Go from iOS app store only supports SDK 51, therefore expo must be updated to 51
Update packages
Additional changes
(TBD until PR is complete)
platform-
prefix (e.g.ios-cog
becomescog
)TODO
ErrorScreen.test.js
ServerInput.test.js
decorate()
orobserve()
is triggering hooks badly w/ update expo & updated reactRefreshWebView.test.js
NativeShellWebView.test.js
ServerStoreTest.js
->expect(URL).toBeInstanceOf(URL)
URL
-- best I can guess it's some object losding issue (like in Java where different classpaths can have the same class but it won't evaluate as the same