What's Changed
- Add
UpgradePluginsForMaven4to bump plugins that fail under Maven 4 by @timtebeek in #8350 - Prevent lock regeneration warnings from corrupting package.json by @bmuschko in #8351
- Make
ChangeStaticFieldToMethodwork 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
RecipesThatMadeChangeswhen 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
mvnupat rc-6 by @timtebeek in #8363 - Add a DependencyTypes RPC to enumerate a dependency's public API by @jkschneider in #8360
- Fix
ChangeTypeandChangePackagecrashing on Kotlin functions withwhereclauses 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
DependencyInsightby @knutwannheden in #8371 - Python: transfer removed import's prefix in
ChangeImportby @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
CHANGEregardless 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
AddImportvisitor 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
recursiveconsistently mean non-recursive inChangePackageby @timtebeek in #8382 - Send changed codec-less list elements inline over RPC by @knutwannheden in #8396
- Depend on released
io.moderne:jsonrpcin 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