aws-amplify / amplify-js

A declarative JavaScript library for application development using cloud services.
https://docs.amplify.aws/lib/q/platform/js
Apache License 2.0
9.44k stars 2.13k forks source link

aws-appsync/redux-offline/netinfo is at 4.7.0 which conflicts with expo 37 which requires 5.5.0 #5359

Closed danalexilewis closed 4 years ago

danalexilewis commented 4 years ago

Hi team,

I am currently working in an expo/amplify project in response to Covid19 - different because of the emphasis on privacy unlike other app initatives.

In any case I am running into an issue where expo have moved to using netinfo 5.5.1 on the latest SDK 37 and it looks like the api changed in the last major release.

Looking at the code here it looks like it would be easy for you to upgrade to using the new API and then be able to version bump the package here

Hopefully its a really easy fix - I don't know what I don't know when I look at this :)

cheers Dan

amhinson commented 4 years ago

Hey @agentlewis, we can definitely take a look at this. Just for reference, what is the current behavior you're seeing in Expo? Is the app crashing, or just showing a warning?

Ashish-Nanda commented 4 years ago

Hi @agentlewis. Can you give more detail about the issue you are facing with NetInfo. What all are you using from Amplify? The version of the dependency you linked is a devDependency.

If you are installing NetInfo in your app, you should be able to use 5.5.1, as can be seen from the peerDependencies here

I have used 5.5.1 in an app that uses DataStore on React Native and it works fine. Based on the issue you linked it seems you are using the AppsyncSDK as well. There we have a hard dependency on 4.7.0 because of redux-offline using the old API.

If you can give us more detail about what you are using from amplify and whether you are using appsync-sdk, it will be easier to diagnose and fix the problem.

Ashish-Nanda commented 4 years ago

Ok I can see your package.json file includes aws-appsync. Could you share the exact error you are getting? Also does SDK 37 not allow you to use v4.7.0, like you could if you used a RN CLI app?

Based on your answers to the above we can look at some paths forward.

danalexilewis commented 4 years ago

Hey @amhinson and @Ashish-Nanda thanks for getting back to me.

You are indeed both correct - after posting this I carried on going through the logs/dependencies and realised that indeed aws-async uses redux-offline which needs 4.7.0.

Could you share the exact error you are getting?

Yes of course :

Screenshot of pop over error in expo-client loading on Android (newish phone)

Screenshot_20200411-082720_Expo

And this warning

Screenshot_20200411-083425_Expo

Also does SDK 37 not allow you to use v4.7.0, like you could if you used a RN CLI app?

It throws a warning about it not being 5.5.1 and then an error about getConnectionInfo either not being a function or expecting 2 arguments and got 3.

I will take another look at this today and see if I can get some more info, I think the errors out of the expo log may be more informative then those on the phone 🐥. Thanks 🙏

danalexilewis commented 4 years ago

Yes the error from the expo metro log is wayyyy more helpful. Please note the other two images are just what is seen on the expo client.


