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

example: revive react native example #4164

Merged
merged 11 commits into from
Jan 5, 2023

Conversation

giacomocerquone
Copy link
Contributor

@giacomocerquone giacomocerquone commented Oct 22, 2022

Wow, this monorepo is a bit of a nightmare sadly 😞
I'm so sorry for that lock but I've done everything correctly as requested by the contributing.md (using corepack, yarn 3.2.2 and so on) and I actually just moved a couple of dependencies.

So, continuing after what I commented on #3533 I'm trying to revive the react native implementation which is also a total nightmare.

  1. eslint is screwed for some reason I still have to investigate, therefore I disabled it for now
  2. I've brought expo to SDK 43 which is the one that has simplified monorepo support. In fact, I've also customized the initial standard boilerplate a bit otherwise it wouldn't start.
  3. I tried, for now, to keep all the old code I could keep in order to be faster in getting back up the entire project. Therefore the UI is the same as well as the code (still class components and so on)
  4. I believe it's essential that if you have the will to accept pull requests to support react-native again, we need to break the work into multiple separate prs otherwise: either it'll be an infinite mess or there won't be any work at all, since difficulties will arise.

In fact, this code I'm pushing does work in the sense that the following application starts, but then I'm encountering some error in uppy's core, regarding the usage of the tus browser wrapper that uses standard browser features unavailable to react-native of course:

Schermata 2022-10-22 alle 02 29 18

App screens

Schermata 2022-10-22 alle 02 37 19

Schermata 2022-10-22 alle 02 37 39

What are your thoughts?

@giacomocerquone giacomocerquone changed the title examples: revive react native example example: revive react native example Oct 22, 2022
Copy link
Member

@Murderlon Murderlon left a comment

Choose a reason for hiding this comment

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

Thanks for taking the time to contribute!

Wow, this monorepo is a bit of a nightmare sadly 😞

It's not the easiest, but Uppy is a complex project.

eslint is screwed for some reason I still have to investigate, therefore I disabled it for now

I don't think we should disable it for this example. What exactly went wrong?

In fact, this code I'm pushing does work in the sense that the following application starts, but then I'm encountering some error in uppy's core, regarding the usage of the tus browser wrapper that uses standard browser features unavailable to react-native of course:

Unfortunately I have never worked with React Native nor the Uppy plugin for it. If uploaders don't work, we should take a look at that indeed.

examples/react-native-expo/App.js Outdated Show resolved Hide resolved
@giacomocerquone
Copy link
Contributor Author

Sorry for having paused this. Tomorrow I'll give it a go 😃

I'll start with the linter and follow to rewrite the entire project

@giacomocerquone
Copy link
Contributor Author

giacomocerquone commented Nov 1, 2022

Linting is ok now.
Importing @uppy/react within the App.js file and using the useUppy hooks, breaks metro with this error:

image

Having said this, I don't know if it's a smart choice to import @uppy/react within the react native example since I don't know if it's platform agnostic (that is, doesn't use any browser API).
Should I rollout a useUppy hook within the uppy/react-native lib? Even if it would be the same hook used also in uppy/react

Any thoughts? @Murderlon

@Murderlon
Copy link
Member

Thanks for looking into this again.

Importing @uppy/react within the App.js file and using the useUppy hooks, breaks metro with this error:

This comes from the thumbnail generator, which indeed uses browser APIs. If no browser APIs are possible in react native, I'm unsure about the value of @uppy/react-native at all as you wouldn't be able to import our components?

@giacomocerquone
Copy link
Contributor Author

giacomocerquone commented Nov 1, 2022

Thanks for looking into this again.

Importing @uppy/react within the App.js file and using the useUppy hooks, breaks metro with this error:

This comes from the thumbnail generator, which indeed uses browser APIs. If no browser APIs are possible in react native, I'm unsure about the value of @uppy/react-native at all as you wouldn't be able to import our components?

I don't completely disagree but:

  1. First thing I want to say is that @uppy/react should be platform-agnostic IMHO, whereas instead uppy core should support multiple platforms.

  2. The value added by @uppy/react-native is in the abstraction built above those expo libraries that simplify the development of an uploading feature for the developer. In fact, all that lib does, right now, is to export a FilePicker (which is no obvious thing like it is instead on web).

  3. At the same time though, providing this abstraction can be problematic for you (because require quite a good amount of maintenance) and might be not that useful to the developers (because it may not be sufficiently extensible, etc.)

So, I'd remove the uppy/react-native package as a whole, make uppy/react agnostic (do you think it's easily possible?), and then we'll be able to provide users a react-native-expo example that makes direct use of the expo document picker and so on, leaving it then to the users so that you would automatically also "support" react-native standalone projects.

