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

Pod Install does not update latest version of Pods #4994

Closed
Sunrise17 opened this issue Feb 28, 2020 · 9 comments
Closed

Pod Install does not update latest version of Pods #4994

Sunrise17 opened this issue Feb 28, 2020 · 9 comments

Comments

@Sunrise17
Copy link

  • Xcode version: 11.3
  • Firebase SDK version: 6.18.0
  • Firebase Components

Current Pod File:
pod 'Firebase/Core'
pod 'Firebase/Database'
pod 'Firebase/Auth'
pod 'Firebase/Firestore'
pod 'Firebase/Messaging'
pod 'Firebase/AdMob'
pod 'Firebase/Functions'
pod 'FBSDKLoginKit'

  • Component versions installed:
    BoringSSL-GRPC (0.0.3)
    FBSDKCoreKit (6.0.0)
    FBSDKLoginKit (6.0.0)
    Firebase (6.18.0)
    FirebaseAnalytics (6.3.0)
    FirebaseAnalyticsInterop (1.5.0)
    FirebaseAuth (6.4.3)
    FirebaseAuthInterop (1.0.0)
    FirebaseCore (6.6.3)
    FirebaseCoreDiagnostics (1.2.1)
    FirebaseCoreDiagnosticsInterop (1.2.0)
    FirebaseDatabase (6.1.4)
    FirebaseFirestore (1.11.0)
    FirebaseFunctions (2.5.1)
    FirebaseInstallations (1.1.0)
    FirebaseInstanceID (4.3.2)
    FirebaseMessaging (4.3.0)
    GTMSessionFetcher (1.3.1)
    Google-Mobile-Ads-SDK (7.55.1)
    GoogleAppMeasurement (6.3.0)
    GoogleDataTransport (4.0.1)
    GoogleDataTransportCCTSupport (1.4.1)
    GoogleUtilities (6.5.1)
    PromisesObjC (1.2.8)
    Protobuf (3.11.4)
    abseil (0.20190808)
    gRPC-C++ (0.0.9)
    gRPC-Core (1.21.0)
    leveldb-library (1.22)
    nanopb (0.3.9011)

  • Installation method: `CocoaPods
    pod --version -> 1.9.0

Not installing Latest Versions of 6 pods?

After i have installed above pods of Firebase, following pods below are not installed in latest version. I have deintegrated pods, cleaned pod cache, removed podLock.file, then installed again all pods and it still downloads the above versions. i have also uninstalled gem cocoapods, and installed it again and it did not help.

Result of "pod outdated"
The following pod updates are available:

  • abseil 0.20190808 -> (unused) (latest version 0.20200225.0)
  • BoringSSL-GRPC 0.0.3 -> 0.0.3 (latest version 0.0.7)
  • FBSDKCoreKit 6.0.0 -> 6.0.0 (latest version 6.1.0-alpha)
  • Google-Mobile-Ads-SDK 7.55.1 -> 7.56.0 (latest version 7.56.0)
  • gRPC-C++ 0.0.9 -> 0.0.9 (latest version 1.28.0-pre1)
  • gRPC-Core 1.21.0 -> 1.21.0 (latest version 1.28.0-pre1)
@google-oss-bot
Copy link

I found a few problems with this issue:

  • I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.
  • This issue does not seem to follow the issue template. Make sure you provide all the required information.
@paulb777
Copy link
Member

Examine Podfile.lock to see the dependency requirements. Not all pods allow their dependencies to update to latest.

@Sunrise17
Copy link
Author

Is it meaningful to force updating to the latest version of such pods by changing the versions in Podfile.lock?

Example::

  • abseil/algorithm (0.20190808):
    • abseil/algorithm/algorithm (= 0.20190808)
    • abseil/algorithm/container (= 0.20190808)
    • abseil/algorithm/algorithm (0.20190808)
    • abseil/algorithm/container (0.20190808):
      • abseil/algorithm/algorithm
      • abseil/base/core_headers
      • abseil/meta/type_traits
    • abseil/base (0.20190808):
      • abseil/base/atomic_hook (= 0.20190808)
      • abseil/base/base (= 0.20190808)
      • abseil/base/base_internal (= 0.20190808)
      • abseil/base/bits (= 0.20190808)
      • abseil/base/config (= 0.20190808)
      • abseil/base/core_headers (= 0.20190808)
      • abseil/base/dynamic_annotations (= 0.20190808)
      • abseil/base/endian (= 0.20190808)
      • abseil/base/log_severity (= 0.20190808)
      • abseil/base/malloc_internal (= 0.20190808)
      • abseil/base/pretty_function (= 0.20190808)
      • abseil/base/spinlock_wait (= 0.20190808)
      • abseil/base/throw_delegate (= 0.20190808)
    • abseil/base/atomic_hook (0.20190808)
    • abseil/base/base (0.20190808):
@morganchen12
Copy link
Contributor

Firestore depends on exact versions of gRPC-C++ and abseil, so upgrading Firestore will not upgrade the version of those two dependencies (and their sub-dependencies) unless the version is bumped in the Firestore podspec. This includes BoringSSL-GRPC and gRPC-Core.

As for the Facebook dependency, CocoaPods won't install the newest version if it's labeled as an alpha or beta version iirc. You can see the dependency specifier here.

@Sunrise17
Copy link
Author

Thanks for your response!

@wilhuff
Copy link
Contributor

wilhuff commented Feb 28, 2020

For several of these pods it's not safe to update these pods without testing from us. This is why we pin to specific versions in our podspecs.

Specifically:

  • gRPC-C++ 0.0.9:
    • This was a pre-release version expected to break on every update
    • We attempted to upgrade to 1.25 and this uncovered errors
    • gRPC 1.27 up through 1.27.2 failed to publish a cocoapod
    • gRPC 1.27.3--published 2 days ago--is potentially viable; we're testing this now
  • abseil 0.20190808
    • needs to be coordinated with gRPC
    • gRPC 1.28 will upgrade to abseil 0.20200225.0
    • We'll evaluate the update once they complete prerelease testing.
  • BoringSSL-GRPC 0.0.3
    • This is a version locked dependency of gRPC
    • gRPC-team is responsible for checking compatibility here; I wouldn't second guess them
@Xhale1
Copy link

Xhale1 commented Mar 10, 2020

  • gRPC 1.27.3--published 2 days ago--is potentially viable; we're testing this now
  • abseil 0.20190808

Are you able to comment on what effects upgrading gRPC could have on the performance / feature-set of Firebase? It seems like a huge leap consisting of several years of development.

@wilhuff
Copy link
Contributor

wilhuff commented Mar 10, 2020

The gRPC-C++ 0.0.9 CocoaPod was an experimental packaging of gRPC 1.21 from ~May 2019. Previously only the C core and the Objective-C interface to gRPC were packaged as CocoaPods. The versioning here indicated that the CocoaPod itself was experimental, even though the C++ interface is otherwise widely used and well tested.

I expect there to be no substantial differences in performance and no difference in features at all with the upgrade.

@firebase firebase locked and limited conversation to collaborators Mar 30, 2020
@wilhuff
Copy link
Contributor

wilhuff commented Apr 22, 2020

FYI #4312 landed today and includes updates of gRPC, abseil, and BoringSSL-GRPC. We're still closely controlling the versions of these dependencies to avoid automatically propagating problems like the ones we found trying to upgrade to gRPC 1.25. Had we let versions float this would have been a disaster for all users.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.