Skip to main content

8.66.1 release (2025-11-04)

Total recipe count: 4972

info

This changelog only shows what recipes have been added, removed, or changed. OpenRewrite may do releases that do not include these types of changes. To see these changes, please go to the releases page.

Corresponding CLI version

  • Stable CLI version v3.50.1
  • Staging CLI version: v3.50.1

New Recipes

  • com.google.guava.InlineGuavaMethods: Automatically generated recipes to inline method calls based on @InlineMe annotations discovered in the type table.
  • io.moderne.java.spring.boot4.UpgradeSpringBoot_4_0: Migrate applications to the latest Spring Boot 4.0 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions. This recipe will also chain additional framework migrations (Spring Framework, Spring Data, etc) that are required as part of the migration to Spring Boot 4.0.
  • io.moderne.java.spring.framework.NullableSpringWebParameters: In Spring Boot 4, JSpecify's @Nullable annotation should be used to indicate that a parameter can be null. This recipe adds @Nullable to parameters annotated with @PathVariable(required = false) or @RequestParam(required = false) and removes the now-redundant required = false attribute.
  • org.apache.logging.log4j.InlineLog4jApiMethods: Automatically generated recipes to inline method calls based on @InlineMe annotations discovered in the type table.
  • org.openrewrite.github.MigrateSetupUvV6ToV7: Migrates astral-sh/setup-uv from v6 to v7. Updates the action version and removes the deprecated server-url input. See the v7.0.0 release notes for breaking changes.
  • org.openrewrite.gradle.MigrateDependenciesToVersionCatalog: Migrates Gradle project dependencies to use the version catalog feature. Supports migrating dependency declarations of various forms:
  • String notation: "group:artifact:version"
  • Map notation: group: 'group', name: 'artifact', version: 'version'
  • Property references: "group:artifact:$version" or "group:artifact:${version}"

The recipe will:

  • Create a gradle/libs.versions.toml file with version declarations
  • Replace dependency declarations with catalog references (e.g., libs.springCore)
  • Migrate version properties from gradle.properties to the version catalog
  • Preserve project dependencies unchanged

Note: If a version catalog already exists, the recipe will not modify it.

Removed Recipes

  • io.moderne.java.spring.security6.UpgradeSpringSecurity_6_4: Migrate applications to the latest Spring Security 6.4 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions.
  • org.openrewrite.java.logging.log4j.InlineMethods: Automatically generated recipes to inline method calls based on @InlineMe annotations discovered in the type table.
  • org.openrewrite.java.migrate.UpdateJakartaAnnotationsIfExistsForJakarta: Counteract the jakarta.annotation-api by updating to jakarta namespace
  • org.openrewrite.java.migrate.UpdateJakartaAnnotationsIfForJavax: Counteract the jakarta.annotation-api by updating to jakarta namespace
  • org.openrewrite.java.migrate.guava.NoGuavaInlineMeMethods: Automatically generated recipes to inline method calls based on @InlineMe annotations discovered in the type table.

Changed Recipes

  • org.openrewrite.java.format.AutoFormat was changed:
    • Old Options:
      • None
    • New Options:
      • style: { type: String, required: false }
  • org.openrewrite.java.dependencies.DependencyVulnerabilityCheck was changed:
    • Old Options:
      • maximumUpgradeDelta: { type: UpgradeDelta, required: false }
      • overrideTransitive: { type: Boolean, required: false }
      • scope: { type: String, required: false }
    • New Options:
      • maximumUpgradeDelta: { type: UpgradeDelta, required: false }
      • minimumSeverity: { type: String, required: false }
      • overrideTransitive: { type: Boolean, required: false }
      • scope: { type: String, required: false }