If we agree on all, I'd pause this pr (leaving it open) and open a new pr to remove browser apis dependency from uppy/react (or at least implement conditions so that if the code is not run in a browser, it can still be imported, which would also be beneficial for server side components or server side rendered applications I suspect)

@giacomocerquone
Copy link
Contributor Author

giacomocerquone commented Nov 1, 2022

I have some doubts though since your @uppy/react took the same direction as @uppy/react-native. That is, providing UI components that "automagically" handle uploads. For this reason I think it's quite hard to make @uppy/react platform agnostic 😞

@Murderlon
Copy link
Member

It's impossible to make @uppy/react agnostic for browser and react-native AFAIK. The package exists for a reason, because react-native alternatives need to be used to pass things to uppy. In case of uploading and UIs, there are simply to many browser APIs required. We can't strip them out and we're not going to load both in the bundle.

@giacomocerquone
Copy link
Contributor Author

It's impossible to make @uppy/react agnostic for browser and react-native AFAIK. The package exists for a reason, because react-native alternatives need to be used to pass things to uppy. In case of uploading and UIs, there are simply to many browser APIs required. We can't strip them out and we're not going to load both in the bundle.

then the easiest solution is to rollout a complete ad-hoc solution for react native based on what's available right now.
If this solution means, among many things, providing a useUppy hook, we create one in the react-native package. That's it 🙂

@giacomocerquone
Copy link
Contributor Author

giacomocerquone commented Nov 1, 2022

Also to keep a cohesive experience, we could divide browser-tied features and non-browser features of the uppy/react package so as to replicate just the seconds (for now) in uppy/react-native's package.

AFAIK, the only non-browser-based feature in uppy/react is the useUppy hook, since all the others are components to be run in web, right?

Comment on lines +331 to +338
rules: {
'no-unused-vars': [
'error',
{
'varsIgnorePattern': 'React',
},
],
},
Copy link
Contributor Author

@giacomocerquone giacomocerquone Nov 1, 2022

Choose a reason for hiding this comment

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

within the react-native-expo example "React" is considered an unused var, but if it's removed I get the following error.
The fix should actually be smarter and not just a rule exclusion

Simulator Screen Shot - iPhone 12 Pro Max - 2022-11-01 at 16 50 52

@Murderlon
Copy link
Member

AFAIK, the only non-browser-based feature in uppy/react is the useUppy hook, since all the others are components to be run in web, right?

I don't understand why the useUppy hook wouldn't work? It doesn't use any browser APIs? Furthermore, all other components won't work in React Native because all they do is simply import their vanilla JS versions, which use a ton of browser APIs

@giacomocerquone
Copy link
Contributor Author

giacomocerquone commented Nov 1, 2022

AFAIK, the only non-browser-based feature in uppy/react is the useUppy hook, since all the others are components to be run in web, right?

I don't understand why the useUppy hook wouldn't work? It doesn't use any browser APIs? Furthermore, all other components won't work in React Native because all they do is simply import their vanilla JS versions, which use a ton of browser APIs

Maybe I didn't explain myself clearly in that message but never mind.
useUppy doesn't work because at the exact moment the entire @uppy/react package is imported, some browser stuff is triggered. Maybe we can understand why, I suspect it's something related to the dashboard component

@Murderlon
Copy link
Member

Interesting, that shouldn't happen. I think a direct import should fix this for now btw ('@uppy/react/lib/useUppy'). But perhaps an exports map in @uppy/react's package.json will resolve this.

@giacomocerquone
Copy link
Contributor Author

giacomocerquone commented Nov 1, 2022

