marcocesarato / php-conventional-changelog
从项目的提交消息和元数据生成变更日志和发布说明,并使用 semver.org 和 conventionalcommits.org 自动化版本管理
Requires
- php: >=7.1.3
- ext-json: *
- ext-mbstring: *
- symfony/console: ^4 || ^5 || ^6 || ^7
Requires (Dev)
- brainmaestro/composer-git-hooks: ^2.8
- friendsofphp/php-cs-fixer: ^3.8
- php-mock/php-mock: ^2.3
- php-mock/php-mock-phpunit: ^2.6
- phpunit/phpunit: ^9.6
- dev-main
- 1.17.2
- 1.17.1
- 1.17.0
- 1.16.0
- 1.15.6
- 1.15.5
- 1.15.4
- 1.15.3
- 1.15.2
- 1.15.1
- 1.15.0
- 1.14.1
- 1.14.0
- 1.13.0
- 1.12.3
- 1.12.2
- 1.12.1
- 1.12.0
- 1.11.0
- 1.10.7
- 1.10.6
- 1.10.5
- 1.10.4
- 1.10.3
- 1.10.2
- 1.10.1
- 1.10.0
- v1.9.10
- v1.9.9
- v1.9.8
- v1.9.7
- v1.9.6
- v1.9.5
- v1.9.4
- v1.9.3
- v1.9.2
- v1.9.1
- v1.9.0
- v1.8.0
- v1.7.0
- v1.6.2
- v1.6.1
- v1.6.0
- v1.5.4
- v1.5.3
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.4
- v1.4.3
- 1.4.2
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.0
- v1.1.0
- v1.0.2
- v1.0.1
- v1.0.0
- dev-renovate/friendsofphp-php-cs-fixer-3.x-lockfile
- dev-renovate/phpunit-phpunit-10.x
- dev-renovate/php-mock-php-mock-phpunit-2.x-lockfile
- dev-renovate/php-mock-php-mock-2.x-lockfile
- dev-renovate/phpunit-phpunit-9.x-lockfile
- dev-codespace-d15e
This package is auto-updated.
Last update: 2024-09-19 15:19:25 UTC
README
PHP Conventional Changelog
如果这个项目帮到了您,请用一颗星⭐支持我们
描述
当一个软件项目的版本发布时,生成让项目用户了解更改和其他相关笔记的文档是很方便的。
这个包可以帮助自动生成变更日志和发布说明文件,以便项目的开发者减少完成和检查项目新版本所需的工作。
此包可以使用 composer 从项目的提交历史消息和元数据生成变更日志,并使用 semver 和 conventional-commits 自动化版本管理。
它提供了一个可以在终端或使用 composer 脚本运行的命令,用于为当前项目生成一个 markdown 格式的变更日志文件。
该命令可以接受参数,定义项目的发布版本,以从中提取更改并生成文件。该包使用一个配置系统,允许您自定义希望生成的变更日志的设置。
查看我们的 CHANGELOG 文件,如果您正在寻找一个可能的最终结果示例。
如何贡献
有想法?发现了一个错误?请提交到 ISSUES 或 PULL REQUEST。欢迎贡献,并将非常感激!每一份努力都有助于。
📘 要求
📖 安装
您可以使用 composer 轻松安装它
composer require --dev marcocesarato/php-conventional-changelog
脚本 (可选)
为了方便使用变更日志生成器或更快地发布新版本,您可以将以下脚本添加到您的 composer.json
注意:您可以根据需要自定义它
{
...
"scripts": {
"changelog": "conventional-changelog",
"release": "conventional-changelog --commit",
"release:patch": "conventional-changelog --patch --commit",
"release:minor": "conventional-changelog --minor --commit",
"release:major": "conventional-changelog --major --commit"
},
...
}
现在您只需运行 composer changelog
或 composer release
(后者将自动增加版本代码并提交更改)来生成您的变更日志。
📘 配置
注意:此过程是 可选的,允许覆盖/合并默认设置
为了自定义设置,您只需在项目的根目录/工作目录创建一个名为 .changelog
的文件,或使用 --config
选项指定配置文件的位置。
注意
- 如果配置文件中的设置不必要,则省略它
- 默认忽略的类型有:
build
、chore
、ci
、docs
、perf
、refactor
、revert
、style
、test
- 要允许所有类型,请保持
types
为空,并设置ignoreTypes
为空
您可以在 配置文档 中找到更多信息。
💻 使用
更改日志生成器将从最后一个标签的日期生成到当前日期的更改日志,并将所有提交日志放在刚刚创建的最新版本中。
注意
- 示例中列出的一些选项可以同时使用(例如:
--first-release --commit
)- 如果没有指定发布方法,则默认启用使用语义版本控制(
MAJOR.MINOR.PATCH
)自动增加版本代码。
MAJOR
:至少有一个重大更改。MINOR
:至少有一个新功能。PATCH
:默认- 使用以下选项指定发布方法:
--major
、--minor
、--patch
、--rc
、--beta
、--alpha
。
示例
第一个版本
注意:仅在不需要所有历史更改或为第一个版本时使用此选项,否则请使用带有
--history
选项的运行
要生成第一个版本的更改日志,请运行
php vendor/bin/conventional-changelog --first-release
新版本
要生成更改日志(不提交文件)
php vendor/bin/conventional-changelog
新发布(带有提交和标签)
要生成带有自动提交和自动版本化标签的更改日志,请运行
php vendor/bin/conventional-changelog --commit
或要修改现有提交,可以运行
php vendor/bin/conventional-changelog --amend
历史
要生成包含所有发布更改历史记录的更改日志
警告:如果该文件已存在,此操作将覆盖
CHANGELOG.md
文件
php vendor/bin/conventional-changelog --history
日期范围
要生成从指定日期到另一个指定日期的更改日志
php vendor/bin/conventional-changelog --from-date="2020-12-01" --to-date="2021-01-01"
标签范围
要生成从指定标签到另一个指定标签的更改日志
php vendor/bin/conventional-changelog --from-tag="v1.0.2" --to-tag="1.0.4"
特定版本
要生成具有特定版本代码的更改日志
php vendor/bin/conventional-changelog --ver="2.0.1"
命令列表
信息:有关运行
php vendor/bin/conventional-changelog --help
的更多信息
Description:
Generate changelogs and release notes from a project's commit messagesand metadata and automate versioning with semver.org and conventionalcommits.org
Usage:
changelog [options] [--] [<path>]
Arguments:
path Specify the path directory where generate changelog
Options:
--config=CONFIG Specify the configuration file path
-c, --commit Commit the new release once changelog is generated
-a, --amend Amend commit the new release once changelog is generated
--commit-all Commit all changes the new release once changelog is generated
--first-release Run at first release (if --ver isn't specified version code it will be 1.0.0)
--from-date=FROM-DATE Get commits from specified date [YYYY-MM-DD]
--to-date=TO-DATE Get commits last tag date (or specified on --from-date) to specified date [YYYY-MM-DD]
--from-tag=FROM-TAG Get commits from specified tag
--to-tag=TO-TAG Get commits last tag (or specified on --from-tag) to specified tag
--major Major release (important changes)
--minor Minor release (add functionality)
--patch Patch release (bug fixes) [default]
--rc Release candidate
--beta Beta release
--alpha Alpha release
--ver=VER Specify the next release version code (semver)
--history Generate the entire history of changes of all releases
--no-verify Bypasses the pre-commit and commit-msg hooks
--no-tag Disable release auto tagging
--no-change-without-commits Do not apply change if no commits
--annotate-tag[=ANNOTATE-TAG] Make an unsigned, annotated tag object once changelog is generated [default: false]
--merged Only include commits whose tips are reachable from HEAD
-h, --help Display help for the given command. When no command is given display help for the changelog command