[Unhandled promise rejection: TypeError: _netinfo.default.getConnectionInfo is not a function. (In '_netinfo.default.getConnectionInfo()', '_netinfo.default.getConnectionInfo' is undefined)]
- node_modules\@redux-offline\redux-offline\lib\defaults\detectNetwork.native.js:96:14 in _callee2$
- node_modules\regenerator-runtime\runtime.js:45:44 in tryCatch
- node_modules\regenerator-runtime\runtime.js:274:30 in invoke
- node_modules\@babel\runtime\helpers\asyncToGenerator.js:2:6 in asyncGeneratorStep
- node_modules\@babel\runtime\helpers\asyncToGenerator.js:24:6 in _next
* http://192.168.1.23:19001/node_modules%5Cexpo%5CAppEntry.bundle?platform=android&dev=true&minify=false&hot=false:501323:14 in <unknown>
- node_modules\promise\setimmediate\core.js:45:7 in tryCallTwo
- node_modules\promise\setimmediate\core.js:200:23 in doResolve
- node_modules\promise\setimmediate\core.js:66:12 in Promise
- node_modules\@babel\runtime\helpers\asyncToGenerator.js:20:15 in <anonymous>
* http://192.168.1.23:19001/node_modules%5Cexpo%5CAppEntry.bundle?platform=android&dev=true&minify=false&hot=false:502627:17 in DetectNetwork
- node_modules\@redux-offline\redux-offline\lib\defaults\detectNetwork.native.js:224:24 in _default
- node_modules\@redux-offline\redux-offline\lib\index.js:70:17 in <anonymous>
- node_modules\redux\lib\applyMiddleware.js:37:30 in <anonymous>
- node_modules\aws-appsync\lib\store.js:80:4 in newStore
- node_modules\aws-appsync\lib\client.js:186:120 in AWSAppSyncClient
* http://192.168.1.23:19001/node_modules%5Cexpo%5CAppEntry.bundle?platform=android&dev=true&minify=false&hot=false:374042:39 in <unknown>
- node_modules\metro\src\lib\polyfills\require.js:322:6 in loadModuleImplementation
* http://192.168.1.23:19001/node_modules%5Cexpo%5CAppEntry.bundle?platform=android&dev=true&minify=false&hot=false:124246:55 in <unknown>
- node_modules\metro\src\lib\polyfills\require.js:322:6 in loadModuleImplementation
- node_modules\expo\AppEntry.js:3:0 in <global>
- node_modules\metro\src\lib\polyfills\require.js:322:6 in loadModuleImplementation
- node_modules\metro\src\lib\polyfills\require.js:201:45 in guardedLoadModule
* http://192.168.1.23:19001/node_modules%5Cexpo%5CAppEntry.bundle?platform=android&dev=true&minify=false&hot=false:505560:4 in global code

[Unhandled promise rejection: TypeError: _netinfo.default.getConnectionInfo is not a function. (In '_netinfo.default.getConnectionInfo()', '_netinfo.default.getConnectionInfo' is undefined)]
- node_modules\@redux-offline\redux-offline\lib\defaults\detectNetwork.native.js:197:16 in _callee4$
- node_modules\regenerator-runtime\runtime.js:45:44 in tryCatch
- node_modules\regenerator-runtime\runtime.js:274:30 in invoke
- node_modules\@babel\runtime\helpers\asyncToGenerator.js:2:6 in asyncGeneratorStep
- node_modules\@babel\runtime\helpers\asyncToGenerator.js:24:6 in _next
* http://192.168.1.23:19001/node_modules%5Cexpo%5CAppEntry.bundle?platform=android&dev=true&minify=false&hot=false:501323:14 in <unknown>
- node_modules\promise\setimmediate\core.js:45:7 in tryCallTwo
- node_modules\promise\setimmediate\core.js:200:23 in doResolve
- node_modules\promise\setimmediate\core.js:66:12 in Promise
- node_modules\@babel\runtime\helpers\asyncToGenerator.js:20:15 in <anonymous>
- node_modules\react-native\Libraries\AppState\AppState.js:89:20 in addListener$argument_1
- node_modules\react-native\Libraries\vendor\emitter\EventEmitter.js:190:12 in emit
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:436:47 in __callFunction
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:111:26 in __guard$argument_0
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:384:10 in __guard
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:110:17 in __guard$argument_0
* [native code]:null in callFunctionReturnFlushedQueue

// Some cognito user login  logs are between these promise rejections