Interesting, that shouldn't happen. I think a direct import should fix this for now btw ('@uppy/react/lib/useUppy'). But perhaps an exports map in @uppy/react's package.json will resolve this.

Nice tip, now it works.

This is the reason why it doesn't work without a direct import: facebook/metro#535

Metro wasn't able to import mjs files and the cascade imports are: @uppy/react -> @uppy/dashboard -> Dashboard.jsx -> thumbnail-generator -> index.js -> exifr/dist/mini.esm.mjs

image

@Murderlon
Copy link
Member

Great! so were does that leave us, any unresolved issues for now?

@giacomocerquone
Copy link
Contributor Author

giacomocerquone commented Nov 12, 2022

Ok I'm missing one last thing which is to update the permissions handling with the new document picker and imagepicker expo libs!
Do that today and then we might be good to go for this first pr

@Murderlon
Copy link
Member

@giacomocerquone hi, do you have time to get this over the finish line?

@giacomocerquone
Copy link
Contributor Author

@giacomocerquone hi, do you have time to get this over the finish line?

Yes, let me try to work on it during the holidays

@socket-security
Copy link

socket-security bot commented Jan 4, 2023

Socket Security Pull Request Report

👍 No new dependency issues detected in pull request

Pull request report summary
Issue Status
Install scripts ✅ 0 issues
Native code ✅ 0 issues
Bin script confusion ✅ 0 issues
Bin script shell injection ✅ 0 issues
Unresolved require ✅ 0 issues
Invalid package.json ✅ 0 issues
HTTP dependency ✅ 0 issues
Git dependency ✅ 0 issues
Potential typo squat ✅ 0 issues
Known Malware ✅ 0 issues
Telemetry ✅ 0 issues
Protestware/Troll package ✅ 0 issues
Bot Commands

To ignore an alert, reply with a comment starting with @SocketSecurity ignore followed by a space separated list of package-name@version specifiers. e.g. @SocketSecurity ignore foo@1.0.0 bar@2.4.2

Ignoring: @react-native-community/cli@5.0.1, react-native@0.64.3

Powered by socket.dev

@giacomocerquone
Copy link
Contributor Author

giacomocerquone commented Jan 4, 2023

ok, this should be it... at least the first phase of putting the whole react-native integration back up is done.
More checks need to be done for sure to have a fully working integration, but for now I think we're good to merge this so to split the entire work a bit :)

Screenshot 2023-01-04 alle 23 35 41

@Murderlon lemmeknow

Copy link
Member

@Murderlon Murderlon left a comment

Choose a reason for hiding this comment

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

Thanks a lot for this

@Murderlon
Copy link
Member

Is there anything to be done about the "bin script confusion" mentioned above?

The build is also failing: https://github.com/transloadit/uppy/actions/runs/3842153130/jobs/6549865412

@giacomocerquone
Copy link
Contributor Author

giacomocerquone commented Jan 5, 2023

Is there anything to be done about the "bin script confusion" mentioned above?

The build is also failing: https://github.com/transloadit/uppy/actions/runs/3842153130/jobs/6549865412

ok the build seems to fail because, at a certain point in history, you grouped all the examples under the @uppy-example namespace leaving the react-native-expo out of this! Just commited it, let's see if it solves the problems (I tried locally and it did)

@giacomocerquone
Copy link
Contributor Author

giacomocerquone commented Jan 5, 2023

now the only thing that fails is this https://github.com/transloadit/uppy/actions/runs/3845686273/jobs/6550311324

which, running it locally, complaints about a lockfile change which is normal since we went from react-native-expo to @uppy-examples/react-native-expo

