Recommend this page to a friend! |
Download .zip |
Info | Documentation | View files (14) | Download .zip | Reputation | Support forum | Blog (1) | Links |
Last Updated | Ratings | Unique User Downloads | Download Rankings | |||||
2021-01-18 (1 month ago) | Not yet rated by the users | Total: 22 This week: 1 | All time: 10,174 This week: 332 |
Version | License | PHP version | Categories | |||
php-conventional-cha 1.4.0 | Free for non-comm... | 5 | PHP 5, Utilities and Tools, Console, P... |
<div align="center">
<h1 align="center">PHP Conventional Changelog</h1>
<br>
![](docs/images/logo.png)
</div>
Generate changelogs from a project's commit messages and metadata using composer and automate versioning with semver and conventional-commits.
This package can generate changelog and release notes from committing history. It provides a command that can be run from the terminal, or using composer scripts, to generate a changelog file in markdown for the current project.
The command may take parameters that define the releases of the project that will be considered to extract the changes from the git history to generate the file. The package uses a configuration system with that permit to customize the settings you may want to have your desired changelog generated.
Have an idea? Found a bug? Please raise to ISSUES or PULL REQUEST. Contributions are welcome and are greatly appreciated! Every little bit helps.
You can install it easily with composer
composer require --dev marcocesarato/php-conventional-changelog
For easy use the changelog generator or release faster your new version you can add to your composer.json
the scripts:
> Notes: you can customize it according to your needs
{
...
"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"
},
...
}
Now you can just run composer changelog
or composer release
(the last one will autobump the version code and commit changes) to generate your changelog.
> Notes: this procedure is optional and permit to overwriting/merging the default settings
For customize settings you just needs to create a file named .changelog
on the root of your project/on the working
dir or use the --config
option to specify the location of your configuration file.
> Notes:<br>
> - When a setting on the configuration file is not necessary just omit it
> - The default ignored types are: build
, chore
, ci
, docs
, perf
, refactor
, revert
, style
, test
> - To allow all types just keep empty types
and set empty ignoreTypes
You can have more info about reading the config documentation.
The changelog generator will generate a log of changes from the date of the last tag to the current date, and it will put all commit logs in the latest version just created.
![](docs/images/usage.gif)
> Notes:<br>
> - Some of these options listed on examples could be used together at the same time (ex. --first-release --commit
)
> - Auto bump of version code using the Semantic Versioning (MAJOR.MINOR.PATCH
) is enabled by default if not specified the release method.
> - MAJOR
: At least one breaking change.
> - MINOR
: At least one new feature.
> - PATCH
: Default
> - Use these options to specify the release method: --major
, --minor
, --patch
, --rc
, --beta
, --alpha
.
> Notes: use this option only if you don't need all history changes or is the first version, else run with --history
option
To generate your changelog for the first version run:
php vendor/bin/conventional-changelog --first-release
To generate your changelog (without committing files)
php vendor/bin/conventional-changelog
To generate your changelog with auto commit and auto versioning tagging run:
php vendor/bin/conventional-changelog --commit
or to amend at an existing commit you can run:
php vendor/bin/conventional-changelog --amend
To generate your changelog with the entire history of changes of all releases
> Warn: this operation will overwrite the CHANGELOG.md
file if it already exists
php vendor/bin/conventional-changelog --history
To generate your changelog from a specified date to another specified date
php vendor/bin/conventional-changelog --from-date="2020-12-01" --to-date="2021-01-01"
To generate your changelog from a specified tag to another specified tag
php vendor/bin/conventional-changelog --from-tag="v1.0.2" --to-tag="1.0.4"
To generate your changelog with a specific version code
php vendor/bin/conventional-changelog --ver="2.0.1"
> Info: You can have more info about running php vendor/bin/conventional-changelog --help
--config str Specify the configuration file path
-c --commit bool Commit the new release once changelog is generated
--commit-all bool Commit all changes the new release once changelog is generated
-a --amend bool Amend commit the new release once changelog is generated
--major bool Major release (important changes)
--minor bool Minor release (add functionality)
--patch bool Patch release (bug fixes) [default]
--rc bool Release Candidate
--beta bool Beta release
--alpha bool Alpha release
--first-release bool Run at first release (if --ver isn't specified version code will be 1.0.0)
--to-date str Get commits from last tag date (or specified on --from-date) to specified date [YYYY-MM-DD]
--from-date str Get commits from specified date [YYYY-MM-DD]
--to-tag str Get commits from last tag (or specified on --from-tag) to specified tag
--from-tag str Get commits from specified tag
--ver str Specify the next release version code (semver)
--history bool Generate the entire history of changes of all releases
--no-verify bool Skip the pre-commit and commit-msg hooks
--no-tag bool Disable release auto tagging when commit enabled
Files |
File | Role | Description | ||
---|---|---|---|---|
src (5 files) | ||||
.changelog | Data | Auxiliary data | ||
.changelog | Data | Auxiliary data | ||
.php_cs | Example | Example script | ||
CHANGELOG.md | Data | Auxiliary data | ||
composer.json | Data | Auxiliary data | ||
conventional-changelog | Example | Example script | ||
LICENSE | Lic. | License text | ||
README.md | Doc. | Documentation | ||
TODO.md | Data | Auxiliary data |
Files | / | src |
File | Role | Description |
---|---|---|
Changelog.php | Class | Class source |
Configuration.php | Class | Class source |
DefaultCommand.php | Class | Class source |
Git.php | Class | Class source |
Utils.php | Class | Class source |
php-conventional-cha-2021-01-18.zip 30KB | |
php-conventional-cha-2021-01-18.tar.gz 27KB | |
Install with Composer |
Version Control | Unique User Downloads | Download Rankings | |||||||||||||||
100% |
|
|
Applications that use this package |
If you know an application of this package, send a message to the author to add a link here.