[Unhandled promise rejection: TypeError: _netinfo.default.getConnectionInfo is not a function. (In '_netinfo.default.getConnectionInfo()', '_netinfo.default.getConnectionInfo' is undefined)]
- node_modules\@redux-offline\redux-offline\lib\defaults\detectNetwork.native.js:197:16 in _callee4$
- node_modules\regenerator-runtime\runtime.js:45:44 in tryCatch
- node_modules\regenerator-runtime\runtime.js:274:30 in invoke
- node_modules\@babel\runtime\helpers\asyncToGenerator.js:2:6 in asyncGeneratorStep
- node_modules\@babel\runtime\helpers\asyncToGenerator.js:24:6 in _next
* http://192.168.1.23:19001/node_modules%5Cexpo%5CAppEntry.bundle?platform=android&dev=true&minify=false&hot=false:501323:14 in <unknown>
- node_modules\promise\setimmediate\core.js:45:7 in tryCallTwo
- node_modules\promise\setimmediate\core.js:200:23 in doResolve
- node_modules\promise\setimmediate\core.js:66:12 in Promise
- node_modules\@babel\runtime\helpers\asyncToGenerator.js:20:15 in <anonymous>
- node_modules\react-native\Libraries\AppState\AppState.js:89:20 in addListener$argument_1
- node_modules\react-native\Libraries\vendor\emitter\EventEmitter.js:190:12 in emit
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:436:47 in __callFunction
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:111:26 in __guard$argument_0
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:384:10 in __guard
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:110:17 in __guard$argument_0
* [native code]:null in callFunctionReturnFlushedQueue

[Unhandled promise rejection: TypeError: _netinfo.default.getConnectionInfo is not a function. (In '_netinfo.default.getConnectionInfo()', '_netinfo.default.getConnectionInfo' is undefined)]
- node_modules\@redux-offline\redux-offline\lib\defaults\detectNetwork.native.js:197:16 in _callee4$
- node_modules\regenerator-runtime\runtime.js:45:44 in tryCatch
- node_modules\regenerator-runtime\runtime.js:274:30 in invoke
- node_modules\@babel\runtime\helpers\asyncToGenerator.js:2:6 in asyncGeneratorStep
- node_modules\@babel\runtime\helpers\asyncToGenerator.js:24:6 in _next
* http://192.168.1.23:19001/node_modules%5Cexpo%5CAppEntry.bundle?platform=android&dev=true&minify=false&hot=false:501323:14 in <unknown>
- node_modules\promise\setimmediate\core.js:45:7 in tryCallTwo
- node_modules\promise\setimmediate\core.js:200:23 in doResolve
- node_modules\promise\setimmediate\core.js:66:12 in Promise
- node_modules\@babel\runtime\helpers\asyncToGenerator.js:20:15 in <anonymous>
- node_modules\react-native\Libraries\AppState\AppState.js:89:20 in addListener$argument_1
- node_modules\react-native\Libraries\vendor\emitter\EventEmitter.js:190:12 in emit
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:436:47 in __callFunction
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:111:26 in __guard$argument_0
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:384:10 in __guard
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:110:17 in __guard$argument_0
* [native code]:null in callFunctionReturnFlushedQueue
danalexilewis commented 4 years ago

not a great title - I'll update it to something more descriptive later. This issue feels very similar: https://github.com/redux-offline/redux-offline/issues/381

Ashish-Nanda commented 4 years ago

@agentlewis Thanks for the detailed response.

Can you try the following:

Delete node modules: rm -rf node_modules

Install the specific version (4.7.0) of NetInfo: npm install --save @react-native-community/netinfo@4.7.0

and npm install your other depedencies.

I'm pretty sure this should work, since it has worked for a customer using Expo 36 in the past. You can see the discussion and solution here

I will also try to upgrade NetInfo in the AppSync SDK, but the above solution would be your quickest path to getting unblocked.

danalexilewis commented 4 years ago

@Ashish-Nanda Hey there, I tried the above and:

It updates expo to 37.0.7

and

then installs netinfo 5.5.1

resulting/current package.json in case you can spot a mole to wack!

