Skip to content

Commit

Permalink
Add declarative Gradle upgrade recipes (#4502)
Browse files Browse the repository at this point in the history
* Add declarative Gradle upgrade recipes

* Apply naming convention and chain recipes

* Apply review comment

---------

Co-authored-by: Shannon Pamperl <[email protected]>
  • Loading branch information
timtebeek and shanman190 authored Sep 19, 2024
1 parent ee52aca commit bb228bf
Show file tree
Hide file tree
Showing 4 changed files with 139 additions and 0 deletions.
24 changes: 24 additions & 0 deletions rewrite-gradle/src/main/resources/META-INF/rewrite/gradle-5.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#
# Copyright 2024 the original author or authors.
# <p>
# 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
# <p>
# https://www.apache.org/licenses/LICENSE-2.0
# <p>
# 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.
#
---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.gradle.MigrateToGradle5
displayName: Migrate to Gradle 5 from Gradle 4
description: Migrate to version 5.x. See the Gradle upgrade guide from [version 4.x to 5.0](https://docs.gradle.org/current/userguide/upgrading_version_4.html) for more information.
recipeList:
- org.openrewrite.gradle.UpdateGradleWrapper:
version: 5.x
addIfMissing: false
51 changes: 51 additions & 0 deletions rewrite-gradle/src/main/resources/META-INF/rewrite/gradle-6.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#
# Copyright 2024 the original author or authors.
# <p>
# 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
# <p>
# https://www.apache.org/licenses/LICENSE-2.0
# <p>
# 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.
#
---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.gradle.MigrateToGradle6
displayName: Migrate to Gradle 6 from Gradle 5
description: Migrate to version 6.x. See the Gradle upgrade guide from [version 5.x to 6.0](https://docs.gradle.org/current/userguide/upgrading_version_5.html) for more information.
recipeList:
- org.openrewrite.gradle.MigrateToGradle5
- org.openrewrite.gradle.UpdateGradleWrapper:
version: 6.x
addIfMissing: false
# We can't easily convert `compile` to either `api` or `implementation`, because transitive requirements are unclear
# https://github.com/openrewrite/rewrite/issues/4194
- org.openrewrite.gradle.ChangeDependencyConfiguration:
groupId: "*"
artifactId: "*"
configuration: runtime
newConfiguration: runtimeOnly
- org.openrewrite.gradle.ChangeDependencyConfiguration:
groupId: "*"
artifactId: "*"
configuration: testCompile
newConfiguration: testImplementation
- org.openrewrite.gradle.ChangeDependencyConfiguration:
groupId: "*"
artifactId: "*"
configuration: testRuntime
newConfiguration: testRuntimeOnly

# https://github.com/gradle/gradle/blob/v5.6.4/subprojects/core/src/main/java/org/gradle/api/internal/FeaturePreviews.java
# https://github.com/gradle/gradle/blob/v6.9.4/subprojects/core/src/main/java/org/gradle/api/internal/FeaturePreviews.java
- org.openrewrite.gradle.RemoveEnableFeaturePreview:
previewFeatureName: IMPROVED_POM_SUPPORT
- org.openrewrite.gradle.RemoveEnableFeaturePreview:
previewFeatureName: STABLE_PUBLISHING
- org.openrewrite.gradle.RemoveEnableFeaturePreview:
previewFeatureName: INCREMENTAL_ARTIFACT_TRANSFORMATIONS
30 changes: 30 additions & 0 deletions rewrite-gradle/src/main/resources/META-INF/rewrite/gradle-7.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#
# Copyright 2024 the original author or authors.
# <p>
# 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
# <p>
# https://www.apache.org/licenses/LICENSE-2.0
# <p>
# 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.
#
---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.gradle.MigrateToGradle7
displayName: Migrate to Gradle 7 from Gradle 6
description: Migrate to version 7.x. See the Gradle upgrade guide from [version 6.x to 7.0](https://docs.gradle.org/current/userguide/upgrading_version_6.html) for more information.
recipeList:
- org.openrewrite.gradle.MigrateToGradle6
- org.openrewrite.gradle.UpdateGradleWrapper:
version: 7.x
addIfMissing: false

# https://github.com/gradle/gradle/blob/v6.9.4/subprojects/core/src/main/java/org/gradle/api/internal/FeaturePreviews.java
# https://github.com/gradle/gradle/blob/v7.6.4/subprojects/core/src/main/java/org/gradle/api/internal/FeaturePreviews.java
- org.openrewrite.gradle.RemoveEnableFeaturePreview:
previewFeatureName: GRADLE_METADATA
34 changes: 34 additions & 0 deletions rewrite-gradle/src/main/resources/META-INF/rewrite/gradle-8.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#
# Copyright 2024 the original author or authors.
# <p>
# 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
# <p>
# https://www.apache.org/licenses/LICENSE-2.0
# <p>
# 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.
#
---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.gradle.MigrateToGradle8
displayName: Migrate to Gradle 8 from Gradle 7
description: Migrate to version 8.x. See the Gradle upgrade guide from [version 7.x to 8.0](https://docs.gradle.org/current/userguide/upgrading_version_7.html) and [version 8.x to latest](https://docs.gradle.org/current/userguide/upgrading_version_8.html) for more information.
recipeList:
- org.openrewrite.gradle.MigrateToGradle7
- org.openrewrite.gradle.UpdateGradleWrapper:
version: 8.x
addIfMissing: false

# https://github.com/gradle/gradle/blob/v7.6.4/subprojects/core/src/main/java/org/gradle/api/internal/FeaturePreviews.java
# https://github.com/gradle/gradle/blob/v8.10.1/subprojects/core/src/main/java/org/gradle/api/internal/FeaturePreviews.java
- org.openrewrite.gradle.RemoveEnableFeaturePreview:
previewFeatureName: ONE_LOCKFILE_PER_PROJECT
- org.openrewrite.gradle.RemoveEnableFeaturePreview:
previewFeatureName: VERSION_ORDERING_V2
- org.openrewrite.gradle.RemoveEnableFeaturePreview:
previewFeatureName: VERSION_CATALOGS

0 comments on commit bb228bf

Please sign in to comment.