文档管理
CHANGELOG.md
文件,是软件开发项目中一个非常重要的文档,它记录了项目从初始版本到当前版本之间所有显著的变化、修复、新增功能和改进。主要用途
- 追踪历史:CHANGELOG 提供了一个清晰的历史记录,让任何人都能快速了解项目是如何随着时间演变的,包括每次发布的新特性、修复的错误以及任何重大的结构调整。
- 版本管理:它帮助管理软件的不同版本,每个版本的发布都会在 CHANGELOG 中记录下来,通常按照进行组织,便于查看每个版本的具体变动。
- 沟通更新:对于用户和下游依赖者,它是一个通知机制,告知他们新版本中的改进和修复,帮助决定是否升级或如何应对可能的兼容性变化。
- 协作透明:在开源项目中,CHANGELOG 提高了开发工作的透明度,让贡献者了解项目的进展和他们的工作如何融入整体。
- 问题追踪:它与问题跟踪系统(如 GitHub 的 issues)相结合,可以通过提及具体的 或 来关联变化,方便追溯问题的解决情况。
- 发布说明:在软件发布时,CHANGELOG 经常被用作发布说明的基础,为用户提供了一份简洁明了的更新概览。
- 决策支持:对于项目管理者和维护者,它是一个决策支持工具,帮助评估过去的决策效果,规划未来的开发方向。
编写规范
编写 CHANGELOG 文件时,遵循一定的规范是非常重要的,这样可以确保信息的清晰性和一致性,便于读者快速理解。 下面是一种广泛接受的编写规范和示例——格式,这是一种简洁、易读的格式,被许多开源项目采用。
- 头部说明:在文档的最开始,简短介绍 CHANGELOG 的目的和维护方式。
- 版本分类:将日志分为不同版本块,每个版本块按照排列。
- 版本标题:每个版本块以版本号和发布日期开始,版本号通常,即 。
- 分类标签:在每个版本内,使用固定的分类标签来组织条目,常见的标签包括:
- Added(新增)
- Changed(变更)
- Deprecated(废弃)
- Removed(移除)
- Fixed(修复)
- Security(安全)
- 条目描述:每个条目简要描述变更内容,必要时可以链接到相关 或 。
使用语义版本控制的软件必须声明一个公共 API。该 API 可以在代码本身中声明,也可以严格存在于文档中。但是,它应该做到精确而全面。
普通版本号必须采用 XYZ 格式,其中 X,Y 和 Z 是非负整数,并且不得包含前导零。X 是主要版本,Y 是次要版本,Z 是修补程序版本。每个元素必须按数字增加。例如:1.9.0-> 1.10.0-> 1.11.0。
- 当有不兼容的 API 变更时,增加主版本号(),表明旧版本的 API 不再完全兼容。
- 当进行向后兼容的新增功能时,增加次版本号()。
- 当进行向后兼容的 bug 修复时,增加补丁版本号()。
一旦发布了版本化的软件包,就不得修改该版本的内容。任何修改都必须作为新版本发布。
主要版本零(0.yz)用于初始开发。任何时候都可能改变。公共 API 不应被认为是稳定的。
1.0.0 版定义了公共 API。在此发行版之后,版本号的递增方式取决于此公共 API 及其更改方式。
如果仅引入了向后兼容的错误修复,则必须增加补丁版本 Z(xyZ | x> 0)。错误修正定义为修正错误行为的内部变更。
示例
下面是一个示例 CHANGELOG 文件,遵循了。
md
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [1.2.0] - 2023-04-15
### Added
- 新增功能:支持深色主题切换。
### Changed
- 优化:改进用户界面布局,提升用户体验。
- 更新:升级依赖库到最新稳定版。
### Fixed
- 修复:解决了在某些浏览器中页面加载慢的问题。([#123](https://github.com/yourproject/issues/123))
## [1.1.1] - 2023-03-20
### Fixed
- 修复了可能导致应用崩溃的小错误。
## [1.1.0] - 2023-03-10
### Added
- 添加了新的数据分析模块。
### Deprecated
- 警告:`oldFunction`将在下个大版本中被移除,请使用`newFunction`替代。
## [1.0.0] - 2023-02-25
### Added
- 初始发布,实现了基础功能集。