{
    "main": "node_modules/expo/AppEntry.js",
    "scripts": {
        "modelgen": "node amplify/scripts/amplify-modelgen.js",
        "amplify-push": "node amplify/scripts/amplify-push.js",
        "build": "expo build:web",
        "start": "expo start",
        "android": "expo start --android",
        "ios": "expo start --ios",
        "web": "expo start --web",
        "eject": "expo eject",
        "seed:db": "node scripts/seed.js",
        "seed:gen": "node scripts/generate-fake-data.js",
        "rm": "rm -rf node_modules && rm yarn.lock && rm package-lock.json",
        "scrub": "yarn cache clean && yarn install"
    },
    "dependencies": {
        "@aws-amplify/analytics": "^3.1.6",
        "@aws-amplify/api": "^3.1.6",
        "@aws-amplify/auth": "^3.2.3",
        "@aws-amplify/core": "^3.2.3",
        "@aws-amplify/datastore": "^2.0.4",
        "@aws-amplify/interactions": "^3.1.6",
        "@aws-amplify/pubsub": "^3.0.7",
        "@aws-amplify/storage": "^3.1.6",
        "@aws-amplify/xr": "^2.1.6",
        "@expo/vector-icons": "^10.0.0",
        "@react-native-community/async-storage": "^1.9.0",
        "@react-native-community/masked-view": "0.1.6",
        "@react-native-community/netinfo": "5.5.1",
        "@react-navigation/bottom-tabs": "^5.2.6",
        "@react-navigation/native": "^5.1.5",
        "@react-navigation/stack": "^5.2.10",
        "apollo-boost": "^0.4.7",
        "apollo-client": "^2.6.8",
        "aws-amplify": "^3.0.7",
        "aws-amplify-react": "^4.1.6",
        "aws-appsync": "^3.0.2",
        "aws-appsync-react": "^3.0.2",
        "base-64": "^0.1.0",
        "binconv": "^0.2.0",
        "date-fns": "^2.11.1",
        "expo": "^37.0.7",
        "expo-crypto": "~8.1.0",
        "expo-device": "~2.1.0",
        "expo-random": "~8.1.0",
        "expo-secure-store": "~8.1.0",
        "graphql": "^14.0.0",
        "graphql-tag": "^2.10.3",
        "react": "16.9.0",
        "react-apollo": "^3.1.4",
        "react-dom": "16.9.0",
        "react-native": "https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz",
        "react-native-elements": "^1.2.7",
        "react-native-gesture-handler": "~1.6.0",
        "react-native-reanimated": "~1.7.0",
        "react-native-safe-area-context": "0.7.3",
        "react-native-screens": "~2.2.0",
        "react-native-vector-icons": "^6.6.0",
        "react-native-web": "^0.11.7",
        "string-encode": "^0.2.1"
    },
    "devDependencies": {
        "@babel/core": "^7.9.0",
        "@babel/runtime": "^7.9.2",
        "@types/react": "^16.9.23",
        "@types/react-native": "^0.61.17",
        "aws-sdk": "^2.651.0",
        "babel-preset-expo": "^8.1.0",
        "casual": "^1.6.2",
        "ini": "^1.3.5",
        "inquirer": "^6.5.1",
        "typescript": "^3.8.3"
    },
    "private": true
}
Ashish-Nanda commented 4 years ago

@agentlewis I just cloned your app which has a package.json file like the one above. I used this branch: https://github.com/Ecosify/COVID-Community-Health-App/tree/chor/readme-and-build

1) I then deleted the yarn.lock and package-lock.json files.

2) Deleted node_modules

3) I edited the package.json file directly to set the correct version of NetInfo:

"@react-native-community/netinfo": "4.7.0"

4) Then ran yarn

Now my package.json, yarn.lock and node_modules, all have the correct version of NetInfo (4.7.0)

I cant run the app to confirm because I dont have the exports file, or know how you have configured the backend. But since you do not have the correct version of NetInfo being installed, lets try the above first to see if it installs correctly for you.

Here is the diff after the above steps:

diff --git a/package.json b/package.json
index 375e88c..804a389 100644
--- a/package.json
+++ b/package.json
@@ -19,7 +19,7 @@
         "@expo/vector-icons": "^10.0.0",
         "@react-native-community/async-storage": "^1.9.0",
         "@react-native-community/masked-view": "0.1.6",