console output
corepack yarn install --immutable --mode=skip-build
➤ YN0000: ┌ Resolution step
➤ YN0002: │ @angular-eslint/schematics@npm:14.0.3 [78f64] doesn't provide eslint (p7496d), requested by @angular-eslint/eslint-plugin
➤ YN0002: │ @angular-eslint/schematics@npm:14.0.3 [78f64] doesn't provide eslint (p09631), requested by @angular-eslint/eslint-plugin-template
➤ YN0002: │ @angular-eslint/schematics@npm:14.0.3 [78f64] doesn't provide typescript (p4720a), requested by @angular-eslint/eslint-plugin
➤ YN0002: │ @angular-eslint/schematics@npm:14.0.3 [78f64] doesn't provide typescript (p5f4e5), requested by @angular-eslint/eslint-plugin-template
➤ YN0002: │ @devtools-ds/themes@npm:1.2.0 [98698] doesn't provide react-dom (p0f7fa), requested by @design-systems/utils
➤ YN0002: │ @nrwl/devkit@npm:14.5.10 [d8d3a] doesn't provide typescript (p0d7f1), requested by @phenomnomnominal/tsquery
➤ YN0002: │ @octokit/rest@npm:16.43.1 doesn't provide @octokit/core (pdb8a3), requested by @octokit/plugin-request-log
➤ YN0002: │ @parcel/optimizer-image@npm:2.7.0 doesn't provide @parcel/core (pf9360), requested by @parcel/workers
➤ YN0002: │ @parcel/types@npm:2.7.0 doesn't provide @parcel/core (pa5a51), requested by @parcel/fs
➤ YN0002: │ @parcel/types@npm:2.7.0 doesn't provide @parcel/core (p94745), requested by @parcel/workers
➤ YN0002: │ @parcel/types@npm:2.7.0 doesn't provide @parcel/core (p655b2), requested by @parcel/cache
➤ YN0002: │ @parcel/types@npm:2.7.0 doesn't provide @parcel/core (pdf45c), requested by @parcel/package-manager
➤ YN0002: │ @storybook/addon-docs@npm:6.5.10 [0bfff] doesn't provide @babel/core (p4c1e7), requested by @babel/preset-env
➤ YN0002: │ @storybook/addon-docs@npm:6.5.10 [0bfff] doesn't provide @babel/core (p4d1b9), requested by @babel/plugin-transform-react-jsx
➤ YN0002: │ @storybook/addon-docs@npm:6.5.10 [0bfff] doesn't provide @babel/core (p6be02), requested by babel-loader
➤ YN0002: │ @storybook/addon-docs@npm:6.5.10 [0bfff] doesn't provide webpack (p7a391), requested by babel-loader
➤ YN0002: │ @storybook/instrumenter@npm:6.5.10 doesn't provide react (p5478e), requested by @storybook/addons
➤ YN0002: │ @storybook/instrumenter@npm:6.5.10 doesn't provide react-dom (p664ad), requested by @storybook/addons
➤ YN0002: │ @storybook/mdx1-csf@npm:0.0.1 doesn't provide @babel/core (pee3a8), requested by @babel/preset-env
➤ YN0060: │ @uppy-dev/build@workspace:. provides eslint (pea67c) with version 8.23.0, which doesn't satisfy what eslint-config-transloadit and some of its descendants request
➤ YN0060: │ @uppy-dev/build@workspace:. provides eslint-plugin-jest (p72c8f) with version 26.9.0, which doesn't satisfy what eslint-config-transloadit requests
➤ YN0060: │ @uppy-dev/build@workspace:. provides eslint-plugin-promise (p45a3c) with version 6.0.1, which doesn't satisfy what eslint-config-transloadit requests
➤ YN0002: │ @uppy-dev/dev@workspace:private/dev doesn't provide postcss (pc9fe1), requested by autoprefixer
➤ YN0002: │ @uppy-dev/dev@workspace:private/dev doesn't provide postcss (p55999), requested by postcss-dir-pseudo-class
➤ YN0002: │ @uppy-dev/dev@workspace:private/dev doesn't provide postcss (pbe4b0), requested by postcss-logical
➤ YN0002: │ @uppy-example/angular@workspace:examples/angular-example doesn't provide @uppy/dashboard (p072d7), requested by @uppy/angular
➤ YN0002: │ @uppy-example/angular@workspace:examples/angular-example doesn't provide @uppy/status-bar (p07d40), requested by @uppy/angular
➤ YN0002: │ @uppy-example/angular@workspace:examples/angular-example doesn't provide @uppy/utils (pd4f95), requested by @uppy/angular
➤ YN0002: │ @uppy-example/react-native-expo@workspace:examples/react-native-expo doesn't provide preact (pa46cd), requested by preact-render-to-string
➤ YN0060: │ @uppy-example/react@workspace:examples/react-example provides vite (p739a0) with version 4.0.0, which doesn't satisfy what @vitejs/plugin-react requests
➤ YN0002: │ @uppy-example/svelte-app@workspace:examples/svelte-example doesn't provide @uppy/dashboard (p32c53), requested by @uppy/svelte
➤ YN0002: │ @uppy-example/svelte-app@workspace:examples/svelte-example doesn't provide @uppy/drag-drop (p26e12), requested by @uppy/svelte
➤ YN0002: │ @uppy-example/svelte-app@workspace:examples/svelte-example doesn't provide @uppy/progress-bar (p75b9a), requested by @uppy/svelte
➤ YN0002: │ @uppy-example/svelte-app@workspace:examples/svelte-example doesn't provide @uppy/status-bar (p73041), requested by @uppy/svelte
➤ YN0060: │ @uppy-example/vue2@workspace:examples/vue provides vite (p40da4) with version 4.0.0, which doesn't satisfy what vite-plugin-vue2 requests
➤ YN0060: │ @uppy-example/vue3@workspace:examples/vue3 provides vite (p8deaf) with version 4.0.0, which doesn't satisfy what @vitejs/plugin-vue requests
➤ YN0002: │ angular@workspace:packages/@uppy/angular doesn't provide @angular-devkit/architect (p4c781), requested by @storybook/angular
➤ YN0002: │ angular@workspace:packages/@uppy/angular doesn't provide @angular-devkit/core (p6fab1), requested by @storybook/angular
➤ YN0060: │ angular@workspace:packages/@uppy/angular provides @angular/compiler-cli (p9e1b5) with version 14.2.0, which doesn't satisfy what ng-packagr requests
➤ YN0060: │ angular@workspace:packages/@uppy/angular provides ng-packagr (p7a414) with version 13.3.1, which doesn't satisfy what @angular-devkit/build-angular requests
➤ YN0002: │ angular@workspace:packages/@uppy/angular doesn't provide react (pafd0c), requested by @storybook/builder-webpack5
➤ YN0002: │ angular@workspace:packages/@uppy/angular doesn't provide react (p00cd8), requested by @storybook/manager-webpack5
➤ YN0002: │ angular@workspace:packages/@uppy/angular doesn't provide react-dom (p18ab4), requested by @storybook/builder-webpack5
➤ YN0002: │ angular@workspace:packages/@uppy/angular doesn't provide react-dom (p90a66), requested by @storybook/manager-webpack5
➤ YN0060: │ angular@workspace:packages/@uppy/angular provides typescript (p22b21) with version 4.8.2, which doesn't satisfy what ng-packagr requests
➤ YN0002: │ angular@workspace:packages/@uppy/angular doesn't provide webpack (p93620), requested by babel-loader
➤ YN0002: │ babel-preset-expo@npm:8.5.1 doesn't provide @babel/core (pa6208), requested by @babel/plugin-proposal-decorators
➤ YN0002: │ babel-preset-expo@npm:8.5.1 doesn't provide @babel/core (p73c84), requested by @babel/plugin-transform-react-jsx
➤ YN0002: │ babel-preset-expo@npm:8.5.1 doesn't provide @babel/core (p9d506), requested by @babel/preset-env
➤ YN0002: │ react-native-codegen@npm:0.0.6 doesn't provide @babel/preset-env (p07980), requested by jscodeshift
➤ YN0002: │ uppy.io@workspace:website doesn't provide postcss (p66411), requested by autoprefixer
➤ YN0002: │ uppy.io@workspace:website doesn't provide postcss (p05fd6), requested by @aduh95/hexo-renderer-postcss
➤ YN0002: │ uppy.io@workspace:website doesn't provide postcss (pdca4f), requested by cssnano
➤ YN0002: │ uppy.io@workspace:website doesn't provide postcss (p148ac), requested by postcss-inline-svg
➤ YN0000: │ Some peer dependencies are incorrectly met; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code
➤ YN0000: └ Completed in 1s 251ms

