10 releases (5 breaking)
0.11.0 | Jul 8, 2024 |
---|---|
0.9.1 | Apr 4, 2016 |
0.9.0 | Oct 25, 2015 |
0.8.1 | Jul 2, 2015 |
0.3.0 | Mar 31, 2015 |
#322 in Debugging
129 downloads per month
Used in 4 crates
(2 directly)
61KB
996 lines
clog
A library for generating a conventional changelog from git metadata, written in Rust
About
clog
creates a changelog automatically from your local git metadata. See the
clog
s changelog.md for an example.
The way this works, is every time you make a commit, you ensure your commit subject line follows the conventional format.
NOTE: clog
also supports empty components by making commit messages such as
alias: message
or alias(): message
(i.e. without the component)
Usage
There are two ways to use clog
, as a binary via the command line (See
clog-cli for details) or as a library in your applications.
See the documentation for information on using clog
in your
applications.
In order to see it in action, you'll need a repository that already has some of
those specially crafted commit messages in it's history. For this, we'll use
the clog
repository itself.
- Clone the
clog-lib
repository (we will clone to our home directory to make things simple, feel free to change it)
$ git clone https://github.com/clog-tool/clog-lib
- Add
clog
as a dependency in yourCargo.toml
[dependencies]
clog = "*"
- Use the following in your
src/main.rs
extern crate clog;
use clog::Clog;
fn main() {
// Create the struct
let mut clog = Clog::with_git_work_tree("~/clog")
.unwrap()
.repository("https://github.com/thoughtram/clog")
.subtitle("Crazy Dog")
.changelog("changelog.md")
.from("6d8183f")
.version("0.1.0");
// Write the changelog to the current working directory
//
// Alternatively we could have used .write_changelog_to("/somedir/some_file.md")
clog.write_changelog().unwrap();
}
- Compile and run `$ cargo build --release && ./target/release/bin_name
- View the output in your favorite markdown viewer!
$ vim changelog.md
Configuration
clog
can also be configured using a configuration file in TOML.
See the examples/clog.toml
for available options.
Companion Projects
clog-cli
- A command line tool that uses this library to generate changelogs.- Commitizen - A command line tool that helps you writing better commit messages.
LICENSE
clog is licensed under the MIT Open Source license. For more information, see the LICENSE file in this repository.
Dependencies
~7MB
~131K SLoC