-        "@react-native-community/netinfo": "5.5.1",
+        "@react-native-community/netinfo": "4.7.0",
         "@react-navigation/bottom-tabs": "^5.2.6",
         "@react-navigation/native": "^5.1.5",
         "@react-navigation/stack": "^5.2.10",

diff --git a/yarn.lock b/yarn.lock
index 9d7c531..acff634 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2394,10 +2394,10 @@
   resolved "https://registry.yarnpkg.com/@react-native-community/masked-view/-/masked-view-0.1.6.tgz#c7f2ac187c1f25aa8c30d11baa8f4398eca3bb84"
   integrity sha512-PpMoeXwPUoldCRKDuSi+zK5rT+sJTW6ri6RdGPkSKRzU77Q1d9IaR0O5IKvBj0XSdL3p+dcOa05gk35aGDffBQ==

-"@react-native-community/netinfo@5.5.1":
-  version "5.5.1"
-  resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-5.5.1.tgz#6433d4d9d5fbe836f019e5a88a6a24b6e2dc50b9"
-  integrity sha512-6NKX/WzzC5FP2RSzoq+7CW/iIiRL2S6yN0JKiGvZ8EWAzJ43dbX5KG4kRa1JiKopAal5Vyh80dymbygeylwekQ==
+"@react-native-community/netinfo@4.7.0":
+  version "4.7.0"
+  resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-4.7.0.tgz#7482d36836cac69d0a0ae25581f65bc472639930"
+  integrity sha512-a/sDB+AsLEUNmhAUlAaTYeXKyQdFGBUfatqKkX5jluBo2CB3OAuTHfm7rSjcaLB9EmG5iSq3fOTpync2E7EYTA==

 "@react-navigation/bottom-tabs@^5.2.6":
   version "5.2.6"
danalexilewis commented 4 years ago

Hey @Ashish-Nanda

Sorry you couldn't build the project - we should have added a default file in git.

Try creating and adding this to src/aws-exports.js

// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.

const awsmobile = {
    "aws_project_region": "us-west-2",
    "aws_cognito_region": "us-west-2",
    "aws_user_pools_id": "example",
    "aws_user_pools_web_client_id": "example",
    "oauth": {},
    "aws_appsync_graphqlEndpoint": "example",
    "aws_appsync_region": "example",
    "aws_appsync_authenticationType": "AMAZON_COGNITO_USER_POOLS",
    "aws_content_delivery_bucket": "example",
    "aws_content_delivery_bucket_region": "us-west-2",
    "aws_content_delivery_url": "http://example.s3-website-us-west-2.amazonaws.com"
};

export default awsmobile;

It should be able to build then - but may error. To get the correct version of that file you need to go through the amplify configure and amplify pull process.

Running with 4.7.0

Regarding your steps to force set the version. I had done this previously, but just tried again now.

Confirming changes after following your instructions with diffing (happy to discover Diff syntax highlighting):

diff --git a/package.json b/package.json
index d816805..913faba 100644
--- a/package.json
+++ b/package.json
@@ -27,7 +27,7 @@
         "@expo/vector-icons": "^10.0.0",
         "@react-native-community/async-storage": "^1.9.0",
         "@react-native-community/masked-view": "0.1.6",
-        "@react-native-community/netinfo": "5.5.1",
+        "@react-native-community/netinfo": "4.7.0",
         "@react-navigation/bottom-tabs": "^5.2.6",
         "@react-navigation/native": "^5.1.5",
         "@react-navigation/stack": "^5.2.10",
@@ -40,7 +40,7 @@
         "base-64": "^0.1.0",
         "binconv": "^0.2.0",
         "date-fns": "^2.11.1",
