The Git Commit Message and Changelog Generation Framework :book:

Overview

git-journal 📖

Build Status Build status Coverage Status dependency status Crates.io doc.rs master doc gitjournal License MIT Join the chat at https://gitter.im/git-journal/Lobby

The Git Commit Message and Changelog Generation Framework

Table of contents:


TL;DR

Maintaining changelogs can be time-consuming, especially when multiple persons work on the same project. If you maintain a separate file, merge conflicts and additional release work is sure to follow.

Sometimes complete entries are lost during merge conflict resolution, people forget to mention something or links between issues and actual commits are missing.

It would be great, if we could use the commit history of git to generate a beautiful changelog without any additional work needed.

This is where git-journal jumps in.

To ensure this auto-generation a framework to write more sensible commit messages is needed. Single commit messages should contain one logical change of the project which is described in a standardized way. This results in a much cleaner git history and provides contributors more information about the actual change.

The theoretical base consists of two RFCs:

Installation

To use git-journal as a git extension a Rust installation is needed including the package manager cargo. Different package managers will provide these as well, for example via Pacman on Arch Linux:

sudo pacman -S rust cargo

For a super easy installation it is also possible to use rustup. Once these two dependencies are installed, git-journal can be installed via:

cargo install git-journal

After adapting your $PATH variable to search also within ~/.cargo/bin it should be possible to run it by invoking git journal.

Usage

The binary git-journal depends on the Rust library gitjournal, which also can be used independently from the binary application to write customized solutions. This repository will be used as an example for the following explanations.

Default output

If you run git journal anywhere inside this repository, the output will be a nice looking Markdown formatted changelog based on your repositories git log:

> git journal
[git-journal] [INFO] Skipping commit: Summary parsing: 'Merge branch 'test_branch''
[git-journal] [OKAY] Parsing done.

# Unreleased (2016-09-18):
- [Added] file4 again
    This paragraph explains the change in detail
    - [Fixed] multiple issues
    - [Removed] not needed things
- [Removed] file4.txt
- [Added] file4.txt
- [Added] file1.txt again
- [Removed] file1.txt

Fixes:
#1, #2

# v2 (2016-09-12):
- [Added] file3.txt

All commits are sorted by time, which means that the newest elements occur at the top. The parsing of the commit message will be done regarding RFC0001, which describes the different syntax elements within a commit message. Categories ([Added], [Fixed], ...) are automatically wrapped in square brackets if available. It is also possible to define own categories within the configuration file. The journal automatically lists the log from the last release and the unreleased entries.

The footers of the commit messages (described in RFC0001) are automatically accumulated and printed after the changelog list ordered by their values. It is also possible to skip the unreleased entries:

> git journal -u
[git-journal] [OKAY] Parsing done.

# v2 (2016-09-12):
- [Added] file3.txt

Using a specific commit range in the format REV..REV or a different starting point than HEAD for parsing can also be done:

> git journal v1
> git journal v2
> git journal v1...HEAD^

It is also possible to print all releases (git tags) with -a, the past n releases via -n <COUNT>:

> git journal -a
[git-journal] [INFO] Skipping commit: Summary parsing: 'Merge branch 'test_branch''
[git-journal] [OKAY] Parsing done.

# Unreleased (2016-09-18):
- [Added] file4 again
    This paragraph explains the change in detail
    - [Fixed] multiple issues
    - [Removed] not needed things
- [Removed] file4.txt
- [Added] file4.txt
- [Added] file1.txt again
- [Removed] file1.txt

# v2 (2016-09-12):
- [Added] file3.txt

# v1 (2016-09-12):
- [Added] file2.txt
- [Added] file1.txt
> git journal -un1
[git-journal] [OKAY] Parsing done.

# v2 (2016-09-12):
- [Added] file3.txt

Beside the usual detailed log a short version (-s) exists, which just uses the commit summary:

> git journal -as
[git-journal] [INFO] Skipping commit: Summary parsing: 'Merge branch 'test_branch''
[git-journal] [OKAY] Parsing done.

# Unreleased (2016-09-18):
- [Added] file4 again
- [Removed] file4.txt
- [Added] file4.txt
- [Added] file1.txt again
- [Removed] file1.txt

# v2 (2016-09-12):
- [Added] file3.txt

# v1 (2016-09-12):
- [Added] file2.txt
- [Added] file1.txt

It also possible to append the output of the journal to a file (-o), which will be separated by a newline (---) for each git journal invocation. Git tags with a specific patterns like rc will be excluded automatically, which can be customized via -e.

For more information please refer to the help git journal -h.

Template output

The design of commit message templates is described in RFC0002. From now on we are using this template for the test repository:

[[tag]]
tag = "default"
name = "Default"

[[tag]]
tag = "tag1"
name = "Section 1"

[[tag]]
[[tag.subtag]]
tag = "tag2"
name = "Subsection 1"
footers = ["Fixes"]

To use such a template just use the -t option:

> git journal -t CHANGELOG.toml
[git-journal] [INFO] Skipping commit: Summary parsing: 'Merge branch 'test_branch''
[git-journal] [OKAY] Parsing done.

# Unreleased (2016-09-21):
## Default
- [Removed] file3.txt
- [Removed] file4.txt
- [Removed] file5.txt
- [Added] new .gitjournal
- [Improved] file5.txt
- [Fixed] this
- [Removed] that
- [Added] .gitjournal.toml file
- [Removed] not needed things
- [Removed] file4.txt
- [Added] file4.txt
- [Added] file1.txt again
- [Removed] file1.txt

