礼仪:版本颠覆我的开源项目的分支?

时间:2010-03-20 20:05:23

标签: open-source versioning

这个问题是关于礼仪和开源项目的。

我从github派了一个应用程序并添加了两个新功能。

  1. 第一个功能在其他地方经常被请求。我添加了它。代码&实施是干净的(我认为)。

  2. 第二个功能更像是一个黑客攻击。它对其他人有用,但是实现在使用中有点脏,在代码中更是如此。我需要这个功能,但是我没有足够的技能来完全正确地实现它,或者在主要项目中被认为是值的一个级别

  3. 版本控制应如何工作?我是否只是无忧无虑地提升我的版本号并推送到我的主分支?

    知道哪个版本正在运行,修改或原始版本很烦人,因为它们都具有相同的版本号。但几个月之后,我的github页面的版本号与原始版本号相同,但两者实际上完全不同,这会让人感到困惑。 (我已提出拉动请求等,但这不是我的问题的背景。)

    我分叉的项目使用ruby jeweler,因此版本格式为:

      

    珠宝商追踪您项目的版本。它假设您将使用x.y.z格式的版本。

         

    x是'主要'版本,y是'次要'版本,z是补丁版本。

    这个标准也适用于其他项目/语言吗?我的修改补丁了吗?

    由于

3 个答案:

答案 0 :(得分:4)

这不容易回答。版本号处理因项目和目标而异。你认为你的叉子是临时问题吗? - 然后,在许多情况下(例如,可能与更大的重写不同),我不会增加版本号,因为它取决于项目负责人。

许多版本控制方案允许将版本号扩展为1.2.3-ross,这有助于用户提交正确的错误报告。

如果您计划更长时间运行的分叉,您应该找到适合您的版本控制方案。

答案 1 :(得分:1)

来自相同代码库但具有不同功能内容的不同软件应该以某种方式具有不同的版本号 - 因此您需要更改版本号(或产品名称)中的某些内容。

您是否计划将第一次更改提交回项目? (你可能应该。)

第二个功能,黑客,你会随着时间的推移而改进吗?您可以将它保留在自己的开发分支上,这样在保持从主项目导入更新时更容易单独维护。

或者您打算永久性地与主要项目分开?在这种情况下,您应该考虑重命名软件以及更改版本 - 或以某种方式明确说明版本是您的,而不是他们的版本。

答案 2 :(得分:1)

如果您打算fork,也就是说永远不会与上游合并,那么请考虑重命名您的项目。

否则,通常使用一个版本号来表示分支和变更集正在运行ala -git-ross-12345