你如何生成发行说明?

时间:2009-09-11 01:32:29

标签: continuous-integration

[问题]
有没有人通过自动化流程发布产品说明?如果是这样的话。特别是持续集成服务。您是否只使用脚本来解析日志文件以查找为该版本修复的问题以创建相应的文本文件?

[背景]
最近我为我的业余爱好项目实施了持续集成。作为其中的一部分,我将问题跟踪报告链接到我的构建中。但是对于发行版,我希望做同样的事情并让它生成类似于nhibernate release notes.txt的发行说明文件,我发现它非常干净。

[示例]

  

Build 1.2.1

     

错误修正:

* [ID-1] - The system doesn't accept valid usernames
     

改进:

* [ID-2] - Saving the file takes 3 minutes when it should take a few seconds. 
     

新功能:

* [ID-3] - Allow users to refresh the page using the F5 key.
     

任务已完成:

* [ID-4] - Document undocumented configuration properties.

9 个答案:

答案 0 :(得分:15)

通常,此类事情由问题跟踪软件完成。您可以跟踪每个新功能,每个错误修正和每个增强功能,将它们分配给版本,然后从说明中生成发行说明。

答案 1 :(得分:7)

如果你正在使用maven,那么就会有maven changes plugin用于此目的,因此可以在持续集成过程中轻松自动生成此报告。

答案 2 :(得分:4)

如果您使用 JIRA(我建议采用任何方式),它可以auto-generate the release notes为您。内置格式相当简单,但在许多情况下效果很好。内容可以定制到一定程度,尽管这不是灵活性方面的终极词。

如果您想从JIRA寻找更好的发行说明,请尝试PDF View Plugin。它:

  • 不仅仅是原始的“已完成的问题”列表(例如:安装和升级说明,法律详细信息,已执行的测试,已更改的文件)
  • 更多地控制所包含的内容(不包括某些状态,分辨率,问题类型等)
  • 允许以电子邮件(PDF格式)分发您的发行说明文档或打印在纸上

免责声明:我是这个商业JIRA插件的开发者。

enter image description here

答案 3 :(得分:2)

我正在努力解决同样的问题。在我们的开发中,我们使用svn / jira,我们有一个自定义工具,它将在提交之前尝试构建和完善测试更改 - 并且开发作为该过程的一部分输入jira编号(它验证数字)。然后,此jira号码包含在SVN提交

从那时起,我们在svn中的两个点之间生成一个发布说明,并且每个提交的注释可以构建已提交的问题列表并填充发行说明。

问题在于1.发布说明中的问题需要在代码更改时输入。未包含代码更改而修复的问题不包括在内。 2.如果开发人员已经完成修复程序的一半,则可能会在发布说明中显示,但不应该。

我想找到一个手动开销最小的解决方案,我们可以从CI系统中获取任何构建并将其转换为版本。

我正在考虑调整流程,以便在未解决问题时发布说明生成失败 - 但感觉开发人员会抱怨说,当我们想要发布时,问题可能只有一半。

另一种选择是仅在发行说明中包含已完成的问题。然而,问题是如果开发人员在版本A中修复但在A版本发布时没有关闭问题 - 然后没有更改代码并在A发布后关闭问题我现在如何自动包含此发行说明中的​​问题(可能是我可以搜索发行版A和B之间关闭的所有jiras ....)

感谢您阅读

答案 4 :(得分:1)

在我的公司,我们使用bugzilla。我们使用里程碑来标记具有特定版本号的错误。然后我们为具有特定里程碑的所有错误生成xml报告,并使用一个小脚本从中生成发布说明。

这通常可以很容易地推广到任何错误跟踪软件。

我想它也可能与您的版本控制系统上的提交消息中的注释相关联。可以进行查询以列出关于verson控件的提交的所有注释,然后使用特定标记过滤所有注释。

答案 5 :(得分:1)

假设开发人员不是私有者并且是获得任务并且完成任务的团队的一部分,那么已完成并且应该成为UAT一部分的列表就是事实发布说明。文件更改列表等是无关紧要的,可以从源代码控制中轻松提取。

由于很难执行开发人员检查代码中包含问题编号的政策,我不打扰。我在代码审查中询问它。我还列出了我们正在进行的工作。完成的东西会在mvn发布之前添加到日志中:执行prepare命令。然后我把它带到QA和UAT。

这不太可能扩展到每周数百个问题。在这些情况下,更强大的系统可能更可取。

答案 6 :(得分:0)

你可以使用像doxygen这样的工具来做到这一点,但是对doxygen期望的方式进行评论是一件很乏味的事情。我通常手工拿到这些。

不确定,但不会像FogBugz这样做吗?

答案 7 :(得分:0)

对于使用.NET和TFS的人,您可以使用TfsChangeLog自动生成发行说明。

  

TFS ChangeLog允许Team Foundation Server(TFS)用户将与Changesets和相关WorkItem相关的信息提取为转换为HTML的XML格式。   TFSChangeLog根据选定的变更集范围自动生成变更日志/发行说明。

     

TFS通过已注册的变更集和相关的WorkItem保存文件版本历史记录。此确切信息将用于生成发行说明。配置/发布管理器可以使用系统数据字段或自定义字段来生成发行说明内容。强大的XSLT 2.0支持从原始XML格式转换数据,开箱即用,这无疑可以生成各种格式的数据。对XSLT 2.0的支持使得很容易根据用户的要求为转换输出应用过滤条件。

答案 8 :(得分:0)

我最近遇到了类似的问题并增强了现有的maven插件来实现这一目标。

如果您使用Git进行源代码管理并使用Maven构建项目,那么这可能是一个很好的解决方案: https://github.com/pankajtandon/maven-git-commit-id-plugin#releasenotes