Contributors:
Special thanks to all contributors for this release - details inline!
General
- Python 3.11 support
- Last release to support Python 3.6 ([EOL since 2021-12-23](https://endoflife.date/python))
- **Behavior Change**: In a future release, gitlint will be switching to use `re.search` instead of `re.match` semantics for all rules. Your rule regexes might need updating as a result, gitlint will print a warning if so. [More details are in the docs](https://jorisroovers.github.io/gitlint/configuration/#regex-style-search). ([254](https://github.com/jorisroovers/gitlint/issues/254))
- gitlint no longer uses the [sh](https://amoffat.github.io/sh/) library by default in an attempt to reduce external dependencies. In case of issues, the use of `sh` can be re-enabled by setting the env var `GITLINT_USE_SH_LIB=1`. This fallback will be removed entirely in a future gitlint release. ([#351](https://github.com/jorisroovers/gitlint/issues/351))
Features
- `--commits` now also accepts a comma-separated list of commit hashes, making it possible to lint a list of non-contiguous commits without invoking gitlint multiple times ([283](https://github.com/jorisroovers/gitlint/issues/283))
- Improved handling of branches that have no commits ([188](https://github.com/jorisroovers/gitlint/issues/189)) - thanks [domsekotill](https://github.com/domsekotill)
- Support for `GITLINT_CONFIG` env variable ([189](https://github.com/jorisroovers/gitlint/issues/188)) - thanks [Notgnoshi](https://github.com/Notgnoshi)
- Added [a new `gitlint-ci` pre-commit hook](https://jorisroovers.github.io/gitlint/#gitlint-and-pre-commit-in-ci), making it easier to run gitlint through pre-commit in CI ([191](https://github.com/jorisroovers/gitlint/issues/191)) - thanks [guillaumelambert](https://github.com/guillaumelambert)
Contrib Rules
- New [contrib-disallow-cleanup-commits](https://jorisroovers.github.io/gitlint/contrib_rules/#cc2-contrib-disallow-cleanup-commits) rule ([312](https://github.com/jorisroovers/gitlint/issues/312)) - thanks [matthiasbeyer](https://github.com/matthiasbeyer)
- New [contrib-allowed-authors](https://jorisroovers.github.io/gitlint/contrib_rules/#cc3-contrib-allowed-authors) rule ([358](https://github.com/jorisroovers/gitlint/issues/358)) - thanks [stauchert](https://github.com/stauchert)
User Defined rules
- Gitlint now recognizes `fixup=amend` commits (see related [git documentation](https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---fixupamendrewordltcommitgt)), available as `commit.is_fixup_amend_commit=True`
- Gitlint now parses diff **stat** information, available in `commit.changed_files_stats` ([314](https://github.com/jorisroovers/gitlint/issues/314))
Bugfixes
- Use correct encoding when using `--msg-filename` parameter ([310](https://github.com/jorisroovers/gitlint/issues/310))
- Various documentation fixes ([244](https://github.com/jorisroovers/gitlint/issues/244)) ([#263](https://github.com/jorisroovers/gitlint/issues/263)) ([#266](https://github.com/jorisroovers/gitlint/issues/266)) ([#294](https://github.com/jorisroovers/gitlint/issues/294)) ([#295](https://github.com/jorisroovers/gitlint/issues/295)) ([#347](https://github.com/jorisroovers/gitlint/issues/347)) ([#364](https://github.com/jorisroovers/gitlint/issues/364)) - thanks [scop](https://github.com/scop), [OrBin](https://github.com/OrBin), [jtaylor100](https://github.com/jtaylor100), [stauchert](https://github.com/stauchert)
Development
- Dependencies updated
- Moved to [black](https://github.com/psf/black) for formatting
- Fixed nasty CI issue ([298](https://github.com/jorisroovers/gitlint/issues/298))
- Unit tests fix ([256](https://github.com/jorisroovers/gitlint/issues/256)) - thanks [carlsmedstad](https://github.com/carlsmedstad)
- Vagrant box removed in favor of github dev containers ([348](https://github.com/jorisroovers/gitlint/issues/348))
- Removed a few lingering references to the `master` branch in favor of `main`
- Moved [roadmap and project planning](https://github.com/users/jorisroovers/projects/1) to github projects
- Thanks to [sigmavirus24](https://github.com/sigmavirus24) for continued overall help and support