我成为 Launchpad 的成员才大约 3 个月,但我仍然无法弄清楚术语。
我创建了一个带有一个分支的项目 - 主干。我已经向这个分支提交了几次。
我创建了一个名为“0.1”的系列,我想提供下载。上次我这样做时,我必须创建一个里程碑或其他东西。不管是什么,我都不明白。
有人可以解释一下:
- 系列
- 发布
- 里程碑
以及每个人的目的?
我成为 Launchpad 的成员才大约 3 个月,但我仍然无法弄清楚术语。
我创建了一个带有一个分支的项目 - 主干。我已经向这个分支提交了几次。
我创建了一个名为“0.1”的系列,我想提供下载。上次我这样做时,我必须创建一个里程碑或其他东西。不管是什么,我都不明白。
有人可以解释一下:
以及每个人的目的?
我认为 Launchpad 使用这些词是因为它们更“通用”——它们可以用于各种风格的开发,而不需要强制项目以某种方式管理源代码、开发和发布。
我主要看到在 Launchpad 上开发项目的两种方法:
您的项目开发是非线性的(不确定这是否是正确的词)。如果在不稳定/开发分支上开发时一次支持多个版本对您很重要,这通常是正确的。(考虑并行开发两个版本)
例如,GNOME 的版本
x.y.z
中,奇数y
表示开发系列,甚至y
表示稳定系列。GNOME 发布2.30
稳定版供全世界使用。发布后,开发人员开始研究2.31.x
不稳定的。如果他们发现任何他们希望为运行的用户修复的重要错误,但2.30
没有提供大量未完善的新功能,他们只会修复该错误2.30
并发布2.30.1
。如果您熟悉,bzr
您应该能够理解这一点,即2.31
在主干上开发,而主干2.30
的一个分支(当2.29
稳定并发布为时分支2.30
)只进行错误修复。在这种情况下,您应该为每个
2.29
、2.30
、2.31
等和一个系列制作一个trunk
系列。2.29
并且2.30
将共享同一个bzr
分支(因为它2.30
是2.29
在抛光之后)。2.31
并将trunk
共享同一个bzr
分支。当您发布时2.32
,然后分支主干并调用此分支2.32
(这将是bzr
两个2.31
和2.32
系列的分支)。在这种情况下,里程碑的一个例子是
2.30.2
(在2.30
系列中)。里程碑与发布的不同之处在于里程碑是未来的发布,一旦发布该版本,里程碑就成为发布。这就是为什么将错误作为里程碑(未来)的目标是有意义的,并且您可以使错误仅影响(例如)五个系列中的两个,因为它只影响其中两个并且应该在它们各自的分支上修复(可能是当前稳定版本和主干)您的项目的发展是线性的。这意味着您将发布版本
1.1
供所有人使用,继续开发功能并修复错误,直到您准备好1.2
或2.0
(或任何您喜欢的)。然后发布最新的可用代码。在这种情况下,您不会并行开发不同的版本,如 Launchpad 上的系列图所示)。在这种情况下,您只有一个系列,一个集市分支(
trunk
大概都称为),并且您的所有里程碑和发布都在这个系列中(无论是0.1
、还是)1.0
1.1
2.0
后者更简单。当您在为更高版本进行重大更改时需要提供错误修复时,前者更适合(当它不是一个单独的项目时更需要)。
高温高压
我同意这很令人困惑,并且没有特别好的记录。这是我的理解:
系列基本上是一组版本。通常,您有一个与称为“主干”或类似内容的系列相关联的主要开发分支。您可以拥有其他系列,例如带有自己的发行版的“稳定”系列。令人困惑的是,系列可以共享或拥有单独的 bzr 分支 - 我不确定在这方面最好的做法是什么。
在一个系列中,您有里程碑。似乎您一次只能设置一个里程碑 - 您需要发布第一个里程碑才能设置第二个里程碑。里程碑可能是您的版本号,例如。0.1,0.2。
当您单击“立即发布”发布里程碑时,您将能够上传与该版本对应的文件以供下载。
对此的主要观点:
(对不起这里的循环定义,但这就是它的工作原理)。