➤ YN0000: ┌ Post-resolution validation
➤ YN0000: │ @@ -8514,8 +8514,34 @@
➤ YN0000: │      vite: ^4.0.0
➤ YN0000: │    languageName: unknown
➤ YN0000: │    linkType: soft
➤ YN0000: │  
➤ YN0028: │ +"@uppy-example/react-native-expo@workspace:examples/react-native-expo":
➤ YN0028: │ +  version: 0.0.0-use.local
➤ YN0028: │ +  resolution: "@uppy-example/react-native-expo@workspace:examples/react-native-expo"
➤ YN0028: │ +  dependencies:
➤ YN0028: │ +    "@babel/core": ^7.12.9
➤ YN0028: │ +    "@react-native-async-storage/async-storage": ~1.15.0
➤ YN0028: │ +    "@uppy/core": "workspace:*"
➤ YN0028: │ +    "@uppy/dashboard": "workspace:*"
➤ YN0028: │ +    "@uppy/instagram": "workspace:*"
➤ YN0028: │ +    "@uppy/react": "workspace:*"
➤ YN0028: │ +    "@uppy/react-native": "workspace:*"
➤ YN0028: │ +    "@uppy/tus": "workspace:*"
➤ YN0028: │ +    "@uppy/url": "workspace:*"
➤ YN0028: │ +    "@uppy/xhr-upload": "workspace:*"
➤ YN0028: │ +    base64-js: ^1.3.0
➤ YN0028: │ +    expo: ~43.0.2
➤ YN0028: │ +    expo-file-system: ~13.0.3
➤ YN0028: │ +    expo-status-bar: ~1.1.0
➤ YN0028: │ +    preact-render-to-string: ^5.1.0
➤ YN0028: │ +    react: 17.0.1
➤ YN0028: │ +    react-dom: 17.0.1
➤ YN0028: │ +    react-native: 0.64.3
➤ YN0028: │ +    react-native-web: 0.17.1
➤ YN0028: │ +  languageName: unknown
➤ YN0028: │ +  linkType: soft
➤ YN0028: │ +
➤ YN0000: │  "@uppy-example/react@workspace:examples/react-example":
➤ YN0000: │    version: 0.0.0-use.local
➤ YN0000: │    resolution: "@uppy-example/react@workspace:examples/react-example"
➤ YN0000: │    dependencies:
➤ YN0000: │ @@ -30209,34 +30235,8 @@
➤ YN0000: │    checksum: 545d1e416be5bd0bc27a9bc4d58719317577fbcb38f80082857142f4946ba336df3f5fa3e87137709691acd809ee46e1f52834648399cb50219a70f441d6e6a3
➤ YN0000: │    languageName: node
➤ YN0000: │    linkType: hard
➤ YN0000: │  
➤ YN0028: │ -"react-native-expo@workspace:examples/react-native-expo":
➤ YN0028: │ -  version: 0.0.0-use.local
➤ YN0028: │ -  resolution: "react-native-expo@workspace:examples/react-native-expo"
➤ YN0028: │ -  dependencies:
➤ YN0028: │ -    "@babel/core": ^7.12.9
➤ YN0028: │ -    "@react-native-async-storage/async-storage": ~1.15.0
➤ YN0028: │ -    "@uppy/core": "workspace:*"
➤ YN0028: │ -    "@uppy/dashboard": "workspace:*"
➤ YN0028: │ -    "@uppy/instagram": "workspace:*"
➤ YN0028: │ -    "@uppy/react": "workspace:*"
➤ YN0028: │ -    "@uppy/react-native": "workspace:*"
➤ YN0028: │ -    "@uppy/tus": "workspace:*"
➤ YN0028: │ -    "@uppy/url": "workspace:*"
➤ YN0028: │ -    "@uppy/xhr-upload": "workspace:*"
➤ YN0028: │ -    base64-js: ^1.3.0
➤ YN0028: │ -    expo: ~43.0.2
➤ YN0028: │ -    expo-file-system: ~13.0.3
➤ YN0028: │ -    expo-status-bar: ~1.1.0
➤ YN0028: │ -    preact-render-to-string: ^5.1.0
➤ YN0028: │ -    react: 17.0.1
➤ YN0028: │ -    react-dom: 17.0.1
➤ YN0028: │ -    react-native: 0.64.3
➤ YN0028: │ -    react-native-web: 0.17.1
➤ YN0028: │ -  languageName: unknown
➤ YN0028: │ -  linkType: soft
➤ YN0028: │ -
➤ YN0000: │  "react-native-super-grid@npm:*":
➤ YN0000: │    version: 4.6.1
➤ YN0000: │    resolution: "react-native-super-grid@npm:4.6.1"
➤ YN0000: │    dependencies:
➤ YN0000: │ 
➤ YN0028: │ The lockfile would have been modified by this install, which is explicitly forbidden.
➤ YN0000: └ Completed in 0s 339ms
➤ YN0000: Failed with errors in 1s 612ms

