ReleaseTrains are a collection of individual projects. As such, release trains do not have a support timeline of their own but, rather, have a cumulative support timeline based on each included project.
While release trains do not have a support timeline, you can assume all the projects within a given release train are still supported if the latest Spring Boot version supported by a given release train is still supported. In general projects within a given Spring Cloud release train will no longer be supported within 3 months after Spring Boot ends its support. Spring Boot support timelines can be found here.
For example, Spring Cloud 2023.0 (Leyton) supports Spring Boot 3.3.x and 3.2.x. You can assume that all the projects within the Spring cloud 2023.0 release train are still supported as long as Spring Boot 3.3.x is still supported.
The following table is a list of Spring Cloud Release Trains, the supported Spring Boot versions, and the included projects. Each project has a link to the official support timelines on The header row is the Release Train name. For Release Trains with CALVER, the codename is included in parenthesis. The first column is the project name with a link to the support page. This table may include Release Trains that are under current development. The Release Train for these are in italics. For convenience, Release Trains outside of the OSS support policy are marked with strikethrough (please see the project page for up-to-date information).
In early 2020, the release train versioning scheme changed. We now follow Calendar Versioning or calver for short. We follow the YYYY.MINOR.MICRO scheme, where MINOR is an incrementing number that starts at zero each year. The MICRO segment corresponds to suffixes previously used: .0 is analogous to .RELEASE and .2 is analogous to .SR2. Pre-release suffixes also change from using a . to a - for the separator, for example 2020.0.0-M1 and 2020.0.0-RC2. We will also stop prefixing snapshots with BUILD- -- for example, 2020.0.0-SNAPSHOT. A Release Train generation is defined by the first two parts of the version, so 2020.0 (codename Ilford) is the Release Train generation, and 2020.0.0 is the first release. In other words, the first two parts of the version are not MAJOR.MINOR.
Spring Cloud provides managed dependencies for some third-party libraries. These libraries are typically upgraded at the patch level for any given Spring Cloud release. Since we typically do not upgrade the minor or major versions of third-party libraries with our patch releases, you should check the EOL policies of projects that you depend on, since you may find that you use a supported version of Spring Cloud against an unsupported third-party library.
With either syntax, this configuration will cause all dependencies (direct or transitive) on spring-core to have the version 6.0.10.When dependency management is in place, you can declare a dependency without a version, as shown in the following example:
When you want to provide dependency management for multiple modules with the same group and version you should use a dependency set.Using a dependency set removes the need to specify the same group and version multiple times, as shown in the following example:
If you import more than one bom, the order in which the boms are imported can be important.The boms are processed in the order in which they are imported.If multiple boms provide dependency management for the same dependency, the dependency management from the last bom will be used.
Building on the example above, the Spring IO Platform bom that is used contains a property named spring.version.This property determines the version of all of the Spring Framework modules and, by default, its value is 4.0.6.RELEASE.
The plugin makes all of the properties from imported boms available for use in your Gradle build.Properties from both global dependency management and configuration-specific dependency management can be accessed.A property named spring.version from global dependency management can be accessed as shown in the following example:
Consider a Maven artifact, exclusion-example, that declares a dependency on org.springframework:spring-core in its pom with an exclusion for org.springframework:spring-jcl, as illustrated in the following example:
If we have a Maven project, consumer, that depends on exclusion-example and org.springframework:spring-beans the exclusion in exclusion-example prevents a transitive dependency on org.springframework:spring-jcl.This can be seen in the following output from mvn dependency:tree:
If we create a similar project in Gradle the dependencies are different as the exclusion of org.springframework:spring-jcl is not honored.This can be seen in the following output from gradle dependencies:
The plugin provides an API for accessing the versions provided by the configured dependency management.The managed versions from global dependency management are available from dependencyManagement.managedVersions, as shown in the following example:
My /boot partition is nearly full and I get a warning every time I reboot my system. I already deleted old kernel packages (linux-headers...), actually I did that to install a newer kernel version that came with the automatic updates.
The headers are installed into /usr/src and are used when building out-tree kernel modules (like the proprietary nvidia driver and virtualbox). Most users should remove these header packages if the matching kernel package (linux-image-*) is not installed.
It selects all packages named starting with linux-headers- or linux-image-, prints the package names for installed packages and then excludes the current loaded/running kernel (not necessarily the latest kernel!). This fits in the recommendation of testing a newer kernel before removing older, known-to-work kernels.
Your boot partition is full. Since this is a kernel update, these files will be copied to the boot partition so you need to clean in out. Here is a blog post that will show you how to clear the old kernel images with one command. I'll give a basic synopsis of the method. Use this command to print out the current version of your kernel:
Make sure your current kernel isn't on that list. Notice how this is the majority of the final command (down below). To uninstall and delete these old kernels you will want to pipe these arguments to:
And that one command will take care of everything for you. I will confirm that this does work perfectly but never trust anybody on the internet. :) For more info, the blog post gives a very good explanation of what each part of the command does so read through it so you are satisfied that it does what you want it to do.
Right-click each of those linux packages and choose the option "Mark for Complete Removal". Finally click the apply button. This will remove all the files and any associated files. Your /boot folder should now be a bit tidier.
Thank you for your detailed post of your problem, this got me going in the right direction. Although it is useful to keep previous kernel files you can remove all of them in one go, check this post:
How to Remove All Unused Linux Kernel Headers, Images and Modules
You can stop using a separate /boot partition, then you won't have such limited space there. To do this, unmount the partition, then mount it somewhere else and copy all of the files there to the /boot directory in your root partition, then remove the entry from /etc/fstab and reinstall grub. For example ( you will need to use the correct partition ):
You can then use gparted to delete the old /boot partition, and possibly extend the root partition to use that space. To extend the root partition you will need to boot from the livecd, and the free space needs to be immediately to the right. If the /boot partition is currently to the left of the root partition, then you will need to first move the root partition to the left, then extend it, but this can take a very, very long time, so may not be worth the trouble.
Ubuntu as a desktop OS of simple everyday usage has no reason to be installed with separate /boot partition and something like this will NOT offer something to a "common user"... So a solution is a fresh install without /boot partition and this way you will never have such a problem
linux-headers-* aren't kernels. Kernel packages are the ones named linux-image-*. The ones named linux-headers-* are development packages for compiling kernel modules: they don't live in the /boot directory and are not required for general day to day use of your system.
The files you listed in /boot do include several old kernel images (vmlinuz*) and compiled initrd images (initrd.img*) for those kernels, which is an indication that you still have a lot of old kernel packages installed.
There is usually no need for more than two kernels to be installed - the one currently in use and the previous one to that (as a fallback). So you can start removing the older ones, one by one, like this:
Make sure you substitute "3.2.0-23-generic" with the actual kernel version you want to remove! Also, don't remove packages such as linux-image-generic. You have to be really careful not to remove the currently running kernel or you won't be able to boot (Ubuntu may or may not warn you about doing this).
I had this problem and more as I removed some initrd-img-xxx files manually from the /boot and I had a problem that these old versions keep generated and filling in the /boot folder. To fix it I followed the following:
--keep=1 means the command will keep 1 kernel older than the current kernel, so 2 in total, if there are at least so many installed. It might keep even more, if you have more than one meta kernels installed. --clear-boot is probably unnecessary; it will purge kernels unknown to the package management system. --optimize is not necessary, but it will speed up the process, if you have many kernels to remove.
My server was doing this, too. Literally none of the expected answers here worked since these require some working room on /boot for them to complete. If the boot partition is full, it will abruptly end without deleting any of the images.
3a8082e126