spring-projects / spring-boot

Spring Boot
https://spring.io/projects/spring-boot
Apache License 2.0
74.35k stars 40.5k forks source link

Should springboot provide a plug-in to solve the problem that the dependent software versions are not matched in the large version upgrade of springboot? #28899

Open CangYa2021 opened 2 years ago

CangYa2021 commented 2 years ago

Spring Boot itself depends on many other software, and the version requirements for some dependent software will change each version upgrade, especially the release of large versions. For users, unless all dependent software uses the default version provided by springboot, upgrading springboot will cause the problem that the dependent software version is not matched. Especially for the upgrade between large versions, this problem is particularly serious. As far as I know, every time the official releases a new version, it will specifically explain the changes of the dependent software version. However, this description is only for the changes of the previous version. There is no place to find the description of changes across versions, especially between large versions.

If there is a plug-in or a starter that tells users which software versions in the project do not meet the requirements of the current spring boot version, upgrading the version is no longer a terrible thing for users.

wilkinsona commented 2 years ago

That's an interesting suggestion, thank you. Which build system are you using?

CangYa2021 commented 2 years ago

@wilkinsona At present, most of our projects are using Maven and a small number of projects are using gradle. However, some new projects are built using gradle.

CangYa2021 commented 2 years ago

@wilkinsona If I remember correctly, since 2.3. X, the construction tool of the project changed from Maven to gradle, and some gradle plug-ins were customized for the project itself. Because I am not very familiar with gradle, I don't know if it will be easier to solve this problem with gradle.

wilkinsona commented 2 years ago

The build tool that Spring Boot uses doesn't matter here. It's the build tool that an application is using that it's important as the functionality you have described would have to be implemented as a plugin for that build tool.

CangYa2021 commented 2 years ago

@wilkinsona I see what you mean. For the functions I describe, different compilation tools need to provide their own plug-ins. I don't know whether the function I mentioned is reasonable for springboot itself. When I encounter the corresponding problem, the first thing in my mind is how good it would be if there was a plug-in like spring-boot-properties-migrator.

philwebb commented 2 years ago

This would work a bit like https://www.mojohaus.org/versions-maven-plugin/, but with our dependencies rather than maven central as the upgrade source.