github openrewrite/rewrite v8.88.1
8.88.1

3 hours ago

What's Changed

  • Add UpgradePluginsForMaven4 to bump plugins that fail under Maven 4 by @timtebeek in #8350
  • Prevent lock regeneration warnings from corrupting package.json by @bmuschko in #8351
  • Make ChangeStaticFieldToMethod work on Kotlin sources by @timtebeek in #8352
  • Keep XML comments trailing an element on the same line by @timtebeek in #8353
  • Preserve XML comments that auto-format or content removal used to drop by @timtebeek in #8355
  • Publish rewrite-bom snapshots to the Code Genome Project by @timtebeek in #8356
  • Return a new RecipesThatMadeChanges when merging recipe credits by @shanman190 in #8357
  • Stop getRequestedVersion() falling back to the resolved version by @shanman190 in #8359
  • Parse processing instructions that carry no data by @renechoi in #8361
  • Close four easy Maven 4 gaps found cross-referencing mvnup at rc-6 by @timtebeek in #8363
  • Add a DependencyTypes RPC to enumerate a dependency's public API by @jkschneider in #8360
  • Fix ChangeType and ChangePackage crashing on Kotlin functions with where clauses by @timtebeek in #8365
  • Fix OneDependencyDeclarationPerStatement mangling DependencyHandler.add() calls by @sullis in #8358
  • Python: route imports through a PythonImportService so Java ChangeType stops corrupting files by @mtthwcmpbll in #8323
  • Refactor Gradle recipes to use model mapping APIs by @KamilPatora in #8339
  • Support npm range semantics in the semver package by @jkschneider in #8368
  • Restore class loader aware JavaParser.runtimeClasspath() by @timtebeek in #8335
  • Add deep transitive dependency test for JS DependencyInsight by @knutwannheden in #8371
  • Python: transfer removed import's prefix in ChangeImport by @knutwannheden in #8374
  • Python: enumerate module-level functions and constants in DependencyTypes by @knutwannheden in #8375
  • Fully link the resolved-dependency graph after lock-file overlay by @knutwannheden in #8372
  • Fully link the Python resolved-dependency graph in lock-file parsers by @knutwannheden in #8373
  • Add a CopyFile recipe by @steve-aom-elliott in #8377
  • Test RPC composites keep distinct options for same-type children by @bmuschko in #8369
  • Gradle 9.6/9.7: recipes for the new deprecations by @timtebeek in #8381
  • Preserve the file's line separator when adding a properties comment by @timtebeek in #8383
  • Handle anonymous class overrides in RemoveMethodThrows by @steve-aom-elliott in #8384
  • Do not treat missing type attribution as proof of semantic equality by @timtebeek in #8333
  • Implement the scan/generate/edit lifecycle in the Python-native recipe scheduler by @knutwannheden in #8389
  • Do not fabricate an owning class for package-qualified lowercase FQNs in ShallowClass.build() by @knutwannheden in #8391
  • Run nested ScanningRecipe scanners in the TypeScript scheduler by @timtebeek in #8386
  • Keep comments with the dependency they precede when adding a Gradle dependency by @timtebeek in #8393
  • Diff lists as CHANGE regardless of concrete implementation class by @knutwannheden in #8395
  • Run a recipe's own visitor and scanner alongside its recipe list in the C# scheduler by @knutwannheden in #8387
  • Python-hosted RPC tests for Java-backed recipes by @knutwannheden in #8390
  • Deep-link the remaining Python resolved-dependency graph paths by @knutwannheden in #8378
  • PythonImportService: fall back to the serving RPC connection when the JVM is the spawned server by @knutwannheden in #8394
  • FindTypes: mark parameterized type usages in non-Java trees by @knutwannheden in #8397
  • Never CHANGE a ref-deduplicated RPC slot; re-ADD the new value by @knutwannheden in #8392
  • Native Node.js lock file regeneration (npm, pnpm, yarn, bun) by @jkschneider in #8364
  • Move the builtins skip into the AddImport visitor so the RPC path honors it by @knutwannheden in #8401
  • Populate the pre-registered ref placeholder in Python JavaType receive codecs by @knutwannheden in #8400
  • Make a null recursive consistently mean non-recursive in ChangePackage by @timtebeek in #8382
  • Send changed codec-less list elements inline over RPC by @knutwannheden in #8396
  • Depend on released io.moderne:jsonrpc in published configurations by @jkschneider in #8404
  • Assert the internal placeholder form in t-string template tests by @jkschneider in #8405

New Contributors

Full Changelog: v8.88.0...v8.88.1

Don't miss a new rewrite release

NewReleases is sending notifications on new releases.