bonndan / release-manager
Composer包和项目的语义版本发布管理器。
Requires
- php: >=5.3.3
- symfony/console: ~2.0
- vierbergenlars/php-semver: ~2.0
This package is not auto-updated.
Last update: 2024-09-23 15:25:24 UTC
README
Release Manager是一个PHP命令行工具,用于帮助您跟踪发布版本。
- 它使用您的composer文件来存储和检索信息。
- 它强制执行[语义版本](http://semver.org)。
- 与git flow紧密协作。
这是Liip的Relase Management Tool RMT的分支。感谢原始作者为此工具做出的贡献。
与git-flow一起使用
./RMT release
./RMT finish
或进行热修复(基于master分支的补丁版本升级)
./RMT hotfix
./RMT finish
安装
为了使用RMT,您的项目应使用Composer,因为RMT将以开发依赖项的形式安装。只需进入项目根目录并执行以下命令
php composer.phar require --dev bonndan/release-manager 0.5.* # lastest stable
# or
php composer.phar require --dev bonndan/release-manager dev-develop # lastest unstable
然后您必须通过运行以下命令来初始化RMT
php vendor/bonndan/release-manager/command.php init
此命令将在您的composer.json中为您创建一个extra/rmt
部分。您应根据需要调整配置。[此项目的composer文件](https://github.com/bonndan/release-manager/blob/master/composer.json)是一个很好的例子。
从那时起,您就可以开始使用它了,只需执行它
./RMT
手动工作流程的使用
使用RMT非常简单,您只需运行以下命令
./RMT release
RMT将执行以下任务
- 执行先决条件检查
- 要求用户回答潜在的问题
- 生成新的版本号
- 执行预发布操作
- 持久化新的版本号
- 执行发布后操作
附加命令
release
命令是工具的主要行为,但还有一些额外的命令可用
current
将显示您项目的当前版本号changes
将显示将包含在下一个发布中的最后更改init
在您的composer.json文件中创建一个配置部分
配置
所有RMT配置都必须在composer.json
中完成。您可以选择定义一个要执行的动作列表,以及在发布新版本之前或之后执行的动作,以及您想存储版本的地方(在更改日志文件中,作为VCS标签等)。文件分为5个根元素
vcs
:您使用的VCS类型,可以是git
、svn
或none
prerequisites
:在启动发布过程之前必须匹配的先决条件列表preReleaseActions
:在发布过程之前将执行的动作列表versionPersister
:用于存储版本的持久化器postReleaseActions
:在发布后要执行的动作列表
此配置的所有条目都按相同的方式工作:您必须指定要处理动作的类,或者为Release Manager提供的类提供缩写。
语义版本生成器
Release Manager只允许不带前缀的语义版本。参见(语义版本化)[http://semver.org]。发布版本可以通过以下方式增加
- 主要
- 次要
- 补丁
- 构建号
版本持久化器
该类负责保存/检索版本号
- composer:使用composer文件中的版本(默认且推荐)
- vcs-tag:将版本保存为VCS标签
- changelog:将版本保存到变更日志文件中
先决条件操作
先决条件操作在交互部分之前执行。
- working-copy-check:在发布前检查您没有任何VCS本地更改
- display-last-changes:在发布前显示您的最后更改
操作
操作可用于发布前或发布后部分。
- execute:通过system()调用执行任何脚本。返回值大于零将引发异常。
- changelog-update:更新变更日志文件
- vcs-commit:处理VCS提交
- vcs-tag:标记最新提交
- vcs-publish:发布更改(提交和标签)
- composer-update:更新composer文件中的版本号
配置示例
大多数情况下,您可以直接选择下面的示例,并根据您的需求进行修改。
发布管理器的配置说明
{
"rmt": {
"vcs": "git",
"prerequisites": [
"working-copy-check",
"display-last-changes"
],
"preReleaseActions": [
{
"name": "execute",
"script": "phpunit test"
},
{
"name": "version-stamp",
"const": "RMT_VERSION"
},
{
"name": "changelog-update"
},
{
"name": "changelog-render"
}
],
"postReleaseActions": [
"vcs-commit"
]
}
}
- Git是版本控制系统
- 在发布前,会检查工作副本是否干净,并显示最后更改。
- 版本戳(自动生成的PHP文件)和变更日志都会更新为新版本。
- 执行PHPUnit(通用调用),如果失败则停止发布。
- 此处未配置:composer版本持久化器更新composer.json文件。
- 发布后,所有更改都会被提交。
自动推送
{
/* ... */
"postReleaseActions": [
"vcs-commit",
"vcs-publish"
],
}
无VCS,仅变更日志更新器
{
"versionPersister": "changelog"
}
贡献
如果您想帮助,提交您的一个动作脚本或仅报告一个错误:请访问项目页面: https://github.com/bonndan/release-manager
要求
PHP 5.3 Composer
作者
- Laurent Prodon Liip AG
- David Jeanmonod Liip AG
- Daniel Pozzi
许可
RMT根据MIT许可证授权 - 有关详细信息,请参阅LICENSE文件。