Skip to content

[refactoring] [validation] final polishing work #911

Closed
@martinlippert

Description

@martinlippert

Version validations:

  • default severity for patch version validation: warning
  • default severity for minor version validation: info
  • default severity for major version validation: ignore

Reconciling (open rewrite):

  • default for reconciling: disabled
  • add popup to enable reconciling (make people aware of this) (if possible)

Quick fixes for version upgrades:

  • distinguish between simple upgrades (just the parent version in the pom for newer patch versions) and complex upgrades, so that users can directly see what will happen when executing those quick-fixes
  • add description for the quick-fixes, so that users can see what the quick-fix means

Refactorings dialog:

  • distinguish between "convert from one version to the other" recipes from "applying certain best practices", grouping them together

The last piece is probably the most difficult one to get right, since I am not sure yet on what the right structure for this is. At the moment this is really just a random collection of stuff in the dialog and the title of the action on the context-menu is engineering driven. I really would like to change that.

One option could be to have one context menu item: Upgrade Project to Newer Spring Boot Version, which them shows only a list of items saying Convert from Spring Boot 2.6 to 2.7, Convert from Spring Boot 2.7 to 3.0, etc. All with the same names and the same structure, so that it is easy to see which one converts from what version to what other version. Then, we could have another context-menu, say Additional Project-Wide Refactorings (based on OpenRewrite)..., that then has another list of recipes...

Or we keep one dialog, but group the recipes in sections: One for Spring Boot version upgrades, one for other upgrades, one for best practices, etc. But I think the Spring Boot version upgrade topic is front and center, so it deserves its own context menu item.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions