Skip to content

0.14.0

Compare
Choose a tag to compare
@jorisroovers jorisroovers released this 24 Oct 09:36
· 297 commits to main since this release

Contributors:
Special thanks to all contributors for this release, in particular @mrshu, @glasserc, @strk, @chgl, @melg8 and @sigmavirus24.

  • IMPORTANT: Gitlint 0.14.x will be the last gitlint release to support Python 2.7 and Python 3.5, as both are EOL which makes it difficult to keep supporting them.
  • Python 3.9 support
  • New Rule: title-min-length enforces a minimum length on titles (default: 5 chars) (#138)
  • New Rule: body-match-regex allows users to enforce that the commit-msg body matches a given regex (#130)
  • New Rule: ignore-body-lines allows users to
    ignore parts of a commit by matching a regex against
    the lines in a commit message body (#126)
  • Named Rules allow users to have multiple instances of the same rule active at the same time. This is useful when you want to enforce the same rule multiple times but with different options (#113, #66)
  • User-defined Configuration Rules allow users to dynamically change gitlint's configuration and/or the commit before any other rules are applied.
  • The commit-msg hook has been re-written in Python (it contained a lot of Bash before), fixing a number of platform specific issues. Existing users will need to reinstall their hooks (gitlint uninstall-hook; gitlint install-hook) to make use of this.
  • Most general options can now be set through environment variables (e.g. set the general.ignore option via GITLINT_IGNORE=T1,T2). The list of available environment variables can be found in the configuration documentation.
  • Users can now use self.log.debug("my message") for debugging purposes in their user-defined rules. Debug messages will show up when running gitlint --debug.
  • Breaking: User-defined rule id's can no longer start with 'I', as those are reserved for built-in gitlint ignore rules.
  • New RegexOption rule option type for use in user-defined rules. By using the RegexOption, regular expressions are pre-validated at gitlint startup and compiled only once which is much more efficient when linting multiple commits.
  • Bugfixes:
    • Improved UTF-8 fallback on Windows (ongoing - #96)
    • Windows users can now use the 'edit' function of the commit-msg hook (#94)
    • Doc update: Users should use --ulimit nofile=1024 when invoking gitlint using Docker (#129)
    • The commit-msg hook was broken in Ubuntu's gitlint package due to a python/python3 mismatch (#127)
    • Better error message when no git username is set (#149)
    • Options can now actually be set to None (from code) to make them optional.
    • Ignore rules no longer have "None" as default regex, but an empty regex - effectively disabling them by default (as intended).
  • Contrib Rules:
    • Added 'ci' and 'build' to conventional commit types (#135)
  • Under-the-hood: minor performance improvements (removed some unnecessary regex matching), test improvements, improved debug logging, CI runs on pull requests, PR request template.