Prechádzať zdrojové kódy

更新变更日志和规范

新增了变更日志规范文档,并根据该规范调整了现有变更日志的内容和格式。同时,修正了一些条目的分类,并为时间条目添加了时区信息。
SongZihuan 6 dní pred
rodič
commit
2f6e0ed40a
2 zmenil súbory, kde vykonal 105 pridanie a 80 odobranie
  1. 76 80
      CHANGELOG.md
  2. 29 0
      CHANGELOG_SPECIFICATION.md

+ 76 - 80
CHANGELOG.md

@@ -2,23 +2,28 @@
 
 本项目所有显著变更都将记录在此文件中。
 
-其格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),
-且本项目遵循 [语义化版本控制](https://semver.org/lang/zh-CN/)。
-
-**注意:本文档内容若与[GitHub Wiki](https://github.com/SongZihuan/BackendServerTemplate/wiki/%E5%8F%98%E6%9B%B4%E6%97%A5%E5%BF%97)冲突,则以后者为准**
+其格式基于 [CHANGELOG 准则](/CHANGELOG_SPECIFICATION.md) 。
 
 ## [未发布]
 
 ### 修复
 
-- 调整`GitHub`的`PR`模板。
+- 修复`format`中遗漏的测试函数。
+- 在`Console API`调用前进行`HasConsole`判断,以避免一些潜在的错误。
+
+### 文档
+
 - 添加行为准则。
 - 完善`README.md`文档。
 - 在贡献者指南中把 《Go 编码最佳实际》 列为参考。
-- 修复`format`中遗漏的测试函数。
-- 在`Console API`调用前进行`HasConsole`判断,以避免一些潜在的错误
+- 添加变更日志准则
+- 完善变更日志
 
-## [0.10.0] - 2025-04-23
+### 其他
+
+- 调整`GitHub`的`PR`模板。
+
+## [0.10.0] - 2025-04-23 Asia/Shanghai
 
 ### 新增
 
@@ -28,25 +33,21 @@
 
 - 重构日志输出系统(格式化函数、控制台输出ANSI转义序列)。
 
-## [0.9.0] - 2025-04-23
-
-### 修复
-
-- 完善文档关于命令行参数的讲解。
+## [0.9.0] - 2025-04-23 Asia/Shanghai
 
 ### 重构
 
 - 重构了自动重启机制。
 
-## [0.8.0] - 2025-04-22
+### 文档
 
-### 新增
+- 完善文档关于命令行参数的讲解。
 
-- 添加配置文件检测器。
+## [0.8.0] - 2025-04-22 Asia/Shanghai
 
-### 变更
+### 新增
 
-- 修改`utils`包下的命名
+- 添加配置文件检测器
 
 ### 修复
 
@@ -54,108 +55,103 @@
 
 ### 重构
 
+- 修改`utils`包下的命名。
 - 使用`viper`重构配置文件读取。
 - 支持文件重载后,完整重启系统(用于调试功能)。
 
-## [0.7.0] - 2025-04-21
-
-### 修复
-
-- 完善`README.md`文档关于版本号的描述。
+## [0.7.0] - 2025-04-21 Asia/Shanghai
 
 ### 重构
 
-- 优化了命令行匹配系统,使其能够支持更复杂的命令行(子命令、标志、参数)
+- 优化了命令行匹配系统。
 
-## [0.6.0] - 2025-04-19
+### 文档
 
-### 新增
+- 完善`README.md`文档关于版本号的描述。
 
-- 添加对`Github Dependabot` 的支持。
+## [0.6.0] - 2025-04-19 Asia/Shanghai
 
 ### 修复
 
 - 修复`strconvutils.ReadTimeDuration`中把`uint`转换程`int`可能带来的风险问题,并新增`ReadTimeDurationPositive`函数。
-- 完善`README.md`文档关于版本号的描述。
 
 ### 重构
 
 - 优化了命令行匹配系统,使其能够支持更复杂的命令行(子命令、标志、参数)。
 
-## [0.5.0] - 2025-04-19
+### 文档
+
+- 完善`README.md`文档关于版本号的描述。
 
-### 新增
+### 其他
 
-- 新增`SECURITY.md`、`CONTRIBUTORS.md`和`CONTRIBUTING.md`。
-- 为一些文档添加了`Wiki`引用。
+- 添加对`Github Dependabot` 的支持。
+
+## [0.5.0] - 2025-04-19 Asia/Shanghai
+
+### 修改
+
+- 服务描述限制为一行。
+- 语义化版本号中的构建信息部分,使用`.`作为分隔符(原使用`-`作为分隔符)。
 
-### 变更
+### 文档
 
+- 新增`SECURITY.md`、`CONTRIBUTORS.md`和`CONTRIBUTING.md`。
+- 为一些文档添加了`Wiki`引用。
 - 简单修改了一下`README.md`。
 - 提供了参考性的`MIT LICENSE`翻译。
 - 为部分文件添加遗漏的版权声明。
-- 服务描述限制为一行。
-- 语义化版本号中的构建信息部分,使用`.`作为分隔符(原使用`-`作为分隔符)。
 
-## [0.4.6] - 2025-04-19
+## [0.4.6] - 2025-04-19 Asia/Shanghai
 
-### 新增
+### 文档
 
 - 修复了 0.4.x 系列更新日期问题。
 - 补全了 0.4.x 系列更新的日志缺失。
 
-## [0.4.5] - 2025-04-19
+## [0.4.5] - 2025-04-19 Asia/Shanghai
 
-### 新增
+### 其他
 
 - 修复了 Github Action 无权限生成 Release 的问题。
 
-## [0.4.4] - 2025-04-19
+## [0.4.4] - 2025-04-19 Asia/Shanghai
 
-### 新增
+### 其他
 
 - 添加 GitHub 的 Issue 和 Pull Request 模板。
 - Github Action 添加对 Windows的编译支持。
-
-### 变更
-
+- 修复 Windows 在 Github Action 中的环境变量问题。
 - 修改 Github Action 的一项流水线的名字。
 - PR合并不再触发 Github Action。
 
-### 修复
-
-- 修复 Windows 在 Github Action 中的环境变量问题。
+## [0.4.3] - 2025-04-19 Asia/Shanghai
 
-## [0.4.3] - 2025-04-19
-
-### 修复
+### 其他
 
 - 修复 GitHub Action 生成 Release 时的标题问题(标题中版本号原为`refs/tags/v1.0.0`,现在修改为仅包含`v1.0.0`)。
 
-## [0.4.2] - 2025-04-19
+## [0.4.2] - 2025-04-19 Asia/Shanghai
 
-### 修复
+### 其他
 
 - 修复 GitHub Action 获取版本号标签的问题(标签原为`refs/tags/v1.0.0`,现在修改为仅包含`v1.0.0`)。
 
-## [0.4.1] - 2025-04-19
+## [0.4.1] - 2025-04-19 Asia/Shanghai
 
 ### 修复
 
 - 修复编译问题(删除不受支持的 `gcflag` 参数)。
 
-## [0.4.0] - 2025-04-19
+## [0.4.0] - 2025-04-19 Asia/Shanghai
 
 ### 新增
 
 - 新增单元测试(以后关于测试的代码变化将记录于 “测试” 小节中)。
 - 添加 GitHub Action 配置。
-
-### 测试
-
 - 新增`resource`包的测试。
 
-## [0.3.0] - 2025-04-17
+## [0.3.0] - 2025-04-17 Asia/Shanghai
 
 ### 新增
 
@@ -174,60 +170,60 @@
 - 部分原生 `panic` 语句改写为 `logger.Panic` 日志记录。
 - 优化命令行参数读取。
 
-## [0.2.0] - 2025-04-16
+## [0.2.0] - 2025-04-16 Asia/Shanghai
 
 ### 新增
 
-- 获取构建时时间
+- 获取构建时时间
 - 获取构建时`Git`信息(若有):当前`commit hash`、当前最新`tag`(若有)、以及`tag`(若有)对应的`commit hash`(若有)。
 - 清洗通过`go:embed`读取的文件:仅保留第一行(某些文件),删除`BOM`,删除`\r`。
 - 新增程序案件退出(`exitutils.SuccessExitQuite()`函数)。
 
-### 变更
+### 修改
 
-- 修改语义化版本号获取
+- 修改语义化版本号获取
   - 从`VERSION`文件获取(第一优先级,可以以`v/V`开头,必须满足语义化版本哈规定)。
   - 从`git`获取最新的`tag`(第二优先级,可以以`v/V`开头,必须满足语义化版本哈规定)。
-    - 当该`tag`对应的并非当前`commit`时,`tag`会加上`+dev`标签
-    - 当该`tag`以`0.`开头时,`tag`会加上`+dev`标签
-  - 采用版本号`0.0.0`
+    - 当该`tag`对应的并非当前`commit`时,`tag`会加上`+dev`标签
+    - 当该`tag`以`0.`开头时,`tag`会加上`+dev`标签
+  - 采用版本号`0.0.0`
     - 若无`commit hash`,则最终版本号为`0.0.0+dev-1744225466`,其中`1744225466`为编译时间戳。
     - 若有`commit hash`,则最终版本号为`0.0.0+1744225466-be8f4ff51e6ed2e01171b38459406dc5dac306ea`,其中`1744225466`为编译时间戳,`be8f4ff51e6ed2e01171b38459406dc5dac306ea`为`commit hash`。
 - `Server.Example1`例子更完善,输出更多信息。
 - 命令行参数`--version`输出更多信息:版本号、编译时间(UTC和Local)、编译的Go版本号、系统、架构。
 - 应用`exitutils.SuccessExitQuite()`函数到命令行参数的阻断执行退出中。
+- 对日志系统进行跳转:错误日志默认输出到`stderr`。
+- 删除`log-name`配置项。
 
 ### 修复
 
 - 修复无法读取`tag`对应`commit`值的漏洞。
-- 修复`Output Config File`逻辑判断错误
-- 修复设置`SigQuitExit`默认动作的错误
-- 修复了退出日志的日志等级
+- 修复`Output Config File`逻辑判断错误
+- 修复设置`SigQuitExit`默认动作的错误
+- 修复了退出日志的日志等级
 - 修复了命令行参数`--report`不会阻断服务运行的错误。
 - 修复命令行`Usage`对短参数的前缀使用错误(原:`--c`,现:`-c`)。
 
 ### 重构
 
 - 减少`import resource "github.com/SongZihuan/BackendServerTemplate"`的引用。
-- 对日志系统进行跳转:错误日志默认输出到`stderr`。
 - 在设定情况下,`config`在执行完`setDefault()`函数后,进行配置文件反向输出(若存在输出路径)。
-- 删除`log-name`配置项。
 
 ### 文档
 
-- 详细更新了`README`文档。
+- 详细更新了`README.md`文档。
 
-## [0.1.0] - 2025-04-03
+## [0.1.0] - 2025-04-03 Asia/Shanghai
 
 ### 新增
 
-- 日志(支持投递到标准输出、文件、日期切割的文件、自定义输出、多输出合并)
-- 命令行参数(支持`string`、`bool`、`uint`、`int`)
-- 配置文件(支持`json`和`yaml`格式,也可以自定义解析器)
-- 退出信号量捕获(在`posix`系统上可以使用信号量捕获退出信号,并做清理操作。在`win32`上,命令行的`ctrl+c`也可被捕获,但当程序作为服务在后台运行时,相关停止、重启操作暂未内捕获)
-- 全局变量和资源(打包了`Version`、`License`、`Name`、`Report`等变量)
-- 服务模式(可使用控制单元启动多服务,或直接启动单服务)
+- 日志(支持投递到标准输出、文件、日期切割的文件、自定义输出、多输出合并)
+- 命令行参数(支持`string`、`bool`、`uint`、`int`)
+- 配置文件(支持`json`和`yaml`格式,也可以自定义解析器)
+- 退出信号量捕获(在`posix`系统上可以使用信号量捕获退出信号,并做清理操作。在`win32`上,命令行的`ctrl+c`也可被捕获,但当程序作为服务在后台运行时,相关停止、重启操作暂未内捕获)
+- 全局变量和资源(打包了`Version`、`License`、`Name`、`Report`等变量)
+- 服务模式(可使用控制单元启动多服务,或直接启动单服务)
 
-### 删除
+### 其他
 
-- 删除`test_self`文件夹
+- 删除`test_self`文件夹

+ 29 - 0
CHANGELOG_SPECIFICATION.md

@@ -0,0 +1,29 @@
+# 变更日志规范 - CHANGELOG SPECIFICATION
+
+本项目所有显著变更都将记录在此 [CHANGELOG.md](CHANGELOG.md) 文件中。
+
+文件格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/) ,文件版本号(程序版本号)遵循 [语义化版本控制](https://semver.org/lang/zh-CN/) 。
+
+## 分类
+
+- 新增:新增此前从未有过的功能。
+- 修改:修改此前存在的功能,且目的不是为了修复错误,修改后功能的使用方法和表现形式与原来不同。**注意:当功能改动范围巨大时,应归类为重构。**
+- 修复:修复错误和漏洞。**注意:当功能改动范围巨大时,应归类为重构。**
+- 删除:删除已经存在的功能。**注意:并不是删除文件就代表该归类为“删除”,只有删除功能时才能算作“删除”,而只是删除配置文件等则只能算作“其他”。**
+- 重构:修改此前存在的功能,修改后功能的使用方法和表现形式与原来基本一致;**或进行重大改动现有的功能。**
+- 文档:不涉及代码修改,而是对文档文件或代码注释的改动。
+- 其他:其他非代码和文档类的新增、改动、删除等,例如:`GitHub Action`的改动。
+
+分类出现的顺序为:新增、修改、修复、删除、重构、文档、其他。
+
+## 时区
+
+- 为了避免造成,每次版本更新的时间条目中应标注时区。并且在该版本的变更日志中涉及到的时间均为此时区。
+- 为了避免争议和误解,请使用 IANA(Internet Assigned Numbers Authority) 的时区数据库中的时区标识符。 
+  例如,使用`Asia/Shanghai`代替`CST`来表示北京时间。因为后者`CST`可以解释为:北美的中部地区(Central Standard Time)、中国标准时间(China Standard Time)、澳大利亚中部标准时间(Central Standard Time (Australia));容易造成误解。
+
+## 条目
+
+- 分类下的每个条目原则上是各自独立的,在特殊情况下两个条目可能有关联(若可以,应以树状形式展开)。
+- 处于不同分类的条目之间不能有关联。
+- 每个条目都是完整的句子,以句号结尾。