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

Support for new architecture and bridgeless #879

Open
5 tasks done
brentvatne opened this issue Mar 13, 2024 · 29 comments
Open
5 tasks done

Support for new architecture and bridgeless #879

brentvatne opened this issue Mar 13, 2024 · 29 comments
Labels
feature request A feature has been asked for or suggested by the community

Comments

@brentvatne
Copy link

brentvatne commented Mar 13, 2024

Checklist

  • I have looked into the Readme, Examples, and FAQ and have not found a suitable solution or answer.
  • I have looked into the API documentation and have not found a suitable solution or answer.
  • I have searched the issues and have not found a suitable solution or answer.
  • I have searched the Auth0 Community forums and have not found a suitable solution or answer.
  • I agree to the terms within the Auth0 Code of Conduct.

Describe the problem you'd like to have solved

Hi there! I'm working on supporting the roll out of the new architecture + bridgeless with Expo and Meta, and as part of that we identified which are the most popular native libraries on EAS Build to help prioritize which libraries to investigate. react-native-auth0 came up on that list. See the list on Google Sheets (request edit access if you'd like to update the status of react-native-auth0 after testing, or if you prefer to report back here on this issue it's fine too).

We want to start recommending folks try out the new architecture in the next release, react-native 0.74 / Expo SDK 51. Ideally we can get the ecosystem ready to switch over to the new architecture within the next few releases. So, we'll have from now until 0.74 release (before May) to give meta feedback on anything that might not be working as expected with the new arch/bridgeless enabled.

Folks at Meta would really appreciate it if you could test your libraries against the latest release and report any issues that you find. This new version enables an interop layer by default, so hopefully many things will just work, but the more off of the beaten path of a simple module / view that a library goes the more likely it is to encounter possible issues ;) The following gist includes a step by step process for how to test your library and report issues: https://gist.github.com/cipolleschi/82b7a9561b8861330efabbd3eb08c6f5.

Describe the ideal solution

react-native-auth0 works correctly with the new architecture enabled or disabled, and with bridgeless enabled or disabled, using React Native 0.74. More info in: https://gist.github.com/cipolleschi/82b7a9561b8861330efabbd3eb08c6f5.

Alternatives and current workarounds

No response

Additional context

No response

@brentvatne brentvatne added the feature request A feature has been asked for or suggested by the community label Mar 13, 2024
@chriszs
Copy link

chriszs commented Apr 12, 2024

Still experiencing #804, which was won't-fixed because New Arch was in beta. Believe New Arch will be the default in the React Native release after this one.

@brentvatne
Copy link
Author

@chriszs - that's the plan! for any maintainers here, please refer to reactwg/react-native-new-architecture#167 for more context

@kibiz0r
Copy link

kibiz0r commented Apr 18, 2024

@brentvatne If I grok that spreadsheet correctly, Auth0 is one of only 10 unique maintainers among the top 400 packages that hasn't started on new arch support?

@poovamraj Can we get this prioritized?

@chriszs
Copy link

chriszs commented Apr 19, 2024

As a test, I upgraded the example app to the latest 0.74 RC using the Test Your Library guide, enabled new arch (newArchEnabled=true) and then deleted the codegenConfig config key from package.json per the Interop Layer test instructions (since I didn't see TurboModule specs). That is, all I did was this:

  },
-  "codegenConfig": {
-    "name": "RNAuth0Spec",
-    "type": "modules",
-    "jsSrcsDir": "src"
-  },
  "husky": {

The example appears to work correctly on Android using 0.74 and new arch, though I haven't thoroughly tested it and it's possible I'm missing something.

This obviously isn't a full conversion to a TurboModule, it doesn't ensure compatibility with new arch on lower versions of React Native (unless the Interop Layer is explicitly enabled) and supposedly some day the Interop Layer will go away, but it does appear to work as a first step.

I wonder if a two-step approach would be to delete the codegen config, ensure the interop layer works, and then do a full conversion at a later date.

@brentvatne
Copy link
Author

@chriszs - I think that is a good approach! we're recommending releasing interop layer compat first, then migrating when you have time

@kibiz0r
Copy link

kibiz0r commented May 23, 2024

@desusai7 Can we please get this prioritized? This package has been our only blocker for new arch since January, and I've been trying to get some info on when/whether we can expect a first-party effort on it.

@chriszs
Copy link

chriszs commented May 23, 2024

I have the following in a patch-package patch:

diff --git a/node_modules/react-native-auth0/package.json b/node_modules/react-native-auth0/package.json
index 2b83dc3..500a8c6 100644
--- a/node_modules/react-native-auth0/package.json
+++ b/node_modules/react-native-auth0/package.json
@@ -201,11 +201,6 @@
       ]
     ]
   },
