* Add Firestore_IntegrationTests_macOS to Xcode
* Change deployment target from 10.14 to 10.10
* Make standard target edits
* Force C99/C++11
* Use shared test info.plist
* Remove CODE_SIGN_IDENTITY
* Add Firestore_IntegrationTests_macOS to the Podfile
* Have sync_project handle macOS integration tests
* Pod install and sync_project
* Add header search paths and ldflags
* Build integration tests on macos
* Remove integration tests from unit tests
* Make Firestore_IntegrationTests_macOS buildable from the command-line
* Rename Firestore/Example/App/macOS_example to macOS
* Update paths to macOS and names to Firestore_Example_macOS
* Add Firestore_Tests_macOS target
This uses a shared Tests Info.plist. This is important because it
configures NSPrincipalClass
* Teach sync_project about Firestore_Tests_macOS
* Add files to Firestore_Tests_macOS
* Add Firestore_Tests_macOS target to the Podfile
* Add HEADER_SEARCH_PATHS to match iOS
* Force C99/C++11 conformance
* pod install after adding Firestore_Tests_macOS
* Get macOS tests to link
* Add spec test json files to the macOS tests
* Remove development code signing
* Disable app sandboxing to allow GoogleTest death tests to succeed.
* Enable strict mode in pod_lib_lint.sh
Use bash arrays to make quoting work correctly.
* Only check pod lib lint for iOS on each PR
This cuts build time for Firestore in half and should help cut bring
down total build times.
Note that cronned pod lib lint still checks all platforms.
* Log swiftformat version in non-interactive builds.
* Use a mildly-terrible regex for version check to ensure at least 0.35.0 (travis has 0.35.8).
* Include StorageViewController.swift change swiftformat 0.38 makes (but which seems to be compatible with 0.35)
Besides adding a new macOS example to the project, this:
* Adds a search for roots.pem in root of main bundle
* Accepts swiftformat 0.37 in `style.sh`
* Extends the travis_wait from the default 20 mins to 45 to allow for building iOS and macOS.
* 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
Fuzzing triggers many assertion failures, which generates enormous log output. AFAIK, there is no way to make `NSAssertionHandler` _not_ write to log, and the assertions themselves are valid. Thus, implement a workaround: only output the last part of the logs in Travis, in order to avoid exceeding the log size limit (4 Mb).
* Revert "Revert "gRPC: replace Objective-C implementation with the new C++ implementation (#1968)" (#2030)"
This reverts commit ea567dca47.
* gRPC: fix bugs found during testing (#2039)
All in `GrpcStream`:
* make sure there are no pending completions when "finish" operation is enqueued;
* always finish gRPC calls;
* when connectivity changes, reset not just the calls, but the underlying channel as well.
* Revert "Partially revert "Update CHANGELOG for Firestore v0.14.0 (#2025)" (#2031)"
This reverts commit b2437b80f6.
* Update changelog for v0.15.0.
* gRPC: add gRPC wrapper classes to CMake build (#2015)
* add a C++ equivalent of `FIRFirestoreVersionString`. This eliminates the only Objective-C dependency of `grpc_connection.mm` and allows making it a pure C++ file;
* open-source `binary_to_array.py` script and use it in the build to embed `roots.pem` certificate file from gRPC into the Firestore binary. The embedded char array is then used to load certificate at runtime.
* Revert local change -- do not enable sanitizers by default
* Update abseil-cpp to a new upstream
Update to 7990fd459e9339467814ddb95000c87cb1e4d945 master@{2018-11-06}
* Re-apply -Wcomma fix
* Update add_subdirectory for Abseil
* Remove references to Firestore/Port (which longer exists)
* Fix ABSL_HAVE_THREAD_LOCAL when targeting iOS 8 in Xcode 10
* Clean up abseil warnings
* Clean up a Firestore format string warning.
* Exclude third_party/abseil-cpp from whitespace checks
The reachability state is not (yet) used to determine whether it's possible to reconnect; rather, the its only use is to quickly end any existing connections. The benefit is potentially quicker reaction to network being disconnected than it would take for the connection to time out.
All proto targets (objc, cpp, nanopb) now depend on the proto sources,
so they'll be rebuilt if the proto sources change.
Also updated Firestore/Protos/README.md to reflect recent changes.
Also update travis config to build the protos. (Previously, cpp and
nanopb were rebuilt, since they're used in the cmake build. But objc was
not since it's not actually depended on by anything in cmake.)
* Rename nanopb/.../*.pb.c to nanopb/.../*.nanopb.c
This ensures that all generated nanopb files use the same (sub)
extension of nanopb. This matches up with nanopb's --extension
parameter (which will be enabled later in this PR.)
* Remove references to NANOPB_PROTOC_BIN
Which wasn't being used, and wasn't pointing to a valid protoc.
* Add ability to generate protos from cmake build.
Currently, it's an entirely manual process via 'generate_protos' target.
This target is not automatically run during a build.
See Firestore/Protos/build-protos.sh for expected usage.
* cleanup/update license in build-protos.sh
* Build grpc proto sources (objc only)
* Use 32bit nanopb fields (instead of 16)
To match xcode build, but also to allow google/api/annotations.proto to
compile. (A recent change to nanopb now enforces this.) This isn't
strictly necessary, since we don't make use of that proto, so we
could've simply removed it instead (and in fact, the objc protos do
exactly that) but matching the xcode build certainly seems worthwhile.
* Rebuild all proto sources
* Skip whitespace checks on protoc generated files