From 6564693042af91fd56dcc40dd50488174c945ce1 Mon Sep 17 00:00:00 2001 From: Arpan Mishra Date: Mon, 28 Aug 2023 18:19:36 +0530 Subject: [PATCH 1/7] feat: add devcontainers for enabling github codespaces usage. --- .devcontainer/Dockerfile | 20 +++++++++++++++++ .devcontainer/devcontainer.json | 40 +++++++++++++++++++++++++++++++++ .devcontainer/postCreate.sh | 6 +++++ 3 files changed, 66 insertions(+) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer.json create mode 100644 .devcontainer/postCreate.sh diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 00000000000..d46cd625a31 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,20 @@ +# Reference - https://github.com/microsoft/vscode-dev-containers/tree/main/containers/java-8/.devcontainer +# [Choice] Debian OS version (use bullseye on local arm64/Apple Silicon): buster, bullseye +ARG VARIANT="buster" +FROM mcr.microsoft.com/vscode/devcontainers/java:1-8-${VARIANT} + +# [Option] Install Maven +ARG INSTALL_MAVEN="false" +ARG MAVEN_VERSION="" +# [Option] Install Gradle +ARG INSTALL_GRADLE="false" +ARG GRADLE_VERSION="" +RUN if [ "${INSTALL_MAVEN}" = "true" ]; then su vscode -c "umask 0002 && . /usr/local/sdkman/bin/sdkman-init.sh && sdk install maven \"${MAVEN_VERSION}\""; fi \ + && if [ "${INSTALL_GRADLE}" = "true" ]; then su vscode -c "umask 0002 && . /usr/local/sdkman/bin/sdkman-init.sh && sdk install gradle \"${GRADLE_VERSION}\""; fi + +# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10 +ARG NODE_VERSION="lts/*" +RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi + +# install gloud sdk +RUN echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - && apt-get update -y && apt-get install google-cloud-cli -y \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000000..f52e4bdf2ad --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,40 @@ +{ + "id": "java", + "version": "2.0.0", + "name": "Java", + "description": "Develop Java applications. Includes the JDK and Java extensions.", + "documentationURL": "https://github.com/devcontainers/templates/tree/main/src/java", + "publisher": "Dev Container Spec Maintainers", + "licenseURL": "https://github.com/devcontainers/templates/blob/main/LICENSE", + "options": { + "imageVariant": { + "type": "string", + "description": "Java version (use -bookworm, or -bullseye variants on local arm64/Apple Silicon):", + "proposals": [ + "8-bookworm", + "11-bookworm", + "17-bookworm", + "8-bullseye", + "11-bullseye", + "17-bullseye", + "8-buster", + "11-buster", + "17-buster" + ], + "default": "8-buster" + }, + "installMaven": { + "type": "boolean", + "description": "Install Maven, a management tool for Java", + "default": "false" + }, + "installGradle": { + "type": "boolean", + "description": "Install Gradle, a build automation tool for multi-language software development", + "default": "false" + } + }, + "platforms": [ + "Java" + ] +} \ No newline at end of file diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh new file mode 100644 index 00000000000..5b9ccdea528 --- /dev/null +++ b/.devcontainer/postCreate.sh @@ -0,0 +1,6 @@ +echo "Post Create Starting" + +mvn install -B -V -ntp \ + -DskipTests=true \ + -Dmaven.javadoc.skip=true \ + -Dclirr.skip=true \ No newline at end of file From 725fcf271540622af58edf137ee5f1aa27b6f24b Mon Sep 17 00:00:00 2001 From: Arpan Mishra Date: Mon, 28 Aug 2023 18:23:48 +0530 Subject: [PATCH 2/7] fix: enable intallation of maven. --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index d46cd625a31..e1040204831 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -4,7 +4,7 @@ ARG VARIANT="buster" FROM mcr.microsoft.com/vscode/devcontainers/java:1-8-${VARIANT} # [Option] Install Maven -ARG INSTALL_MAVEN="false" +ARG INSTALL_MAVEN="true" ARG MAVEN_VERSION="" # [Option] Install Gradle ARG INSTALL_GRADLE="false" From df2ece5915b54aed784a900999d8587f5fbab022 Mon Sep 17 00:00:00 2001 From: Arpan Mishra Date: Mon, 28 Aug 2023 19:01:00 +0530 Subject: [PATCH 3/7] fix: add postCreateCommand script. --- .devcontainer/devcontainer.json | 77 ++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 36 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index f52e4bdf2ad..664c0b00c3f 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,40 +1,45 @@ { - "id": "java", - "version": "2.0.0", - "name": "Java", - "description": "Develop Java applications. Includes the JDK and Java extensions.", - "documentationURL": "https://github.com/devcontainers/templates/tree/main/src/java", - "publisher": "Dev Container Spec Maintainers", - "licenseURL": "https://github.com/devcontainers/templates/blob/main/LICENSE", - "options": { - "imageVariant": { - "type": "string", - "description": "Java version (use -bookworm, or -bullseye variants on local arm64/Apple Silicon):", - "proposals": [ - "8-bookworm", - "11-bookworm", - "17-bookworm", - "8-bullseye", - "11-bullseye", - "17-bullseye", - "8-buster", - "11-buster", - "17-buster" - ], - "default": "8-buster" - }, - "installMaven": { - "type": "boolean", - "description": "Install Maven, a management tool for Java", - "default": "false" - }, - "installGradle": { - "type": "boolean", - "description": "Install Gradle, a build automation tool for multi-language software development", - "default": "false" + "name": "Java 8", + "build": { + "dockerfile": "Dockerfile", + "args": { + // Use the VARIANT arg to pick a Debian OS version: buster, bullseye + // Use bullseye when running on local arm64/Apple Silicon. + "VARIANT": "buster", + // Options + "INSTALL_MAVEN": "false", + "INSTALL_GRADLE": "false", + "NODE_VERSION": "lts/*" } }, - "platforms": [ - "Java" - ] + + // Configure tool-specific properties. + "customizations": { + // Configure properties specific to VS Code. + "vscode": { + // Set *default* container specific settings.json values on container create. + "settings": { + "java.import.gradle.java.home": "/usr/local/sdkman/candidates/java/current", + "java.configuration.runtimes": [{ + "default": true, + "name": "JavaSE-1.8", + "path": "/usr/local/sdkman/candidates/java/current" + }] + }, + + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "vscjava.vscode-java-pack" + ] + } + }, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + "postCreateCommand": "bash .devcontainer/postCreate.sh", + + // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. + "remoteUser": "vscode" } \ No newline at end of file From 4bd2be83814b414e8a1efa469b568fd8cfb77260 Mon Sep 17 00:00:00 2001 From: Arpan Mishra Date: Wed, 30 Aug 2023 14:51:51 +0530 Subject: [PATCH 4/7] fix:upgrade to Java 11 to fix build errors in container builds. --- .devcontainer/Dockerfile | 5 +++-- .devcontainer/devcontainer.json | 11 ++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index e1040204831..4bd43b6b1d0 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,7 +1,8 @@ # Reference - https://github.com/microsoft/vscode-dev-containers/tree/main/containers/java-8/.devcontainer # [Choice] Debian OS version (use bullseye on local arm64/Apple Silicon): buster, bullseye -ARG VARIANT="buster" -FROM mcr.microsoft.com/vscode/devcontainers/java:1-8-${VARIANT} +# [Choice] Java version (use -bullseye variants on local arm64/Apple Silicon): 11, 17, 11-bullseye, 17-bullseye, 11-buster, 17-buster +ARG VARIANT="bullseye" +FROM mcr.microsoft.com/vscode/devcontainers/java:11-${VARIANT} # [Option] Install Maven ARG INSTALL_MAVEN="true" diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 664c0b00c3f..4422356e462 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,13 +1,13 @@ { - "name": "Java 8", + "name": "Java 11", "build": { "dockerfile": "Dockerfile", "args": { // Use the VARIANT arg to pick a Debian OS version: buster, bullseye // Use bullseye when running on local arm64/Apple Silicon. - "VARIANT": "buster", + "VARIANT": "bullseye", // Options - "INSTALL_MAVEN": "false", + "INSTALL_MAVEN": "true", "INSTALL_GRADLE": "false", "NODE_VERSION": "lts/*" } @@ -22,14 +22,15 @@ "java.import.gradle.java.home": "/usr/local/sdkman/candidates/java/current", "java.configuration.runtimes": [{ "default": true, - "name": "JavaSE-1.8", + "name": "JavaSE-11", "path": "/usr/local/sdkman/candidates/java/current" }] }, // Add the IDs of extensions you want installed when the container is created. "extensions": [ - "vscjava.vscode-java-pack" + "vscjava.vscode-java-pack", + "ms-azuretools.vscode-docker" ] } }, From d5b66cdbe64afc23e19d9abd21ca095c3a0c071f Mon Sep 17 00:00:00 2001 From: Arpan Mishra Date: Sun, 10 Sep 2023 15:15:48 +0530 Subject: [PATCH 5/7] chore: add 'clean' in the postCreate script. --- .devcontainer/postCreate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index 5b9ccdea528..a4a86a4f91a 100644 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -1,6 +1,6 @@ echo "Post Create Starting" -mvn install -B -V -ntp \ +mvn clean install -B -V -ntp \ -DskipTests=true \ -Dmaven.javadoc.skip=true \ -Dclirr.skip=true \ No newline at end of file From 0237fb487cabc99bd16b3340ab5d0a41b0bb0182 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Mon, 11 Sep 2023 05:11:37 +0000 Subject: [PATCH 6/7] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot=20po?= =?UTF-8?q?st-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0b4e29261f8..e1dc64bb6e3 100644 --- a/README.md +++ b/README.md @@ -57,13 +57,13 @@ implementation 'com.google.cloud:google-cloud-spanner' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-spanner:6.45.2' +implementation 'com.google.cloud:google-cloud-spanner:6.46.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.45.2" +libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.46.0" ``` @@ -430,7 +430,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-spanner/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-spanner.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-spanner/6.45.2 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-spanner/6.46.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles From d88f06f80711ed2c4c0543374521bd09cb66c236 Mon Sep 17 00:00:00 2001 From: Arpan Mishra Date: Tue, 12 Sep 2023 12:21:38 +0530 Subject: [PATCH 7/7] fix: review comments. --- .devcontainer/Dockerfile | 2 +- .devcontainer/devcontainer.json | 5 +---- .devcontainer/postCreate.sh | 2 +- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 4bd43b6b1d0..f736df80665 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -18,4 +18,4 @@ ARG NODE_VERSION="lts/*" RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi # install gloud sdk -RUN echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - && apt-get update -y && apt-get install google-cloud-cli -y \ No newline at end of file +RUN echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - && apt-get update -y && apt-get install google-cloud-cli -y diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 4422356e462..4e69cd5b453 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -35,12 +35,9 @@ } }, - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - // Use 'postCreateCommand' to run commands after the container is created. "postCreateCommand": "bash .devcontainer/postCreate.sh", // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. "remoteUser": "vscode" -} \ No newline at end of file +} diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index a4a86a4f91a..8dc53f690c3 100644 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -3,4 +3,4 @@ echo "Post Create Starting" mvn clean install -B -V -ntp \ -DskipTests=true \ -Dmaven.javadoc.skip=true \ - -Dclirr.skip=true \ No newline at end of file + -Dclirr.skip=true