## Section 1
- [Added] file4 again
- This paragraph explains the change in detail

### Subsection 1
- [Fixed] multiple issues

Fixes:
#1, #2, #1, #2, #3, #5, #6, #7

# v2 (2016-09-12):
## Default
- [Added] file3.txt

Everything which is untagged will go into the default section. The name of tag1 will be mapped to Section 1 and tag2 is a subtag of tag1 (see the markdown header). This also means that it is now possible that list items are uncategorized since the templating engine gives the possibility to split commits into multiple pieces. Parsed paragraphs are converted to single list items to always provide a clean markdown. The footers are specified as an toml array of strings which will output the selected footer keys at the correct position of the log. Please consider that the accumulation of the footers are related to the complete tag, not just the section where there printed. Other command line options like in the default output are available as well.

It is also possible to add a custom header or footer text to every output or every tag. For more information please read RFC0002.

Commit message preparation and verification

To use the automatic commit message preparation and verification the git journal setup has to be executed on every local repository:

> git journal setup
[git-journal] [OKAY] Defaults written to '.gitjournal.toml' file.
[git-journal] [OKAY] Git hook installed to '.git/hooks/commit-msg'.
[git-journal] [OKAY] Git hook installed to '.git/hooks/prepare-commit-msg'.
[git-journal] [OKAY] Installed bash completions to the path.
[git-journal] [OKAY] Installed fish completions to the path.
[git-journal] [OKAY] Installed zsh completions to the path.

If there already exists these hooks git-journal tries to append the needed commands, which has to be verified by hand afterwards. The generated command line completions for bash and fish needs to be put in the correct directory of your shell. The default configuration file is a toml file which represents this structure. A default configuration with comments can also be found here.

If the setup is done git-journal will verify your inserted commit message as well as doing a commit message preparation. For example, if we are now trying to commit something which can not be parsed:

> touch my_file
> git add my_file
> git commit -m "This commit contains no cactegory"
[git-journal] [ERROR] Commit message preparation failed: GitJournal: Parser: Summary parsing: 'This commit contains no cactegory'

Since we are using the -m flag there is no chance for the user to edit the message any more and git-journal will reject it. If we are using a commit message editor via the usual git commit without the -m we will get a default commit message template:

JIRA-1234 Added ...

# Add a more detailed description if needed

# - Added ...
# - Changed ...
# - Fixed ...
# - Improved ...
# - Removed ...

The JIRA-1234 prefix is just the default and can be configured via the .gitjournal.toml file. If the submitted commit message is also invalid we will get an error like this:

[git-journal] [ERROR] Commit message invalid: GitJournal: Parser: Summary parsing: 'This commit message is also invalid'

If everything went fine it should look like this:

> git commit -m "Added my_file"
[git-journal] [OKAY] Commit message prepared.
[git-journal] [OKAY] Commit message valid.
[master 1b1fcad] Added my_file
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 my_file

If a default template is configured then git-journal will also check the available tags of the template against your commit message tags. So there will be an error if one of the tags within the commit message is not available within the defined template:

[git-journal] [WARN] These tags are not part of the default template: 'tag1'.
[git-journal] [ERROR] Commit message invalid: GitJournal: Verify: Not all tags exists in the default template.

This means in detail that git-journal will build up two gates (one for preparation and one for verification) during doing the commit by the user. This graphic will sum up where git-journal will take influence on the local git repository:

Current Features

  • General
    • Generation of completions for bash, fish and zsh shell during setup.
    • Custom category support for commit preparation, validation and output (categories).
    • Automatic multi threading support for the parsing.
  • Journal generation and output
    • Automatic up-level repository search if a sub path of a git repository was specified.
    • Custom commit ranges or different git commit starting points for parsing.
    • Run in a different specified path than the current working directory (-p).
    • Parse and print the complete history (-a) or the past n releases (-n).
    • Print a short version of the commit history based on the commit message summary (-s).
    • Output the parsed log in valid Markdown to the command line or a file (-o).
    • Custom git tag exclude pattern, e.g. rc tags (-e).
    • Enable/Disable debug message output (enable_debug).
    • Enable/Disable colored output via the command line (colored_output).
    • Automatic wrapping of commit message categories in square brackets.
    • Templating support including tag and name mapping (default_template).
    • Support for accumulating footer data (also for templating engine).
    • Different sorting methods ("date" and "name") for the default and template based output (sort_by).
    • Support for custom header and footer fields within templates with multiple or single output.
    • Generation of default templates based on the parsing results (-g).
    • Commit hash links for commits in standard and template output (show_commit_hash).
    • Support for custom category delimiters (category_delimiters).
  • Preparation and Verification of commit messages
    • Automatic installation of git hooks inside the local repository.
    • Generation of default configuration file during setup.
    • Commit message validation based on implemented parser.
    • Message preparation with custom commit prefix (template_prefix).
    • Differentiation between amended and new commits.
    • Use the tags from the default template for the commit message verification.

Planned features and improvements

  • There are no bigger features planned yet.

Contributing

You want to contribute to this project? Wow, thanks! So please just fork it and send me a pull request.

