Commit Graph
60 Commits
Author SHA1 Message Date
69bfe3fd3c Merge FLoC SDK into master branch. (#6466)
* Create Segmentation SDK structure for source and unit tests. (#3214)

* Create Segmentation SDK structure for source and unit tests.

* Review changes: Remove unnecessary files in test folder. Add md-floc-master to CI

* Rename Segmentation directory to FirebaseSegmentation directory. Update podspec to include search header path.

* Add core support with interop for Segmentation SDK.  (#3430)

* Add core support with interop for Segmentation SDK. Also update headers to be under sources folder.

* Review fixes.

* Minor changes.

* Fix style.

* Fix style.

* Style changes.

* Fix whitespace in travis.yml

* Fix style.

* Travis CI is stuck..try updating the travis.yml

* Undo travis.yml change.

* Working drop of Segmentation SDK along with test app and unit tests. (#4574)

* Working drop of Segmentation SDK along with sample app and unit tests.

* Update if_changed.sh to include FirebaseSegmentation.

* Complete NS_ASSUME_NON_NULL_START with NS_ASSUME_NON_NULL_END in header file.

* Fix unit tests.

* Fix style.

* Fixes after running XCode's static analyzer.

* Fix style.

* fix style.

* 'pod lib lint' fixes.

* Fix analyzer errors.

* Address review comments.

* Minor changes for review comments.

* Address review comments.

* Address review comments.

* stop mocking in tear down method for tests.

* Minor update to sample app project.

* Fix trailing whitespace in Podfile.

* Add set -x to check.sh

* update segmetation dependency version

* migrate FloC SDK to depend on FIS SDK directly

* format floc

* format

* using customized FIRapp

* remove test plist file

* refactor to capture weakself

* format

* replace partial mock with class mock

* minor refactoring

* use subscript to manipulate dictionary instance

* fix import error

* minor refoctoring, addressing comments

* address comments

* fix configurations

* format

Co-authored-by: dmandar <dmandar@users.noreply.github.com>
Co-authored-by: ChaoqunCHEN <cqchen93@gmail.com>
2020-10-01 15:10:32 -07:00
Paul Beusterien e03a8d91a0 Consolidate GDT and GDTCCT to a single pod (#5902) 2020-06-24 14:09:46 -07:00
Paul Beusterien fa72963bfd Update FirebaseDatabase to canonical directory structure (#5860) 2020-06-22 07:26:07 -07:00
Paul Beusterien 3f556ddb9e Update GoogleUtilities' clients with repo-relative imports (#5824) 2020-06-16 09:05:29 -07:00
Sebastian Schmidt 885f296f3b Update Database tests to run against the emulator (#5650) 2020-05-20 23:12:10 -07:00
Chen Liang dabfd91dea Move messaging sample app to the new FirebaseMessaging folder (#5476) 2020-04-27 16:31:17 -07:00
Chen Liang 793d763490 create firebase messaging folder (#5445) 2020-04-23 14:43:47 -07:00
Paul Beusterien df75e500b0 Migrate Auth to canonical directory structure (#5318) 2020-04-08 17:52:56 -07:00
Sam Edson 85f9926e66 Add Crashlytics to if_changed for GoogleDataTransport changes (#5102) 2020-03-13 15:26:50 -04:00
Paul Beusterien 0058b259b4 Remove deprecated FIAMDisplay from repo (#4899) 2020-02-13 08:59:43 -08:00
Gil fae5c43af2 Extract log output from xcodebuild runs after failures (#4867) 2020-02-12 15:42:08 -08:00
Gil 9cb98ac733 Upgrade Firestore emulator to 1.10.4 (#4845)
* Upgrade Firestore emulator to 1.10.4

The emulator now sends resume tokens, which exercises more of the
system. In particular, this means that resuming queries now uses the
index-free query engine.

* Ensure CI runs on script changes
2020-02-06 17:30:20 -08:00
Paul Beusterien dcf876d6a0 Delete duplicate function (#4744) 2020-01-24 11:01:29 -08:00
Maksym Malyhin b68ad6282d if_changed.sh: add InstanceID and Installations to all dependent SDKs (#4687)
* if_changed.sh: add InstanceID and Installations to all dependent SDKs

* if_changed.sh: Remote Config podspec added

* Remove redundunt FirebaseInstallations.podspec
2020-01-15 11:33:57 -05:00
Paul Beusterien ba8ebce8cc Fix if_changed script for Crashlytics (#4663) 2020-01-13 07:15:16 -08:00
Jason Hu 355131cc21 Enable CI for Crashlytics (#4630) 2020-01-08 16:54:11 -05:00
Paul Beusterien fc8639f4a9 Fix cmake build regression (#4596) 2020-01-06 09:33:35 -08:00
Paul Beusterien 1367084063 FirebaseCore directory structure update (#4590) 2020-01-06 07:11:40 -08:00
Paul Beusterien efa9bd9cd4 Remove Firebase xcode project (#4588) 2020-01-03 12:19:41 -08:00
Paul Beusterien b6cd99e30a Update Firebase Storage directory structure (#4573) 2020-01-03 07:22:33 -08:00
Maksym MalyhinandChen Liang f62c7ddcec IID: version dependent on FirebaseInstallations (#4533)
* Firebase Installations: Instance ID now uses FIS under the hood. (#3398)

* Fix merge errors

* Use modular import for FIRInstanceID_Private.h

* Use modular imports for FirebaseInstanceID.h (#3509)

* Changes missing during the fix.

* Changes missing during merge.

* Fix header import.

* ./scripts/style.sh

* Fix FCM tests. (#3888)

* Fix IID FCM token check.

* FirebaseInstallation: merge master into FIS integration branch (#4076)

* Fix IID FCM token check.

* Unused constant deleted.

* FCM tests: fix bad merge.

* Remote Config test app: use local IID and FIS. (#4089)

* token request should pass through if token is not fresh (#4104)

* Merge errors fix.

* IID with FIS: send FIS auth token with IID token request (#4152)

* FIRInstanceIDTokenOperation: add FIS auth token to the IID token request.

* IID tests: don't use FIS private headers.

* IID: indication of compatibility with FIS (#4262)

* FIS: IID incompatible version exception.

* FirebaseInstallations.podspec: set preprocessor flags based on env vars.

* FIS Travis: set required env vars

* /scripts/style.sh

* IID: method to indicate FIS usege added.

* FIS: FIRInstantiationTimingEagerInDefaultApp

* FIS: FIRInstantiationTimingAlwaysEager

* IID: make compatibility method static.

* Make -[FIRInstanceID appInstanceID:] safe to be called from any thread (#4482)

* IID: use a cached value of FID for -[FIRInstanceID appInstanceID:]

* TODO comment

* TODO updated

* FirebaseInstallations: prepare IID with FIS dependency for release (#4522)

* Bump FIrebaseInstallations to 1.0.0

* Travis: remove mm/fis-integration-master branch

* Travis: if_changed script updated to reflect IID dependency on FIS.

* Revert "Travis: remove mm/fis-integration-master branch"

This reverts commit 534dff990a.

* Travis: remove mm/fis-integration-master branch (#4526)

* Formatting and spelling.

* Firebase example proj: pod deintegrate

Co-authored-by: Chen Liang <chliang@google.com>
2019-12-20 10:54:11 -05:00
Paul Beusterien 7481e8b97f travis job consolidation for Core, GDT, and FIAM (#4385) 2019-11-22 16:57:08 -08:00
Ryan Wilson 563854e81e Copy component container to GoogleUtilitiesComponents (#4113)
* Move component container to GoogleUtilities.

This will allow non-Firebase SDKs to take advantage of the component
system. Note: Firebase Core will eventually move over to use this, but
more investigation is needed about how this can be done with the least
amount of churn for other SDKs.

* Fix dependency on Logger.

* Add CHANGELOG entry.

* Fix selector name.

* Move ComponentContainer subspec to new pod.

* Rename to GoogleUtilitiesComponents.

* Style, make public headers.

* Update travis with new name.

* Add project to if_changed.sh

* Review comments.

* Enabled static framework, changed homepage.

* Fix missing quote.
2019-10-25 14:05:29 -04:00
Paul Beusterien 42118c9b13 Stop using statics in header (#4149) 2019-10-24 06:36:55 -07:00
Paul Beusterien d8e3a11bb1 Restore Firebase pod to closed source location (#4112) 2019-10-17 09:45:04 -07:00
Paul Beusterien 5895838392 Add Firebase Pod to the repo (#4021) 2019-10-08 14:57:07 -07:00
Paul Beusterien 4c19a13651 Make FIAM tests more robust in Travis (#3952) 2019-09-30 15:32:03 -07:00
Paul Beusterien bb563c8497 Migrate travis to Xcode 10.3 and single platform builds (#3714) 2019-08-29 12:26:30 -07:00
Paul Beusterien 2f5e4fdd95 Start RemoteConfig CI and fix/ignore warnings (#3649) 2019-08-22 13:37:44 -07:00
Paul Beusterien 3b0ed0ee4a Open Source ABTesting (#3507)
* CI for ABTesting
* README update
2019-08-05 19:30:54 -07:00
Michael Haney 783ee5b126 Implement Firebase CoreDiagnostics (#3129)
* Implement CoreDiagnostics interop

For use by FirebaseCore.

Please pay special attention to the changes in FIRApp, I've replaced passing FIRApp in the notification with a data object that will eventually replace the same information that FIRDiagnostics extracted.

* Add CoreDiagnosticsInterop to the Example Podfile

* Style and xcodeproj updates

* Update Podfiles that dep on FirebaseCore

So that they also have a dep on FirebaseCoreDiagnosticsInterop

* ran pod deintegrate to remove unintended xcodeproj changes

* Fix Podfile paths

* Add FCD to if_changed and travis.yml

* Fix building with Firestore

* Style

* Whitespace

* Fix a changed internal API

* Make pod paths consistent

* Restore connectivity_monitor_noop.cc style

* Remove logging prior to [FIRApp configure]

Also remove sendLogsWithServiceName:version:

* style

* Remove nil checks from diagnostics data

* Put back some deleted symbols

* Restore the sendLogsWithServiceName:version: method, but as a no-op

* Restore the original version of sendLogs...

* Allow an unused parameter

* Remove obsolete nsnotificationcenter related stuff

* Whoops, missed the header change.

* Final changes to support FIRCoreDiagnostics

These changes are necessary because FIRCore has a hard dep on FIRCoreDiagnostics (FIRCD) and FIRCoreDiagnosticsInterop.

Components can't be used because FIRCD would need to have a hard dep on FIRCore to get access to FIRLibrary, FIRComponent, FIRComponentContainer, and FIRComponentCreationBlock and this would create a dep cycle. So, an extern has been put into the interop lib and the variable is implemented in the connector class inside of FIRCore, but it's unset. FIRCD actually sets that variable in +load, allowing use of FIRCD.

FIRCD can also be removed as a dependency with no ill effect by end users setting the environment variable DISABLE_FIREBASE_DIAGNOSTICS=1

* Add nanopb and project generation infrastructure

* Convert FIRCoreDiagnostics to canonical nanopb, and move to OSS.

* Remove custom build steps for CoreDiagnostics

* Addressing review comments

* Update versions, tags, and port the relevant unit tests for FIRCD

* Version and platform fixes

* Fix podspec expected tags

* A hack to solve a chicken-and-egg problem with pod lib linting.

* Heartbeat implementation

* FIRDiagnosticsDateFileStorageTests

* Fix tests for non-iOS platforms

* Heartbeat tests

* Fix initialization.

* Cleanup Installation ID.

* Fix testProtoPopulation.

* Merge conflict fix

* Typo fix.

* Remove FIRCore dep from FIRCD unit tests and move symbols to interop

* Run ./scripts/style.sh

* Typo

* #ifdef comment

* File license header.

* Import FIRDiagnosticsDateFileStorage.h using relative path.

* FIRDiagnostics -> FIRCoreDiagnostics

* Docs syntax

* Docs

* Docs typo

* Add shared variables to the interop lib

I know this goes against the convention, but it's actually the only way to resolve this very unique problem.

* Fix comment

* Style

* Removed lib version passing.

* Remove env checking for conditional deps

* Style

* Address whitespace issues

* Add copyright notice

* Add new deps to Podfiles

* Fix trailing space

* Some changes to fix working in an extension.

* Fix type in Podfile

* GDT: begin/end background task only for iOS and TVOS applications.

* Fix typo

* Style

* Stop sharing kFIRService strings across pods

* Travis test

* Change all TARGET_OS_TVOS macros to TARGET_OS_TV

TARGET_OS_TVOS doesn't exist.

Also macro out a UIApplication reference.

* style

* Update all Podfiles with deps on FIRCore

* Fix trailing whitespace

* Update Firestore cmake

* Fix FIAM build break (#3254)

* Additional cmake changes

* Fix linker issue with deprecated CoreDiagnostics (#3257)

* Adding more deps to cmake

* Fix linker error (#3266)

* Rerun only IAM tests

* whitespace

* No xcpretty or frameworks run

* Fix typo

* Revert "No xcpretty or frameworks run"

This reverts commit afc1abba37.

* Revert "whitespace"

This reverts commit fd06955a56.

* Revert "Rerun only IAM tests"

This reverts commit 98ce07600f.

* Run travis on this branch

* Add support for expanding PODS_TARGET_SRCROOT in CMake (#3267)

* Fix a few things that should have been splatted but weren't

* Define PODS_TARGET_SRCROOT in CMake for compatibility with CocoaPods

* Compile pods we depend upon with looser settings

* Rename the nanopb dependency to match what CMake actually has

* Make #include <nanopb/pb.h> work

Remove the old way of #include <pb.h> once we change the Firestore
nanopb generator to match.

* Fix warnings that fail the build

* Remove typed enum and fix a comment.

* Fix an import

* Change a line so it's not altered by Copybara

* More changes to stop copybara from altering the wrong sources

* Remove trailing whitespace

* Fix copybara modifying python.

* Add additional field in firebasecore.proto (#3273)

* Remove the dependency on interop to populate a shared variable.

* style

* Create travis jobs for FirebaseCoreDiagnostics (#3245)

* Create travis jobs for FirebaseCoreDiagnostics

And update the pod lib lints for GDT.

Remove the mph-master branch before merging to master.

* Add support for FIRCD to if_changed.sh

* Adjust tests

* Unavailable init methods should not be nullable (#3276)

* Allow firestore api to work with Codable objects + ExplicitNull + Integration tests (#3261)

* Convinience api for codables

* Integration Tests

* ExplicitNull implementation

* Update to CocoaPods 1.7.3 (#3280)

* Import GULLoggerLevel.h via public framework header (#3277)

* Put the need to include Firestore/Source/Public in the podspec (#3288)

This removes the need to munge the pods project after the fact and makes
it so that customers can click through to our headers too.

* Ensure Storage initializer doesn't get called (#3294)

* FIROptions.appGroupID introduced (#3293)

* Use a consistent set of dependencies on all platforms (#3289)

* Use a consistent set of dependencies on all platforms

* pod install for uniform dependencies

* Store the coerced base value in the BaseMutation (#3292)

* In card message: set the text color on the body text view (#3286)

* In card message: set the text color on the body text view

* Fix bug where card messages in test app were showing up with two of the same buttons

* Revert change to text color

* [docs] add missing semicolon (#3305)

Add missing semicolon to code example

* Add explicit Foundation import. (#3309)

This is causing issues when building an XCFramework.

* Pass the correct compiler flag for CoreDiagnostics. (#3312)

* Pass the correct compiler flag for CoreDiagnostics.

When CoreDiagnostics is open sourced, we'll need to ensure that the
right compiler flag is passed. This doesn't add support for Carthage yet
but allows the frameworkbuilder to pass the flag for carthage as well.
An update to the zipbuilder to allow for carthage will follow shortly.

* Remove accidental change.

* Fix and rewrite sync_project.rb (#3296)

* Fix and rewrite sync_project.rb

Ever since we added multiple platforms, removing a file has been broken.
This fixes that issue.

Also, rewrite target synchronization to make more sense. Essentially now
there's one diff between the filesystem and the groups and then an
explicit diff is done between project files and target contents.

* Run sync_project.rb on post-install

* pod lib linting should output something every minute while running

* DEBUG: This commit should be reverted

* DEBUG: This commit should be reverted

* DEBUG: This commit should be reverted

* Remove mph-master from travis

* Fix constant name conflic between old and new diagnostics (#3329)

* Rename kFIRDiagnosticsHeartbeatDateFileName -> kFIRCoreDiagnosticsHeartbeatDateFileName to avoid conflicts with FIRDiagnostics.

* Travis: temporary add `mph-master` to run tests.

* Rempve mph-master again

* Fix imports in FIRCDConnector

* Fix another import

* Fix yet another import

* Attempt to read crashing test logs from disk

* Implement printing of failed/crashed test logs.

* Print only crashed tests, rmdir between runs

* Revert reading crashing log changes

* Write CHANGELOG for all new FIRCD associated libraries

* Change all GUL deps to >= 6.2

* Revert ZipBuilder changes and do some last bits of cleanup

* Remove an assertion and populate an error instead
2019-07-18 09:54:06 -07:00
Maksym Malyhin 8e73ddb222 Firebase Installations as standalone SDK (#3376) 2019-07-17 20:07:35 -04:00
Paul Beusterien daab8e3d11 Add FirebaseAuth test_spec (#3123) 2019-06-05 20:33:21 -07:00
Paul Beusterien d2fd372aa9 DynamicLinks test_spec (#3115) 2019-05-31 15:43:49 -07:00
Paul Beusterien 06d36108d8 Add test_spec for FCM (#3088)
* Add test_spec for FCM
* FIRMessagingRemoteNotificationsProxyTest - don't use OCMPartialMock([UIApplication sharedApplication]) to avoid crashing tests on iOS 8 (#3094)
2019-05-28 11:36:31 -07:00
Paul Beusterien 56807f383e GoogleUtilities to testspec and pod gen (#2908) 2019-05-28 11:35:51 -07:00
Gil 8b8ca76133 Rewrite pod_lib_lint as a ruby script (#3075)
* Find pod lib lint dependencies locally

* Trigger travis for pod_lib_lint

* Fix no local deps case

* Add a script to print the local dependencies of a given podspec file. (#3072)

* Make pod_local_deps.rb into pod_lib_lint.rb

* Remove old pod_lib_lint.sh

* Update usages of pod_lib_lint.sh to pod_lib_lint.rb

* Add tracing to pod_lib_lint.rb

* Only keep basenames in the seen set

* Mark the current podspec seen

* Handle the no deps case correctly
2019-05-24 10:59:30 -07:00
Paul Beusterien bf62c8c9df Add InstanceID test_spec (#3036) 2019-05-21 11:22:43 -07:00
Paul Beusterien 5ab3c91d80 Add test_specs and fix test build warnings for Database (#3034) 2019-05-21 08:29:15 -07:00
Paul Beusterien 862e1332d8 Add test_spec for FirebaseStorage (#3023) 2019-05-21 06:56:48 -07:00
Michael Haney 2009a08b0f Support macOS and tvOS in GDT and GDTCCT (#3027)
* Support macOS and tvOS in GDT and GDTCCT

* Fix travis for multiple platforms

* Give constant-value initializers for the background identifier

* Make travis platform-agonistic for GDT

* Consolidate #ifdef because they're the same code
2019-05-20 17:12:13 -07:00
Paul Beusterien b54bc7a2e9 Add FirebaseCore test_spec (#2943) 2019-05-06 13:54:34 -07:00
Michael Haney bbbaa7b037 Merge googledatatransport to master (#2829)
* Initial structural work for the google data logger. (#2162)

* Inital commit

* Remove Example project and replace with test_spec in the podspec

* Update gitignore to ignore the generated folder.

* Add a script to generate the project.

* Add some basic structure and tests.

* Remove unnecessary files and address PR feedback.

Removes .gitkeep, .gitignore, and .travis.yml files
Modifies the root .gitignore to ignore files generated by cocoapod-generate
Modifies the root .travis.yml to add this podspec to CI
Updates the README with some instructions

* Adding googledatalogger branch to travis CI

* Adding copyrights to files that were missing them

* Move GDLLogTransformer to the public header directory

An alternative is to set CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = 'YES', but I'm not sure this will work when publishing the pod.

* Add additional base infrastructure for the logging client (#2174)

* Generalize the concept of a logSource

Rename and change the type of the 'log source' to be more appropriately generalized as a log mapping identifier string.

* Expand the API of the logger.

* Add infrastructure for log storage.

* Add infrastructure for the log writer.

* Remove an unnecessary comment.

* Style fixes applied

* Change a missed assert message to make more sense.

* Flesh out the log event and log writer classes (#2175)

* Add timekeeping infrastructure.

* Add the log proto protocol.

* Flesh out the log event a bit.

* Flesh out the log writer.

* Put in comments for the log proto protocol.

* Move queue to a private header and update the TODO.

* Add comment about the QoS tier

* Fix style

* Enable travis for GoogleDataLogger using cocoapods-generate (#2185)

* Add logTarget as a property to GDLLogEvent and connect the logger to the writer.

* Enabled building and testing GoogleDataLogger in travis using cocoapods-generate

* Update Gemfile.lock

* Revert "Add logTarget as a property to GDLLogEvent and connect the logger to the writer."

This reverts commit cce26d3e50.

* Fix the workspace path.

* Add xcpretty gem

* Add the test directive to the GoogleDataLogger invocation

* Refactor GoogleDataLogger into its own section

Also remove GoogleDataLogger from Xcode9.4 pod lib linting, because the failure was not reproducible.

* Create a log wrapper and better test GDLLogWriter (#2190)

* Add logTarget as a property to GDLLogEvent and connect the logger to the writer.

* Create a log wrapper for use with GULLogger.

* GDLLogTransformer should inherit <NSObject> and require transform:

* Protect against doesNotRespond exceptions and expand tests

* Style and a missing @param.

* Update a comment

* Implement NSSecureCoding protocol for GDLLogEvent (#2191)

* Implement NSSecureCodingProtocol for GDLLogEvent

* Style changes.

* Refactor to address some comments and structure

GDLLogEvent and GDLLogProto are moved to the public folder.

GDLLogEvent has had some public API moved to a private header.

GDLLogWriter now writes the extension object to data after transforming, for serialization purposes.

Various headers updated to conform to module header rules.

* Create some core infrastructure for backends (#2198)

* s/GDLLogClock/GDLClock/

This isn't a class of log clocks, it's a class of clocks.

* Create some core infrastructure to support backends and prioritization of logs.

* Docs and slight changes to the scorer API.

* Missing return statement

* Change 'score' terminology to 'prioritize'. Also style issues.

* Change the protocol being used for a prioritizer.

* Implement -hash and -copy of GDLLogEvent, copy on log, and don't assign extensionBytes in log writer (#2204)

* Implement -hash and -copy of GDLLogEvent

Also implements a custom setter for setting the extension that changes the default behavior to set extensionBytes upon assignment of extension.

Copy the log upon logging, as the comments promised.

Remove setting extensionBytes in the log writer.

Implement a missing method

* Copy the log object upon logging

* Don't assign extensionBytes in the log writer

* Make an implicit loss of precision explicit.

* Add a comment on performance

* Add some test helpers and structure for new classes (#2212)

* Test helpers for GDLBackend and GDLLogPrioritizer

* Add shared uploader structure

* Implement some stubbed methods, update umbrella header, add missing test (#2214)

* Add missing test

* Implement some stubbed methods, update the umbrella header

* Implement log storage (#2215)

* Implement log storage

Includes tests and categories on existing classes to add testing functionality

* Better error handling in tye log storage

* Style and pod lib lint fixes

* Add missing comment

* Implement NSSecureCoding for GDLLogStorage (#2216)

* Implement NSSecureCoding for GDLLogStorage

* Fix style

* Rename variable

* merge master into googledatalogger branch (#2224)

* Clean up FIRAuth bits from FIRApp (#2110)

* Clean up FIRAuth bits from FIRApp

* Fix tvOS sample's Auth APIs. (#2158)

* Update CHANGELOG for Firestore v0.16.1 (#2164)

* Update the name of certificates bundle (#2171)

To accommodate for release 5.14.0.

* Fix format string in FSTRemoteStore error logging (#2172)

* C++: replace `FSTMaybeDocumentDictionary` with a C++ equivalent (#2139)

Also eliminate most usages of `FSTDocumentKey`, remove most methods from the Objective-C class and make it just a wrapper over `DocumentKey`. The only usage that cannot be directly replaced by C++ `DocumentKey` is in `FSTFieldValue`.

* Port performance optimizations to speed up reading large collections from Android (#2140)

Straightforward port of firebase/firebase-android-sdk#123.

* When searching for gRPC certificates, search the main bundle as well (#2183)

When the project is manually configured, it's possible that the certificates file gets added to the main bundle, not the Firestore framework bundle; make sure the bundle can be loaded in that case as well.

*  Fix Rome instructions (#2184)

* Use registerLibrary for pods in Firebase workspace (#2137)

* Add versioning to Functions and convert to FIRLibrary
* Convert Firestore to FIRLibrary
* Point travis to FirebaseCore pre-release for its deps
* Update user agent strings to match spec

* Port Memory remote document cache to C++ (#2176)

* Port Memory remote document cache to C++

* Minor tweaks to release note (#2182)

* Minor tweaks

* Update CHANGELOG.md

* Update CHANGELOG.md

* Port leveldb remote document cache to C++ (#2186)

* Port leveldb remote document cache

* Remove start from persistence interface (#2173)

* Remove start from persistence interface, switch FSTLevelDB to use a factory method that returns Status

* Fix small typos in public documentation. (#2192)

* fix the unit test #1451 (#2187)

* Port FSTRemoteDocumentCacheTest to use C++ interface (#2194)

* Release 5.15.0 (#2195)

* Update versions for Release 5.15.0

* Create 5.15.0.json

* Update CHANGELOG for Firestore v0.16.1 (#2164)

* Update the name of certificates bundle (#2171)

To accommodate for release 5.14.0.

* Fix format string in FSTRemoteStore error logging (#2172)

* Update CHANGELOG.md

* Update 5.15.0.json

* Port FSTRemoteDocumentCache (#2196)

* Remove FSTRemoteDocumentCache

* Fix leaks in Firestore (#2199)

* Clean up retain cycle in FSTLevelDB.

* Explicitly CFRelease our SCNetworkReachabilityRef.

* Make gRPC stream delegates weak

* Port DocumentState and UnknownDocument. (#2160)

Part of heldwriteacks.

Serialization work for this is largely deferred until after
nanopb-master is merged with master.

* Port FSTMemoryQueryCache to C++ (#2197)

* Port FSTLevelDBQueryCache to C++ (#2202)

* Port FSTLevelDBQueryCache to C++

* Fix Storage private imports. (#2206)

* Add missing Foundation imports to Interop headers (#2207)

* Migrate Firestore to the v1 protocol (#2200)

* Use python executable directly

  * python2 is not guaranteed to exist
  * scripts aren't directly executable on Windows

* Add Firestore v1 protos

* Point cmake at Firestore v1 protos

* Regenerate protobuf-related sources

* Make local protos refer to v1 protos

* fixup! Regenerate protobuf-related sources

* Remove v1beta1 protos

* s/v1beta1/v1/g in source.

* s/v1beta1/v1/ in the Xcode project

* Remove stale bug comments.

This was fixed by adding an explicit FieldPath API rather than exposing
escaping to the end user.

* Add SymbolCollisionTest comment for ARCore (#2210)

* Continue work on ReferenceSet (#2213)

* Migrate FSTDocumentReference to C++

* Change SortedSet template parameter ordering

Makes it easier to specify a comparator without specifying what the
empty member of the underlying map is.

* Migrate MemoryMutationQueue to C++ references by key

* migrate.py

* CMake

* Finish porting ReferenceSet

* Swap reference set implementation

* Port MemoryQueryCache to use ported ReferenceSet

* Port FSTReferenceSetTest

* Port usage for limbo document refs

* Port LRU and LocalStore usages

* Remove FSTReferenceSet and FSTDocumentReference

* Style

* Add newline

* Implement QueryCache interface and port QueryCache tests (#2209)

* Implement QueryCache interface and port tests

* Port production usages of QueryCache (#2211)

* Remove FSTQueryCache and implementations

* Switch size() to size_t

* Keep imports consistent (#2217)

* Fix private tests by removing unnecessary storyboard entries (#2218)

* Fix xcode 9 build of FDLBuilderTestAppObjC (#2219)

* Rework FieldMask to use a (ordered) set of FieldPaths (#2136)

Rather than a vector.

Port of firebase/firebase-android-sdk#137

* Travis to Xcode 10.1 and clang-format to 8.0.0 (tags/google/stable/2018-08-24) (#2222)

* Travis to Xcode 10.1
* Update to clang-format 8
* Update clang-format homebrew link
* Work around space in filename style.sh issue

* Create testing infrastructure that simplifies catching exceptions in dispatch_queues (#2226)

* Apply updated clang-format

* Add a custom assert and use it instead of NSAssert

* Define a shared unit test test class and change unit tests to use it

* Add the GDLAssertHelper to be used by GDLAsserts

* Change copyright year, style, and only define the assert macro body if !defined(NS_BLOCK_ASSERTIONS)

* Remove rvm specification from travis (#2227)

* Implement additional tests and enhance GDLLogEvent (#2231)

* Move qosTier to the public API and add a custom prioritization dict

* Set the default qosTier in each logging API

* Change a missing transform: impl to an error, rearrange error enums

We can only rearrange the enums because we've not shipped anything yet.

* Implement additional tests

* Remove extra space

Damned flat macbook keyboards.

* Refactor to allow injection of fakes, and take warnings seriously (#2232)

* Create fakes that can be used during unit tests

* Create a private header for the logger

* All log storage to be injected into the log writer, and now give logs to log storage.

Also changes the tests to use the fakes

* Treat all warnings as errors, and warn pedantic

* Ok nevermind, don't warn_pedantic.

* remove trailing comma

* Remove obsolete TODOs

Not needed, because a fake is being used.

* Add fakes and injection to log storage for the uploader, implement a fast qos test

* Move all unit tests to the Tests/Unit folder (#2234)

* s/GDLUploader->GDLUploadCoordinator/g and s/GDLLogBackend/GDLLogUploader (#2256)

* Implement a clock. (#2273)

* Implement a clock.

Files to pay attention to: GDLClock.h/m

* style

* Enhance the log storage class (#2275)

* Rename fields related to the previous notion of 'backends' to 'uploaders'.

Also changes the declaration of the uploader callback block.

* Add the ability to delete a set of logs by filename, and a conversion method for hashes to files.

* Change the log storage removeLogs method to be log hashes instead of URLS

* Style, and change the completion block to include an error

* Change to sync, since async to adding more async created race condition opportunity.

* Test new storage methods

* Fix coordinator method declarations

* Add test-related functionality, make GDLRegistrar thread-safe and tested (#2285)

* Add some functionality to the test prioritizer

* Change the registrar's API and make it thread safe.

* Add an error message enum for a failed upload

* Add more functionality to the log storage fake

* Make a property readonly.

* Implement the upload coordinator (#2290)

* Implement the upload coordinator

This is a thread safe class to manage the different GDLUploader implementations.

* Remove a bad comment

* Spelling

* Code cleanup (#2297)

Add some nullability specifiers, remove a test that won't compile, change the pod gen script.

* Update podspec and factor out common test sources (#2336)

* Update podspec and factor out common test sources

* Add a wifi-only QoS specifier

* Change the prioritizer protocol to include upload conditions

* Remove an unused log target.

* Call unprioritizeLog and remove an assert that wasn't helpful

* Put the upload completionBlock on the uploader queue

* Fix the CI and podspec.

* [DO NOT MERGE TO MASTER] Raise the cocoapods version to 1.6.0.rc.2

* [DO NOT MERGE TO MASTER] Update Gemfile correctly

* [DO NOT MERGE TO MASTER]  Use the tag, not the version number.

* Correct an incorrect commit

* Remove the name for standard unit tests

* Implement an integration/E2E test of the logging pipeline (#2356)

* Move the -removeLog API to be file-private, it's unused publicly.

* Remove altering of in flight log set, that's done in the onComplete block

* Copy the set of logs given to upload so it's not altered while the pipeline is operating on it.

* Implement an integration/E2E test of the library's pipeline

Includes a dependency on GCDWebServer in the test_spec to run an HTTP server endpoint that the uploader can upload to.

* Rename -protoBytes to -transportBytes

* Change the integration test timing

* Spelling.

* Fix the scheme names in build.sh

* Change cocoapods version from 1.6.0.rc.2 to 1.6.0. (#2358)

* Change cocoapods version from 1.6.0.rc.2 to 1.6.0.

* Update Gemfile.lock

* Rename googledatalogger to GoogleDataTransport (#2379)

* Rename GoogleDataLogger to GoogleDataTransport

All files should be renamed, GDL prefixes should now be GDT.

* Remove references to logging and replace with notion of 'transporting'

* Style, and cleaning up a few more references

* Change travis config to googledatatransport instead of googledatalogger

* Add 'upload packages' to allow prioritizers to pass arbitrary data to uploaders (#2470)

* Update some comments and move the event clock snapshot to the public header

* Create the notion of an 'upload package'

This will allow prioritizers to pass arbitrary data to the uploader that might be needed at upload time.

* Make the -transportBytes protocol method required.

* Make the rest of the framework use the upload package

* Style

* Remove cct.nanopb.c

It was accidentally added.

* Implement a stored event object to simplify in-memory storage (#2497)

* Implement a stored event object to simplify in-memory storage

This will make passing data to the prioritizers and uploaders easier, and it significantly simplifies logic in the storage system while reducing memory footprint.

* Remove two files that always seem to sneak in somehow.

* Style and a needed cast

* Lay the groundwork for CCT support, and include the prioritizer imple… (#2602)

* Lay the groundwork for CCT support, and include the prioritizer implementation.

* Style

* Adjust a flaky test.

* Add GoogleDataTransportCCTSupport configs to travis

* Fix small issues with travis configs

* Fix syntax error in build.sh

* Add SpecsStaging as a source for generation of GDTCCT

* Address shortening warning

* Remove headers that were unintentionally committed.

* Make the podspec description != to the summary

* Spelling

* Expose all properties of a GDTClock, better -hash and -isEqual impls (#2632)

* Expose all properties of a GDTClock, add -hash and -isEqual implementations for GDTStoredEvent

* Style, remove unused define

* Change GDTStoredEvent -isEqual implementation

* Remove unintentionally committed files

* Implement the CCT proto using nanopb (#2652)

* Write scripts to help generate the CCT proto

* Expand the event generator to generate consistent events

* Add the CCT proto and generator options

* Add the nanopb generated sources and nanopb helpers

* Ignore the proto-related directories in GDTCCTSupport

* Fix whitespace

* Clean up generate_cct_protos.sh

Use git instead of curl, rename zip to tar.gz, use readonly variables and proper variable expansion

* Address review comments

Check return of pb_decode correctly.
Use more arbitrary numbers for test event data.
Reimplement GDTCCTEncodeString more intelligently.
Use better initial values for messages.

* Fix memory leak in tests

* Use FOUNDATION_EXTERN consistently

* Fix test name and always initialize nanopb vars.

* Change FOUNDATION_EXTERN to FOUNDATION_EXPORT, fix missing assert code

* Reinit a corrupted response to the default

* Populate an error if decoding the response fails.

* Make high priority events force an upload via upload conditions (#2699)

* Make high priority events force an upload via upload conditions

Forced uploads should be defined as an additional upload condition, as opposed to constructing an ad-hoc upload package. This allows the prioritizer and uploader to do housekeeping more easily.

Address a race condition during high-priority event sending in which a package can be asked for whilst the storage is still asking the prioritizer to deprioritize events that have already been removed from disk.

* Make _timeMillis in GDTClock be the actual unix time

* Style

* Implement the CCT prioritizer and an integration test (#2701)

* Implement the CCT prioritizer

* Add support for high priority uploads

* Add an integration test, demonstrating usage of CCT

* Update the podspec

* Change library podspecs to require 1.5.3, and change old tag string (#2702)

* Remove the GULLogger dependency (#2703)

* Remove the GULLogger dependency

Wrote a quick console logging function that will log to the console in debug mode.

* Style

* Remove the .proto and .options files from the cocoapod (#2708)

* Remove the .proto and .options files from the cocoapod

* Update check_whitespace

* Implement app-lifecycle groundwork (#2800)

* Create the lifecycle class

* Add running in background properties and implement archive paths for the stateful classes.

* Move -stopTimer into the upload coordinator

* Add test for encoding and decoding the storage singleton.

* Add a test transport target.

* Style

* Temporarily commenting out sending lifecycle events.

* More style.

* Demonstrate that I know what year I made this file

* Implement app lifecycle reactivity. (#2801)

* Implement app lifecycle reactivity.

* Re-enable the lifecycle code

* Implement reachability and upload conditions (#2826)

* Add a reachability implementation

* Add a reachability private header

* Define more useful upload conditions and start at 1 instead of 0

* Implement determining upload conditions

* Add hooks for lifecycle events to the CCT implementation.

* Style

* Lower cocoapods required version to 1.4.0 and remove googledatatransport branch from travis config

* Add travis_retry for GoogleDataTransport unit tests.

The E2E integration tests are a bit flaky.
2019-04-12 19:27:00 -07:00
Maksym Malyhin 9c72e1a8e4 InstanceID - podspec lint fix (#2796) 2019-04-10 15:07:12 -04:00
Paul Beusterien ee10c4edb0 Use test specs for Functions unit tests (#1864) 2019-03-07 16:38:31 -08:00
Paul Beusterien f76ae211e9 Fix GoogleUtilities regression for Firestore builds 2 (#2433)
* Run Firestore builds/tests on GoogleUtilities changes
* Silence macOS 10.10 warnings
* Add cast to fix Firestore macOS builds
2019-02-22 20:07:47 -08:00
Paul Beusterien 6e4af0f2ad Fix import references to other pod's headers to fix pod lib lint (#2409)
* Fix import references to other pod's headers to fix pod lib lint

* style

* fiam travis config fixes

* Fix Sample's HEADER_SEARCH_PATHS
2019-02-20 13:31:28 -08:00
Paul Beusterien aa7016f718 Prevent prevalent Xcode 10.1 simulator flake (#2276) 2019-01-17 12:10:37 -08:00
Paul Beusterien 420dfc257b Comply with c99 standard (#1992)
* Trigger travis for Firestore podspec changes
2018-10-24 11:04:00 -07:00
Paul Beusterien 3fd6ec87cf Restore pod lib lint testing to public (#1958)
* AnalyticsInterop 1.1.0 is public so restore pod lib lint testing
* better if_changed checking
2018-10-16 15:03:57 -07:00