levit/versioning-bundle

Symfony LevitVersioningBundle

安装: 425

依赖者: 0

建议者: 0

安全: 0

星星: 1

分支: 0

类型:symfony-bundle

v1.1.0 2021-01-15 12:23 UTC

This package is auto-updated.

Last update: 2024-09-15 19:19:53 UTC


README

用于语义化版本控制和从提交信息中生成变更日志的Symfony包。

用法

安装

更新你的 composer.json

"require-dev": {
    ...
    "levit/versioning-bundle": "1.*"
},

更新你的 AppKernel.php 并注册bundle

if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
    ...
    $bundles[] = new Levit\VersioningBundle\LevitVersioningBundle();
}

在项目根目录创建 versioning.yml 并使用默认设置

provider: Git
groupList:
    - { groupName: Release, keywordList: [RELEASE], upgrade: MAJOR, changelog: false }
    - { groupName: Features, keywordList: [FEATURE], upgrade: MINOR }
    - { groupName: Bugfixes, keywordList: [HOTFIX, FIX, BUG, BUGFIX], upgrade: PATCH }
    - { groupName: Refactoring, keywordList: [REFACTORING], upgrade: PATCH }
    - { groupName: Documentation, keywordList: [DOCS], upgrade: PATCH }

提交信息

提交信息 必须有特定的标题:(每个包含关键字的提交将被生成到变更日志中,其他将被忽略)

  • 第一个是表示严重性的关键字(HOTFIX,FIX,BUG,FEATURE,DOCS,REFACTORING)
  • 类型后可以跟一个可选的带sharp的ticket号
  • 简短描述添加或修复的内容

示例

Hotfix: Oprava zobrazení homepage
Feature: Přidává zobrazení uživatelského jména v top baru
Docs: #1 Návod na přidávání funkcí

在本地验证并通过所有测试,提交并准备好上线后,你可以在控制台中查看未来的变更日志。

php bin/console version:unpublished

如果你满意,可以启动自动生成版本的流程。

php bin/console version:release

版本控制需要所有更改都已经被提交。之前的提交信息将自动添加到 CHANGELOG.md 并执行带有新版本号的提交,并创建tag。如果你对当前的变更日志不满意,你可以修改它,并使用 amend 将其添加到发布提交中。

然后推送master和新生成的tag。

不需要为每次更改创建新版本,只需当你打算将更改上传到生产环境时。

如果你已经准备好更改,但想查看发布新版本时的变更日志,可以使用以下命令生成。

php bin/console version:generate

此命令会生成变更日志,但不会提交它或创建带有新版本号的tag。接下来只需撤销对变更日志的更改,你就可以继续开发了。

配置

provider: Git
ticketPatern: 'https://gitlab.com/james.fruhbauer/versioning-bundle/issues/'
template: Normal #[Normal|Simple|Custom]
# if you use custom template set path
# template: Custom
# templatePath: 'MyCustomTemplateBundle/Resources/views/Custom'
groupList:
    - { groupName: Release, keywordList: [RELEASE], upgrade: MAJOR, changelog: false }
    - { groupName: Features, keywordList: [FEATURE], upgrade: MINOR }
    - { groupName: Bugfixes, keywordList: [HOTFIX, FIX, BUG, BUGFIX], upgrade: PATCH }
    - { groupName: Refactoring, keywordList: [REFACTORING], upgrade: PATCH }
    - { groupName: Documentation, keywordList: [DOCS], upgrade: PATCH }
# custom command for example build CSS from SASS
# placeholder #VERSION# is available with current version
# customCommandList:
#     - { name: 'Npm Build', command: 'npm run build-prod --env.template=#TEMPLATE#' --env.version=#VERSION# }
# customParamList: 
#     - { name: template, placeholder: '#TEMPLATE#', mode: REQUIRED, description: 'Name of template' }

资源