【问题标题】:Spring IO platform release managementSpring IO平台发布管理
【发布时间】:2015-03-26 08:00:33
【问题描述】:

自从引入Spring IO platform 以来,我们使用 Spring IO platform-b​​om 管理我们的项目依赖项。因此,我们不再为单个 Spring 组件(甚至平台库)指定专用版本(并且在覆盖它们时我们要谨慎)。

这种解决方案的缺点是,我们不能使用推荐的单个组件的新版本,例如(昨天)announced Spring Framework 的新版本 4.1.6,直到它被集成到新版本的 Spring IO 平台中。

想知道更多关于 Spring IO 平台的发布管理。是否有总体计划何时发布新版本?我以为实际上Spring Framework的新版本会触发Spring IO平台的新版本,但似乎并非如此(没有新版本使用 Spring Framework 4.1.5,我想下一个版本将包括 Spring Framework 4.1.6)。

对 Spring IO 平台的发布管理的任何见解都会对我很有趣和有帮助。

【问题讨论】:

  • 您是否尝试过覆盖属性spring.framework.version?
  • @chrylis Overriding 可能会起作用,但会以某种方式损害 platform-b​​om 中匹配良好的模块版本的完整性 - 所以这不是我想做的。
  • 如果你只是在次要版本中覆盖,那是错误修复。
  • @chrylis 这可能是正确的,并且可能是一种解决方法。但是调整所有(新)项目版本可能不是您在使用 platform-b​​om 时想要做的。

标签: spring spring-io


【解决方案1】:

一般的经验法则是我们每 6-8 周发布一个新版本的平台。这并不是一成不变的,因为在某些情况下需要更频繁地发布;例如,解决安全漏洞。

您可能已经知道,平台构建在 Spring Boot 之上。它扩展了 Spring Boot 的 bom,为许多其他 Spring 项目及其依赖项添加了依赖项管理。一般来说,当一个新版本的 Spring Boot 发布时,就会触发一个新版本的 Platform 的发布。此外,新版本的 Spring Framework 往往会触发新版本 Spring Boot 的发布。

正如您所观察到的,Spring Framework 4.1.5 和 Spring Boot 1.2.2 是此规则的一个例外。虽然 Spring Boot 1.2.2 是在 Spring Framework 4.1.5 之后不久发布的,但没有包含这两个版本的平台版本。原因是 Spring Boot 1.2.2 中有几个与 Spring Security 相关的错误,我们希望帮助平台用户避免这些错误。为了实现这一点,我们决定推迟发布 Platform 1.1.2,直到 Spring Boot 1.2.3 可用并且 Spring Security 问题得到解决。在处于领先地位和对错误有一定的保护之间有一个小小的权衡。

您应该将平台视为推荐 一组要使用的版本,但它绝对不是您可以使用的唯一 组版本。在平台的 bom 中使用版本属性是经过深思熟虑的,它使用户可以轻松地覆盖版本以满足他们的需求。各种 Spring 项目的负责人非常重视向后兼容性,您应该始终能够毫无困难地升级到任何项目的更新维护版本。在许多情况下,您还可以升级到新的次要版本,但需要更加谨慎。

【讨论】:

  • 你的最后一句真的是指“次要”版本吗?
  • 我愿意。在 许多 案例中,从 1.0.x 到 1.1.x 的项目会顺利进行,但可能还有一些工作要做。我们对语义版本控制不采取教条的方法,因此在采用新的次要(或主要版本)时检查项目的发行说明是明智的。选择一个新的维护版本(从 1.0.x 到 1.0.y)应该总是顺利进行。如果没有,您几乎肯定发现了一个错误。
  • 感谢您的澄清 - 我混淆了主要/次要/补丁级别,并认为切换到新的主要版本也可以(据我所知,Spring Framwork 也是非常向后兼容和升级到新的主要版本基本上没问题)。
猜你喜欢
  • 2017-08-18
  • 2015-12-24
  • 1970-01-01
  • 1970-01-01
  • 2018-09-16
  • 2022-10-17
  • 1970-01-01
  • 1970-01-01
  • 2019-08-01
相关资源
最近更新 更多