changelogged
is a changelog manager for Git projects.
You're encouraged to use changelogged
when preparing a new release of your project.
If you're using bash you probably want to enable autocompletion. You can do it with the following or equivalent:
changelogged --bash-completion-script changelogged >> ~/.bash_completion
In new terminal sessions you will have it.
For most projects you can simply run changelogged
with no options or configuration files:
changelogged
After you refuse to do to interactive mode it will add missing entries to your changelogs and open editor for each if them.
By default editor is set by $EDITOR
variable.
After you can bummp versions over whole project (usable if you have more than one version file).
That's it! Now you have a proper changelog with no forgotten changes.
With Git Flow your development and feature branches
will likely not have version tags associated with them.
This can confuse changelogged
and result in more suggestions than needed.
To avoid this situation add branch: master
line
in your .changelogged.yaml
.
Let A.B.C.D.E be version number.
They are named in a prompt correspondingly app
, major
, minor
, fix
and doc
A.B.C versions are bumped through zero. If you have version A.B.9 and bump B next version will be A.B+1.0. A.B version will never be reached since C was introduced once.
non-PVP versions are bumped through one. A.B.C.9 -> A.B.C+1 -> A.B.C+1.1
For any non-trivial project you're likely to want to configure the way changelogged
treats changes in that project.
Normally configuration file is located at .changelogged.yaml
in the root of the project. (note the leading dot).
You can define your own location with option --config
.
See .changelogged.template.yaml for a template configuration file with description of all fields. All paths inside can be relative against project root directory.
If you want a lot more customized changelog try to go to interactive mode.
It allows to walk through history and do something with each entry. Options:
(w)rite
- write entry to changelog and go to next. You can omitw
and do it by pressing enter.(r)emind
- show commit in pager.(s)kip
- skip entry and go to next.(e)xpand
- write merge commit entry, expand to subchanges and walk through them.(i)gnore
- ignore commit. It will be written to config and will never be suggested as missing.(a)ll
- add remaining entries to changelog. Raised inside merge commit it will add rest of subchanges.(q)uit
- skip remaining entries. Inside merge commit it will quit it only.
changelogged --help
Changelog Manager for Git Projects
Usage: changelogged [--dry-run] [TARGET_CHANGELOG]
[--config changelogged.yaml config file location]
Changelogged
Available options:
-h,--help Show this help text
--list-misses List missing entries, don't modify changelogs.
--from-version CHECK_FROM_TAG
Tag or commit from which to check changelogs.
--from-beginning Check all changelogs from start of the project.
--no-colors Print all messages in standard terminal color.
--dry-run Do not change files while running.
TARGET_CHANGELOG Path to target changelog.
--config changelogged.yaml config file location
Path to config file.
--verbose Turn verbose mode on (useful for developers).
--version Print version.
It works with Git projects only.
Current version supports only GitHub and UNIX like OS. We are working on it.
You can build a version from Hackage using Stack or cabal-install:
stack install changelogged
cabal install changelogged
Clone this repository:
git clone https://github.com/GetShopTV/changelogged.git
cd
into cloned repository and build with Stack:
stack build
You can now run changelogged
via Stack with
stack exec changelogged
or you can install it with
stack install
Bug reports and feature requests are welcome on GitHub
Code of conduct and contributing rules are coming soon.
Pull requests are welcome!
GetShop.TV Team