Flutter版本日志管理插件changelog_cli的使用

发布于 1周前 作者 gougou168 来自 Flutter

Flutter版本日志管理插件changelog_cli的使用

changelog_cli简介

changelog_cli是一个命令行工具,用于生成基于git历史记录的版本日志。它可以根据整个git历史生成变更日志,也可以通过指定--start--end参数来获取两个提交或标签之间的变更子集。这使得即使不使用语义化版本控制,也能方便地管理版本日志。

Example usage screenshot

安装方法

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

1 回复

更多关于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-commitpost-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文件的准确性和一致性。

回到顶部