Releases: jorisroovers/gitlint
0.13.1
0.13.0
- Behavior Change: Revert Commits are now recognized and ignored by default (#99)
--staged
flag: gitlint can now detect meta-data (such as author details, changed files, etc) of staged/pre-commits. Useful when you use gitlint's commit-msg hook or precommit (#105)- New branch properties on
GitCommit
andGitContext
, useful when writing your own user-defined rules:commit.branches
andcommit.context.current_branch
(#108) - Python 3.8 support
- Python 3.4 no longer supported. Python 3.4 has reached EOL and an increasing
of gitlint's dependencies have dropped support which makes it hard to maintain. - Improved Windows support: better unicode handling. Issues remain but the basic functionality works.
- Bugfixes:
- Gitlint no longer crashes when acting on empty repositories (this only occurred in specific circumstances).
- Changed files are now better detected in repos that only have a root commit
- Improved performance and memory (gitlint now caches git properties)
- Improved
--debug
output - Improved documentation
- Under-the-hood: dependencies updated, unit and integration test improvements, migrated from TravisCI to Github Actions.
0.12.0
Contributors:
Special thanks to all contributors for this release, in particular @rogalksi and @byrney.
- Contrib Rules: community-contributed rules that are disabled by default, but can be enabled through configuration. Contrib rules are meant to augment default gitlint behavior by providing users with rules for common use-cases without forcing these rules on all gitlint users.
- New Contrib Rule:
contrib-title-conventional-commits
enforces the Conventional Commits spec. Details in our documentation. - New Contrib Rule:
cc1-contrib-requires-signed-off-by
ensures that all commit messages contain aSign-Off-By
line. Details in our documentation. - If you're interested in adding new Contrib rules to gitlint, please start by reading the
Contributing page. Thanks for considering!
- New Contrib Rule:
- Experimental (!) Windows support: Basic functionality is working, but there are still caveats. For more details, please refer to #20 and the open issues related to Windows.
- Python 3.3 no longer supported. Python 3.4 is likely to follow in a future release as it has reached EOL as well.
- PyPy 3.5 supported
- Support for
--ignore-stdin
command-line flag to ignore any text send via stdin. (#56, #89) - Bugfixes:
- Under-the-hood: dependencies updated, experimental Dockerfile, github issue template.
0.11.0
- Python 3.7 support
- Python 2.6 no longer supported
- Various dependency updates and under the hood fixes (see #76 for details)
Special thanks to @pbregener for his contributions related to python 3.7 support and test fixes.
0.10.0
The 0.10.0 release adds the ability to ignore commits based on their contents, support for pre-commit, and important fix for running gitlint in CI environments (such as Jenkins, Gitlab, etc).
Special thanks to @asottile, @bdrung, @pbregener, @torwald-sergesson, @RykHawthorn, @SteffenKockel and @tommyip for their contributions.
Since it's becoming increasingly hard to support Python 2.6 and 3.3, we'd like to encourage our users to upgrade their python version to 2.7 or 3.3+. Future versions of gitlint are likely to drop support for Python 2.6 and 3.3.
Full Changelog:
- New Rule:
ignore-by-title
allows users to ignore certain commits by matching a regex against a commit message title. (#54, #57). - New Rule:
ignore-by-body
allows users to ignore certain commits by matching a regex against a line in a commit message body. - Gitlint now supports pre-commit.com. Details in our documentation (#62).
- Gitlint now has a
--msg-filename
commandline flag that allows you to specify the commit message to lint via a file (#39). - Gitlint will now be silent by default when a specified commit range is empty (#46).
- Gitlint can now be installed on MacOS by brew via the homebrew-devops tap. To get the latest version of gitlint, always use pip for installation.
- If all goes well, gitlint will also be available as a package in the Ubuntu 18.04 repositories.
- Bugfixes:
0.9.0
The 0.9.0 release adds a new default author-valid-email
rule, important bugfixes and special case handling.
Special thanks to joshholl, ron8mcr, omarkohl, domo141, nud and AlexMooney for their contributions.
- New Rule:
author-valid-email
enforces a valid author email address. Details can be found in the
Rules section of the documentation. - Breaking change: The
--commits
commandline flag now strictly follows the refspec format as interpreted by thegit rev-list <refspec>
command. This means that linting a single commit usinggitlint --commits <SHA>
won't work anymore. Instead, for single commits, users now need to specificygitlint --commits <SHA>^...<SHA>
. On the upside, this change also means that gitlint will now understand all refspec formatters, includinggitlint --commits HEAD
to lint all commits in the repository. This fixes #23. - Breaking change: Gitlint now always falls back on trying to read a git message from a local git repository, only reading a commit message from STDIN if one is passed. Before, gitlint only read from the local git repository when a TTY was present. This is likely the expected and desired behavior for anyone running gitlint in a CI environment. This fixes #40 and #42.
- Behavior Change: Gitlint will now by default ignore squash and fixup commits (fix for #33: fixup messages should not trigger a gitlint violation)
- Support for custom comment characters (#34)
- Support for
git commit --cleanup=scissors
(#34) - Bugfix: #37: Prevent Commas in text fields from breaking git log printing
- Debug output improvements
0.8.2
The 0.8.2 release brings minor improvements, bugfixes and some under-the-hood changes. Special thanks to tommyip for his contributions.
--extra-path
now also accepts a file path (in the past only directory paths were accepted).
Thanks to tommyip for implementing this!- gitlint will now show more information when using the
--debug
flag. This is initial work and will continue to be improved upon in later releases. - Bugfixes:
- Development: better unit and integration test coverage for
--commits
0.8.1
The 0.8.1 release brings minor tweaks and some experimental features. Special thanks to
tommyip for his contributions.
- Experimental: Linting a range of commits. Documentation. Known Caveats: #23,#24. Closes #14. Thanks to tommyip for implementing this!
- Experimental: Python 3.6 support
- Improved Windows error messaging: gitlint will now show a more descriptive error message when ran on windows. See #20 for details on the lack of Windows support.
0.8.0
The 0.8.0 release is a significant release that has been in the works for a long time. Special thanks to Claymore, gernd and ZhangYaxu for submitting bug reports and pull requests.
- Full unicode support: you can now lint messages in any language! This fixes
#16 and #18. - User-defined rules: you can now define your own custom rules if you want to extend gitlint's functionality.
- Pypy2 support!
- Debug output improvements: Gitlint will now print your active configuration when using
--debug
- The
general.target
option can now also be set via-c
flags or a.gitlint
file - Bugfixes:
- Various important fixes related to configuration precedence
- #17: Body MinLength is not working properly.
Behavior Change: Gitlint now always applies this rule, even if the body has just a single line of content. Also, gitlint now counts the body-length for the entire body, not just the length of the first line.
- Various documentation improvements
- Development:
- Pylint compliance for all supported python versions
- Updated dependencies to latest versions
- Various
run_tests.sh
improvements for developer convenience
0.7.1
Bugfixes:
- Behavior change: gitlint no longer prints the file path by default when using a
.gitlint
file. The path will still be printed when using the new--debug
flag. Special thanks to Slipcon for submitting this. - Gitlint now prints a correct violation message for the
title-match-regex
rule. Special thanks to
Slipcon for submitting this. - Gitlint is now better at parsing commit messages cross-platform by taking platform specific line endings into account
- Minor documentation improvements