Skip to content

文档管理

CHANGELOG.md

文件,是软件开发项目中一个非常重要的文档,它记录了项目从初始版本到当前版本之间所有显著的变化、修复、新增功能和改进。

主要用途

  1. 追踪历史:CHANGELOG 提供了一个清晰的历史记录,让任何人都能快速了解项目是如何随着时间演变的,包括每次发布的新特性、修复的错误以及任何重大的结构调整。
  2. 版本管理:它帮助管理软件的不同版本,每个版本的发布都会在 CHANGELOG 中记录下来,通常按照进行组织,便于查看每个版本的具体变动。
  3. 沟通更新:对于用户和下游依赖者,它是一个通知机制,告知他们新版本中的改进和修复,帮助决定是否升级或如何应对可能的兼容性变化。
  4. 协作透明:在开源项目中,CHANGELOG 提高了开发工作的透明度,让贡献者了解项目的进展和他们的工作如何融入整体。
  5. 问题追踪:它与问题跟踪系统(如 GitHub 的 issues)相结合,可以通过提及具体的 来关联变化,方便追溯问题的解决情况。
  6. 发布说明:在软件发布时,CHANGELOG 经常被用作发布说明的基础,为用户提供了一份简洁明了的更新概览。
  7. 决策支持:对于项目管理者和维护者,它是一个决策支持工具,帮助评估过去的决策效果,规划未来的开发方向。

编写规范

编写 CHANGELOG 文件时,遵循一定的规范是非常重要的,这样可以确保信息的清晰性和一致性,便于读者快速理解。 下面是一种广泛接受的编写规范和示例——格式,这是一种简洁、易读的格式,被许多开源项目采用。

  1. 头部说明:在文档的最开始,简短介绍 CHANGELOG 的目的和维护方式。
  2. 版本分类:将日志分为不同版本块,每个版本块按照排列。
  3. 版本标题:每个版本块以版本号和发布日期开始,版本号通常,即
  4. 分类标签:在每个版本内,使用固定的分类标签来组织条目,常见的标签包括:
  • Added(新增)
  • Changed(变更)
  • Deprecated(废弃)
  • Removed(移除)
  • Fixed(修复)
  • Security(安全)
  1. 条目描述:每个条目简要描述变更内容,必要时可以链接到相关
  1. 使用语义版本控制的软件必须声明一个公共 API。该 API 可以在代码本身中声明,也可以严格存在于文档中。但是,它应该做到精确而全面。

  2. 普通版本号必须采用 XYZ 格式,其中 X,Y 和 Z 是非负整数,并且不得包含前导零。X 是主要版本,Y 是次要版本,Z 是修补程序版本。每个元素必须按数字增加。例如:1.9.0-> 1.10.0-> 1.11.0。

    • 当有不兼容的 API 变更时,增加主版本号(),表明旧版本的 API 不再完全兼容。
    • 当进行向后兼容的新增功能时,增加次版本号()。
    • 当进行向后兼容的 bug 修复时,增加补丁版本号()。
  3. 一旦发布了版本化的软件包,就不得修改该版本的内容。任何修改都必须作为新版本发布。

  4. 主要版本零(0.yz)用于初始开发。任何时候都可能改变。公共 API 不应被认为是稳定的。

  5. 1.0.0 版定义了公共 API。在此发行版之后,版本号的递增方式取决于此公共 API 及其更改方式。

  6. 如果仅引入了向后兼容的错误修复,则必须增加补丁版本 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

- 初始发布,实现了基础功能集。

Released under the MIT License.