@Murderlon
Copy link
Member

Did you perhaps forget to commit the updated yarn.lock after running yarn locally?

@giacomocerquone
Copy link
Contributor Author

giacomocerquone commented Jan 5, 2023

Did you perhaps forget to commit the updated yarn.lock after running yarn locally?

I actually did

2fc4daa

Even running the install though, as you can see from the console output, yarn doesn't allow me to locally change the lock since the install fails.

I really don't know yarn 3 much, is there a way to override this behaviour? For example like https://stackoverflow.com/a/67740771/2809729

UPDATE: Sorry, I was just reissuing the command launched by the ci that has the immutable flag :) Now I've correctly changed the lock launching the command locally without that flag

@Murderlon
Copy link
Member

The tests pass now. We only have that socket security warning. Not sure if we can do something about it or if we can ignore it?

@Murderlon
Copy link
Member

@SocketSecurity ignore @react-native-community/cli@5.0.1

@Murderlon
Copy link
Member

@SocketSecurity ignore react-native@0.64.3

@Murderlon Murderlon merged commit 38dfb70 into transloadit:main Jan 5, 2023
@Murderlon
Copy link
Member

🎉

@giacomocerquone giacomocerquone deleted the react-native-fixes branch January 5, 2023 11:13
@github-actions github-actions bot mentioned this pull request Jan 26, 2023
github-actions bot added a commit that referenced this pull request Jan 26, 2023
| Package                | Version | Package                | Version |
| ---------------------- | ------- | ---------------------- | ------- |
| @uppy/audio            |   1.0.3 | @uppy/locales          |   3.0.5 |
| @uppy/aws-s3           |   3.0.5 | @uppy/react            |   3.1.0 |
| @uppy/aws-s3-multipart |   3.1.2 | @uppy/react-native     |   0.5.0 |
| @uppy/companion        |   4.2.0 | @uppy/transloadit      |   3.1.0 |
| @uppy/core             |   3.0.5 | @uppy/utils            |   5.1.2 |
| @uppy/dashboard        |   3.2.1 | uppy                   |   3.4.0 |