Comments
  • Changed nom version to v5.

    Changed nom version to v5.

    I saw that dependabot failed to upgrade the nom version to v5, so I took the liberty to do it manually. As some things like the message macros were removed, one thing lead to another and now it's completely macro free.

    One caveat though: The regex function is merged, but not officially released, so before merging this, there needs to be another nom release (before v6 is out...). Unfortunately I didn't manage to leave the re_bytes_find macros in ...

    opened by pJunger 5
  • Output to file and terminal

    Output to file and terminal

    Hey,

    does it make sense to always output to the terminal, even if the output option is set? Would you be open to having either 'xor' behavior or an additional 'quiet' flag to suppress the terminal output?

    opened by pJunger 5
  • Installation / compile fails due to breaking git2 changes

    Installation / compile fails due to breaking git2 changes

    Installing the current version of git-journal results in the following exceptions being thrown:

    error[E0425]: cannot find value `SORT_TIME` in module `git2`
    error[E0425]: cannot find value `REVPARSE_SINGLE` in module `git2`
    error[E0425]: cannot find value `REVPARSE_MERGE_BASE` in module `git2`
    

    It seems as if those variables have been removed in git2 v0.7.0 onwards. Unfortunately the git2 versions seems not be pinned to the latest 0.6 release.

    opened by beevelop 5
  • Disable color output does not work as expected

    Disable color output does not work as expected

    I found a some issues regarding the color output:

    1. After setting 'colored_output' to false, the debug output is still formatted with colors.
    2. In addition, after setting 'debug_output' to false, the generated changelog contains color informations:
    # Unreleased (2017-06-11):
    - [Fixed] clippy lints^[(B^[[m
    - [Fixed] builds with newer Rust versions^[(B^[[m
    
    # 1.4.2 (2017-03-18):
    - [Changed] internal error handling to use error-chain crate^[(B^[[m
    
    # 1.4.1 (2017-03-05):
    - [Changed] Cargo files to newest version^[(B^[[m
    - [Changed] lockfile to current version^[(B^[[m
    - [Fixed] kcov build and test^[(B^[[m
    

    config:

    categories = ["Added", "Changed", "Fixed", "Improved", "Removed"]
    category_delimiters = ["[", "]"]
    colored_output = false 
    enable_debug = false 
    excluded_commit_tags = []
    enable_footers = false
    show_commit_hash = false
    show_prefix = false
    sort_by = "date"
    template_prefix = ""
    
    bug 
    opened by ghost 5
  • Add support for 'history simplification'

    Add support for 'history simplification'

    Hello,

    most Git commands support specifying a path as last argument to restrict the scope of the command. This would be very helpful for cases where multiple applications live in the same repository.

    e.g. git journal -a -- .

    Do you think it makes sense to provide this or should this be handled by tags in you opinion?

    opened by pJunger 4
  • Bump nom from 4.2.3 to 5.0.1

    Bump nom from 4.2.3 to 5.0.1

    Bumps nom from 4.2.3 to 5.0.1.

    Changelog

    Sourced from nom's changelog.

    Change Log

    [Unreleased][unreleased]

    Thanks

    Added

    Fixed

    5.0.0 - 2019-06-24

    This version comes with a complete rewrite of nom internals to use functions as a base for parsers, instead of macros. Macros have been updated to use functions under the hood, so that most existing parsers will work directly or require minimal changes.

    The CompleteByteSlice and CompleteStr input types were removed. To get different behaviour related to streaming or complete input, there are different versions of some parsers in different submodules, like nom::character::streaming::alpha0 and nom::character::complete::alpha0.

    The verbose-errors feature is gone, now the error type is decided through a generic bound. To get equivalent behaviour to verbose-errors, check out nom::error::VerboseError

    Thanks

    Added

    • the VerboseError type accumulates position info and error codes, and can generate a trace with span information
    • the lexical-core crate is now used by default (through the lexical compilation feature) to parse floats from text
    • documentation and code examples for all functions and macros

    Changed

    • nom now uses functions instead of macros to generate parsers
    • macros now use the functions under the hood
    • the minimal Rust version is now 1.31
    • the verify combinator's condition function now takes its argument by reference
    • cond will now return the error of the parser instead of None
    • alpha*, digit*, hex_digit*, alphanumeric* now recognize only ASCII characters
    ... (truncated)
    Commits
    • c326e07 bump version to 5.0.1
    • c70065a fix error type inference in value!
    • e913ebe fix peek reimplementation
    • eef8080 fix return type in example
    • 954114a Add missing use statement to "Code organization" parser example
    • ab8277d add some documentation about the infinite loop check in many0 and many1
    • 0b15ccd relax trait requirements on cut
    • 2713fd8 deactivate cfg(doctest)
    • 092df74 Fix meta variable misuse
    • 14d2279 Fix custom_input_types.md
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)

    Finally, you can contact us by mentioning @dependabot.

    dependencies 
    opened by dependabot-preview[bot] 4
  • git-journal fails if TERM env variable is not set

    git-journal fails if TERM env variable is not set

    Logging and thus git-journal fails on initialization if TERM env variable is not set. The underlying reason can be seen in https://github.com/saschagrunert/mowl/pull/1.

    opened by pJunger 3
  • Bump nom from 4.2.3 to 5.0.0

    Bump nom from 4.2.3 to 5.0.0

    Bumps nom from 4.2.3 to 5.0.0.

    Changelog

    Sourced from nom's changelog.

    5.0.0 - 2019-06-24

    This version comes with a complete rewrite of nom internals to use functions as a base for parsers, instead of macros. Macros have been updated to use functions under the hood, so that most existing parsers will work directly or require minimal changes.

    The CompleteByteSlice and CompleteStr input types were removed. To get different behaviour related to streaming or complete input, there are different versions of some parsers in different submodules, like nom::character::streaming::alpha0 and nom::character::complete::alpha0.

    The verbose-errors feature is gone, now the error type is decided through a generic bound. To get equivalent behaviour to verbose-errors, check out nom::error::VerboseError

    Thanks

    Added

    • the VerboseError type accumulates position info and error codes, and can generate a trace with span information
    • the lexical-core crate is now used by default (through the lexical compilation feature) to parse floats from text
    • documentation and code examples for all functions and macros

    Changed

    • nom now uses functions instead of macros to generate parsers
    • macros now use the functions under the hood
    • the minimal Rust version is now 1.31
    • the verify combinator's condition function now takes its argument by reference
    • cond will now return the error of the parser instead of None
    • alpha*, digit*, hex_digit*, alphanumeric* now recognize only ASCII characters

    Removed

    • deprecated string parsers (with the _s suffix), the normal version can be used instead
    • verbose-errors is not needed anymore, now the error type can be decided when writing the parsers, and parsers provided by nom are generic over the error type
    • AtEof, CompleteByteSlice and CompleteStr are gone, instead some parsers are specialized to work on streaming or complete input, and provided in different modules
    • character parsers that were aliases to their *1 version: eol, alpha, digit, hex_digit, oct_digit, alphanumeric, space, multispace
    • count_fixed macro
    • whitespace::sp can be replaced by character::complete::multispace0
    • method combinators are now in the nom-methods crate
    ... (truncated)
    Commits
    • be0a3fd bump version to 5.0.0
    • 632ab59 fix build in no_std+alloc
    • bcd2a62 remove debug log
    • 56becd5 fix tests on no_std
    • 3108cb6 do not panic in convert_error on empty input
    • b16bbf3 only build overflow tests on 64 bits arch
    • 26c5d3b remove outdated doc
    • 0205b90 bump version to 5.0.0-beta3
    • fd8acd3 separated_list, separated_nonempty_list: Document arguments in order
    • 608aa8f add the value combinator as a function
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)

    Finally, you can contact us by mentioning @dependabot.

    dependencies 
    opened by dependabot-preview[bot] 3
  • Add support for passing config option via the CLI

    Add support for passing config option via the CLI

    It would be a nice to overwrite configuration options via the command line interface. I need this feature for an Emacs/Magit extension. I must fully disable the debug and color output, without changing the 'enable_debug' and 'colored_output' values of the project config.

    Do you think it is possible to add this feature?

    enhancement 
    opened by ghost 3
  • Bump syn from 1.0.69 to 1.0.70

    Bump syn from 1.0.69 to 1.0.70

    Bumps syn from 1.0.69 to 1.0.70.

    Release notes

    Sourced from syn's releases.

    1.0.70

    • Fix precedence of closure body vs ExprRange rhs: || .. .method() (#1019)
    • Parse inner attributes inside of structs and enums (#1022)
    Commits
    • 379749b Release 1.0.70
    • c0d8c4f Merge pull request #1022 from dtolnay/inner
    • 8ad9561 Parse inner attrs on structs, enums, unions, variants
    • 2fcb301 Slightly linearize Variant's parse logic
    • b71c788 Merge pull request #1021 from dtolnay/inner
    • c90d4e3 Delete unused private::attrs
    • bc09668 No need for helper in trailer_expr attribute handling
    • 1e3ce84 Parse inner attrs by pushing to existing vec
    • bc3108e Extract function for parsing and appending inner attrs
    • 5dc4a72 Merge pull request #1020 from dtolnay/rangefull
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 2
  • Bump funty from 1.1.0 to 1.2.0

    Bump funty from 1.1.0 to 1.2.0

    Bumps funty from 1.1.0 to 1.2.0.

    Changelog

    Sourced from funty's changelog.

    Changelog

    All notable changes will be documented in this file.

    This document is written according to the Keep a Changelog style.

    1.2

    Add BITS in preparation for rust-lang/rust#76904.

    1.1

    Add leading_ones and trailing_ones, as these methods were introduced in Rust 1.46.

    1.0

    Library creation.

    Added

    The IsNumber, IsInteger, IsFloat, IsSigned, and IsUnsigned traits generalize over the primitive integer types, forwarding all of their stable constants, methods, and trait implementations.

    The width relation traits allow users to constrain the widths of numbers they require.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 2
  • Bump serde from 1.0.132 to 1.0.152

    Bump serde from 1.0.132 to 1.0.152

    Bumps serde from 1.0.132 to 1.0.152.

    Release notes

    Sourced from serde's releases.

    v1.0.152

    • Documentation improvements

    v1.0.151

    • Update serde::{ser,de}::StdError to re-export core::error::Error when serde is built with feature="std" off and feature="unstable" on (#2344)

    v1.0.150

    • Relax some trait bounds from the Serialize impl of HashMap and BTreeMap (#2334)
    • Enable Serialize and Deserialize impls of std::sync::atomic types on more platforms (#2337, thanks @​badboy)

    v1.0.149

    • Relax some trait bounds from the Serialize impl of BinaryHeap, BTreeSet, and HashSet (#2333, thanks @​jonasbb)

    v1.0.148

    • Support remote derive for generic types that have private fields (#2327)

    v1.0.147

    • Add serde::de::value::EnumAccessDeserializer which transforms an EnumAccess into a Deserializer (#2305)

    v1.0.146

    • Allow internally tagged newtype variant to contain unit (#2303, thanks @​tage64)

    v1.0.145

    • Allow RefCell<T>, Mutex<T>, and RwLock<T> to be serialized regardless of whether T is Sized (#2282, thanks @​ChayimFriedman2)

    v1.0.144

    • Change atomic ordering used by Serialize impl of atomic types to match ordering used by Debug impl of those same types (#2263, thanks @​taiki-e)

    v1.0.143

    • Invert build.rs cfgs in serde_test to produce the most modern configuration in the default case (#2253, thanks @​taiki-e)

    v1.0.142

    • Add keywords to crates.io metadata

    v1.0.141

    • Add no-std category to crates.io metadata

    v1.0.140

    • Invert serde_derive cfgs to convenience non-Cargo builds on a modern toolchain (#2251, thanks @​taiki-e)

    v1.0.139

    • Add new constructor function for all IntoDeserializer impls (#2246)

    v1.0.138

    • Documentation improvements

    v1.0.137

    • Update documentation links to some data formats whose repos have moved (#2201, thanks @​atouchet)
    • Fix declared rust-version of serde and serde_test (#2168)

    ... (truncated)

    Commits
    • ccf9c6f Release 1.0.152
    • b25d0ea Link to Hjson data format
    • 4f4557f Link to bencode data format
    • bf400d6 Link to serde_tokenstream data format
    • 4d2e36d Wrap flexbuffers bullet point to 80 columns
    • df6310e Merge pull request #2347 from dtolnay/docsrs
    • 938ab5d Replace docs.serde.rs links with intra-rustdoc links
    • ef5a0de Point documentation links to docs.rs instead of docs.serde.rs
    • 5d186c7 Opt out -Zrustdoc-scrape-examples on docs.rs
    • 44bf363 Release 1.0.151
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump serde_derive from 1.0.132 to 1.0.152

    Bump serde_derive from 1.0.132 to 1.0.152

    Bumps serde_derive from 1.0.132 to 1.0.152.

    Release notes

    Sourced from serde_derive's releases.

    v1.0.152

    • Documentation improvements

    v1.0.151

    • Update serde::{ser,de}::StdError to re-export core::error::Error when serde is built with feature="std" off and feature="unstable" on (#2344)

    v1.0.150

    • Relax some trait bounds from the Serialize impl of HashMap and BTreeMap (#2334)
    • Enable Serialize and Deserialize impls of std::sync::atomic types on more platforms (#2337, thanks @​badboy)

    v1.0.149

    • Relax some trait bounds from the Serialize impl of BinaryHeap, BTreeSet, and HashSet (#2333, thanks @​jonasbb)

    v1.0.148

    • Support remote derive for generic types that have private fields (#2327)

    v1.0.147

    • Add serde::de::value::EnumAccessDeserializer which transforms an EnumAccess into a Deserializer (#2305)

    v1.0.146

    • Allow internally tagged newtype variant to contain unit (#2303, thanks @​tage64)

    v1.0.145

    • Allow RefCell<T>, Mutex<T>, and RwLock<T> to be serialized regardless of whether T is Sized (#2282, thanks @​ChayimFriedman2)

    v1.0.144

    • Change atomic ordering used by Serialize impl of atomic types to match ordering used by Debug impl of those same types (#2263, thanks @​taiki-e)

    v1.0.143

    • Invert build.rs cfgs in serde_test to produce the most modern configuration in the default case (#2253, thanks @​taiki-e)

    v1.0.142

    • Add keywords to crates.io metadata

    v1.0.141

    • Add no-std category to crates.io metadata

    v1.0.140

    • Invert serde_derive cfgs to convenience non-Cargo builds on a modern toolchain (#2251, thanks @​taiki-e)

    v1.0.139

    • Add new constructor function for all IntoDeserializer impls (#2246)

    v1.0.138

    • Documentation improvements

    v1.0.137

    • Update documentation links to some data formats whose repos have moved (#2201, thanks @​atouchet)
    • Fix declared rust-version of serde and serde_test (#2168)

    ... (truncated)

    Commits
    • ccf9c6f Release 1.0.152
    • b25d0ea Link to Hjson data format
    • 4f4557f Link to bencode data format
    • bf400d6 Link to serde_tokenstream data format
    • 4d2e36d Wrap flexbuffers bullet point to 80 columns
    • df6310e Merge pull request #2347 from dtolnay/docsrs
    • 938ab5d Replace docs.serde.rs links with intra-rustdoc links
    • ef5a0de Point documentation links to docs.rs instead of docs.serde.rs
    • 5d186c7 Opt out -Zrustdoc-scrape-examples on docs.rs
    • 44bf363 Release 1.0.151
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump num_cpus from 1.13.0 to 1.15.0

    Bump num_cpus from 1.13.0 to 1.15.0

    Bumps num_cpus from 1.13.0 to 1.15.0.

    Release notes

    Sourced from num_cpus's releases.

    v1.15.0

    Fixes

    • update hermit-abi

    New Contributors

    v1.14.0

    Features

    New Contributors

    v1.13.1

    Fixes

    • fix parsing zero or multiple optional fields in cgroup mountinfo.
    Changelog

    Sourced from num_cpus's changelog.

    v1.15.0

    Fixes

    • update hermit-abi

    v1.14.0

    Features

    • add support for cgroups v2
    • Skip reading files in Miri

    v1.13.1

    Fixes

    • fix parsing zero or multiple optional fields in cgroup mountinfo.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump proc-macro2 from 1.0.34 to 1.0.49

    Bump proc-macro2 from 1.0.34 to 1.0.49

    Bumps proc-macro2 from 1.0.34 to 1.0.49.

    Release notes

    Sourced from proc-macro2's releases.

    1.0.48

    • Documentation improvements

    1.0.47

    • Fix integer overflow when nesting depth of nested comments exceeds 4 billion (#357)

    1.0.46

    • Make proc_macro2::TokenStream's FromStr impl consistent with proc_macro::TokenStream's on strings that begin with a byte order mark \u{feff} (#353)

    1.0.45

    • Fix panic on parsing disallowed raw identifiers such as r#self (#351)

    1.0.44

    • Expose span.before() and span.after() to access an empty Span located immediately before or after the input span (#348, upstream tracking issue: rust-lang/rust#87552)

    1.0.43

    • Add keywords to crates.io metadata

    1.0.42

    • Improve parsing performance in non-macro mode (#335)
    • Expose a size_hint() for TokenStream's iterator (#334)

    1.0.41

    • Produce an accurate .size_hint() from TokenStream's iterator (#334)

    1.0.40

    1.0.39

    1.0.38

    • Reduce allocations done by Literal::byte_string constructor (#328)

    1.0.37

    • Rely on unicode-xid to optimize ASCII properly (#325)

    1.0.36

    • Improve performance of creating literal tokens through quote! macro

    1.0.35

    • Try to diagnose "cannot find type SourceFile" errors better (#311)
    Commits
    • 293705d Release 1.0.49
    • 6b9ee3d Opt out -Zrustdoc-scrape-examples on docs.rs
    • a83ad60 Release 1.0.48
    • b4fa77f Update build status badge
    • 975c324 Time out workflows after 45 minutes
    • f633e31 MIT copyright line
    • 47c91c8 Release 1.0.47
    • c694208 Make i's inferred type explicit to be consistent with depth
    • 46e9bd6 Merge pull request #358 from dtolnay/depth
    • 5635f1b Fix integer overflow in nested comment parser
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump serde_json from 1.0.73 to 1.0.91

    Bump serde_json from 1.0.73 to 1.0.91

    Bumps serde_json from 1.0.73 to 1.0.91.

    Release notes

    Sourced from serde_json's releases.

    v1.0.90

    • Documentation improvements

    v1.0.89

    • Fix invalid JSON incorrectly accepted when a large number has no digits after decimal point (#953)

    v1.0.88

    • Optimize serde_json::Map's implementation of append and clone_from (#952, thanks @​Lucretiel)

    v1.0.87

    • Add write_i128 and write_u128 methods to serde_json::Formatter to control the formatting of 128-bit integers (#940, thanks @​Lucretiel)

    v1.0.86

    • Support arbitrary_precision feature even in no-std mode (#928, thanks @​kvinwang)

    v1.0.85

    • Make Display for Number produce the same representation as serializing (#919)

    v1.0.84

    • Make Debug impl of serde_json::Value more compact (#918)

    v1.0.83

    • Add categories to crates.io metadata

    v1.0.82

    • Implement From<Option<T>> for serde_json::Value where T: Into<Value> (#900, thanks @​kvnvelasco)

    v1.0.81

    • Work around indexmap/autocfg not always properly detecting whether a std sysroot crate is available (#885, thanks @​cuviper)

    v1.0.80

    • Documentation improvements

    v1.0.79

    • Allow RawValue deserialization to propagate \u escapes for unmatched surrogates, which can later by deserialized to Vec<u8> (#830, thanks @​lucacasonato)

    v1.0.78

    • Support deserializing as &RawValue in map key position, which would previously fail with "invalid type: newtype struct" (#851)

    v1.0.77

    • Include discord invite links in the published readme
    • Improve compile error on compiling with neither std nor alloc feature enabled
    • Include integration tests in published package (#578)

    v1.0.76

    • Fix a build error when features raw_value and alloc are enabled while std is disabled (#850)

    v1.0.75

    • Fix deserialization of small integers in arbitrary_precision mode (#845)

    ... (truncated)

    Commits
    • 26f147f Release 1.0.91
    • d9cdb98 Opt out -Zrustdoc-scrape-examples on docs.rs
    • 331511d Release 1.0.90
    • 8753829 Replace ancient CI service provider in readme
    • 0a43394 Update build status badge
    • 8794844 Prevent build.rs rerunning unnecessarily on all source changes
    • 0b54871 Time out workflows after 45 minutes
    • ecad462 Fix renamed let_underscore_drop lint
    • 9295c96 Resolve needless_borrowed_reference clippy lints
    • d2f9368 Release 1.0.89
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump crossbeam-epoch from 0.9.5 to 0.9.13

    Bump crossbeam-epoch from 0.9.5 to 0.9.13

    Bumps crossbeam-epoch from 0.9.5 to 0.9.13.

    Release notes

    Sourced from crossbeam-epoch's releases.

    crossbeam-epoch 0.9.13

    • Fix build script bug introduced in 0.9.12. (#932)

    crossbeam-epoch 0.9.12

    • Update memoffset to 0.7. (#926)
    • Improve support for custom targets. (#922)

    crossbeam-epoch 0.9.11

    • Remove the dependency on the once_cell crate to restore the MSRV. (#913)
    • Work around rust-lang#98302, which causes compile error on windows-gnu when LTO is enabled. (#913)

    crossbeam-epoch 0.9.10

    • Bump the minimum supported Rust version to 1.38. (#877)
    • Mitigate the risk of segmentation faults in buggy downstream implementations. (#879)
    • Add {Atomic, Shared}::try_into_owned (#701)

    crossbeam-epoch 0.9.9

    • Replace lazy_static with once_cell. (#817)

    crossbeam-epoch 0.9.8

    • Make Atomic::null() const function at 1.61+. (#797)

    crossbeam-epoch 0.9.7

    • Fix Miri error when -Zmiri-check-number-validity is enabled. (#779)

    crossbeam-epoch 0.9.6

    • Add Atomic::fetch_update. (#706)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Releases(1.8.1)
  • 1.8.1(Jan 13, 2019)

  • 1.6.3(Mar 9, 2018)

  • 1.6.2(Dec 30, 2017)

  • 1.6.1(Jul 2, 2017)

  • 1.6.0(Jul 1, 2017)

  • 1.5.0(Jul 1, 2017)

  • 1.4.2(Mar 18, 2017)

  • 1.4.1(Mar 5, 2017)

  • 1.4.0(Feb 13, 2017)

  • 1.3.2(Jan 26, 2017)

  • 1.3.1(Dec 28, 2016)

  • 1.3.0(Dec 22, 2016)

  • 1.2.0(Nov 16, 2016)

    • [Changed] Cargo lockfile to newest version
    • [Improved] main error handling
    • [Improved] function name handling
    • [Changed] travis to don't do benchmarks any more
    • [Changed] Error handling to Box approach
    • [Fixed] parsing bug with empty commit message parts
    • [Improved] main error handling
    • [Fixed] patterns in functions without bodies
    • [Changed] try! to ?
    • [Changed] gitjournal completion for zsh to match naming convention
    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(Nov 5, 2016)

  • 1.0.1(Oct 25, 2016)

  • 1.0.0(Oct 18, 2016)

  • 0.8.0(Oct 10, 2016)

    • [Changed] Cargo.lock to newest version
    • [Added] "category_delimiters" configuration option which is per default ["[", "]"]
    • [Changed] summary parsing to remove dot at the end
    Source code(tar.gz)
    Source code(zip)
  • 0.7.0(Oct 8, 2016)

    • [Added] wrapper chmod function for windows builds
    • [Added] appveyor yml file
    • [Added] osx to travis CI
    • [Improved] README format
    • [Improved] TL;DR to be a bit more concrete
    • [Fixed] bug for printing footers when section wasn't print at all
    • [Fixed] submodule usage on windows
    • [Fixed] failing unit test
    • [Changed] order of badges in readme
    Source code(tar.gz)
    Source code(zip)
  • 0.6.0(Oct 7, 2016)

    • [Added] commit message tag verification feature
    • [Added] commit hash link support show_commit_hash
    • [Added] template generation support -g
    • [Improved] example image
    • [Improved] overall test coverage
    • [Changed] warning when no tags were found
    • [Changed] default template ouput in RFC0002
    Source code(tar.gz)
    Source code(zip)
  • 0.5.0(Oct 6, 2016)

    • [Improved] internal source code quality by refactoring
    • [Changed] test template for new RFC0002 syntax
    • [Added] custom header/footer output to templating engine
    • [Added] sorting methods "name" and "date" for the output
    • [Added] multi threading support for the commit parsing
    • [Removed] unnecessary clones where they are not needed
    • [Added] gitter.im badge to Readme
    • [Improved] summary line parsing by allowing summary tags at the second line
    Source code(tar.gz)
    Source code(zip)
  • 0.4.0(Sep 23, 2016)

    • [Improved] documentation of default values
    • [Changed] behavoir when using old config file
    • [Changed] version to 0.4.0
    • [Fixed] unit tests for new parser internals
    • [Added] possibility to use custom categories
      • [Changed] internal parser structure to use nom methods
    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Sep 21, 2016)

    • [Changed] templating to work with arrays of tables
      • [Fixed] ordering within templates
    • [Changed] version to 0.3.0
    • [Added] example image to README.md file
    • [Added] example image for the output
    • [Improved] RFC0002 description about footers
    • [Changed] bash/fish completions path to the repository path during setup
    Source code(tar.gz)
    Source code(zip)
  • 0.2.0(Sep 20, 2016)

    • Added footer accumulation including templating support
      • Added configuration option enable_footers
      • Improved documentation about it
      • Improved unit tests to increase test coverage
    • Improved internal code structure by reorganizing traits
    • Changed travis to run code coverage only on nightly builds
    Source code(tar.gz)
    Source code(zip)
  • 0.1.0(Sep 18, 2016)

    This is the initial release of git-journal and their library gitjournal

    The following features are supported by now:

    • General
      • [x] Generation of completions for bash and fish shell during setup.
    • Journal generation and output
      • [x] Automatic up-level repository search if a sub path of a git repository was specified.
      • [x] Custom commit ranges or different git commit starting points for parsing.
      • [x] Run in a different specified path than the current working directory (-p).
      • [x] Parse and print the complete history (-a) or the past n releases (-n).
      • [x] Print a short version of the commit history based on the commit message summary (-s).
      • [x] Output the parsed log in valid Markdown to the command line or a file (-o).
      • [x] Custom git tag exclude pattern, e.g. rc tags (-e).
      • [x] Enable/Disable debug message output.
      • [x] Enable/Disable colored output via the command line.
      • [x] Automatic wrapping of commit message categories in square brackets.
      • [x] Templating support including tag and name mapping.
    • Preparation and Verification of commit messages
      • [x] Automatic installation of git hooks inside the local repository.
      • [x] Generation of default configuration file during setup.
      • [x] Commit message validation based on implemented parser.
      • [x] Message preparation with custom commit prefix (config) and differentiation between amended and new commits
    Source code(tar.gz)
    Source code(zip)
Owner
Sascha Grunert
The difference between fine and great software is listening to people.
Sascha Grunert
gstats — command line tool to print a developer handy summary of all git repositories below current directory

gstats Simple Rust tool to get quick summary info on git repos showing latest tag, branch, state. I implemented this to help me work with a the not to

Boon at Shift 12 Jun 10, 2021
A parallel universal-ctags wrapper for git repository

ptags A parallel universal-ctags wrapper for git repository Description ptags is a universal-ctags wrapper to have the following features. Search git

null 107 Dec 30, 2022
Git mirroring daemon

lohr lohr is a Git mirroring tool. I created it to solve a simple problem I had: I host my own git server at https://git.alarsyo.net, but want to mirr

Antoine Martin 29 Dec 3, 2022
Detects usage of unsafe Rust in a Rust crate and its dependencies.

cargo-geiger ☢️ A program that lists statistics related to the usage of unsafe Rust code in a Rust crate and all its dependencies. This cargo plugin w

Rust Secure Code Working Group 1.1k Dec 26, 2022
⚙️ Workshop Publishing Utility for Garry's Mod, written in Rust & Svelte and powered by Tauri

⚙️ gmpublisher Currently in Beta development. A powerful and feature-packed Workshop publisher for Garry's Mod is finally here! Click for downloads Ar

William 484 Jan 7, 2023
A fun and simple language with NO classes whatsoever!

This language aims to be simple, minimal, and compact. There will not be any classes whatsoever, and importing other files should be painless.

Europa Lang 22 Aug 23, 2022
Create evolving artistic images with hot-code-reloaded Lisp and GLSL.

Shadergarden is a tool for building hot-code-reloadable shader pipelines. For a tutorial for how to get started, consult the introductory

Tonari, Inc 101 Dec 29, 2022
A neofetch alike program that shows hardware and distro information written in rust.

nyafetch A neofetch alike program that shows hardware and distro information written in rust. installing install $ make install # by default, install

null 16 Dec 15, 2022
Super lightweight and dead-simple CI detection.

This crate tells you if you're in a CI environment or not. It does not tell you which you're in, but it makes a good effort to make sure to accurately

Kat Marchán 9 Sep 27, 2022
git-cliff can generate changelog files from the Git history by utilizing conventional commits as well as regex-powered custom parsers.⛰️

git-cliff can generate changelog files from the Git history by utilizing conventional commits as well as regex-powered custom parsers. The changelog template can be customized with a configuration file to match the desired format.

Orhun Parmaksız 5k Jan 9, 2023
A git prepare-commit-msg hook for authoring commit messages with GPT-3.

gptcommit A git prepare-commit-msg hook for authoring commit messages with GPT-3. With this tool, you can easily generate clear, comprehensive and des

Roger Zurawicki 3 Jan 19, 2023
A (flash) message framework for actix-web. A port to Rust of Django's message framework.

actix-web-flash-messages Flash messages for actix-web Web applications sometimes need to show a one-time notification to the user - e.g. an error mess

Luca Palmieri 31 Dec 29, 2022
A highly customizable Changelog Generator that follows Conventional Commit specifications ⛰️

git-cliff can generate changelog files from the Git history by utilizing conventional commits as well as regex-powered custom parsers. The changelog template can be customized with a configuration file to match the desired format.

Orhun Parmaksız 5k Dec 30, 2022
Universal changelog generator using conventional commit+ with monorepo support. Written in Rust.

chlog Universal changelog generator using conventional commit+ with monorepo support. chlog can generate the changelog from the conventional commits w

Jeff Yang 3 Nov 27, 2022
Release complex cargo-workspaces automatically with changelog generation, used by `gitoxide`

cargo smart-release Fearlessly release workspace crates and with beautiful semi-handcrafted changelogs. Key Features zero-configuration cargo smart-re

Sebastian Thiel 24 Oct 11, 2023
Generate commit messages using GPT3 based on your changes and commit history.

Commit Generate commit messages using GPT-3 based on your changes and commit history. Install You need Rust and Cargo installed on your machine. See t

Brian Le 40 Jan 3, 2023
Automatically commit all edits to a wip branch with GPT-3 commit messages

gwipt Automatic work-in-progress commits with descriptive commit messages generated by GPT-3 Codex Never again worry about the tension between "commit

Ben Weinstein-Raun 113 Jan 25, 2023
The non-opinionated Rust-based commit message linter.

Documentation | Website git-sumi The non-opinionated Rust-based commit message linter Transform your commit practices with flexible linting for consis

Óscar 6 Mar 1, 2024
Generate beautiful changelogs from your Git commit history

clog-cli A conventional changelog for the rest of us About clog creates a changelog automatically from your local git metadata. See the clogs changelo

Clog 776 Dec 30, 2022
turbocommit is a Rust-based CLI tool that generates high-quality git commit messages in accordance with the Conventional Commits specification, using OpenAI's

turbocommit is a Rust-based CLI tool that generates high-quality git commit messages in accordance with the Conventional Commits specification, using OpenAI's `gpt-3.5-turbo` language model. It is easy to use and a cost-effective way to keep git commit history at a higher quality, helping developers stay on track with their work.

Sett 16 Mar 26, 2023