arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2201.06720cs.SE
收藏

DeepRelease:从开源软件的拉式请求生成与存储无关的发布说明

DeepRelease: Language-agnostic Release Notes Generation from Pull Requests of Open-source Software

Huaxi Jiang, Jie Zhu, Li Yang, Geng Liang, Chun Zuo

摘要:

发布说明是开源软件的一个基本软件工件,它记录了有关更改的关键信息,例如新功能和错误修复。在发行说明的帮助下,开发人员和用户可以在不浏览源代码的情况下对最新版本有一个大致的了解。然而,对于开发人员来说,制作发行说明是一项艰巨而耗时的工作。虽然以前的研究提供了一些自动的方法,他们主要通过提取信息的代码更改生成发行说明。这将导致语言特定的,而不是通用的,足以适用。因此,帮助开发人员有效地制作发行说明仍然是一个未解决的挑战。为了解决这个问题,我们首先对900个GitHub项目的发布说明进行了手动研究,结果显示超过54%的项目通过pull request生成发布说明。在此基础上,我们提出了一种基于深度学习的方法DeepRelease(基于深度学习的发布说明生成器),用于根据拉取请求生成发布说明。DeepRelease中发布说明的生成过程包括变更条目的生成和变更类别(即,新功能或错误修复)生成,其分别被公式化为文本摘要任务和多类分类问题。由于DeepRelease完全使用来自拉取请求的文本信息来总结更改并识别更改类别,因此它与语言无关,可用于任何语言的项目。我们构建了一个包含超过46K发行说明的数据集,并在数据集上评估DeepRelease。实验结果表明,DeepRelease的性能优于四个基线,并且可以在一小部分时间内生成类似于手动编写的发布说明。

英文摘要:

The release note is an essential software artifact of open-source software that documents crucial information about changes, such as new features and bug fixes. With the help of release notes, both developers and users could have a general understanding of the latest version without browsing the source code. However, it is a daunting and time-consuming job for developers to produce release notes. Although prior studies have provided some automatic approaches, they generate release notes mainly by extracting information from code changes. This will result in language-specific and not being general enough to be applicable. Therefore, helping developers produce release notes effectively remains an unsolved challenge. To address the problem, we first conduct a manual study on the release notes of 900 GitHub projects, which reveals that more than 54% of projects produce their release notes with pull requests. Based on the empirical finding, we propose a deep learning based approach named DeepRelease (Deep learning based Release notes generator) to generate release notes according to pull requests. The process of release notes generation in DeepRelease includes the change entries generation and the change category (i.e., new features or bug fixes) generation, which are formulated as a text summarization task and a multi-class classification problem, respectively. Since DeepRelease fully employs text information from pull requests to summarize changes and identify the change category, it is language-agnostic and can be used for projects in any language. We build a dataset with over 46K release notes and evaluate DeepRelease on the dataset. The experimental results indicate that DeepRelease outperforms four baselines and can generate release notes similar to those manually written ones in a fraction of the time.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