- @uppy/utils: better fallbacks for the drag & drop API (Antoine du Hamel / #4260)
- @uppy/core: fix metafields validation when used as function (Merlijn Vos / #4276)
- @uppy/companion: allow customizing express session prefix (Mikael Finstad / #4249)
- meta: Fix comment about COMPANION_PATH (Collin Allen / #4279)
- @uppy/companion: Fix typo in KUBERNETES.md (Collin Allen / #4277)
- @uppy/locales: update zh_TW.js (5idereal / #4270)
- meta: ci: make sure Yarn's global cache is disabled (Antoine du Hamel / #4268)
- @uppy/aws-s3-multipart: fix metadata shape (Antoine du Hamel / #4267)
- meta: example: add multipart support to `aws-nodejs` (Antoine du Hamel / #4257)
- @uppy/react-native: example: revive React Native example (Giacomo Cerquone / #4164)
- @uppy/utils: Fix getSpeed type (referenced `bytesTotal` instead of `uploadStarted`) (Pascal Wengerter / #4263)
- @uppy/companion: document how to run many instances (Mikael Finstad / #4227)
- @uppy/aws-s3-multipart: add support for `allowedMetaFields` option (Antoine du Hamel / #4215)
- meta: Fix indentation in generate-test.mjs (Youssef Victor / #4181)
- @uppy/react: deprecate `useUppy` (Merlijn Vos / #4223)
- meta: fix typo in README.md (Fuad Herac / #4254)
- meta: Don’t close stale issues automatically (Artur Paikin / #4246)
- meta: upgrade to Vite 4 and ESBuild 0.16 (Antoine du Hamel / #4243)
- @uppy/audio: @uppy/audio fix typo in readme (elliotsayes / #4240)
- @uppy/aws-s3: fix: add https:// to digital oceans link (Le Gia Hoang / #4165)
- website: Simplify Dashboard code sample (Artur Paikin / #4197)
- @uppy/transloadit: introduce `assemblyOptions`, deprecate other options (Merlijn Vos / #4059)
- @uppy/core: fix typo in Uppy.test.js (Ikko Ashimine / #4235)
- @uppy/aws-s3-multipart: fix singPart type (Stefan Schonert / #4224)
HeavenFox pushed a commit to docsend/uppy that referenced this pull request Jun 27, 2023
| Package                | Version | Package                | Version |
| ---------------------- | ------- | ---------------------- | ------- |
| @uppy/audio            |   1.0.3 | @uppy/locales          |   3.0.5 |
| @uppy/aws-s3           |   3.0.5 | @uppy/react            |   3.1.0 |
| @uppy/aws-s3-multipart |   3.1.2 | @uppy/react-native     |   0.5.0 |
| @uppy/companion        |   4.2.0 | @uppy/transloadit      |   3.1.0 |
| @uppy/core             |   3.0.5 | @uppy/utils            |   5.1.2 |
| @uppy/dashboard        |   3.2.1 | uppy                   |   3.4.0 |

- @uppy/utils: better fallbacks for the drag & drop API (Antoine du Hamel / transloadit#4260)
- @uppy/core: fix metafields validation when used as function (Merlijn Vos / transloadit#4276)
- @uppy/companion: allow customizing express session prefix (Mikael Finstad / transloadit#4249)
- meta: Fix comment about COMPANION_PATH (Collin Allen / transloadit#4279)
- @uppy/companion: Fix typo in KUBERNETES.md (Collin Allen / transloadit#4277)
- @uppy/locales: update zh_TW.js (5idereal / transloadit#4270)
- meta: ci: make sure Yarn's global cache is disabled (Antoine du Hamel / transloadit#4268)
- @uppy/aws-s3-multipart: fix metadata shape (Antoine du Hamel / transloadit#4267)
- meta: example: add multipart support to `aws-nodejs` (Antoine du Hamel / transloadit#4257)
- @uppy/react-native: example: revive React Native example (Giacomo Cerquone / transloadit#4164)
- @uppy/utils: Fix getSpeed type (referenced `bytesTotal` instead of `uploadStarted`) (Pascal Wengerter / transloadit#4263)
- @uppy/companion: document how to run many instances (Mikael Finstad / transloadit#4227)
- @uppy/aws-s3-multipart: add support for `allowedMetaFields` option (Antoine du Hamel / transloadit#4215)
- meta: Fix indentation in generate-test.mjs (Youssef Victor / transloadit#4181)
- @uppy/react: deprecate `useUppy` (Merlijn Vos / transloadit#4223)
- meta: fix typo in README.md (Fuad Herac / transloadit#4254)
- meta: Don’t close stale issues automatically (Artur Paikin / transloadit#4246)
- meta: upgrade to Vite 4 and ESBuild 0.16 (Antoine du Hamel / transloadit#4243)
- @uppy/audio: @uppy/audio fix typo in readme (elliotsayes / transloadit#4240)
- @uppy/aws-s3: fix: add https:// to digital oceans link (Le Gia Hoang / transloadit#4165)
- website: Simplify Dashboard code sample (Artur Paikin / transloadit#4197)
- @uppy/transloadit: introduce `assemblyOptions`, deprecate other options (Merlijn Vos / transloadit#4059)
- @uppy/core: fix typo in Uppy.test.js (Ikko Ashimine / transloadit#4235)
- @uppy/aws-s3-multipart: fix singPart type (Stefan Schonert / transloadit#4224)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants