What's Changed
- Share scanning recipe state with RPC edit visitors by @jkschneider in #9552
- C#: template parenthesization follow-ups for conditionals, null-forgiving ! and capture ids by @jkschneider in #9553
- C#: format a file that leaves its namespace's members flush as the file indents by @jkschneider in #9554
- JavaScript: visit type positions as Java does, type template parameters fully, and read a child's own slot by @jkschneider in #9555
- Python: rewrite_run reports output that doesn't parse as such, not as added markers by @jkschneider in #9556
- Python: indent formatted code as the file does when no style says how by @jkschneider in #9557
- Python: a parameter's default value takes spaces only after an annotation by @jkschneider in #9558
- Go: AutoFormat follow-ups toward gofmt by @jkschneider in #9559
- Kotlin: templates parenthesize with Kotlin's precedence by @jkschneider in #9560
- Groovy: a template parenthesizes a cast operand as Groovy reads it by @jkschneider in #9561
- Scala: templates parenthesize with Scala's precedence by @jkschneider in #9562
- Python: a template replacement keeps the blank lines before the code it replaces by @jkschneider in #9563
- JavaScript: preserve semicolon of labeled statement used as control flow body by @greg-at-moderne in #9514
- Python: empty
afterto match only empty output by @greg-at-moderne in #9564 - Scala: Making Java's
RemoveImportnot crash on member imports in Scala code by @greg-at-moderne in #9567 - JavaScript: preserve directive prologues when adding imports by @myhau in #9566
- Name the hbase-shaded-client fixture configuration as a test configuration by @timtebeek in #9570
- JavaScript: allow string literal module export names in
JS.Aliasby @greg-at-moderne in #9568 - Retain versions no longer managed through a BOM imported by
spring-boot-dependenciesby @timtebeek in #9581 - Test on the Java 25 parser in modules whose tests now run on JDK 25 by @timtebeek in #9585
- Default the Tooling API to Gradle 9.8.2 by @timtebeek in #9587
- Groovy: parse comment-only lines before static star imports by @jkschneider in #9549
- Groovy: preserve lazy closures in GString interpolation by @jkschneider in #9551
- Migrate project source-set dependencies safely for Gradle 9 by @jkschneider in #9576
- Groovy: consume spread-map entry values once by @jkschneider in #9550
- Gradle 9: merge Manifest attributes through the supported API by @jkschneider in #9569
- Fix
RemoveImporttrailing comma loss and module-to-script breakage by @steve-aom-elliott in #9577 - JavaScript: share the host's @openrewrite/rewrite with symlinked recipe packages by @knutwannheden in #9595
- Migrate Shadow plugin declarations for Gradle 9 by @jkschneider in #9592
- Honor explicit overrides of inherited managed plugin versions by @jkschneider in #9593
- Handle Kotlin DSL when changing Gradle dependency configurations by @jkschneider in #9594
- JavaScript: decode escapes in JSON keys from
getMemberKeyNameby @knutwannheden in #9597 - JavaScript: add
onlyIfDeclaringtoAddDependencyby @knutwannheden in #9601 - JavaScript: record GetObject metrics when the RPC server serves from its worker by @knutwannheden in #9603
- JavaScript: ChangeMethodTargetToImport takes the import style by @knutwannheden in #9604
- JavaScript: stop the RPC worker transport from leaving a GetObject unanswered by @knutwannheden in #9606
- Decode escapes in JSON string literal values by @knutwannheden in #9605
- HCL: lex unicode escapes and decode escapes in literal values by @knutwannheden in #9607
- TOML: decode escapes in quoted key names by @knutwannheden in #9608
- Keep a method's type parameters in JavaReflectionTypeMapping on JDK 25 by @timtebeek in #9598
- JavaScript: match and rebind string-literal import names in
maybeRebindandmaybeBindby @greg-at-moderne in #9612 - RemoveRedundantProperties: keep a module's override of a property only local POMs define by @timtebeek in #9600
- ChangeMethodName: don't rename a declaration when the class already declares the new method by @timtebeek in #9599
- Keep a line comment added by the Comments trait from swallowing an element that shares its line by @timtebeek in #9611
- Gradle UpgradeDependencyVersion: don't declare a plugin's own tooling dependencies by @timtebeek in #9602
- JavaScript: resolve an installed recipe package's shared dependencies from the host by @knutwannheden in #9609
- Python: name a poetry.lock written before Poetry 2.0 by its lock-version by @timtebeek in #9575
Full Changelog: v8.97.0...v8.97.1