sts4 icon indicating copy to clipboard operation
sts4 copied to clipboard

Use specific version in update sites instead of `latest`

Open chrylis opened this issue 3 years ago • 3 comments

STS ships with update sites for Eclipse and Spring Tools that include the placeholder version latest. This is a constant source of trouble when minor version updates (Eclipse and Spring Tools are not semver'd) break other plugins. This normally is a hassle requiring half an hour of update Whac-A-Mole, but with the latest 4.16, an update to m2e was rolled out that has broken most installations.

Users who go with the defaults are the ones who are most likely to get bitten by "your computer is ready for Windows 11"-style updates. Let users select platform updates when they're ready for them instead of automatically performing version-incompatible changes.

chrylis avatar Oct 14 '22 16:10 chrylis

Thanks for reaching out @chrylis. I am not exactly sure what you are proposing. Can you explain that in more detail?

I agree that the upgrade to m2e was quite a difficult one, no question about that. But that should probably be reported to the m2e project directly, especially ways to make such an upgrade experience less painful. From the Spring Tools perspective, we tried to assemble the necessary parts, but manual user actions where needed here which was not optimal - totally agree about that.

There is already a preference that allows users to control whether the platform should check for updates automatically or not, so this is something users can control. Do you think about something else here?

Eclipse itself comes with a latest update repository setting, so having the Spring Tools 4 aligned with that seems to make sense. Or would you rather prefer to stay on a specific Eclipse platform version and the corresponding Spring Tools version, without any updates? What do you think?

martinlippert avatar Oct 24 '22 17:10 martinlippert

Updating the Eclipse platform by a minor version tends to be a big cleanup task whenever you have any outside-STS plugins installed (GRECLIPSE is the particular dependency for my team). I would much rather have the default update site pinned to, e.g., Eclipse 4.24, and receive patch updates but not minor updates until I specifically upgrade my update sites. (Note that much of the difficulty here stems from the independent versioning for Eclipse, Spring Tools, and all the other plugins, so that naive users don't necessary recognize when robo-clicking through the Update wizard will introduce incompatibilities.)

chrylis avatar Oct 24 '22 18:10 chrylis

@chrylis I think you can achieve this by removing the default update sites for Eclipse as well as STS from the preferences and use the version-specific ones instead:

  • Eclipse: https://download.eclipse.org/releases/2022-12/ (e.g. for Eclipse 2022-12)
  • Spring Tools: https://download.springsource.com/release/TOOLS/sts4/update/e4.26/ (for the latest version of Spring Tools that is compatible with Eclipse 2022-12, aka 4.26)

I think this setup would give you what you want: stay in the base Eclipse version + get updates for the latest STS releases that are compatible and specific for that Eclipse version.

Updates to Spring Tools component might result in the default latest update site being reintroduced to the preferences automatically, so you might need to manually remove those automatically added update sites each time you got an update of the latest Spring Tools components - which is a bit tedious, I agree.

Side note: Eclipse does not roll out any bugfixes or patch updates between releases, so this way of doing things would give you Spring Tools patch + minor updates only and for as long as we ship those updates for the Eclipse version that you use - which is typically for the time while the next Eclipse release is out. So if you are running on Eclipse 2022-12 (for example), you would get updates for the Spring Tools for that specific Eclipse release until Eclipse 2023-06 is released.

Hope this all makes sense and helps.

martinlippert avatar Feb 24 '23 15:02 martinlippert