diff --git a/.readme-partials.yml b/.readme-partials.yml new file mode 100644 index 0000000000..62730df47d --- /dev/null +++ b/.readme-partials.yml @@ -0,0 +1,325 @@ +custom_content: | + ## About Cloud Bigtable + + [Cloud Bigtable][cloud-bigtable] is Google's NoSQL Big Data database service. It's + the same database that powers many core Google services, including Search, Analytics, Maps, and + Gmail. + + Be sure to activate the Cloud Bigtable API and the Cloud Bigtable Admin API under APIs & Services in the GCP Console to use Cloud Bigtable from your project. + + See the Bigtable client library documentation ([Admin API](https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigtable/admin/v2/package-summary.html) and [Data API](https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigtable/data/v2/package-summary.html)) to learn how to + interact with Cloud Bigtable using this Client Library. + + ## Concepts + + Cloud Bigtable is composed of instances, clusters, nodes and tables. + + ### Instances + Instances are containers for clusters. + + ### Clusters + Clusters represent the actual Cloud Bigtable service. Each cluster belongs to a single Cloud Bigtable instance, and an instance can have up to 4 clusters. When your application + sends requests to a Cloud Bigtable instance, those requests are actually handled by one of the clusters in the instance. + + ### Nodes + Each cluster in a production instance has 3 or more nodes, which are compute resources that Cloud Bigtable uses to manage your data. + + ### Tables + Tables contain the actual data and are replicated across all of the clusters in an instance. + + + ## Clients + The Cloud Bigtable API consists of: + + ### Data API + Allows callers to persist and query data in a table. It's exposed by [BigtableDataClient](https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigtable/data/v2/BigtableDataClient.html). + + ### Admin API + Allows callers to create and manage instances, clusters, tables, and access permissions. This API is exposed by: [BigtableInstanceAdminClient](https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.html) for Instance and Cluster level resources. + + See [BigtableTableAdminClient](https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.html) for table management. + + See [BigtableDataClient](https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigtable/data/v2/BigtableDataClient.html) for the data client. + + See [BigtableInstanceAdminClient](https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.html) for the instance admin client. + + See [BigtableTableAdminClient](https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.html) for the table admin client. + + #### Calling Cloud Bigtable + + The Cloud Bigtable API is split into 3 parts: Data API, Instance Admin API and Table Admin API. + + Here is a code snippet showing simple usage of the Data API. Add the following imports + at the top of your file: + + ```java + import com.google.cloud.bigtable.data.v2.BigtableDataClient; + import com.google.cloud.bigtable.data.v2.models.Query; + import com.google.cloud.bigtable.data.v2.models.Row; + + ``` + + Then, to make a query to Bigtable, use the following code: + ```java + // Instantiates a client + String projectId = "my-project"; + String instanceId = "my-instance"; + String tableId = "my-table"; + + // Create the client. + // Please note that creating the client is a very expensive operation + // and should only be done once and shared in an application. + BigtableDataClient dataClient = BigtableDataClient.create(projectId, instanceId); + + try { + // Query a table + Query query = Query.create(tableId) + .range("a", "z") + .limit(26); + + for (Row row : dataClient.readRows(query)) { + System.out.println(row.getKey()); + } + } finally { + dataClient.close(); + } + ``` + + The Admin APIs are similar. Here is a code snippet showing how to create a table. Add the following + imports at the top of your file: + + ```java + import static com.google.cloud.bigtable.admin.v2.models.GCRules.GCRULES; + import com.google.cloud.bigtable.admin.v2.BigtableTableAdminClient; + import com.google.cloud.bigtable.admin.v2.models.CreateTableRequest; + import com.google.cloud.bigtable.admin.v2.models.Table; + ``` + + Then, to create a table, use the following code: + ```java + String projectId = "my-instance"; + String instanceId = "my-database"; + + BigtableTableAdminClient tableAdminClient = BigtableTableAdminClient + .create(projectId, instanceId); + + try { + tableAdminClient.createTable( + CreateTableRequest.of("my-table") + .addFamily("my-family") + ); + } finally { + tableAdminClient.close(); + } + ``` + + TIP: If you are experiencing version conflicts with gRPC, see [Version Conflicts](#version-conflicts). + + ## OpenCensus Tracing + + Cloud Bigtable client supports [OpenCensus Tracing](https://opencensus.io/tracing/), + which gives insight into the client internals and aids in debugging production issues. + By default, the functionality is disabled. For example to enable tracing using + [Google Stackdriver](https://cloud.google.com/trace/docs/): + + [//]: # (TODO: figure out how to keep opencensus version in sync with pom.xml) + + If you are using Maven, add this to your pom.xml file + ```xml + + io.opencensus + opencensus-impl + 0.24.0 + runtime + + + io.opencensus + opencensus-exporter-trace-stackdriver + 0.24.0 + + + io.grpc + * + + + com.google.auth + * + + + + ``` + If you are using Gradle, add this to your dependencies + ```Groovy + compile 'io.opencensus:opencensus-impl:0.24.0' + compile 'io.opencensus:opencensus-exporter-trace-stackdriver:0.24.0' + ``` + If you are using SBT, add this to your dependencies + ```Scala + libraryDependencies += "io.opencensus" % "opencensus-impl" % "0.24.0" + libraryDependencies += "io.opencensus" % "opencensus-exporter-trace-stackdriver" % "0.24.0" + ``` + + At the start of your application configure the exporter: + + ```java + import io.opencensus.exporter.trace.stackdriver.StackdriverTraceConfiguration; + import io.opencensus.exporter.trace.stackdriver.StackdriverTraceExporter; + + StackdriverTraceExporter.createAndRegister( + StackdriverTraceConfiguration.builder() + .setProjectId("YOUR_PROJECT_ID") + .build()); + ``` + + By default traces are [sampled](https://opencensus.io/tracing/sampling) at a rate of about 1/10,000. + You can configure a higher rate by updating the active tracing params: + + ```java + import io.opencensus.trace.Tracing; + import io.opencensus.trace.samplers.Samplers; + + Tracing.getTraceConfig().updateActiveTraceParams( + Tracing.getTraceConfig().getActiveTraceParams().toBuilder() + .setSampler(Samplers.probabilitySampler(0.01)) + .build() + ); + ``` + + ## OpenCensus Stats + + Cloud Bigtable client supports [Opencensus Metrics](https://opencensus.io/stats/), + which gives insight into the client internals and aids in debugging production issues. + All Cloud Bigtable Metrics are prefixed with `cloud.google.com/java/bigtable/`. The + metrics will be tagged with: + * `bigtable_project_id`: the project that contains the target Bigtable instance. + Please note that this id could be different from project that the client is running + in and different from the project where the metrics are exported to. + * `bigtable_instance_id`: the instance id of the target Bigtable instance + * `bigtable_app_profile_id`: the app profile id that is being used to access the target + Bigtable instance + + ### Available operation level metric views: + + * `cloud.google.com/java/bigtable/op_latency`: A distribution of latency of + each client method call, across all of it's RPC attempts. Tagged by + operation name and final response status. + + * `cloud.google.com/java/bigtable/completed_ops`: The total count of + method invocations. Tagged by operation name and final response status. + + * `cloud.google.com/java/bigtable/read_rows_first_row_latency`: A + distribution of the latency of receiving the first row in a ReadRows + operation. + + * `cloud.google.com/java/bigtable/attempt_latency`: A distribution of latency of + each client RPC, tagged by operation name and the attempt status. Under normal + circumstances, this will be identical to op_latency. However, when the client + receives transient errors, op_latency will be the sum of all attempt_latencies + and the exponential delays + + * `cloud.google.com/java/bigtable/attempts_per_op`: A distribution of attempts that + each operation required, tagged by operation name and final operation status. + Under normal circumstances, this will be 1. + + + By default, the functionality is disabled. For example to enable metrics using + [Google Stackdriver](https://cloud.google.com/monitoring/docs/): + + + [//]: # (TODO: figure out how to keep opencensus version in sync with pom.xml) + + If you are using Maven, add this to your pom.xml file + ```xml + + io.opencensus + opencensus-impl + 0.24.0 + runtime + + + io.opencensus + opencensus-exporter-stats-stackdriver + 0.24.0 + + + io.grpc + * + + + com.google.auth + * + + + + ``` + If you are using Gradle, add this to your dependencies + ```Groovy + compile 'io.opencensus:opencensus-impl:0.24.0' + compile 'io.opencensus:opencensus-exporter-stats-stackdriver:0.24.0' + ``` + If you are using SBT, add this to your dependencies + ```Scala + libraryDependencies += "io.opencensus" % "opencensus-impl" % "0.24.0" + libraryDependencies += "io.opencensus" % "opencensus-exporter-stats-stackdriver" % "0.24.0" + ``` + + At the start of your application configure the exporter and enable the Bigtable stats views: + + ```java + import io.opencensus.exporter.stats.stackdriver.StackdriverStatsConfiguration; + import io.opencensus.exporter.stats.stackdriver.StackdriverStatsExporter; + + StackdriverStatsExporter.createAndRegister( + StackdriverStatsConfiguration.builder() + .setProjectId("YOUR_PROJECT_ID") + .build() + ); + + BigtableDataSettings.enableOpenCensusStats(); + ``` + + ## Version Conflicts + + google-cloud-bigtable depends on gRPC directly which may conflict with the versions brought + in by other libraries, for example Apache Beam. This happens because internal dependencies + between gRPC libraries are pinned to an exact version of grpc-core + (see [here](https://github.com/grpc/grpc-java/commit/90db93b990305aa5a8428cf391b55498c7993b6e)). + If both google-cloud-bigtable and the other library bring in two gRPC libraries that depend + on the different versions of grpc-core, then dependency resolution will fail. + The easiest way to fix this is to depend on the gRPC bom, which will force all the gRPC + transitive libraries to use the same version. + + Add the following to your project's pom.xml. + + ``` + + + + io.grpc + grpc-bom + 1.28.0 + pom + import + + + + ``` + + ## Container Deployment + + While deploying this client in [Google Kubernetes Engine(GKE)](https://cloud.google.com/kubernetes-engine) with [CoS](https://cloud.google.com/container-optimized-os/docs/). Please make sure to provide CPU configuration in your deployment file. With default configuration JVM detects only 1 CPU, which affects the number of channels with the client, resulting in performance repercussion. + + Also, The number of `grpc-nio-worker-ELG-1-#` thread is same as number of CPUs. These are managed by a single `grpc-default-executor-#` thread, which is shared among multiple client instances. + + For example: + ```yaml + appVersion: v1 + ... + spec: + ... + container: + resources: + requests: + cpu: "1" # Here 1 represents 100% of single node CPUs whereas other than 1 represents the number of CPU it would use from a node. + ``` + see [Assign CPU Resources to Containers](https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/#specify-a-cpu-request-and-a-cpu-limit) for more information. diff --git a/README.md b/README.md index a0e24f99b2..b4178932a4 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,48 @@ # Google Cloud Bigtable Client for Java -Java idiomatic client for [Cloud Bigtable][cloud-bigtable]. +Java idiomatic client for [Cloud Bigtable][product-docs]. -[![Maven](https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigtable.svg)](https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigtable.svg) -[![Codacy Badge](https://api.codacy.com/project/badge/grade/9da006ad7c3a4fe1abd142e77c003917)](https://www.codacy.com/app/mziccard/google-cloud-java) +[![Maven][maven-version-image]][maven-version-link] +![Stability][stability-image] -- [Product Documentation][bigtable-product-docs] -- [Client Library Documentation](https://googleapis.dev/java/google-cloud-bigtable/latest/index.html) +- [Product Documentation][product-docs] +- [Client Library Documentation][javadocs] ## Quickstart -[//]: # ({x-version-update-start:google-cloud-bigtable:released}) -If you are using Maven, add this to your pom.xml file +If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file +```xml + + + + com.google.cloud + libraries-bom + 16.1.0 + pom + import + + + + + + + com.google.cloud + google-cloud-bigtable + + +``` + +If you are using Maven without BOM, add this to your dependencies: + ```xml com.google.cloud google-cloud-bigtable 1.19.2 + ``` + If you are using Gradle, add this to your dependencies ```Groovy compile 'com.google.cloud:google-cloud-bigtable:1.19.2' @@ -27,28 +51,38 @@ If you are using SBT, add this to your dependencies ```Scala libraryDependencies += "com.google.cloud" % "google-cloud-bigtable" % "1.19.2" ``` -[//]: # ({x-version-update-end}) ## Authentication -See the -[Authentication](https://github.com/googleapis/google-cloud-java#authentication) -section in the base directory's README. +See the [Authentication][authentication] section in the base directory's README. ## Getting Started -#### Prerequisites -For this tutorial, you will need a -[Google Cloud Platform Console](https://console.developers.google.com/) project with the Cloud Bigtable -API enabled. You will need to -[enable billing](https://support.google.com/cloud/answer/6158867?hl=en) to use Google Cloud Bigtable. -[Follow these instructions](https://cloud.google.com/resource-manager/docs/creating-managing-projects) to get your -project set up. You will also need to set up the local development environment by [installing the -Google Cloud SDK](https://cloud.google.com/sdk/) and running the following commands in command line: -`gcloud auth login`. + +### Prerequisites + +You will need a [Google Cloud Platform Console][developer-console] project with the Cloud Bigtable [API enabled][enable-api]. + +[Follow these instructions][create-project] to get your project set up. You will also need to set up the local development environment by +[installing the Google Cloud SDK][cloud-sdk] and running the following commands in command line: +`gcloud auth login` and `gcloud config set project [YOUR PROJECT ID]`. + +### Installation and setup + +You'll need to obtain the `google-cloud-bigtable` library. See the [Quickstart](#quickstart) section +to add `google-cloud-bigtable` as a dependency in your code. + +## About Cloud Bigtable + + +[Cloud Bigtable][product-docs] + +See the [Cloud Bigtable client library docs][javadocs] to learn how to +use this Cloud Bigtable Client Library. + ## About Cloud Bigtable -[Cloud Bigtable][cloud-bigtable] is Google's NoSQL Big Data database service. It's +[Cloud Bigtable][cloud-bigtable] is Google's NoSQL Big Data database service. It's the same database that powers many core Google services, including Search, Analytics, Maps, and Gmail. @@ -60,10 +94,10 @@ interact with Cloud Bigtable using this Client Library. ## Concepts Cloud Bigtable is composed of instances, clusters, nodes and tables. - + ### Instances Instances are containers for clusters. - + ### Clusters Clusters represent the actual Cloud Bigtable service. Each cluster belongs to a single Cloud Bigtable instance, and an instance can have up to 4 clusters. When your application sends requests to a Cloud Bigtable instance, those requests are actually handled by one of the clusters in the instance. @@ -82,8 +116,8 @@ The Cloud Bigtable API consists of: Allows callers to persist and query data in a table. It's exposed by [BigtableDataClient](https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigtable/data/v2/BigtableDataClient.html). ### Admin API -Allows callers to create and manage instances, clusters, tables, and access permissions. This API is exposed by: [BigtableInstanceAdminClient](https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.html) for Instance and Cluster level resources. - +Allows callers to create and manage instances, clusters, tables, and access permissions. This API is exposed by: [BigtableInstanceAdminClient](https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.html) for Instance and Cluster level resources. + See [BigtableTableAdminClient](https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.html) for table management. See [BigtableDataClient](https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigtable/data/v2/BigtableDataClient.html) for the data client. @@ -243,7 +277,7 @@ metrics will be tagged with: in and different from the project where the metrics are exported to. * `bigtable_instance_id`: the instance id of the target Bigtable instance * `bigtable_app_profile_id`: the app profile id that is being used to access the target - Bigtable instance + Bigtable instance ### Available operation level metric views: @@ -371,14 +405,32 @@ spec: ``` see [Assign CPU Resources to Containers](https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/#specify-a-cpu-request-and-a-cpu-limit) for more information. -## Troubleshooting -To get help, follow the instructions in the [shared Troubleshooting -document](https://github.com/googleapis/google-cloud-common/blob/master/troubleshooting/readme.md#troubleshooting). -Transport ---------- -Bigtable uses gRPC for the transport layer. + +## Samples + +Samples are in the [`samples/`](https://github.com/googleapis/java-bigtable/tree/master/samples) directory. The samples' `README.md` +has instructions for running the samples. + +| Sample | Source Code | Try it | +| --------------------------- | --------------------------------- | ------ | +| Filters | [source code](https://github.com/googleapis/java-bigtable/blob/master/samples/snippets/src/main/java/com/example/bigtable/Filters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigtable&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigtable/Filters.java) | +| Reads | [source code](https://github.com/googleapis/java-bigtable/blob/master/samples/snippets/src/main/java/com/example/bigtable/Reads.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigtable&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigtable/Reads.java) | +| Write Batch | [source code](https://github.com/googleapis/java-bigtable/blob/master/samples/snippets/src/main/java/com/example/bigtable/WriteBatch.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigtable&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigtable/WriteBatch.java) | +| Write Conditionally | [source code](https://github.com/googleapis/java-bigtable/blob/master/samples/snippets/src/main/java/com/example/bigtable/WriteConditionally.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigtable&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigtable/WriteConditionally.java) | +| Write Increment | [source code](https://github.com/googleapis/java-bigtable/blob/master/samples/snippets/src/main/java/com/example/bigtable/WriteIncrement.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigtable&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigtable/WriteIncrement.java) | +| Write Simple | [source code](https://github.com/googleapis/java-bigtable/blob/master/samples/snippets/src/main/java/com/example/bigtable/WriteSimple.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigtable&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigtable/WriteSimple.java) | +| Hello World | [source code](https://github.com/googleapis/java-bigtable/blob/master/samples/snippets/src/main/java/com/m/examples/bigtable/HelloWorld.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigtable&page=editor&open_in_editor=samples/snippets/src/main/java/com/m/examples/bigtable/HelloWorld.java) | +| Instance Admin Example | [source code](https://github.com/googleapis/java-bigtable/blob/master/samples/snippets/src/main/java/com/m/examples/bigtable/InstanceAdminExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigtable&page=editor&open_in_editor=samples/snippets/src/main/java/com/m/examples/bigtable/InstanceAdminExample.java) | +| Quickstart | [source code](https://github.com/googleapis/java-bigtable/blob/master/samples/snippets/src/main/java/com/m/examples/bigtable/Quickstart.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigtable&page=editor&open_in_editor=samples/snippets/src/main/java/com/m/examples/bigtable/Quickstart.java) | +| Table Admin Example | [source code](https://github.com/googleapis/java-bigtable/blob/master/samples/snippets/src/main/java/com/m/examples/bigtable/TableAdminExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigtable&page=editor&open_in_editor=samples/snippets/src/main/java/com/m/examples/bigtable/TableAdminExample.java) | + + + +## Troubleshooting + +To get help, follow the instructions in the [shared Troubleshooting document][troubleshooting]. ## Java Versions @@ -386,18 +438,24 @@ Java 7 or above is required for using this client. ## Versioning + This library follows [Semantic Versioning](http://semver.org/). + ## Contributing + Contributions to this library are always welcome and highly encouraged. -See [CONTRIBUTING] for more information on how to get started and [DEVELOPING] for a layout of the -codebase. +See [CONTRIBUTING][contributing] for more information how to get started. + +Please note that this project is released with a Contributor Code of Conduct. By participating in +this project you agree to abide by its terms. See [Code of Conduct][code-of-conduct] for more +information. ## License -Apache 2.0 - See [LICENSE] for more information. +Apache 2.0 - See [LICENSE][license] for more information. ## CI Status @@ -409,13 +467,10 @@ Java 8 OSX | [![Kokoro CI][kokoro-badge-image-3]][kokoro-badge-link-3] Java 8 Windows | [![Kokoro CI][kokoro-badge-image-4]][kokoro-badge-link-4] Java 11 | [![Kokoro CI][kokoro-badge-image-5]][kokoro-badge-link-5] -[CONTRIBUTING]:https://github.com/googleapis/google-cloud-java/blob/master/CONTRIBUTING.md -[DEVELOPING]:DEVELOPING.md -[LICENSE]: https://github.com/googleapis/google-cloud-java/blob/master/LICENSE -[cloud-platform]: https://cloud.google.com/ -[cloud-bigtable]: https://cloud.google.com/bigtable/ -[bigtable-product-docs]: https://cloud.google.com/bigtable/docs/ -[bigtable-client-lib-docs]: https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigtable/package-summary.html +Java is a registered trademark of Oracle and/or its affiliates. + +[product-docs]: https://cloud.google.com/bigtable +[javadocs]: https://googleapis.dev/java/google-cloud-bigtable/latest/index.html [kokoro-badge-image-1]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigtable/java7.svg [kokoro-badge-link-1]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigtable/java7.html [kokoro-badge-image-2]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigtable/java8.svg @@ -426,3 +481,18 @@ Java 11 | [![Kokoro CI][kokoro-badge-image-5]][kokoro-badge-link-5] [kokoro-badge-link-4]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigtable/java8-win.html [kokoro-badge-image-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigtable/java11.svg [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigtable/java11.html +[stability-image]: https://img.shields.io/badge/stability-ga-green +[maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigtable.svg +[maven-version-link]: https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-bigtable&core=gav +[authentication]: https://github.com/googleapis/google-cloud-java#authentication +[developer-console]: https://console.developers.google.com/ +[create-project]: https://cloud.google.com/resource-manager/docs/creating-managing-projects +[cloud-sdk]: https://cloud.google.com/sdk/ +[troubleshooting]: https://github.com/googleapis/google-cloud-common/blob/master/troubleshooting/readme.md#troubleshooting +[contributing]: https://github.com/googleapis/java-bigtable/blob/master/CONTRIBUTING.md +[code-of-conduct]: https://github.com/googleapis/java-bigtable/blob/master/CODE_OF_CONDUCT.md#contributor-code-of-conduct +[license]: https://github.com/googleapis/java-bigtable/blob/master/LICENSE + +[enable-api]: https://console.cloud.google.com/flows/enableapi?apiid=bigtable.googleapis.com +[libraries-bom]: https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google-Cloud-Platform-Libraries-BOM +[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png diff --git a/synth.py b/synth.py index 799187531c..e12767cd8b 100644 --- a/synth.py +++ b/synth.py @@ -34,7 +34,6 @@ def main(): java.common_templates(excludes=[ '.gitignore', - 'README.md', '.kokoro/presubmit/integration.cfg', '.kokoro/nightly/integration.cfg', '.kokoro/presubmit/samples.cfg',