Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'. warning.[email protected] will released. Please see AndroidX Migration Plan@lbalmaceda please validate.
@Bardiamist Thanks for raising it. I'll add a task in our backlog to complete this. So far @cocojoe, this is not an issue so other things will take the priority.
For (1) we would need to migrate to latest gradle android plugin version and change "compile" to "implementation" on the 2 dependencies that we're requiring today.
For (2) we would need to change this dependency to the androidX custom tabs one, and in the package.json make explicit that we want to use react-native 0.6.0. However, as mentioned in the link you shared, people not using androidX yet would need to remain using react-native 0.5.9. This means that new features won't be available for them unless they migrate. We are not going to maintain 2 versions of this library nor release a new major because of this.
Android Studio warns about this:
Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
The problem is located in these lines
Maybe I can pull a PR but, I have a couple of questions before:
@cutiko I plan to update this but I'm currently working on a different PR. Actually, I can fix this right in the same PR.
For now please ignore the Android Studio warning. Nothing will break nor stop working.
@lbalmaceda glad I ask, I didn't want step on someone toes, thanks for the quick reply
I guess if I update the Gradle android plugin to the latest version that would make me update the react-native dependency to the first version that supports it. Isn't that going to break other users?
@lbalmaceda my good intentions didnt consider RN.
Just an outsider having an opinion here, but maybe you should wait then, because current RN version is broken for Android 0.60.0
I dont know in which version RN added implementation but since this is related to AndroidX. Current RN versions add jetifier, so it will be a correct update here on Auth0 but it will break because of RN.
Thanks @cutiko . Maybe that issue doesn't affect us (only on our dev stage). My concern is that this SDK doesn't specify a minimum RN required version in its package.json. It only expresses that in the readme.
However, in order to support androidX and bump the gradle plugin we need to migrate the project and probably its structure to the newer RN version (currently 0.60.0 as you pointed out). I did my research and migrating a project from older RN versions is a PITA. Still, I'm afraid that it might break users if they try to use this assuming-now-updated SDK in their old-RN-version apps.
I'm not a RN developer so I still have those doubts. Maybe someone can help me understand that better?
Why developers will update react-native-auth0 without updating react-native first?
Now a fresh created react native project can't usereact-native-auth0. react-native-auth0 should be updated.
I think best solution to have table in readme like this.
@lbalmaceda
I'm sorry, I miss understood
that would make me update the react-native dependency
Thought you would have to update react-native in the react-native-auth0 took a look at the package.json and realize my mistake
@Bardiamist is right
Yeah.. I don't see this coming in this next release though. As I mentioned, I checked how to update to newer RN versions from an existing old RN project and it's a PITA. They are still on 0.x so they probably want to keep breaking everything on every new release they make, sadly.
I appreciate your comments. I'll add AndroidX support on our backlog for a possible future major release of this SDK. I think that's the best approach, because we do follow semver (that's why a version table isn't the solution here), and because AndroidX is said to have incompatibilities with non-AndroidX dependencies from Google. Just note it's not our priority to provide this now.
WHAT? You are seriously going to backlog this when every single one of us that are on 0.60 are screwed? Common every other library in the world out there has updated... forcing all of us to update and you are going to pull the "well somebody may not upgrade" card? common. the people who aren't upgrading are already locked out of the eco-system because it's all or none.
ahhh man
We're using Auth0 with our mobile application, we deeply depend on that, we also pay Auth0 quite a good amount of money every month. It's extremely sad reading that there's no wish to update the library any soon.
This will make our application outdated which will have definitely negative effects on our business too. I can see in your comments that there's no respect for customers future.
Definitely not a service to suggest anymore.
Please consider releasing a new (major) version with Android X (RN 0.60) support. I understand that you don't want to maintain two versions. So don't support RN 0.59 any longer! RN 0.60 is already months old. React Native has always been a fast changing ecosystem, and developers are used to that. Major improvements to RN are just around the corner in v0.61. It's a bummer that this library keeps us lagging behind.
Here are some other libraries that released major versions only (or mainly) to support Android X and RN v0.60:
I'm working on a new version of this SDK that will add support for AndroidX. We agreed as a team to ship this in a new _minor_ release along with a "support matrix" to track the different SDK versions and its compatibility with RN versions.
In the meantime, I read that jetifier could be enabled in your builds to make those node_modules files that haven't migrated yet to RN>59 compatible with your app if you are using AndroidX already. https://facebook.github.io/react-native/blog/2019/07/03/version-60#androidx-support
Have you tried this?
I use jetifier https://github.com/mikehardy/jetifier and yes it helps.
Any updates on this issue? My current project is almost updated but this package is the only one that is stopping me from upgrading post 0.60 :cry:
@vinnyhoward I got it to work using jetifier. I am using a monorepo setup (yarn workspaces), so I added npx jetifier as my "postinstall" script in my root package.json.
@vinnyhoward Please see my comment above. There's an official workaround for this incompatibility issue using jetifier.
There's still work in progress to migrate this library to RN > 60.
@lbalmaceda @draperunner Okay thank you for the replies, I will try this
The Auto0's developer mean:
please ignore those warning(compile can be used normal, we don't care google's suggestion to change to implementation)
Why do you guys want to migration to 0.60 or above?
If I'm wrong, pls let me know.
I've an update for you. I've prepared the next version with support for Android X. You can try it today if you run:
yarn add https://github.com/auth0/react-native-auth0/\#vNext
instead of yarn add react-native-auth0.
Check out the readme instructions for setting it up with your app project and leave any feedback on the open PR.
I ended up switching to Firebase, this was only the last drop in the bucket, the biggest issue was the web view where android users can't logout and well web view in general, add on top of it the super minimalistic documentation. I have the luxury that my app is not released yet.
@lbalmaceda Seems like your PR did the trick, thank you!
Most helpful comment
WHAT? You are seriously going to backlog this when every single one of us that are on 0.60 are screwed? Common every other library in the world out there has updated... forcing all of us to update and you are going to pull the "well somebody may not upgrade" card? common. the people who aren't upgrading are already locked out of the eco-system because it's all or none.