-        "expo": "^37.0.3",
+        "expo": "^37.0.7",
         "expo-crypto": "~8.1.0",
         "expo-device": "~2.1.0",
         "expo-random": "~8.1.0",

  resolved "https://registry.yarnpkg.com/@react-native-community/masked-view/-/masked-view-0.1.6.tgz#c7f2ac187c1f25aa8c30d11baa8f4398eca3bb84"
   integrity sha512-PpMoeXwPUoldCRKDuSi+zK5rT+sJTW6ri6RdGPkSKRzU77Q1d9IaR0O5IKvBj0XSdL3p+dcOa05gk35aGDffBQ==

-"@react-native-community/netinfo@5.5.1":
-  version "5.5.1"
-  resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-5.5.1.tgz#6433d4d9d5fbe836f019e5a88a6a24b6e2dc50b9"
-  integrity sha512-6NKX/WzzC5FP2RSzoq+7CW/iIiRL2S6yN0JKiGvZ8EWAzJ43dbX5KG4kRa1JiKopAal5Vyh80dymbygeylwekQ==
+"@react-native-community/netinfo@4.7.0":
+  version "4.7.0"
+  resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-4.7.0.tgz#7482d36836cac69d0a0ae25581f65bc472639930"
+  integrity sha512-a/sDB+AsLEUNmhAUlAaTYeXKyQdFGBUfatqKkX5jluBo2CB3OAuTHfm7rSjcaLB9EmG5iSq3fOTpync2E7EYTA==

Running the result does not show me anything in the expo metro logs. I just get this error screen on the phone:

Screenshot_20200411-131922_Expo

Noticing

Also unlike when I use 5.5.1 I cannot just escape the errors and get back in the app react-native ui - with 4.7.0 it crashes I assume at runtime, but maybe compile time. I don't really understand the build life cycle with expo.

Ashish-Nanda commented 4 years ago

I see. Its possible that this version is incompatible with Expo 37. When using Expo 36 you did not face issues right? I see thats what you have on your master branch. Is there a need for you to upgrade?

Regarding NetInfo, I will need to do a bunch of tests and see if the upgrade to 5.5.1 works in aws-appsync. Will give it a try and keep you posted.

danalexilewis commented 4 years ago

Hey @Ashish-Nanda yes we started on 36. But as I worked through building for android I encountered other problems. Upgrading got rid of those.

danalexilewis commented 4 years ago

Ok I can confirm that downgrading back to expo 36.0.2 and netinfo 4.7.0 I now have a working build.

just tested with aws-amplify-react-native 4.0.3 (previously removed to debug) and thats working as well - so Yay we have an interim fix.

So now there is just a depreciated warning that fires in the expo client. I'll look and see if I can silence this.

Thanks so much for helping me navigate this config. Hopefully we can get redux-offline and appsync to "just work" with expo sdk 37. But until than I can keep rushing for the finish line on this Grass roots Covid Response App :)

Heres my current package.json

