Eclipse PDE - 插件、特性和产品版本控制

4
我对在一个相当大的eclipse工作区中的依赖插件、功能和产品的版本号升级过程感到困惑。
我已经对现有插件中的java代码进行了API更改,因此需要增加版本标识符的主要部分。该插件作为给定功能的依赖项,该功能稍后包含在产品中。从http://wiki.eclipse.org/Version_Numbering文档中,我大致理解在何时应适当增加包含插件本身的数字。
然而,包含插件上的这个主要版本号更改会如何影响依赖的“下游”项目(例如,功能、产品)?
例如,假设我们有典型的“Hello World”设置如下:
插件:com.example.helloworld, version1.0.0
特性:com.example.helloworld.feature,version1.0.0
产品:com.example.helloworld.product,version1.0.0 如果我在插件中进行API更改,这将需要更新版本为2.0.0。然后特性的版本号是多少,1.1.0?同样的问题也可以应用于产品层面(例如,如果特性是1.1.0或2.0.0,则产品版本号是什么)?
我确信这是一个新手问题,所以对于浪费任何人的时间和精力我很抱歉。我已经搜索了此类型的内容,但我找到的所有内容都是显示如何首次开发插件、功能、产品和更新站点的示例。与我的搜索相关的唯一其他内容是开发功能补丁,并没有像我希望的那样涉及版本控制方面。我正在初次进入Eclipse RCP/PDE环境,需要学习进行此类版本控制更新的正确方式和/或最佳实践,以及如何在工作区中反映此类更新。
1个回答

1

如果您想将相同的版本控制系统应用于功能和产品,则可以在其中一个插件达到2.0.0时将功能和产品设置为2.0.0。这将向使用您的功能或产品的任何人传达其中某个地方存在破坏性API更改。

另一方面,并没有要求应用相同的版本控制约定。您可以按照该约定对捆绑包进行版本控制,以正确传达您的API更改,然后转而使用更具市场感的产品/功能版本。请记住,用户将更多地看到产品/功能版本,而不是单个捆绑包版本。

我已经看到过两种有效的方法。在这方面并没有真正的对错之分。


谢谢Konstantin,你的回答解决了我的问题。在我所处的环境中,我看到了一些版本控制方案的组合,有些遵循建议的完全相同,有些则在源代码控制中假定了一个固定版本用于稍后的官方发布,并在此版本下保留更改代码。我一直在犹豫要走哪条路。 - Michael
这是一个我没有看到过太多一般性协议的话题。虽然从工程角度来看,Eclipse/OSGi推荐的版本控制约定非常有道理,但是在任何规模的代码库上应用这种约定非常耗时且容易出错。你基本上必须知道版本已经在发布中增加了多少,并且每次代码更改都需要更改它。我还没有遇到过一个工程师可以一次又一次地可靠地做到这一点。 - Konstantin Komissarchik
延续...坦白地说,我认为我们有更好的事情需要考虑,这就是为什么在我有能力制定惯例的项目上,我采用了一种更简单的变体。在发布开始时,您决定允许哪种类型的更改。从中,您使用Eclipse/OSGi约定推导出一个版本号,就好像更改已经发生。然后,在发布开始时将该版本号标记在所有捆绑包、功能等上,并且不再考虑它。 - Konstantin Komissarchik
我已经发送了一封电子邮件,请求关于我正在开发的产品中版本控制的背景信息,特别是期望、首选、采用等方面。我同意在发布开始时使用版本号。最终,版本兼容性在所有级别(例如插件、功能、捆绑包等)都需要在最终发布供客户使用时考虑(初始安装和后续更新)。感谢您的帮助和有见地的建议! - Michael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接