diff --git a/CHANGELOG.md b/CHANGELOG.md index a6602aeee..a6eeb0544 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,122 @@ # Changelog -### [1.35.2](https://www.github.com/googleapis/java-firestore/compare/v1.35.1...v1.35.2) (2020-07-16) +## [2.0.0](https://www.github.com/googleapis/java-firestore/compare/v1.35.2...v2.0.0) (2020-08-14) + + +### New Features + +#### Query Partition API + +New API and backend RPC which allows for fetching a set of cursor keys for a +Collection Group Query. Accessible via the new [`CollectionGroup#getPartitions(long,ApiStreamObserver)`](https://googleapis.dev/java/google-cloud-firestore/2.0.0/com/google/cloud/firestore/CollectionGroup.html#getPartitions-long-com.google.api.gax.rpc.ApiStreamObserver-) method. + +#### Read-Only Transaction Options + +[`TransactionOptions`](https://googleapis.dev/java/google-cloud-firestore/2.0.0/com/google/cloud/firestore/TransactionOptions.html) +has been refactored to provide the ability to configure options for read-only +transactions along with the existing configuration for read-write transactions. + +This new ability is provided via the new [`TransactionOptions.createReadOnlyOptionsBuilder()`](https://googleapis.dev/java/google-cloud-firestore/2.0.0/com/google/cloud/firestore/TransactionOptions.html#createReadOnlyOptionsBuilder--) +type safe builder. + +Along with the new type safe builder for read-only options, there is a new type +safe builder for read-write options as well accessible via [`TransactionOptions.createReadWriteOptionsBuilder()`](https://googleapis.dev/java/google-cloud-firestore/2.0.0/com/google/cloud/firestore/TransactionOptions.html#createReadWriteOptionsBuilder--). Each of the existing `TransactionOptions.create(...)` +methods for configuring read-write options has been deprecated in favor of the new builder. + +#### EmulatorCredentials + +`com.google.cloud.firestore.FirestoreOptions.Builder.FakeCredentials` has been +made static and renamed to `com.google.cloud.firestore.FirestoreOptions.EmulatorCredentials` +allowing instantiation outside `FirestoreOptions.Builder`. + +When connecting to the Cloud Firestore Emulator via `FirestoreOptions` rather than +the environment variable `FIRESTORE_EMULATOR_HOST`, a custom credential implementation +must be specified to allow various admin operations in the emulator. Previously +this required users to create their own implementation due to it not being +possible to construct a `FakeCredential`. As part of this change, `EmulatorCredentials` +is static and therefore able to be constructed from any location. + +### Breaking Changes + +#### New Firestore Admin Client API Artifact + +The Cloud Firestore Admin Client has been migrated to its own maven artifact `com.google.cloud:google-cloud-firestore-admin` +rather than being bundled in `com.google.cloud:google-cloud-firestore`. All +packages and classes have retained their existing names. + +The new artifact is included in the `com.google.cloud:google-cloud-firestore-bom`, +`com.google.cloud:google-cloud-bom` and `com.google.cloud:libraries-bom` +artifacts and is accessible by adding the new dependency to your `pom.xml` file: + +```xml + + com.google.cloud + google-cloud-firestore-admin + +``` + +#### Removal of v1beta1 + +Cloud Firestore has been GA for some time now, and the `google-cloud-firestore` +code base has been using the protos and generated classes for the v1 api since +that time. As such, we will no longer be publishing artifacts for the deprecated +v1beta1 protos. All functionality from v1beta1 is present in v1, and all users +should update any code to use v1. + +#### Removal of support for `java.util.Date` in Snapshots + +It is no longer possible to configure the ability for `java.util.Date` to be +returned from `DocumentSnapshot.get(FieldPath)` or `DocumentSnapshot.getData()` +for properties which are stored as Timestamps in Cloud Firestore. + +The default behavior has been to return `com.google.cloud.Timestamp` by default +for some time, and is now the only option. Any code that is dependent on the old +behavior must be updated to use Timestamps instead of Date. + +### Laundry List of Pull Requests + +#### ⚠ BREAKING CHANGES + +* add support for the Query Partition API (#202) + * `Firestore#collectionGroup(...)` has a new return type `CollectionGroup` + which requires any code that previously used the method be re-compiled to + pick up the new signature. `CollectionGroup` extends `Query` and as such + does not require your code to be updated, only the compiled class files. +* move FirestoreAdminClient and associated classes to new artifact google-cloud-firestore-admin (#311) +* remove deprecated v1beta1 protos and grpc client (#305) +* remove deprecated FirestoreOptions#setTimestampsInSnapshotsEnabled (#308) +* remove deprecated getCollections() methods (#307) +* various renames due to generator changes + +#### Features + +* add support for read-only transactions in TransactionOptions ([#320](https://www.github.com/googleapis/java-firestore/issues/320)) ([c25dca3](https://www.github.com/googleapis/java-firestore/commit/c25dca3ed6ca0c156ec60569ebc9f3a481bd4fee)) +* add support for the Query Partition API ([#202](https://www.github.com/googleapis/java-firestore/issues/202)) ([3996548](https://www.github.com/googleapis/java-firestore/commit/39965489cbc836af573e500d57007c88241d7eb6)) + + +#### Bug Fixes + +* refactor FakeCredentials ([#325](https://www.github.com/googleapis/java-firestore/issues/325)) ([269e62c](https://www.github.com/googleapis/java-firestore/commit/269e62c6b8031d48e7f2e282b09b5ffcfadae547)), closes [#190](https://www.github.com/googleapis/java-firestore/issues/190) + + +#### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.5 ([#322](https://www.github.com/googleapis/java-firestore/issues/322)) ([1b21350](https://www.github.com/googleapis/java-firestore/commit/1b21350c0bc4a21cee2b281f944cbd061b1f8898)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.6 ([#324](https://www.github.com/googleapis/java-firestore/issues/324)) ([b945fdb](https://www.github.com/googleapis/java-firestore/commit/b945fdb04da76a1e007d012c809449c5a43bb990)) +* update jackson dependencies to v2.11.2 ([#314](https://www.github.com/googleapis/java-firestore/issues/314)) ([15d68cd](https://www.github.com/googleapis/java-firestore/commit/15d68cd93ac1fd206895fd37155a9ba82b9196ca)) + + +#### Miscellaneous Chores + +* enable gapicv2 ([#188](https://www.github.com/googleapis/java-firestore/issues/188)) ([92224bc](https://www.github.com/googleapis/java-firestore/commit/92224bcd52aa88cc6eb1da28747de0535d776a0f)) +* move FirestoreAdminClient and associated classes to new artifact google-cloud-firestore-admin ([#311](https://www.github.com/googleapis/java-firestore/issues/311)) ([03ef755](https://www.github.com/googleapis/java-firestore/commit/03ef755dd164e6f1ec749f3f985b913b5ae23d14)) +* remove deprecated FirestoreOptions#setTimestampsInSnapshotsEnabled ([#308](https://www.github.com/googleapis/java-firestore/issues/308)) ([7255a42](https://www.github.com/googleapis/java-firestore/commit/7255a42bcee3a6938dd5fafaef3465f948f39600)) +* remove deprecated getCollections() methods ([#307](https://www.github.com/googleapis/java-firestore/issues/307)) ([bb4ddf1](https://www.github.com/googleapis/java-firestore/commit/bb4ddf1ce3cc3bd2e06a4ad5097bd18060e4467b)) +* remove deprecated v1beta1 protos and grpc client ([#305](https://www.github.com/googleapis/java-firestore/issues/305)) ([96adacb](https://www.github.com/googleapis/java-firestore/commit/96adacbf52ace27e54b7a210d7c73b46922fbcbd)) +* add BulkWriter ([#323](https://www.github.com/googleapis/java-firestore/issues/323)) ([e7054df](https://www.github.com/googleapis/java-firestore/commit/e7054df79b4139fdfd0cc6aa0620fbfa1a10a6b0)) +* make BulkWriter package private ([#330](https://github.com/googleapis/java-firestore/pull/330)) ([ef0869a](https://github.com/googleapis/java-firestore/commit/ef0869a7fa619bc15fef27ad90d41cb718cb981d)) + +## [1.35.2](https://www.github.com/googleapis/java-firestore/compare/v1.35.1...v1.35.2) (2020-07-16) ### Bug Fixes diff --git a/README.md b/README.md index 52af5cd11..7175ea322 100644 --- a/README.md +++ b/README.md @@ -47,11 +47,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-firestore:1.35.2' +compile 'com.google.cloud:google-cloud-firestore:2.0.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-firestore" % "1.35.2" +libraryDependencies += "com.google.cloud" % "google-cloud-firestore" % "2.0.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-firestore-admin/pom.xml b/google-cloud-firestore-admin/pom.xml index 88546332b..d86cf89e5 100644 --- a/google-cloud-firestore-admin/pom.xml +++ b/google-cloud-firestore-admin/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 google-cloud-firestore-admin - 1.35.3-SNAPSHOT + 2.0.0 jar Google Cloud Firestore Admin Client https://github.com/googleapis/java-firestore/tree/master @@ -15,7 +15,7 @@ com.google.cloud google-cloud-firestore-parent - 1.35.3-SNAPSHOT + 2.0.0 diff --git a/google-cloud-firestore-bom/pom.xml b/google-cloud-firestore-bom/pom.xml index 1cb885d09..cfb40cc1b 100644 --- a/google-cloud-firestore-bom/pom.xml +++ b/google-cloud-firestore-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-firestore-bom - 1.35.3-SNAPSHOT + 2.0.0 pom com.google.cloud @@ -63,32 +63,32 @@ com.google.cloud google-cloud-firestore - 1.35.3-SNAPSHOT + 2.0.0 com.google.api.grpc proto-google-cloud-firestore-admin-v1 - 1.35.3-SNAPSHOT + 2.0.0 com.google.api.grpc proto-google-cloud-firestore-v1 - 1.35.3-SNAPSHOT + 2.0.0 com.google.api.grpc grpc-google-cloud-firestore-admin-v1 - 1.35.3-SNAPSHOT + 2.0.0 com.google.api.grpc grpc-google-cloud-firestore-v1 - 1.35.3-SNAPSHOT + 2.0.0 com.google.cloud google-cloud-firestore-admin - 1.35.3-SNAPSHOT + 2.0.0 diff --git a/google-cloud-firestore/pom.xml b/google-cloud-firestore/pom.xml index 175b4470a..7651b2fc1 100644 --- a/google-cloud-firestore/pom.xml +++ b/google-cloud-firestore/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 google-cloud-firestore - 1.35.3-SNAPSHOT + 2.0.0 jar Google Cloud Firestore https://github.com/googleapis/java-firestore/tree/master @@ -15,7 +15,7 @@ com.google.cloud google-cloud-firestore-parent - 1.35.3-SNAPSHOT + 2.0.0 google-cloud-firestore diff --git a/grpc-google-cloud-firestore-admin-v1/pom.xml b/grpc-google-cloud-firestore-admin-v1/pom.xml index 0b33b695a..5f030839e 100644 --- a/grpc-google-cloud-firestore-admin-v1/pom.xml +++ b/grpc-google-cloud-firestore-admin-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-firestore-admin-v1 - 1.35.3-SNAPSHOT + 2.0.0 grpc-google-cloud-firestore-admin-v1 GRPC library for grpc-google-cloud-firestore-admin-v1 com.google.cloud google-cloud-firestore-parent - 1.35.3-SNAPSHOT + 2.0.0 diff --git a/grpc-google-cloud-firestore-v1/pom.xml b/grpc-google-cloud-firestore-v1/pom.xml index 848b4a4cd..650ea9aab 100644 --- a/grpc-google-cloud-firestore-v1/pom.xml +++ b/grpc-google-cloud-firestore-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-firestore-v1 - 1.35.3-SNAPSHOT + 2.0.0 grpc-google-cloud-firestore-v1 GRPC library for grpc-google-cloud-firestore-v1 com.google.cloud google-cloud-firestore-parent - 1.35.3-SNAPSHOT + 2.0.0 diff --git a/pom.xml b/pom.xml index 255e142ce..a876b82aa 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-firestore-parent pom - 1.35.3-SNAPSHOT + 2.0.0 Google Cloud Firestore Parent https://github.com/googleapis/java-firestore @@ -159,22 +159,22 @@ com.google.api.grpc proto-google-cloud-firestore-admin-v1 - 1.35.3-SNAPSHOT + 2.0.0 com.google.api.grpc proto-google-cloud-firestore-v1 - 1.35.3-SNAPSHOT + 2.0.0 com.google.api.grpc grpc-google-cloud-firestore-admin-v1 - 1.35.3-SNAPSHOT + 2.0.0 com.google.api.grpc grpc-google-cloud-firestore-v1 - 1.35.3-SNAPSHOT + 2.0.0 diff --git a/proto-google-cloud-firestore-admin-v1/pom.xml b/proto-google-cloud-firestore-admin-v1/pom.xml index 98d0407e5..2c8bf74f0 100644 --- a/proto-google-cloud-firestore-admin-v1/pom.xml +++ b/proto-google-cloud-firestore-admin-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-firestore-admin-v1 - 1.35.3-SNAPSHOT + 2.0.0 proto-google-cloud-firestore-admin-v1 PROTO library for proto-google-cloud-firestore-admin-v1 com.google.cloud google-cloud-firestore-parent - 1.35.3-SNAPSHOT + 2.0.0 diff --git a/proto-google-cloud-firestore-v1/pom.xml b/proto-google-cloud-firestore-v1/pom.xml index 6c743d69a..15e1c0fb8 100644 --- a/proto-google-cloud-firestore-v1/pom.xml +++ b/proto-google-cloud-firestore-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-firestore-v1 - 1.35.3-SNAPSHOT + 2.0.0 proto-google-cloud-firestore-v1 PROTO library for proto-google-cloud-firestore-v1 com.google.cloud google-cloud-firestore-parent - 1.35.3-SNAPSHOT + 2.0.0 diff --git a/versions.txt b/versions.txt index aaa0fbeed..59a531e6d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,11 +1,11 @@ # Format: # module:released-version:current-version -google-cloud-firestore:1.35.2:1.35.3-SNAPSHOT -google-cloud-firestore-admin:1.35.2:1.35.3-SNAPSHOT -google-cloud-firestore-bom:1.35.2:1.35.3-SNAPSHOT -google-cloud-firestore-parent:1.35.2:1.35.3-SNAPSHOT -grpc-google-cloud-firestore-admin-v1:1.35.2:1.35.3-SNAPSHOT -grpc-google-cloud-firestore-v1:1.35.2:1.35.3-SNAPSHOT -proto-google-cloud-firestore-admin-v1:1.35.2:1.35.3-SNAPSHOT -proto-google-cloud-firestore-v1:1.35.2:1.35.3-SNAPSHOT +google-cloud-firestore:2.0.0:2.0.0 +google-cloud-firestore-admin:2.0.0:2.0.0 +google-cloud-firestore-bom:2.0.0:2.0.0 +google-cloud-firestore-parent:2.0.0:2.0.0 +grpc-google-cloud-firestore-admin-v1:2.0.0:2.0.0 +grpc-google-cloud-firestore-v1:2.0.0:2.0.0 +proto-google-cloud-firestore-admin-v1:2.0.0:2.0.0 +proto-google-cloud-firestore-v1:2.0.0:2.0.0