Releases: phly/keep-a-changelog
keep-a-changelog 2.6.0
2.6.0 - 2020-07-28
Added
-
#76 adds "milestone" commands for listing, creating, and closing milestones:
milestone:list
will list milestones.milestone:create
will create a milestone, optionally with a description.milestone:close
will close a milestone.
-
#76 adds
--create-milestone
and--create-milestone-with-name
options to thebump:*
andunreleased:promote
commands, allowing them to optionally create a milestone on completion. -
#76 adds a new provider interface,
MilestoneAwareProviderInterface
, for indicating that a provider is capable of manipulating project milestones.
Changed
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- Nothing.
keep-a-changelog 2.5.0
2.5.0 - 2020-07-16
Added
-
#75 adds the ability to correctly parse, show, and manipulate a changelog marked Unreleased in your changelog file, per the 1.0.0 version of the Keep-A-Changelog spec.
-
#75 adds the command
unreleased:create
, allowing you to create an Unreleased release in your changelog. -
#75 adds the command
unreleased:promote <version> [--date|-d]
, allowing you to rename an Unreleased release to the given version, and set the release date (defaulting to the current date).
Changed
-
#73 adds a new listener to the
version:tag
command,VerifyVersionHasReleaseDateListener
. This listener ensures that you cannot tag a release that has not had its release date set in the changelog yet, aborting if the date is not present. -
#74 changes the behavior of
version:tag
slightly, by adding a check to see if we have a clean checkout currently. If not, it will abort the operation. Users can pass a new--force
option to force the operation to continue.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- Nothing.
keep-a-changelog 2.4.0
2.4.0 - 2020-05-01
Added
- Nothing.
Changed
-
#72 expands the regexp used to validate a version string to allow including a hyphen (
-
) between the version and stability, as well as a period (.
) between the stability and revision identifier. As an example, the version "1.2.3-rc.1" will now be considered valid by the keep-a-changelog tool. -
#71 changes the values of the constants
BumpCommand::BUMP_BUGFIX
and::BUMP_PATCH
to be "patch" instead of "bugfix", making them better align with the verbiage in version 2.0 of the Keep A Changelog specification. Usage of the tool does not change, however.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- Nothing.
keep-a-changelog 2.3.0
2.3.0 - 2020-01-30
Added
- #67 adds self-contained PHAR files to new releases.
Changed
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- Nothing.
keep-a-changelog 2.2.0
Added
- Adds PHP 7.4 support.
Changed
- #63 adds support for symfony/console v5 releases.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- Nothing.
keep-a-changelog 2.1.2
Added
- Nothing.
Changed
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- #62 fixes how the command handles the return value when prompting for a remote to use. Previously, it was using the index, instead of looking up the remote name by the index, which would lead to errors.
keep-a-changelog 2.1.1
Added
- Nothing.
Changed
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- #61 fixes an issue that presented when the tag name associated with a release differs from the version.
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.