mtk / releaser
Generate CHANGELOG.md file from developers changes
0.1.4
2020-09-18 10:14 UTC
Requires
- php: >=7.4
- guzzlehttp/guzzle: ^7.0
- hassankhan/config: ^2.1
- mnapoli/silly-php-di: ^1.2
- mrrio/shellwrap: ^0.4.1
- munusphp/munus: ^0.2.2
- myclabs/php-enum: ^1.7
- phlak/semver: ^3.2
- symfony/filesystem: ^5.1
- symfony/yaml: ^5.2@dev
- webmozart/assert: ^1.9
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- phpmd/phpmd: ^2.9
- phpstan/phpstan: ^0.12.42
- phpunit/phpunit: ^9.3
- symplify/easy-coding-standard: ^8.3
README
This tool will help releasing and CHANGELOG.md maintaining in git projects.
This CLI is in test phase!
Install
$ composer require mtk/releaser
Usage
Create new change:
$ vendor/bin/releaser new feature "Example change" "ID-543" "John Doe"
Available types:
- fix
- feature
- deprecation
- security
- performance
- other
Create new release:
$ vendor/bin/releaser release major
Available releases:
- major
- minor
- patch
Example usage scenario
Feature: Create new change by developer Background: We have git repository on GitLab, and developer with his own branch Given branch with uncommited changes When developer make new change Then new change file is created
Feature: Create new release Background: We have git repository on GitLab, with merged developer's branches to master Given master branch with unreleased changes When maintainer release new version Then changelog file is updated And new git tag is created And release is published
Configuration defaults
changesDirectory: .unreleased changelogName: CHANGELOG.md git: enabled: true push: true commitMessage: Update changelog publishers: {}
Configure GitLab publisher
publishers: class: GitLabPublisherClient projectId: 100 privateToken: DA32HJB2KLH321 gitlabUrl: https://gitlab.com
TODO
- Refactor functional test for DI container usage
- Fix git changes checking
- Add wizard to create change
- Write better docs
- Add more publishers, and test custom publisher
- Replace config library (actual cannot replace only a part of nested array defaults, like only single git parameter)