From 88b60dc6050574b6013d02f824860fbfd49c2880 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 5 Feb 2025 10:03:24 +0000 Subject: [PATCH] Improve Bomr configuration to avoid unwanted upgrade suggestions Closes gh-44128 --- .../spring-boot-dependencies/build.gradle | 139 ++++++++++++++++-- 1 file changed, 126 insertions(+), 13 deletions(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index cfcbe94c9fd..a2b618ad092 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -338,6 +338,12 @@ bom { } } library("Elasticsearch Client", "8.15.5") { + alignWith { + version { + from "org.springframework.data:spring-data-elasticsearch" + managedBy "Spring Data Bom" + } + } group("org.elasticsearch.client") { modules = [ "elasticsearch-rest-client" { @@ -456,6 +462,10 @@ bom { } } library("Groovy", "4.0.25") { + prohibit { + contains "-alpha-" + because "we don't want alpha dependencies" + } group("org.apache.groovy") { imports = [ "groovy-bom" @@ -515,6 +525,10 @@ bom { } } library("Hibernate", "6.6.6.Final") { + prohibit { + versionRange "[7.0.0.Alpha1,)" + because "it exceeds our Jakarta EE 10 baseline" + } group("org.hibernate.orm") { modules = [ "hibernate-agroal", @@ -547,6 +561,10 @@ bom { } } library("Hibernate Validator", "8.0.2.Final") { + prohibit { + versionRange "[9.0.0.Beta2,)" + because "it exceeds our Jakarta EE 10 baseline" + } group("org.hibernate.validator") { modules = [ "hibernate-validator", @@ -673,8 +691,8 @@ bom { } library("Jakarta Annotation", "2.1.1") { prohibit { - versionRange "[3.0.0,4.0.0]" - because "it's part of Jakarta EE 11" + versionRange "[3.0.0-M1,)" + because "it exceeds our Jakarta EE 10 baseline" } group("jakarta.annotation") { modules = [ @@ -756,8 +774,8 @@ bom { } library("Jakarta Persistence", "3.1.0") { prohibit { - versionRange "[3.2.0-B01,3.2.0]" - because "it's part of Jakarta EE 11" + versionRange "[3.2.0-B01,)" + because "it exceeds our Jakarta EE 10 baseline" } group("jakarta.persistence") { modules = [ @@ -775,8 +793,8 @@ bom { } library("Jakarta Servlet", "6.0.0") { prohibit { - versionRange "[6.1.0-M1,6.1.0]" - because "it's part of Jakarta EE 11" + versionRange "[6.1.0-M1,)" + because "it exceeds our Jakarta EE 10 baseline" } group("jakarta.servlet") { modules = [ @@ -813,8 +831,8 @@ bom { } library("Jakarta Validation", "3.0.2") { prohibit { - versionRange "[3.1.0-M1,3.2.0]" - because "it's part of Jakarta EE 11" + versionRange "[3.1.0-M1,)" + because "it exceeds our Jakarta EE 10 baseline" } group("jakarta.validation") { modules = [ @@ -829,8 +847,8 @@ bom { } library("Jakarta WebSocket", "2.1.1") { prohibit { - versionRange "[2.2.0-M1,2.2.0]" - because "it's part of Jakarta EE 11" + versionRange "[2.2.0-M1,)" + because "it exceeds our Jakarta EE 10 baseline" } group("jakarta.websocket") { modules = [ @@ -848,8 +866,8 @@ bom { } library("Jakarta WS RS", "3.1.0") { prohibit { - versionRange "[4.0.0,4.1.0]" - because "it's part of Jakarta EE 11" + versionRange "[4.0.0-M2,)" + because "it exceeds our Jakarta EE 10 baseline" } group("jakarta.ws.rs") { modules = [ @@ -966,6 +984,10 @@ bom { } } library("Jedis", "5.2.0") { + prohibit { + contains "-beta" + because "we don't want beta dependencies" + } group("redis.clients") { modules = [ "jedis" @@ -977,6 +999,10 @@ bom { } } library("Jersey", "3.1.10") { + prohibit { + versionRange "[4.0.0-M1,)" + because "it exceeds our Jakarta EE 10 baseline" + } group("org.glassfish.jersey") { imports = [ "jersey-bom" @@ -996,6 +1022,10 @@ bom { } } library("Jetty", "12.0.16") { + prohibit { + contains ".alpha" + because "we don't want alpha dependencies" + } group("org.eclipse.jetty.ee10") { imports = [ "jetty-ee10-bom" @@ -1062,6 +1092,10 @@ bom { } } library("JsonAssert", "1.5.3") { + prohibit { + contains "-rc" + because "we don't want release candidates" + } group("org.skyscreamer") { modules = [ "jsonassert" @@ -1090,6 +1124,10 @@ bom { } } library("JUnit Jupiter", "${junitJupiterVersion}") { + prohibit { + contains "-M" + because "we don't want milestones" + } group("org.junit") { imports = [ "junit-bom" @@ -1154,6 +1192,10 @@ bom { } } library("Kotlin", "${kotlinVersion}") { + prohibit { + versionRange "[2.0.0-Beta1,)" + because "it exceeds our baseline" + } group("org.jetbrains.kotlin") { imports = [ "kotlin-bom" @@ -1170,7 +1212,7 @@ bom { } library("Kotlin Coroutines", "1.8.1") { prohibit { - versionRange "[1.9.0,)" + versionRange "[1.9.0-RC,)" because "it requires Kotlin 2" } group("org.jetbrains.kotlinx") { @@ -1199,6 +1241,10 @@ bom { } } library("Lettuce", "6.5.3.RELEASE") { + prohibit { + contains ".BETA" + because "we don't want betas" + } group("io.lettuce") { modules = [ "lettuce-core" @@ -1228,6 +1274,11 @@ bom { } } library("Log4j2", "2.24.3") { + prohibit { + contains "-alpha" + contains "-beta" + because "we don't want alphas or betas" + } group("org.apache.logging.log4j") { imports = [ "log4j-bom" @@ -1294,6 +1345,10 @@ bom { } } library("Maven Clean Plugin", "3.4.0") { + prohibit { + contains "-beta-" + because "we don't want betas" + } group("org.apache.maven.plugins") { plugins = [ "maven-clean-plugin" @@ -1304,6 +1359,10 @@ bom { } } library("Maven Compiler Plugin", "3.13.0") { + prohibit { + contains "-beta-" + because "we don't want betas" + } group("org.apache.maven.plugins") { plugins = [ "maven-compiler-plugin" @@ -1324,6 +1383,10 @@ bom { } } library("Maven Deploy Plugin", "3.1.3") { + prohibit { + contains "-beta-" + because "we don't want betas" + } group("org.apache.maven.plugins") { plugins = [ "maven-deploy-plugin" @@ -1361,6 +1424,10 @@ bom { } } library("Maven Install Plugin", "3.1.3") { + prohibit { + contains "-beta-" + because "we don't want betas" + } group("org.apache.maven.plugins") { plugins = [ "maven-install-plugin" @@ -1381,6 +1448,10 @@ bom { } } library("Maven Jar Plugin", "3.4.2") { + prohibit { + contains "-beta-" + because "we don't want betas" + } group("org.apache.maven.plugins") { plugins = [ "maven-jar-plugin" @@ -1401,6 +1472,10 @@ bom { } } library("Maven Resources Plugin", "3.3.1") { + prohibit { + contains "-beta-" + because "we don't want betas" + } group("org.apache.maven.plugins") { plugins = [ "maven-resources-plugin" @@ -1421,6 +1496,10 @@ bom { } } library("Maven Source Plugin", "3.3.1") { + prohibit { + contains "-beta-" + because "we don't want betas" + } group("org.apache.maven.plugins") { plugins = [ "maven-source-plugin" @@ -1589,6 +1668,12 @@ bom { } } library("Netty", "4.1.117.Final") { + prohibit { + contains ".Alpha" + contains ".Beta" + contains ".RC" + because "we don't want alphas, betas, or release candidates" + } group("io.netty") { imports = [ "netty-bom" @@ -2050,6 +2135,10 @@ bom { } } library("SendGrid", "4.10.3") { + prohibit { + contains "-rc." + because "we don't want release candidates" + } group("com.sendgrid") { modules = [ "sendgrid-java" @@ -2061,6 +2150,10 @@ bom { } } library("SLF4J", "2.0.16") { + prohibit { + contains "-alpha" + because "we don't want alphas" + } group("org.slf4j") { modules = [ "jcl-over-slf4j", @@ -2136,6 +2229,10 @@ bom { } } library("Spring Data Bom", "2024.1.2") { + prohibit { + versionRange "[2025.1.0-M1,)" + because "it exceeds our baseline" + } considerSnapshots() calendarName = "Spring Data Release" group("org.springframework.data") { @@ -2150,6 +2247,10 @@ bom { } } library("Spring Framework", "${springFrameworkVersion}") { + prohibit { + versionRange "[7.0.0-M1,)" + because "it exceeds our baseline" + } considerSnapshots() group("org.springframework") { imports = [ @@ -2188,6 +2289,10 @@ bom { } } library("Spring HATEOAS", "2.4.1") { + prohibit { + versionRange "[3.0.0-M1,)" + because "it exceeds our baseline" + } considerSnapshots() group("org.springframework.hateoas") { modules = [ @@ -2329,6 +2434,10 @@ bom { startsWith(["Apple-", "Bean-", "Corn-", "Dragonfruit-"]) because "Spring Session switched to numeric version numbers" } + prohibit { + versionRange "[2020.0.0-M1,)" + because "Spring Session stopped using calver" + } group("org.springframework.session") { imports = [ "spring-session-bom" @@ -2434,6 +2543,10 @@ bom { } } library("Tomcat", "${tomcatVersion}") { + prohibit { + versionRange "[11.0.0-M1,)" + because "it exceeds our Jakarte EE 10 baseline" + } group("org.apache.tomcat") { modules = [ "tomcat-annotations-api",