{
    "main": "node_modules/expo/AppEntry.js",
    "scripts": {
        "modelgen": "node amplify/scripts/amplify-modelgen.js",
        "amplify-push": "node amplify/scripts/amplify-push.js",
        "build": "expo build:web",
        "start": "expo start",
        "android": "expo start --android",
        "ios": "expo start --ios",
        "web": "expo start --web",
        "eject": "expo eject",
        "seed:db": "node scripts/seed.js",
        "seed:gen": "node scripts/generate-fake-data.js",
        "rm": "rm -rf node_modules && rm yarn.lock && rm package-lock.json",
        "scrub": "yarn cache clean && yarn install"
    },
    "dependencies": {
        "@aws-amplify/analytics": "^3.1.6",
        "@aws-amplify/api": "^3.1.6",
        "@aws-amplify/auth": "^3.2.3",
        "@aws-amplify/core": "^3.2.3",
        "@aws-amplify/datastore": "^2.0.4",
        "@aws-amplify/interactions": "^3.1.6",
        "@aws-amplify/pubsub": "^3.0.7",
        "@aws-amplify/storage": "^3.1.6",
        "@aws-amplify/xr": "^2.1.6",
        "@expo/vector-icons": "^10.0.0",
        "@react-native-community/async-storage": "^1.9.0",
        "@react-native-community/masked-view": "0.1.6",
        "@react-native-community/netinfo": "4.7.0",
        "@react-navigation/bottom-tabs": "^5.2.6",
        "@react-navigation/native": "^5.1.5",
        "@react-navigation/stack": "^5.2.10",
        "apollo-boost": "^0.4.7",
        "apollo-client": "^2.6.8",
        "aws-amplify": "^3.0.7",
        "aws-amplify-react-native": "^4.0.3",
        "aws-appsync": "^3.0.2",
        "aws-appsync-react": "^3.0.2",
        "base-64": "^0.1.0",
        "binconv": "^0.2.0",
        "date-fns": "^2.11.1",
        "expo": "^36.0.2",
        "expo-crypto": "~8.1.0",
        "expo-device": "~2.1.0",
        "expo-random": "~8.1.0",
        "expo-secure-store": "~8.1.0",
        "graphql": "^14.0.0",
        "graphql-tag": "^2.10.3",
        "react": "16.9.0",
        "react-apollo": "^3.1.4",
        "react-dom": "16.9.0",
        "react-native": "https://github.com/expo/react-native/archive/sdk-36.0.1.tar.gz",
        "react-native-elements": "^1.2.7",
        "react-native-gesture-handler": "~1.6.0",
        "react-native-reanimated": "~1.7.0",
        "react-native-safe-area-context": "0.7.3",
        "react-native-screens": "~2.2.0",
        "react-native-vector-icons": "^6.6.0",
        "react-native-web": "^0.11.7",
        "string-encode": "^0.2.1"
    },
    "devDependencies": {
        "@babel/core": "^7.9.0",
        "@babel/runtime": "^7.9.2",
        "@types/react": "^16.9.23",
        "@types/react-native": "^0.61.17",
        "aws-sdk": "^2.651.0",
        "babel-preset-expo": "^8.1.0",
        "casual": "^1.6.2",
        "ini": "^1.3.5",
        "inquirer": "^6.5.1",
        "typescript": "^3.8.3"
    },
    "private": true
}
mauerbac commented 4 years ago

Hi @agentlewis - wanted to follow-up on this. is it safe to close this issue out?

danalexilewis commented 4 years ago

Hey @mauerbac - the dependency of appsync on redux-offline which depends on netinfo 4.7 is still a blocker for us upgrading.

I would think the best thing would be to leave this open until either:

From our dev team perspective this is still an open issue. I respect your team may have a different view on this though.

Cheers D

danalexilewis commented 4 years ago

@mauerbac redux-offline issue may be a possible temporary fix

And here is a PR for supporting expo sdk 36 (now on 37 but it should be enough)

Lastly I expect this to be resolved with the release of redux-offline V3 but looks like this will be a few weeks/months away.

sorodrigo commented 4 years ago

yarn add @redux-offline/redux-offline@expo

expo

mauerbac commented 4 years ago

haha, thanks for the PR @sorodrigo . @Ashish-Nanda are you able to take a look?

sichiu commented 4 years ago

Any update on this?

mauerbac commented 4 years ago

Pinging @AshanFernando / @sammartinez

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Ashish-Nanda commented 4 years ago

@agentlewis @sichiu

This should work now. We recently merged a PR in the aws-appsync SDK: https://github.com/awslabs/aws-mobile-appsync-sdk-js/pull/551 This PR upgrades redux-offline and as a result NetInfo 5.x can be used. You will also need to use @react-native-community/async-storage Please install aws-appsync v4.0.0 and follow the instructions here

danalexilewis commented 4 years ago

@Ashish-Nanda great thanks :)

Ashish-Nanda commented 4 years ago

Will go ahead and close the issue since the fix has been merged and released. Let us know if you have any questions.

github-actions[bot] commented 3 years ago

This issue has been automatically locked since there hasn't been any recent activity after it was closed. Please open a new issue for related bugs.

Looking for a help forum? We recommend joining the Amplify Community Discord server *-help channels or Discussions for those types of questions.