Releases: phly/keep-a-changelog
keep-a-changelog 2.1.0
keep-a-changelog 2.0.0
Added
-
Configuration is now a first-class citizen within the tooling, and is merged
(in order of ascending priority) from each of package defaults,
$XDG_CONFIG_HOME/keep-a-changelog.ini
(usually$HOME/.config/keep-a-changelog.ini
),
$PWD/.keep-a-changelog.ini
(the directory in which you run the command), and
command options. Configuration has the following format:[defaults] changelog_file = CHANGELOG.md provider = github remote = origin package = some/package ; local ($PWD) config only [providers] github[class] = Phly\KeepAChangelog\Provider\GitHub github[token] = authorization-token ; global config only github[url] = https://some-custom-install.github.com gitlab[class] = Phly\KeepAChangelog\Provider\GitLab gitlab[token] = authorization-token ; global config only gitlab[url] = https://some-custom-install.gitlab.com
Full details can be found in the README.md
file. -
Adds the command
config:edit
, which allows editing a global or local
configuration file within your specified editor (either$EDITOR
or the value
of the--editor
option). -
Adds the command
config:remove
, which allows removing either a global or local
configuration file. -
Adds the command
config:show
, which allows showing the contents of either a
global or local configuration file, or the merged values of the two. -
The
version:edit
command now allows you to specify the specific changelog
version you wish to edit. If you do not specify a version, it assumes the most
recent listed. -
The various
entry:*
commands now allow you to specify the specific changelog
version (via--version
) to which to add the new entry, instead of only
allowing adding to the most recent.
Changed
-
The tooling now requires PHP 7.2, as it consumes and implements
PSR-14 (Event Dispatcher) internally. -
Configuration has changed, including where it is stored. If you were using
configuration previously, generate new configuration usingkeep-a-changelog config:create --global
, and then copy relevant details from your
$HOME/.keep-a-changelog/config.ini
to the new configuration file (you can use
keep-a-changelog config:edit --global
to edit the new file). -
When calling
version:release
or the variousentry:*
commands, package
names can now be autodiscovered via one of:- The local configuration file.
- A Composer
composer.json
file (via thename
key). - An NPM
package.json
file (via thename
key).
This means you likely no longer need to specify the package name when pushing
a release via the tooling. -
When calling
version:tag
, git remote names can now be specified via one of:- The global configuration file.
- The local configuration file.
- Command-line option.
- Autodiscovery via
.git/config
, using the configured provider and package name.
-
The
--file|-f
global option for specifying a changelog file is now
--changelog|-c
. -
The
version:release
command now makes the<package>
argument a--package
option. -
The
version:release
command now allows releasing any version; this can be useful
when creating historical releases. -
The internals were completely rewritten. If you were extending or consuming
any classes previously, they are likely either removed, renamed, or rewritten
at this time. In particular, all commands are now under sub-namespaces, and
dispatch events instead of performing logic internally. This approach should
make understanding the workflow of individual commands simpler.
Deprecated
- Nothing.
Removed
-
Removes the
config
command; useconfig:create
instead. -
Removes the
edit
command; useversion:edit
instead. -
Removes the
new
command; usechangelog:new
instead. -
Removes the
ready
command; useversion:ready
instead. -
Removes the
release
command; useversion:release
instead. -
Removes the
tag
command; useversion:tag
instead.
Fixed
- Nothing.
keep-a-changelog 1.6.1
Added
- Nothing.
Changed
- #48 adds the string
:
to then end of all question prompts to make them more readable.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
keep-a-changelog 1.6.0
Added
-
#46 adds the
--provider-domain
option to each of theentry:*
andrelease
commands, and the correspondingdomain
key in.keep-a-changelog.ini
files.
The option can be used to specify a custom domain for your chosen provider; it
will be used to determine which git remote to push tags to, to generate links
for changelog entries, and to make API calls to the provider. -
#44 adds the command
bump:patch
as an alias tobump
/bump:bugfix
. -
#33 adds support for usage with the symfony/console 3.4 series.
-
#41 adds the command
version:list
, which will list all versions and
associated release dates from the changelog file. -
#41 adds the command
version:remove <version>
, which will remove the
changelog entry for the provided version, if it exists. -
#41 adds the command
version:show <version>
, which will show the full
release entry in the changelog for the provided version, along with its
release date.
Changed
-
#41 aliases the
edit
command toversion:edit
. -
#41 adds an optional
<version>
argument to theversion:edit
command,
allowing users to edit a specific release version entry.
Deprecated
- #41 deprecates the
edit
command in favor ofversion:edit
.
Removed
- Nothing.
Fixed
-
#45 updates the
GitHub
provider such that it now verifies that a signed
commit matching the release has been pushed before attempting to create a
release. -
#45 updates the
release
command to no longer hard-code using "origin" as the
remote, and to instead lookup the remote based on the provider and package.
When multiple remotes match (which should not happen), it will prompt the user
to choose one, or abort. -
#43 fixes the markup used to generate a link to a merge request when using
GitLab as your provider. In that scenario, the markup[!{merge number}]
will
now be used instead of[#{merge number}]
.
keep-a-changelog 1.5.1
Added
- Nothing.
Changed
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
keep-a-changelog 1.5.0
Added
-
#24 adds a GitLab repository provider. You can specify the new provider via a
new--provider gitlab
option to either thetag
orrelease
commands. -
#27 adds the ability to create either a local or global config file containing
both the preferred/default provider to use, and its associated token. Usage is
keep-a-changelog config
, optionally with a--global
or-g
flag. The
command will then prompt you for the provider and token.
Changed
- #27 modifies each of the
release
andentry:*
commands to use the
appropriate global or local configuration file, if found, to determine the
provider and/or token to use; if either of the--token
or--provider
options are provided during invocation, those will override the values from
configuration.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- Nothing.
keep-a-changelog 1.4.4
Added
- Nothing.
Changed
- #22 modifies how PR links are generated in several ways:
- If the provided package name does not result in a valid PR link, it raises an excepion.
- If the package name discovered in the
composer.json
does not result in a valid PR link, it then - Probes the git remotes to find the first that results in a valid package link.
In each case, it performs aHEAD
request on the generated link to determine if it is
valid, following redirects as encountered.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- Nothing.
keep-a-changelog 1.4.3
Added
- Nothing.
Changed
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- #21 fixes an issue with releasing that occurs when the token file
contains any additional whitespace (such as a trailing EOL character), resolving problems
with creating a release via the GitHub API.
keep-a-changelog 1.4.2
Added
- Nothing.
Changed
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
-
Fixes the exception message emitted when
new
is called and a changelog file already exists to
properly mention the--overwrite
, not the--override
, option. -
#20 fixes detection of a changelog when only one changelog
entry is present in the file.
keep-a-changelog 1.4.1
Added
- Nothing.
Changed
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- #19 fixes the
new
command to correctly detect the--overwrite
option instead of the--override
option.