Commit Graph
154 Commits
Author SHA1 Message Date
Ryan Wilson 6feed3633d Update versions for Release 6.34.0 2020-09-30 13:09:59 -07:00
Maksym MalyhinandPaul Beusterien da9327e81e Merging the 6.33.0 release into master (#6523)
* Update versions for Release 6.33.0

* SPM M80(6.33.0) Analytics update (#6490)

Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
2020-09-22 18:38:11 -04:00
Ryan WilsonandPaul Beusterien ac313a7a03 Merging the 6.32.0 release into master (#6422)
* Update versions for Release 6.32.0

* Add Analytics for 6.32.0 SPM (#6397)

* Fix SwiftPM versioning (#6399) (#6400)

Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
2020-09-09 09:16:32 -04:00
Ryan Wilson 01fb2395bf Merging the 6.31.0 release into master (#6331) 2020-08-25 15:13:11 -07:00
f33276f530 Update nanopb py3 0.3.9.5 -> 0.3.9.6 (#6214)
* update nanopb from 0.3.9.5 to 0.3.9.6

This fixes issues building firestore SDK with Python3.
Interestingly, latest version 0.4.2 still errors during the build
but 0.3.9.6 works. The git commit for this fix in nanopb
https://github.com/nanopb/nanopb/commit/63f8e5e4946a5f8f0211b454bd37187871c3d023

* Update generated sources

* updating just nanopb dependency version

nanopb updated from 0.3.9.5 to 0.3.9.6
(pod version 1.30905.0 to 1.30906.0)

* Add missing source specifier

* Generated files for protos using nanopb 0.3.9.6

* removed unnecessary whitespaces in files generated by protoc

* using more qualified relative paths for header includes

* Changelog

Co-authored-by: Marek Gilbert <mcg@google.com>
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
2020-08-14 14:13:01 -07:00
Paul Beusterien cfc491f5ed Update versions for Release 6.30.0 (#6252) 2020-08-11 11:52:21 -07:00
Paul Beusterien 9a24e538a2 Update podspec dependencies for 6.30.0 (#6203) 2020-08-04 12:27:12 -07:00
Paul Beusterien a22b425377 Firestore - new public header structure (#6197) 2020-08-04 06:50:55 -07:00
Paul Beusterien 37f1b73294 Remove non-existent Firestore/Protos/objc from podspec (#6175) 2020-07-31 10:27:02 -07:00
Paul Beusterien 6d8edf902c Update versions for Release 6.29.0 (#6146) 2020-07-28 13:07:39 -07:00
Gil 691e71a930 Rework config.h handling for Swift Package Manager compatibility (#6087)
Swift Package Manager does not support configure-time feature testing
and does not support source transformations of any kind so we can't
cheat by running a sed command to generate config.h before building.

This change makes it so that CMake now generates a config_detected.h
while config.h always exists and contains fallback values if the build
system cannot generate config_detected.h.

Convert CocoaPods to use the same fallbacks since the values are the
same as SPM.
2020-07-22 12:37:47 -07:00
9f00ef32b5 Merging the 6.28.1 release into master (#6049)
* Update versions for Release 6.28.0

* Release 6.28.0 - GDT cherry pick of #6010 and #6032 (#6035)

* [GDTCORUploadCoordinator startTimer]: don't restart timer if already started (#6032)

* [GDTCORUploadCoordinator startTimer]: don't restart timer if already started

* style

* `GDTCORUploadCoordinator.timer` - nullable

* GDTCORUploadCoordinator test utils thread safety.

* GDTCORFlatFileStorage: keep not expired events when expired batch removed (#6010)

* GDTCORFlatFileStorage: expiration clean up tests

* GDTCORFlatFileStorage: keep not expired events when expired batch removed

* Cleanup

* Cleanup

* Comments

* Comments

* Remove additional delays in tests

* style

* Changelog

* Changelog: remove 7.0.1

* Add #include for config.h to get the value for HAVE_LIBDISPATCH (#6041) (#6042)

Co-authored-by: Denver Coneybeare <dconeybe@google.com>

* M75.1 version bumps (#6043)

* M75.1: Firestore patch release

* Firestore podspec version bump

* Bump Core version

Co-authored-by: Gil <mcg@google.com>
Co-authored-by: Denver Coneybeare <dconeybe@google.com>
2020-07-15 09:53:16 -04:00
Maksym Malyhin 05b2458394 Merging the 6.28.0 release into master (#6040)
* Update versions for Release 6.28.0

* Release 6.28.0 - GDT cherry pick of #6010 and #6032 (#6035)

* [GDTCORUploadCoordinator startTimer]: don't restart timer if already started (#6032)

* [GDTCORUploadCoordinator startTimer]: don't restart timer if already started

* style

* `GDTCORUploadCoordinator.timer` - nullable

* GDTCORUploadCoordinator test utils thread safety.

* GDTCORFlatFileStorage: keep not expired events when expired batch removed (#6010)

* GDTCORFlatFileStorage: expiration clean up tests

* GDTCORFlatFileStorage: keep not expired events when expired batch removed

* Cleanup

* Cleanup

* Comments

* Comments

* Remove additional delays in tests

* style

* Changelog

* Changelog: remove 7.0.1
2020-07-14 20:09:13 -04:00
Paul Beusterien 5f370d6395 Release 6.27.0 (#5830) 2020-06-16 09:15:04 -07:00
Paul Beusterien e15724a436 Migrate from interop pods to source_files header access (#5760) 2020-06-09 06:09:27 -07:00
Paul Beusterien d4621a636f Use preserve_paths instead of CocoaPods private (#5758) 2020-06-09 05:21:28 -07:00
Maksym Malyhin a427df4b19 Merging the 6.26.0 (M72) release into master (#5723)
* Update versions for Release 6.26.0

* M72 notices update (#5693)

* M72 notices update

* Revert formatting
2020-06-02 11:54:11 -04:00
Ryan Wilson 6d90b04f22 Merging the 6.25.0 (M71) release into master (#5648)
* Update versions for Release 6.25.0

* Update notices for M71. (#5611)

* Clean up outdated Firebase README (#5610) (#5612)

* Remove MLKit from the M71 release. (#5644)
2020-05-19 19:49:14 -04:00
Paul Beusterien 68513286e3 Update nanopb to 0.3.9.5 (CocoaPods 1.30905.0) (#4264) 2020-04-27 17:09:59 -07:00
Gil 1df5574c4f Upgrade gRPC-C++ to 1.28.0 (#4312)
This unblocks nanopb changes proposed in #4264.

This upgrades everything in the gRPC constellation of dependencies to match gRPC at 1.28:

  * gRPC to 1.28.0 (note that gRPC 1.28.1, while released, is a fix for just the python binding and there's no gRPC-C++ CocoaPod at that version)
  * Abseil to 20200225 (as of gRPC 1.27 this is now a gRPC dependency too; there's a later patch but gRPC doesn't use it yet)
  * Protobuf C++ to 3.11.4 (only used for testing in Firestore)
  * C-Ares to 1.15.0
  * BoringSSL to match (no change between gRPC 1.27.0 and 1.28.0)

Also, this disables CFStream-based transport on Apple platforms. This works around b/133182964, wherein CFStream will occasionally fail to raise a has-bytes-available events, causing Firestore to appear to hang.
2020-04-22 14:03:34 -07:00
Maksym MalyhinandMichael Haney b2ee5f3a62 Release 6.23.0 (#5426)
* Update versions for Release 6.23.0

* Add FIAM to release manifest (#5383)

* Don't leak upload packages or deadlock on lifecycle events (#5382) (#5384)

* Don't leak upload packages or deadlock on lifecycle events

GDTCORUploadPackages would call targetToStorage in -initWithTarget. When this method was running during app terminate, this would cause a deadlock because calling targetToStorage is re-entrant while GDTCORRegistrar is sending lifecycle events to all the instances it's tracking.

NSTimer's invalidate method is also called whenever a package is completed, retried, or expired, without regard to the presence of a package handler.

A unit test is added to ensure that GDTCORUploadPackage's are not leaked by a retain

TSAN caught no issues

* Don't mark GDTCORUploadPackage -init as unavailable

Co-authored-by: Michael Haney <mikehaney24@users.noreply.github.com>

* FIAM bump podspec version to 0.19.3 (#5386)

* M69: add FIS. (#5412)

* M69: add FIS.

* Bump FIS version to 1.2.0

Co-authored-by: Michael Haney <mikehaney24@users.noreply.github.com>
2020-04-21 14:34:28 -04:00
Gil 7a58eba2e5 Remove firebase/firestore from paths in Firestore/core (#5374)
* Manual Xcode project fixups

* Remove `firebase/firestore` from paths in Firestore/core

This renames all Firestore files under `Firestore/core` to remove the
interior `firebase/firestore` directory structure. This is motivated by
build failures under Windows where the filenames of intermediates were
too long.

Concretely:

  * `Firebase/core/src/firebase/firestore` becomes `Firebase/core/src`
  * `Firebase/core/test/firebase/firestore` becomes
    `Firebase/core/test/unit`

Moving the tests into a `unit` subdirectory aligns Firestore with the
directory structure in
[AddNewPod](https://github.com/firebase/firebase-ios-sdk/blob/master/AddNewPod.md),
modified for C++ (see discussion in #3224).
2020-04-20 14:57:34 -07:00
Ryan Wilson b38f44d1d5 Merging the 6.22.0 release into master (#5319) 2020-04-08 16:44:22 -07:00
Paul Beusterien e338339c59 Remove platforms from podspec summaries (#5229) 2020-03-31 10:21:48 -07:00
Gil 54a1db1dc7 Explicitly state Firestore's dependency on UIKit (#5077)
* Explicitly state Firestore's dependency on UIKit (#5067)

In #4985 we added support for listening to
`UIApplicationWillEnterForegroundNotification` notifications to better
handle situations where we may have missed callbacks from
`SCNetworkReachabilitySetCallback` while Firestore was in the background.

Fixes #5065.

* Update CHANGELOG for Firestore v1.11.2
2020-03-11 11:19:56 -07:00
Maksym Malyhin b0e59312b8 Update versions for Release 6.19.0 2020-03-04 11:08:06 -05:00
Ryan Wilson f9a0ee2727 Merging the 6.18.0 release into master (#4974)
* Update versions for Release 6.18.0

* Forward declare class to fix linting. (#4935)

* Revert "Forward declare class to fix linting. (#4935)" (#4937)

This reverts commit 64bbf378bb.
2020-02-26 08:43:38 -08:00
Paul Beusterien e70f1ed1c7 Merge 6.17.0 (#4885) 2020-02-11 08:27:12 -08:00
Maksym MalyhinandPaul Beusterien a09718a7f2 Merge release 6.16.0 (#4763)
* Update versions for Release 6.16.0

* FirebasePerformance 3.1.10

* Firebase podspec - set ios.deployment_target = '9.0'  for InAppMessaging

* Delete duplicate function (#4744) (#4748)

Co-authored-by: Paul Beusterien <paulbeusterien@google.com>

* Firebase.podspec: Revert Performance version bump (#4758)

Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
2020-01-28 18:04:14 -05:00
2328d1f365 Merging the 6.15.0 release into master (#4682)
* Update versions for Release 6.15.0

* Update podspec dependencies for M62 (#4640)

* Cherry-picks for M62. (#4650)

* Include GoogleUtilities in the release manifest.

* Crashlytics fix header import ordering issue (#4649)

Co-authored-by: Sam Edson <samedson@google.com>

Co-authored-by: Ryan Wilson <wilsonryan@google.com>
2020-01-14 16:21:34 -08:00
Paul Beusterien 0f21622749 Post Firestore 1.8.3 master merge (#4520) 2019-12-18 11:47:40 -08:00
Paul Beusterien 76c766a866 Release 6.14.0 (#4513) 2019-12-17 11:36:36 -08:00
Paul Beusterien 49e48a0dfc Post Firestore 1.8.1 patch merge to master (#4366) 2019-11-19 21:01:44 -08:00
Konstantin Varlamov 57f8d7d675 Embed root certificates into the binary on Apple platforms as well (#4352)
Currently, on iOS Firestore is loading `roots.pem` file from the gRPC bundle. The mechanism has proved to be brittle, so instead we can use the same approach as the CMake build does -- parse the file at build time and embed its contents into the binary.

One downside of this approach is that now we would have to periodically update the generated files for embedding manually. Judging from history, `roots.pem` is updated quite often in gRPC repo, and can be expected to be modified on each release.

The command to regenerate the certificates is something like:
```sh
mkdir build # From the root of the repo
cd build
cmake .. && make -j 8 generate_grpc_root_certificates
```

TESTED=with Fireeats.
2019-11-19 01:50:08 -05:00
Ryan Wilson 3261d120a9 Update versions for Release 6.13.0 (#4318) 2019-11-14 16:50:23 -08:00
Konstantin Varlamov 62ef244cde C++ migration: remove the dependency on Objective-C Protobuf library (#4189) 2019-11-07 20:39:53 -05:00
Maksym Malyhin d18d515739 Merging the 6.12.0 release into master (#4223)
* Update versions for Release 6.12.0

* Update versions for Release 6.12.0 - Firestore

* Update versions for Release 6.12.0

* Update CHANGELOG for Firestore v1.7.0 (#4195)

* FirebaseCore version bump to 6.3.3 (#4213)

* Release manifst updated. (#4219)

* Revert "Add OIDC nonce support (#4183)" (#4220) (#4222)

This reverts commit ffe4a3a5b4.

* Revert Auth podspec version bump. (#4232)

* Release manifest - Auth removed (#4233)

* 6.12.0: Firebase.podspec FirebaseAuth pod version reverted, cherry-pick #4231 (#4234)

* Firebase.podspec - revert Auth

* check_whitespaces.sh: ignore notices. (#4231)

* Remove unnecessary NOTICES file (#4242)
2019-11-06 14:56:42 -05:00
Gil 1953cc59a4 Integrate with Abseil via CocoaPods (#4097)
Use Abseil 0.20190808
2019-11-05 09:12:34 -08:00
Paul Beusterien a621e59217 Merge 6.11.0 (#4134) 2019-10-22 11:35:29 -07:00
Konstantin Varlamov a59abed15a Firestore podspec: avoid adding Firestore headers to sources (#4054)
See #4035: a certain combination of pods can lead to a broken build. The underlying issue is that CocoaPods generate a header map that includes headers from _all_ the pods in a project. A header map maps short file names to full paths and is unable to handle collisions; thus, in a CocoaPods-based build, if one pod contains a header with a common name, and the other pod tries to import a header with the same short name by relying on header maps (without specifying a longer path), the header from one pod may end up getting erroneously picked up by the other pod.

In that particular case, `SVGKit` is relying on header maps and trying to import `Document.h`, which, for reasons described above, happens to pick up `document.h` from Firestore. However, since header maps cannot handle collisions in general, this could manifest with other pods as well.

The workaround is to avoid adding Firestore header files (except the public ones) to sources.

See https://github.com/facebook/react-native/issues/14326, which describes the same problem.

Fixes #4035.
2019-10-14 14:48:27 -04:00
Ryan Wilson bbcac27b72 Release 6.10.0 (#4022)
* Update versions for Release 6.10.0

* Cherrypick #3983 and include Database in release. (#3986)

* Remove log argument that causes SocketRocket crash (#3983)

* Add FirebaseDatabase to release.

* Update CHANGELOG with version.

* Cherrypick for #3984 along with CHANGELOG update. (#3988)

* Fix race condition in FIRComponentContainer instance creation (#3984)

* Fix race condition in FIRComponentContainer instance creation

Reported in #3967. Users sometimes seeing a crash when multiple threads
concurrently try to create Firestore instances. By inspection I found
that there's a race here where two threads can check for presence in the
cache, see nothing, proceed to creation, both store a value in the cache,
and both return their copies. This would lead to two Firestores being
created for a single App.

This replaces `dispatch_sync` on a serial queue with good old
`@synchronized` blocks. `dispatch_sync` will self-deadlock if called
from a thread already on the queue while `@synchronized` allows
recursion.

No new tests are added because several tests like
`testDependencyDoesntBlock` already cover this case.

* format

* Update Core CHANGELOG

* Update Core CHANGELOG again

* Fix merge from CHANGELOG
2019-10-09 12:10:33 -04:00
Paul Beusterien 01f49c3f79 Use at least Protobuf 3.9.2 (#3916) 2019-09-24 10:29:51 -07:00
Paul Beusterien fb353c22d4 Merge 6.9.0 (#3907)
* Update versions for Release 6.9.0

* Fix unbalanced background task creation in GDTCCTUploader (#3838) (#3839)

* Add Manifest

* dependency version update

* Cherry picks for 6.9.0 (#3871)

* fixed "expiclitlySet" typo. (#3853)

* Mark unused variables (#3854)

* Mute FCM deprecated warnings with Xcode 11 and min iOS >= 10 (#3857)

* Add a third slash to make sure generated docs include these comments.b/13812238 (#3846)
2019-09-23 10:41:33 -07:00
Maksym Malyhin 89a276928c Merging the 6.8.0 release into master (#3783)
* Update versions for Release 6.8.0

* RemoteConfig fix pod spec lint (#3715) (#3716)

* ABTesting: add protos to private headers.

* RemoteConfig: #import <FirebaseABTesting/ExperimentPayload.pbobjc.h>

* ./scripts/style.sh

* Remote Config `pod spec lint` fixes (#3717) (#3718)

* Fix ExperimentPayload.pbobjc.h imports

* RemoteConfig tests: add missing headers to spec.

* Revert ExperimentPayload.pbobjc.h import for ABTesting sources.

* Add FDL to M55 (#3724)

* Remove references to UIWebView from DynamicLinks to comply with Apple "ITMS-90809: Deprecated API Usage" (#3723)
* Add FDL to M55

* Fix accessing a destroyed object (#3721) (#3725)

This was caused by running under Asan with XCode 11. Apparently, previous versions of XCode cannot catch it (which is why Travis is passing, apparently).

Also:
* enable "Detect use of stack after return" option for Asan. AFAIU, it can only be enabled in the scheme. It's already enabled for unit tests, this PR additionally enables it for integration tests;
* make Asan failures fail Travis build. They were originally not considered blocking due to some sporadic failures. I haven't seen those for some time, and worst case scenario, we can revert this change.

* Cherry pick GDT changes for 6.8.0 and increment versions (#3770)

* Release 6.8.0: cherry pick of #3764 and #3766 (#3772)

* Gate access to cached instances. (#3766)

* Gate access to cached instances.

This is causing an issue in #3728. Hopefully this will fix it, but no
repro is available yet to test. There's still an underlying race
condition where a `creationBlock` could be called twice for a component
that is supposed to cache the instance returned, but that should be
addressed in a follow up PR.

* Review feedback.

* Iterate from array copy in `latestExperimentStartTimestampBetweenTimestamp:` (#3764)

* Release 6.8.0 cherry pick: conflicting Dynamic Links changelog changes. (#3790)

* Update FDL CHANGELOG (#3781)

* Issue number, not PR number (#3785)
2019-09-06 15:19:25 -04:00
Paul Beusterien 62af87557d Merge 6.7.0 patch 1 (#3666) 2019-08-23 10:06:48 -07:00
Paul Beusterien d70c873654 Release 6.7.0 (#3646) 2019-08-21 15:41:58 -07:00
Gil d99c6c307d Upgrade LevelDB to 1.22 (#3637) 2019-08-21 08:11:21 -07:00
Gil aefd4323a2 Remove Objective-C immutable sets and maps (#3590)
* Remove Firestore/third_party/Immutable

* Update podspec and sync_project

* Project updates
2019-08-19 09:09:20 -07:00
Paul Beusterien 24a58ad86a Release 6.6.0 (#3518) 2019-08-07 11:03:41 -07:00
Paul Beusterien 35b9f31af2 Update versions for Release 6.5.0 (#3388) 2019-07-19 10:33:02 -07:00