Flutter版本日志管理插件changelog_cli的使用
Flutter版本日志管理插件changelog_cli的使用
changelog_cli简介
changelog_cli
是一个命令行工具,用于生成基于git历史记录的版本日志。它可以根据整个git历史生成变更日志,也可以通过指定--start
和--end
参数来获取两个提交或标签之间的变更子集。这使得即使不使用语义化版本控制,也能方便地管理版本日志。
安装方法
Pub.dev安装
如果该CLI应用程序在pub上可用,可以通过以下命令全局激活:
dart pub global activate changelog_cli
或者本地激活:
dart pub global activate --source=path <path to this package>
Homebrew安装
您还可以通过Homebrew安装此CLI:
brew tap orestesgaolin/tap
brew install changelog_cli
使用方法
获取帮助信息
要获取changelog_cli
的使用信息,请运行:
changelog_cli generate --help
生成版本日志
生成一个基于整个git历史的版本日志:
changelog_cli generate
更详细的用法示例:
# 指定路径、起始和结束标签、版本号、限制条目数和输出格式
changelog_cli generate --path ~/Projects/my-app --start 1.0.0 --end 1.1.0 --version 1.1.0 --limit 2000 --printer markdown
# 自定义格式化输出
changelog_cli generate --path packages/something --start $CM_PREVIOUS_COMMIT --version "Version $BUILD_VERSION ($PROJECT_BUILD_NUMBER)" --printer slack-markdown --group-by date-asc --date-format-locale en_US --date-format yyyy-MM-dd
# 对于带有my_package-x.y.z模式标签的monorepos
changelog_cli generate --path lib/packages/my_package --auto true --auto-tag-glob-pattern "my_package*"
如果您想使用git命令获取前一个标签并将其传递给changelog_cli
:
git describe --tags --abbrev=0
changelog_cli generate --start changelog_cli-v0.0.2
输出格式(Printers)
changelog_cli
支持以下几种输出格式:
simple
:简单文本输出markdown
:Markdown格式输出slack-markdown
:带有Slack特定格式的Markdown输出
测试与覆盖率报告
运行测试
要运行所有单元测试,请使用以下命令:
$ dart pub global activate coverage
$ dart test --coverage=coverage
$ dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info
生成覆盖率报告
为了查看生成的覆盖率报告,您可以使用lcov:
# 生成覆盖率报告
$ genhtml coverage/lcov.info -o coverage/
# 打开覆盖率报告
$ open coverage/index.html
以上就是changelog_cli
的基本使用指南,希望对您有所帮助!如果有任何问题或需要进一步的帮助,请随时提问。
更多关于Flutter版本日志管理插件changelog_cli的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter版本日志管理插件changelog_cli的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中使用changelog_cli
插件来管理版本日志的一个详细示例。changelog_cli
是一个命令行工具,用于自动生成和管理Flutter项目的CHANGELOG文件。
安装changelog_cli
首先,确保你已经安装了Dart SDK,因为changelog_cli
是用Dart编写的。你可以通过Dart的包管理工具Pub全局安装changelog_cli
:
dart pub global activate changelog_cli
安装完成后,你可以通过命令行运行changelog
命令来访问该工具。
初始化CHANGELOG文件
在你的Flutter项目根目录下,运行以下命令来初始化CHANGELOG文件:
changelog init
这个命令会创建一个默认的CHANGELOG.md
文件,并询问一些初始设置,比如项目的名称和初始版本号。
添加新的版本日志
每当你的项目发布新版本时,你可以使用以下命令来添加新版本日志:
changelog add <version> --message "<your release notes>"
例如,如果你想添加1.0.1版本的日志,并附带一些发布说明:
changelog add 1.0.1 --message "Fixed minor bugs and improved UI performance."
查看当前的CHANGELOG
你可以随时查看当前生成的CHANGELOG.md
文件,以确保它包含了所有期望的版本日志。
自动化脚本示例
为了方便,你可以将changelog_cli
命令集成到你的自动化脚本中,比如在发布新版本时自动生成CHANGELOG。以下是一个简单的Shell脚本示例,假设你有一个版本文件VERSION
存储当前版本号:
#!/bin/bash
# 读取当前版本号
CURRENT_VERSION=$(cat VERSION)
# 读取下一个版本号(这里假设简单递增patch版本)
IFS='.' read -ra ADDR <<< "$CURRENT_VERSION"
MAJOR=${ADDR[0]}
MINOR=${ADDR[1]}
PATCH=$((10#${ADDR[2]} + 1))
NEXT_VERSION="${MAJOR}.${MINOR}.${PATCH}"
# 更新版本号文件
echo $NEXT_VERSION > VERSION
# 添加新的版本日志
changelog add $NEXT_VERSION --message "Release notes for version $NEXT_VERSION."
# 接下来可以进行构建和发布操作...
使用Git钩子自动化
你也可以考虑使用Git钩子(如pre-commit
或post-tag
)来自动化CHANGELOG的更新。以下是一个简单的post-tag
钩子示例,每当创建一个新的Git标签时,自动添加版本日志:
#!/bin/bash
# 获取新标签名
NEW_TAG=$(git describe --tags --exact-match HEAD 2>/dev/null)
if [ -z "$NEW_TAG" ]; then
exit 0 # 如果不是精确匹配标签,则退出
fi
# 从标签名获取版本号(假设标签名与版本号一致)
VERSION=$NEW_TAG
# 添加版本日志(可以自定义发布说明的获取方式)
changelog add $VERSION --message "Automated changelog entry for version $VERSION."
将上述脚本保存为.git/hooks/post-tag
,并确保它具有执行权限:
chmod +x .git/hooks/post-tag
这样,每当你创建一个新的Git标签时,changelog_cli
就会自动更新CHANGELOG文件。
总结
通过上述步骤,你可以在Flutter项目中有效地使用changelog_cli
来管理和自动生成版本日志。这不仅提高了开发效率,还确保了CHANGELOG文件的准确性和一致性。