-  "codegenConfig": {
-    "name": "RNAuth0Spec",
-    "type": "modules",
-    "jsSrcsDir": "src"
-  },
   "husky": {
     "hooks": {
       "pre-commit": "pretty-quick --staged"

Which lets me circumvent the issue on my new arch branch enough to see that this sadly isn't the only blocker.

@desusai7
Copy link
Contributor

desusai7 commented Jun 6, 2024

Hi everyone,

Thank you for your patience. We apologize for any inconvenience caused. We are discussing this internally and will address it as part of version 4 of the SDK, which is already in progress.

We will keep you updated on our progress.

CC @brth31

@brentvatne
Copy link
Author

hi there! I just wanted to update you to let you know we are tracking new arch compatibility status in the official react-native library directory now: https://reactnative.directory/

you can add/modify entries for your libraries in react-native-libraries.json via a pull request (more info in readme).

@rodperottoni
Copy link

Hey team @ Auth0.

Is there any way you could open up the v4 branch so other people could contribute towards getting this out faster? Bridgeless brings incredible benefits to the ecosystem and anyone relying on Auth0 is currently unable to leverage it. In our app, Auth0 is the last module we're waiting on, and I'm sure it must be the same for other codebases around the world.

Thank you!

@rodperottoni
Copy link

Hello team @ Auth0. It's been 2 months since the last update you gave us on Bridgeless support for Auth0. For a paid service, it feels wrong that we're still left in the dark when it comes to bridgeless support. Could you please give us an update?

@desusai7
Copy link
Contributor

Hi @rodperottoni,

Thank you for your patience.

We are currently working on various improvements, including bridgeless support, as part of v4 of the Android SDK. This is planned, and we are actively focusing on it. We would love to see contributions from the community, as this would help us release bridgeless feature faster for everyone.

Your contributions via OSS would be greatly appreciated and would make a significant impact.

Thank you for your support!

@rodperottoni
Copy link

rodperottoni commented Aug 29, 2024 via email

@desusai7
Copy link
Contributor

desusai7 commented Sep 6, 2024

Hi @brentvatne,

You can target to this branch here

@blumk
Copy link

blumk commented Sep 11, 2024

@desusai7 React Native 0.76 will ship with new architecture enabled by default. Could you share an ETA of the v4 release with the community? Thank you!

https://github.com/facebook/react-native/releases/tag/v0.76.0-rc.0

@error-try-again
Copy link

Hi @rodperottoni,

Thank you for your patience.

We are currently working on various improvements, including bridgeless support, as part of v4 of the Android SDK. This is planned, and we are actively focusing on it. We would love to see contributions from the community, as this would help us release bridgeless feature faster for everyone.

Your contributions via OSS would be greatly appreciated and would make a significant impact.

Thank you for your support!

This has been an issue that has been brought up by the community multiple times over the past year; Well before 0.74 was released. Asking for volunteer support to help provide an implementation/fix, without an ETA, coming up to a major release that will completely break functionality for a paid live service is really concerning as someone who relies on the service to a support a growing user base. Any updates would be appreciated.

@rodperottoni
Copy link

@desusai7 any updates? The branch you tagged above has no activity whatsoever - is Auth0 simply expecting the community to really jump in and update their paid product?

@brth31
Copy link

brth31 commented Oct 24, 2024

Apologies for the radio silence! I'd like to share an update on this request:

Based on our analysis, porting to the new architecture is a fairly complex task. There are too many moving parts within the SDK and potential security issues to be taken into consideration. As a result, we need to spend more time to fully understand the differences between the interop and full conversion approaches. We will most likely have to weigh the pros and cons of both these approaches before deciding next steps here. We will be able to share more details by the end of November. Thank you for your patience!

@bednar
Copy link

bednar commented Oct 24, 2024

@brth31, just for your information, the newly released version of React Native, 0.76.0, has the new architecture enabled by default. You can find more details here: https://github.com/facebook/react-native/releases/tag/v0.76.0”

@chriszs
Copy link

chriszs commented Oct 24, 2024

The recommendation from the React Native project is to the use interop approach first.

@eduardo-santos-tribia
Copy link

@brth31 @desusai7 any plans on supporting the New Architecture and v0.76? I'm checking https://reactnative.directory and there is showing that the react-native-auth0 is not supporting the New Architecture. Would be good to have some updates from auth0 team to see if something is planned to happen soon or if we do have a workaround to enable us to update to the v0.76.

It's very frustrating that because of this library some customers cannot experience the benefits of the New Architecture.

@luizpcam
Copy link

luizpcam commented Oct 30, 2024

@eduardo-santos-tribia im same page with you and to use new architecture I gave up on react-native-auth0 and implemented my own authentication using Expo Auth Session. I’m still using Auth0, but I handle it manually by calling the authorize, logout, and oauth/token endpoints myself. I think the update to New Architecture for the react-native-auth0 package will take a while, based on the message from the Auth0 team.

@brth31
Copy link

brth31 commented Nov 5, 2024

@eduardo-santos-tribia @luizpcam apologies for the delay. We are currently exploring options. I will be able to share updates by the end of this month. Thanks for your patience!

@evanliveo
Copy link

Our team got stuck on this. Looking forward to updates!

@brth31
Copy link

brth31 commented Nov 15, 2024

Update: We will tentatively begin working on this by the first week of December. I will be able to share release timelines by mid December. Thanks for your patience, everyone!

@bednar
Copy link

bednar commented Nov 15, 2024

@brth31 thanks for awesome news!

@luizpcam
Copy link

@brth31 awesome ! 👍

@evanliveo
Copy link

Great news, thank you!

@JustynRoseRocket
Copy link

Great news!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request A feature has been asked for or suggested by the community
Projects
None yet
Development

No branches or pull requests