diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 2419ce4..9042030 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -1,3 +1,17 @@
+# Copyright 2025 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
version: 2
updates:
- package-ecosystem: gradle
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
new file mode 100644
index 0000000..d32ed96
--- /dev/null
+++ b/.github/workflows/publish.yml
@@ -0,0 +1,57 @@
+# Copyright 2025 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name: Publish
+
+on:
+ release:
+ types: [published]
+
+jobs:
+ publish:
+ name: Release
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: '17'
+
+ - uses: gradle/actions/setup-gradle@v3
+
+ - name: Create .gpg key
+ run: |
+ echo $GPG_KEY_ARMOR | base64 --decode > ./release.asc
+ gpg --quiet --output $GITHUB_WORKSPACE/release.gpg --dearmor ./release.asc
+
+ echo "Build and publish"
+ sed -i -e "s,mavenCentralUsername=,mavenCentralUsername=$SONATYPE_USERNAME,g" gradle.properties
+ SONATYPE_PASSWORD_ESCAPED=$(printf '%s\n' "$SONATYPE_PASSWORD" | sed -e 's/[\/&]/\\&/g')
+ sed -i -e "s,mavenCentralPassword=,mavenCentralPassword=$SONATYPE_PASSWORD_ESCAPED,g" gradle.properties
+ sed -i -e "s,signing.keyId=,signing.keyId=$GPG_KEY_ID,g" gradle.properties
+ sed -i -e "s,signing.password=,signing.password=$GPG_PASSWORD,g" gradle.properties
+ sed -i -e "s,signing.secretKeyRingFile=,signing.secretKeyRingFile=$GITHUB_WORKSPACE/release.gpg,g" gradle.properties
+ env:
+ GPG_KEY_ARMOR: "${{ secrets.SYNCED_GPG_KEY_ARMOR }}"
+ GPG_KEY_ID: ${{ secrets.SYNCED_GPG_KEY_ID }}
+ GPG_PASSWORD: ${{ secrets.SYNCED_GPG_KEY_PASSWORD }}
+ SONATYPE_PASSWORD: ${{ secrets.SONATYPE_TOKEN_PASSWORD }}
+ SONATYPE_USERNAME: ${{ secrets.SONATYPE_TOKEN }}
+
+ - name: Publish to Maven Central
+ run: ./gradlew publishToMavenCentral
+ env:
+ ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_TOKEN }}
+ ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_TOKEN_PASSWORD }}
diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml
new file mode 100644
index 0000000..681a4f0
--- /dev/null
+++ b/.github/workflows/release-please.yml
@@ -0,0 +1,35 @@
+# Copyright 2025 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name: Release Please
+
+on:
+ push:
+ branches:
+ - main
+
+permissions:
+ contents: write
+ pull-requests: write
+
+jobs:
+ release-please:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: google-github-actions/release-please-action@v4
+ id: release
+ with:
+ token: ${{ secrets.SYNCED_GITHUB_TOKEN_REPO }}
+ config-file: release-please-config.json
+ manifest-file: .release-please-manifest.json
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
deleted file mode 100644
index debecb2..0000000
--- a/.github/workflows/release.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-name: Release
-on:
- push:
- branches: [ main ]
- workflow_dispatch:
-
-jobs:
- release:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with:
- token: ${{ secrets.SYNCED_GITHUB_TOKEN_REPO }}
- - uses: gradle/actions/wrapper-validation@v3
- - name: Create .gpg key
- run: |
- echo $GPG_KEY_ARMOR | base64 --decode > ./release.asc
- gpg --quiet --output $GITHUB_WORKSPACE/release.gpg --dearmor ./release.asc
-
- echo "Build and publish"
- sed -i -e "s,mavenCentralUsername=,mavenCentralUsername=$SONATYPE_USERNAME,g" gradle.properties
- SONATYPE_PASSWORD_ESCAPED=$(printf '%s\n' "$SONATYPE_PASSWORD" | sed -e 's/[\/&]/\\&/g')
- sed -i -e "s,mavenCentralPassword=,mavenCentralPassword=$SONATYPE_PASSWORD_ESCAPED,g" gradle.properties
- sed -i -e "s,signing.keyId=,signing.keyId=$GPG_KEY_ID,g" gradle.properties
- sed -i -e "s,signing.password=,signing.password=$GPG_PASSWORD,g" gradle.properties
- sed -i -e "s,signing.secretKeyRingFile=,signing.secretKeyRingFile=$GITHUB_WORKSPACE/release.gpg,g" gradle.properties
- env:
- GPG_KEY_ARMOR: "${{ secrets.SYNCED_GPG_KEY_ARMOR }}"
- GPG_KEY_ID: ${{ secrets.SYNCED_GPG_KEY_ID }}
- GPG_PASSWORD: ${{ secrets.SYNCED_GPG_KEY_PASSWORD }}
- SONATYPE_PASSWORD: ${{ secrets.SONATYPE_TOKEN_PASSWORD }}
- SONATYPE_USERNAME: ${{ secrets.SONATYPE_TOKEN }}
- - name: Semantic Release
- uses: cycjimmy/semantic-release-action@v3
- with:
- extra_plugins: |
- "@semantic-release/commit-analyzer"
- "@semantic-release/release-notes-generator"
- "@google/semantic-release-replace-plugin"
- "@semantic-release/exec"
- "@semantic-release/git
- "@semantic-release/github
- env:
- GH_TOKEN: ${{ secrets.SYNCED_GITHUB_TOKEN_REPO }}
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
new file mode 100644
index 0000000..c04b615
--- /dev/null
+++ b/.release-please-manifest.json
@@ -0,0 +1,3 @@
+{
+ ".": "1.0.0"
+}
\ No newline at end of file
diff --git a/.releaserc b/.releaserc
deleted file mode 100644
index 8649904..0000000
--- a/.releaserc
+++ /dev/null
@@ -1,25 +0,0 @@
-branches:
- - main
-plugins:
- - "@semantic-release/commit-analyzer"
- - "@semantic-release/release-notes-generator"
- - - "@google/semantic-release-replace-plugin"
- - replacements:
- - files:
- - "build.gradle.kts"
- from: "\\bversion = '.*'"
- to: "version = '${nextRelease.version}'"
- - files:
- - "README.md"
- from: ":[0-9].[0-9].[0-9]"
- to: ":${nextRelease.version}"
- - - "@semantic-release/exec"
- - prepareCmd: "./gradlew build --warn --stacktrace"
- publishCmd: "./gradlew publishToMavenCentral --warn --stacktrace"
- - - "@semantic-release/git"
- - assets:
- - "build.gradle.kts"
- - "*.md"
- - "@semantic-release/github"
-options:
- debug: true
diff --git a/README.md b/README.md
index b42e98d..63381e2 100644
--- a/README.md
+++ b/README.md
@@ -27,10 +27,10 @@ This repository contains RxJava bindings for the [Maps SDK for Android](maps-sdk
```groovy
dependencies {
// RxJava bindings for the Maps SDK
- implementation 'com.google.maps.android:maps-rx:1.0.0'
+ implementation 'com.google.maps.android:maps-rx:1.0.0' // {x-release-please-version}
// RxJava bindings for the Places SDK
- implementation 'com.google.maps.android:places-rx:1.0.0'
+ implementation 'com.google.maps.android:places-rx:1.0.0' // {x-release-please-version}
// It is recommended to also include the latest Maps SDK, Places SDK and RxJava so you
// have the latest features and bug fixes.
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index da4c3c5..ef66262 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
plugins {
id("com.android.application")
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
diff --git a/build.gradle.kts b/build.gradle.kts
index b7cefb3..b3dabb6 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -42,7 +42,10 @@ plugins {
// Shared configs
allprojects {
group = "com.google.maps.android"
+ // {x-release-please-start-version}
version = "1.0.0"
+ // {x-release-please-end}
+
repositories {
google()
diff --git a/docs/build.gradle.kts b/docs/build.gradle.kts
index 4b28c90..7da3ddd 100644
--- a/docs/build.gradle.kts
+++ b/docs/build.gradle.kts
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
plugins {
kotlin("jvm") apply false
id("org.jetbrains.dokka")
diff --git a/gradle.properties b/gradle.properties
index a761531..fc6f193 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -20,6 +20,7 @@ android.enableJetifier=false
# Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style=official
+
# variables required to allow build.gradle to parse,
# override in ~/.gradle/gradle.properties
signing.keyId=
diff --git a/maps-rx/build.gradle.kts b/maps-rx/build.gradle.kts
index ddcb142..dc5a76a 100644
--- a/maps-rx/build.gradle.kts
+++ b/maps-rx/build.gradle.kts
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
android {
lint {
sarifOutput = file("$buildDir/reports/lint-results.sarif")
diff --git a/places-rx/build.gradle.kts b/places-rx/build.gradle.kts
index 1d92ca0..d9179b2 100644
--- a/places-rx/build.gradle.kts
+++ b/places-rx/build.gradle.kts
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
android {
lint {
sarifOutput = file("$buildDir/reports/lint-results.sarif")
diff --git a/places-rx/src/main/AndroidManifest.xml b/places-rx/src/main/AndroidManifest.xml
index 44008a4..9b8e936 100644
--- a/places-rx/src/main/AndroidManifest.xml
+++ b/places-rx/src/main/AndroidManifest.xml
@@ -1,4 +1,20 @@
+
+
\ No newline at end of file
diff --git a/places-rx/src/main/java/com/google/maps/android/rx/places/PlacesClientFetchPhotoSingle.kt b/places-rx/src/main/java/com/google/maps/android/rx/places/PlacesClientFetchPhotoSingle.kt
index ae8525f..95b5059 100644
--- a/places-rx/src/main/java/com/google/maps/android/rx/places/PlacesClientFetchPhotoSingle.kt
+++ b/places-rx/src/main/java/com/google/maps/android/rx/places/PlacesClientFetchPhotoSingle.kt
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package com.google.maps.android.rx.places
import com.google.android.libraries.places.api.model.PhotoMetadata
diff --git a/places-rx/src/main/java/com/google/maps/android/rx/places/PlacesClientFetchPlaceSingle.kt b/places-rx/src/main/java/com/google/maps/android/rx/places/PlacesClientFetchPlaceSingle.kt
index 66929ad..0c33a48 100644
--- a/places-rx/src/main/java/com/google/maps/android/rx/places/PlacesClientFetchPlaceSingle.kt
+++ b/places-rx/src/main/java/com/google/maps/android/rx/places/PlacesClientFetchPlaceSingle.kt
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package com.google.maps.android.rx.places
import com.google.android.libraries.places.api.model.Place
diff --git a/places-rx/src/main/java/com/google/maps/android/rx/places/PlacesClientFindAutocompletePredictionsSingle.kt b/places-rx/src/main/java/com/google/maps/android/rx/places/PlacesClientFindAutocompletePredictionsSingle.kt
index 3280ddc..522f819 100644
--- a/places-rx/src/main/java/com/google/maps/android/rx/places/PlacesClientFindAutocompletePredictionsSingle.kt
+++ b/places-rx/src/main/java/com/google/maps/android/rx/places/PlacesClientFindAutocompletePredictionsSingle.kt
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package com.google.maps.android.rx.places
import com.google.android.libraries.places.api.net.FindAutocompletePredictionsRequest
diff --git a/places-rx/src/main/java/com/google/maps/android/rx/places/PlacesClientFindCurrentPlaceSingle.kt b/places-rx/src/main/java/com/google/maps/android/rx/places/PlacesClientFindCurrentPlaceSingle.kt
index 790eb4e..ebb3035 100644
--- a/places-rx/src/main/java/com/google/maps/android/rx/places/PlacesClientFindCurrentPlaceSingle.kt
+++ b/places-rx/src/main/java/com/google/maps/android/rx/places/PlacesClientFindCurrentPlaceSingle.kt
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package com.google.maps.android.rx.places
import androidx.annotation.RequiresPermission
diff --git a/places-rx/src/main/java/com/google/maps/android/rx/places/internal/MainThreadTaskSingle.kt b/places-rx/src/main/java/com/google/maps/android/rx/places/internal/MainThreadTaskSingle.kt
index 2becc6d..84b733e 100644
--- a/places-rx/src/main/java/com/google/maps/android/rx/places/internal/MainThreadTaskSingle.kt
+++ b/places-rx/src/main/java/com/google/maps/android/rx/places/internal/MainThreadTaskSingle.kt
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package com.google.maps.android.rx.places.internal
import com.google.android.gms.tasks.CancellationTokenSource
diff --git a/places-rx/src/main/java/com/google/maps/android/rx/places/internal/TaskCompletionListener.kt b/places-rx/src/main/java/com/google/maps/android/rx/places/internal/TaskCompletionListener.kt
index 78b1aef..55ab276 100644
--- a/places-rx/src/main/java/com/google/maps/android/rx/places/internal/TaskCompletionListener.kt
+++ b/places-rx/src/main/java/com/google/maps/android/rx/places/internal/TaskCompletionListener.kt
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package com.google.maps.android.rx.places.internal
import com.google.android.gms.tasks.CancellationTokenSource
diff --git a/release-please-config.json b/release-please-config.json
new file mode 100644
index 0000000..faa4ba9
--- /dev/null
+++ b/release-please-config.json
@@ -0,0 +1,12 @@
+{
+ "release-type": "simple",
+ "packages": {
+ ".": {
+ "release-type": "simple",
+ "extra-files": [
+ "build.gradle.kts",
+ "README.md"
+ ]
+ }
+ }
+}
diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts
index 974a102..2ba8ff6 100644
--- a/shared/build.gradle.kts
+++ b/shared/build.gradle.kts
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
plugins {
id("com.android.library")
id("kotlin-android")
diff --git a/shared/src/main/AndroidManifest.xml b/shared/src/main/AndroidManifest.xml
index 44008a4..9b8e936 100644
--- a/shared/src/main/AndroidManifest.xml
+++ b/shared/src/main/AndroidManifest.xml
@@ -1,4 +1,20 @@
+
+
\ No newline at end of file