繁体   English   中英

您如何对项目进行版本控制和管理发布?

[英]How do you version your projects and manage releases?

我们的情况如下,但是无论如何我都对这个问题感到好奇。

我们有一个包含4个项目的框架:

  • 豆子
  • 效用
  • 构架
  • 网络

我们也有一些模块,它们需要一个版本,并且依赖于bean和util的版本。

最后,我们有一个客户项目,该项目由核心项目的特定版本和一个或多个模块组成。

是否有标准的方式来对这些项目进行版本控制?

在我看来,当我们尝试向QA提供发行版,然后通过维护发行版(release =标签和可能的分支)来管理我们正在进行的开发时,对我来说似乎简单的事情变得非常复杂。

我更喜欢以下内容:

1.2.0-主要和次要版本+发布。

1.2.1-下一个版本

1.2.0_01-1.2.0版本(分支)中的错误修复

等等

有任何想法吗?

我们使用major.minor.bugfix。 主要发行版仅适用于重大更改。 如果API发生更改,则需要进行次要发行。 其他所有版本均为错误修正版本。 当然,在其中具有内部版本号或修订版本号也可以用来进行故障排除,尽管如果您拥有非常严格的CM,则可能不需要包含它。

借助Apache Ivy或Maven之类的工具,可以很好地完成所有这些项目的版本之间的协调。 一个项目使用自己的版本号进行构建,可能涉及其他项目(产品)的特定版本的汇总,因此您的构建文件从下至上提供了严格的版本映射。 将其全部保存在[在此处插入收藏的版本控制工具]中,您会记录下来。

我使用{major}。{minor}。{buildday}。{sequential}。 对于Windows,我们将实用程序stampver.exeUpdateVersion.exe用于.NET项目,这些项目大多会自动处理。

没有标准版本号系统。 常见主题应具有主要,次要和内部版本号,并偶尔包含一个点号(例如1.2.2.1,对于版本1.2点发行版2内部版本1)。 版本号的含义非常灵活。 通常的选择是在次要版本或发行版之间具有向后兼容性。

只要您的源代码管理允许这样做,最好通过标记一组源代码控制文件来完成发行。 这样,重新创建发行版就像同步到标签和构建一样简单,这非常有用:)

在自动化构建系统中,我当前正在将I版本与Major.Minor.Build.X一起使用,其中Build是我们每次进行系统测试时的结果,而X是构建代码的仓库中的最后一个Subversion版本号。 对于Subversion来说似乎工作得很好,因为如果需要的话,我们可以轻松地返回特定构建的代码库。

我在Linux内核版本编号系统上使用了一种变体:

major.minor.bugfix

其中偶数号表示可以在至少用于测试的情况下分发的某种稳定版本,而奇数号表示表示不稳定/未经测试的发行版,不应在开发人员之外分发。

在可能的情况下,除非共享这些项目,否则我希望使用相同的内部版本号对项目进行版本控制。 它使运动部件之间具有更大的一致性,并且更容易识别构成产品版本的组件。

正如workmad3所说,内部版本号实际上没有通用的规则。 我的建议是使用对您的团队/公司有意义的内容。

我在某些地方工作过,使版本编号与项目里程碑和迭代保持一致,
例如:Major =版本或里程碑,Minor =迭代,Build =内部版本号(从项目开始或从迭代的开始),Revision =如果必须重新构建(或分支)内部版本。

最常见的约定之一是major.minor.bugfix,带有一个附加的后缀,用于指示内部版本号或预发布名称(例如,alpha,beta等)。

我的团队根据项目的里程碑编号进行构建-在开发迭代结束时(每隔几周)将构建移交给我们的质量检查小组。 临时配置项构建未编号。 因为我们使用Maven,所以这些内部版本都带有SNAPSHOT后缀。

无论您做出什么决定,请务必记录下来并确保每个人都理解。 我还建议您记录并持续应用发行分支策略,否则它可能会使每个人很快感到困惑。 尽管只有4个项目,但要跟踪发生的事情应该很容易。

您没有提到是否有任何项目访问数据库,但是如果有的话,这可能是要考虑的另一个因素。 我们使用major.minor.bugfix.buildnumber方案,与该问题的答案中所述的方案类似,逻辑大致相同,但还要求任何数据库架构更改至少需要较小的增量。 这也为您的数据库模式提供了命名方案。 例如,版本1.2.3和1.2.4都可以针对“ 1.2”数据库模式运行,但是版本1.3.0需要“ 1.3”数据库模式。

目前我们还没有真正的版本控制。 我们使用svn内部版本号和发布日期。 (标记名称例如为release_081010_microsoft)

较旧的产品使用major.minor.sub版本编号

主要版本从未更改每6个月对每个发行版/功能发行版进行次要更改。 Sub是不影响功能集的所有内容-主要是错误修复。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM