Skip to content
Back to top
View this page

# CHANGELOG

## v10.5.3 (2025-12-14)

### 🪲 Bug Fixes

- cmd-version: Resolve unauthenticated git repo issues for upstream verification, closes #1373 (PR#1388, e164f68)

- github-action: Fix failed signing issue when ssh was missing from action environment, closes #1376 (PR#1389, 18b7eda)

- parser-conventional-monorepo: Fix parser opts validator for outside dir path matches, closes #1380 (PR#1382, a51eadd)

## v10.5.2 (2025-11-10)

### 🪲 Bug Fixes

- cmd-version: Toggle verify upstream off when no version commit is made (PR#1370, e0b3b70)

## v10.5.1 (2025-11-10)

### 🪲 Bug Fixes

- cmd-version: Fix upstream change detection to succeed without branch tracking (PR#1369, 7086257)

## v10.5.0 (2025-11-09)

### ✨ Features

- cmd-version: Add automatic repository un-shallowing to version workflow (PR#1366, 90a1ffa)

- cmd-version: Add functionality to create & update partial version tags (PR#1115, a28f940)

- cmd-version: Adds c-macro style version definition support to `version_variables`, closes #1348 (PR#1349, 4ce1fca)

- cmd-version: Adds upstream check into workflow to prevent commit push collisions (PR#1360, d77193e)

### 🪲 Bug Fixes

- cmd-version: Prevent regular expression errors on `tag_format` (PR#1367, e7d7aa7)

### 📖 Documentation

- commands: Add description of automated upstream version checking upon version creation (PR#1360, d77193e)

- configuration: Add description for `add_partial_tags` setting & usage examples (PR#1115, a28f940)

- configuration: Fix `tag_format` definition (PR#1367, e7d7aa7)

- configuration: Update `version_variables` examples with a c-macro style replacement (PR#1349, 4ce1fca)

- github-actions: Adds release job outputs definition to example (PR#1344, 0fb4875)

- github-actions: Removed verify upstream status step from example workflow (PR#1360, d77193e)

- github-actions: Update example to remove need to specify repo checkout’s fetch depth (PR#1366, 90a1ffa)

- uv-integration: Remove verify upstream check from uv integration example (PR#1360, d77193e)

- uv-integration: Update example to remove need to specify repo checkout’s fetch depth (PR#1366, 90a1ffa)

### ⚙️ Build System

- deps: Bump `tomlkit` dependency from ~=0.11.0 to ~=0.13.0 (PR#1355, 55c94ec)

- deps: Change github-actions container image to `python:3.14-slim-trixie` (PR#1346, 1a23712)

### 💡 Additional Release Information

- cmd-version: If you were previously handling the unshallowing of a repository clone in your CI/CD pipelines, you may now remove that step from your workflow. PSR will now detect a shallow repository and unshallow it before evaluating the commit history.

## v10.4.1 (2025-09-13)

### 🪲 Bug Fixes

- cmd-version: Fix error where `--no-tag` is not respected, closes #1304 (PR#1329, b090fa2)

### 📖 Documentation

- CHANGELOG: Update hyperlink in v10.4.0’s additional info paragraph (PR#1323, 98ef722)

- getting-started-guide: Remove notice about lack of monorepo support, closes #1326 (PR#1327, 3f21f3f)

- github-actions: Fix recommended upstream detection script’s upstream name parsing (PR#1328, ccc91c0)

## v10.4.0 (2025-09-08)

### ✨ Features

- config: Add `conventional-monorepo` as valid `commit_parser` type (PR#1143, e18f866)

- parser: Add new conventional-commits standard parser for monorepos, closes #614 (PR#1143, e18f866)

### 📖 Documentation

- Add configuration guide for monorepo use with PSR (PR#1143, e18f866)

- commit-parsers: Introduce conventional commit monorepo parser options & features (PR#1143, e18f866)

- configuration: Update `commit_parser` option with new `conventional-monorepo` value (PR#1143, e18f866)

### 💡 Additional Release Information

- config: This release introduces a new built-in parser type that can be utilized for monorepo projects. The type value is `conventional-monorepo` and when specified it will apply the conventional commit parser to a monorepo environment. This parser has specialized options to help handle monorepo projects as well. For more information, please refer to the Monorepo Docs.

## v10.3.2 (2025-09-06)

### 🪲 Bug Fixes

- cmd-version: Prevent errors when PSR is executed in non-GitHub CI environments, closes #1315 (PR#1322, 4df4be4)

### ⚡ Performance Improvements

- cmd-version: Re-order operations for faster parsing in version determination (PR#1310, 63e435b)

### 📖 Documentation

- uv-integration: Add `--no-changelog` to build step to increase job speed (PR#1316, e1aece1)

### 💡 Additional Release Information

- cmd-version: Unfortunately, PSR introduced a bug in 10.3.0 when attempting to provide more CI outputs for GitHub Actions. It required our GitHub client interface to be loaded and even if it was not using GitHub CI to be run. This caused errors in Gitea and likely GitLab/Bitbucket environments. This change prevents that from happening but if any users pipelines were intentionally presenting the environment variable “GITHUB_OUTPUT” to enable action output to enable passing along internal outputs of PSR then their hack will no longer work after this change.

## v10.3.1 (2025-08-06)

### 🪲 Bug Fixes

- github-actions: Refactor the action output error checking for non-release executions, closes #1307 (PR#1308, 5385724)

### 📖 Documentation

- github-actions: Adjust docs for direct links to action example workflows, closes #1303 (PR#1309, 8efebe2)

## v10.3.0 (2025-08-04)

### ✨ Features

- github-actions: Add `commit_sha` as a GitHub Actions output value, closes #717 (PR#1289, 39b647b)

- github-actions: Add `previous_version` as a GitHub Actions output value (PR#1302, c0197b7)

- github-actions: Add `release_notes` as a GitHub Actions output value (PR#1300, a3fd23c)

- github-actions: Add release `link` as a GitHub Actions output value (PR#1301, 888aea1)

### 🪲 Bug Fixes

- github-actions: Fix variable output newlines (PR#1300, a3fd23c)

- util: Fixes no-op log output when commit message contains square-brackets, closes #1251 (PR#1287, f25883f)

### 📖 Documentation

- getting-started: Fixes `changelog.exclude_commit_patterns` example in startup guide, closes #1291 (PR#1292, 2ce2e94)

- github-actions: Add description of `commit_sha` GitHub Action output in docs (PR#1289, 39b647b)

- github-actions: Add description of `previous_release` GitHub Action output (PR#1302, c0197b7)

- github-actions: Add description of `release_notes` GitHub Action output (PR#1300, a3fd23c)

- github-actions: Add description of release `link` GitHub Action output (PR#1301, 888aea1)

- README: Update broken links to match re-located destinations (PR#1285, f4ec792)

## v10.2.0 (2025-06-29)

### ✨ Features

- cmd-version: Adds `PACKAGE_NAME` value into build command environment (db9bc13)

### 📖 Documentation

- configuration: Update build command environment definition to include `PACKAGE_NAME` variable (4aa3805)

- uv-integration: Fix configuration guide for `uv` usage to ensure lock file update (5390145)

## v10.1.0 (2025-06-12)

### ✨ Features

- cmd-version: Always stage version stamped files & changelog even with `--no-commit`, closes #1211 (PR#1214, de62334)

### 📖 Documentation

- cmd-version: Improve command description & include common uses (PR#1214, de62334)

- configuration-guide: Add how-to guide for `uv` integration (PR#1214, de62334)

- github-actions: Clarify with examples of the `root_options` v10 migration change (PR#1271, fbb63ec)

### ⚙️ Build System

- deps: Expand `python-gitlab` dependency to include `v6.0.0` (PR#1273, 99fc9cc)

## v10.0.2 (2025-05-26)

### 🪲 Bug Fixes

- github-actions: Add filesystem UID/GID fixer after action workspace modification (PR#1262, 93e23c8)

## v10.0.1 (2025-05-25)

### 🪲 Bug Fixes

- github-actions: Bump the github-actions dependency to `v10.0.0` (PR#1255, 2803676)

## v10.0.0 (2025-05-25)

### ✨ Features

- cmd-version: Enable `version_variables` version stamp of vars with double-equals (PR#1244, 080e4bc)

- parser-conventional: Set parser to evaluate all squashed commits by default (6fcdc99)

- parser-conventional: Set parser to ignore merge commits by default (59bf084)

- parser-emoji: Set parser to evaluate all squashed commits by default (514a922)

- parser-emoji: Set parser to ignore merge commits by default (8a51525)

- parser-scipy: Set parser to evaluate all squashed commits by default (634fffe)

- parser-scipy: Set parser to ignore merge commits by default (d4f128e)

### 🪲 Bug Fixes

- changelog-md: Change to 1-line descriptions in markdown template, closes #733 (e7ac155)

- changelog-rst: Change to 1-line descriptions in the default ReStructuredText template, closes #733 (731466f)

- cli: Adjust verbosity parameter to enable silly-level logging (bd3e7bf)

- github-action: Resolve command injection vulnerability in action script (fb3da27)

- parser-conventional: Remove breaking change footer messages from commit descriptions (b271cbb)

- parser-conventional: Remove issue footer messages from commit descriptions (b1bb0e5)

- parser-conventional: Remove PR/MR references from commit subject line (eed63fa)

- parser-conventional: Remove release notice footer messages from commit descriptions (7e8dc13)

- parser-emoji: Remove issue footer messages from commit descriptions (b757603)

- parser-emoji: Remove PR/MR references from commit subject line (16465f1)

- parser-emoji: Remove release notice footer messages from commit descriptions (b6307cb)

- parser-scipy: Remove issue footer messages from commit descriptions (3cfee76)

- parser-scipy: Remove PR/MR references from commit subject line (da4140f)

- parser-scipy: Remove release notice footer messages from commit descriptions (58308e3)

### 📖 Documentation

- Refactor documentation page navigation (4e52f4b)

- algorithm: Remove out-of-date algorithm description (6cd0fbe)

- commit-parsing: Define limitation of revert commits with the scipy parser (5310d0c)

- configuration: Change default value for `allow_zero_version` in the description (203d29d)

- configuration: Change the default for the base changelog’s `mask_initial_release` value (5fb02ab)

- configuration: Change the default value for `changelog.mode` in the setting description (0bed906)

- configuration: Update `version_variables` section to include double-equals operand support (PR#1244, 080e4bc)

- contributing: Refactor contributing & contributors layout (8bed5bc)

- github-actions: Add reference to manual release workflow example (6aad7f1)

- github-actions: Change recommended workflow to separate release from deploy (67b2ae0)

- github-actions: Update `python-semantic-release/publish-action` parameter notes (c4d45ec)

- github-actions: Update PSR action parameter documentation (a082896)

- upgrading: Re-locate version upgrade guides into `Upgrading PSR` (a5f5e04)

- upgrading-v10: Added migration guide for v9 to v10 (4ea92ec)

### ⚙️ Build System

- deps: Prevent update to `click@8.2.0` (PR#1245, 4aa6a6e)

### ♻️ Refactoring

- config: Change `allow_zero_version` default to `false` (c6b6eab)

- config: Change `changelog.default_templates.mask_initial_release` default to `true` (0e114c3)

- config: Change `changelog.mode` default to `update` (7d39e76)

### 💥 Breaking Changes

See also

For a summarized walkthrough, check out our v10 migration guide as well.

- changelog-md: The default Markdown changelog template and release notes template will no longer print out the entire commit message contents, instead, it will only print the commit subject line. This comes to meet the high demand of better formatted changelogs and requests for subject line only. Originally, it was a decision to not hide commit subjects that were included in the commit body via the `git merge --squash` command and PSR did not have another alternative. At this point, all the built-in parsers have the ability to parse squashed commits and separate them out into their own entry on the changelog. Therefore, the default template no longer needs to write out the full commit body. See the commit parser options if you want to enable/disable parsing squash commits.

- changelog-rst: The default ReStructured changelog template will no longer print out the entire commit message contents, instead, it will only print the commit subject line. This comes to meet the high demand of better formatted changelogs and requests for subject line only. Originally, it was a decision to not hide commit subjects that were included in the commit body via the `git merge --squash` command and PSR did not have another alternative. At this point, all the built-in parsers have the ability to parse squashed commits and separate them out into their own entry on the changelog. Therefore, the default template no longer needs to write out the full commit body. See the commit parser options if you want to enable/disable parsing squash commits.

- config: This release switches the `allow_zero_version` default to `false`. This change is to encourage less `0.x` releases as the default but rather allow the experienced developer to choose when `0.x` is appropriate. There are way too many projects in the ecosystems that never leave `0.x` and that is problematic for the industry tools that help auto-update based on SemVer. We should strive for publishing usable tools and maintaining good forethought for when compatibility must break. If your configuration already sets the `allow_zero_version` value, this change will have no effect on your project. If you want to use `0.x` versions, from the start then change `allow_zero_version` to `true` in your configuration.

- config: This release switches the `changelog.default_templates.mask_initial_release` default to `true`. This change is intended to toggle better recommended outputs of the default changelog. Conceptually, the very first release is hard to describe–one can only provide new features as nothing exists yet for the end user. No changelog should be written as there is no start point to compare the “changes” to. The recommendation instead is to only list a simple message as `Initial Release`. This is now the default for PSR when providing the very first release (no pre-existing tags) in the changelog and release notes. If your configuration already sets the `changelog.default_templates.mask_initial_release` value, then this change will have no effect on your project. If you do NOT want to mask the first release information, then set `changelog.default_templates.mask_initial_release` to `false` in your configuration.

- config: This release switches the `changelog.mode` default to `update`. In this mode, if a changelog exists, PSR will update the changelog IF AND ONLY IF the configured insertion flag exists in the changelog. The Changelog output will remain unchanged if no insertion flag exists. The insertion flag may be configured with the `changelog.insertion_flag` setting. When upgrading to `v10`, you must add the insertion flag manually or you can just delete the changelog file and run PSR’s changelog generation and it will rebuild the changelog (similar to init mode) but it will add the insertion flag. If your configuration already sets the `changelog.mode` value, then this change will have no effect on your project. If you would rather the changelog be generated from scratch every release, than set the `changelog.mode` value to `init` in your configuration.

- github-action: The `root_options` action input parameter has been removed because it created a command injection vulnerability for arbitrary code to execute within the container context of the GitHub action if a command injection code was provided as part of the `root_options` parameter string. To eliminate the vulnerability, each relevant option that can be provided to `semantic-release` has been individually added as its own parameter and will be processed individually to prevent command injection. Please review our Github Actions Configuration page to review the newly available configuration options that replace the `root_options` parameter.

- parser-conventional: Any breaking change footer messages that the conventional commit parser detects will now be removed from the `commit.descriptions[]` list but maintained in and only in the `commit.breaking_descriptions[]` list. Previously, the descriptions included all text from the commit message but that was redundant as the default changelog now handles breaking change footers in its own section.

- parser-conventional, parser-emoji, parser-scipy: Any issue resolution footers that the parser detects will now be removed from the `commit.descriptions[]` list. Previously, the descriptions included all text from the commit message but now that the parser pulls out the issue numbers the numbers will be included in the `commit.linked_issues` tuple for user extraction in any changelog generation.

- parser-conventional, parser-emoji, parser-scipy: Any release notice footer messages that the commit parser detects will now be removed from the `commit.descriptions[]` list but maintained in and only in the `commit.notices[]` list. Previously, the descriptions included all text from the commit message but that was redundant as the default changelog now handles release notice footers in its own section.

- parser-conventional, parser-emoji, parser-scipy: Generally, a pull request or merge request number reference is included in the subject line at the end within parentheses on some common VCS’s like GitHub. PSR now looks for this reference and extracts it into the `commit.linked_merge_request` and the `commit.linked_pull_request` attributes of a commit object. Since this is now pulled out individually, it is cleaner to remove this from the first line of the `commit.descriptions` list (ie. the subject line) so that changelog macros do not have to replace the text but instead only append a PR/MR link to the end of the line. The reference does maintain the PR/MR prefix indicator (# or `!`).

- parser-conventional, parser-emoji, parser-scipy: The configuration setting `commit_parser_options.ignore_merge_commits` is now set to `true` by default. The feature to ignore squash commits was introduced in `v9.18.0` and was originally set to `false` to prevent unexpected results on a non-breaking update. The ignore merge commits feature prevents additional unnecessary processing on a commit message that likely will not match a commit message syntax. Most merge commits are syntactically pre-defined by Git or Remote Version Control System (ex. GitHub, etc.) and do not follow a commit convention (nor should they). The larger issue with merge commits is that they ultimately are a full copy of all the changes that were previously created and committed. The merge commit itself ensures that the previous commit tree is maintained in history, therefore the commit message always exists. If merge commits are parsed, it generally creates duplicate messages that will end up in your changelog, which is less than desired in most cases. If you have previously used the `changelog.exclude_commit_patterns` functionality to ignore merge commit messages then you will want this setting set to `true` to improve parsing speed. You can also now remove the merge commit exclude pattern from the list as well to improve parsing speed. If this functionality is not desired, you will need to update your configuration to change the new setting to `false`.

- parser-conventional, parser-emoji, parser-scipy: The configuration setting `commit_parser_options.parse_squash_commits` is now set to `true` by default. The feature to parse squash commits was introduced in `v9.17.0` and was originally set to `false` to prevent unexpected results on a non-breaking update. The parse squash commits feature attempts to find additional commits of the same commit type within the body of a single commit message. When squash commits are found, Python Semantic Release will separate out each commit into its own artificial commit object and parse them individually. This potentially can change the resulting version bump if a larger bump was detected within the squashed components. It also allows for the changelog and release notes to separately order and display each commit as originally written. If this is not desired, you will need to update your configuration to change the new setting to `false`.

## v9.21.1 (2025-05-05)

### 🪲 Bug Fixes

- changelog-filters: Fixes url resolution when prefix & path share letters, closes #1204 (PR#1239, f61f8a3)

### 📖 Documentation

- github-actions: Expound on monorepo example to include publishing actions (PR#1229, 550e85f)

### ⚙️ Build System

- deps: Bump `rich` dependency from `13.0` to `14.0` (PR#1224, 691536e)

- deps: Expand `python-gitlab` dependency to include `v5.0.0` (PR#1228, a0cd1be)

## v9.21.0 (2025-02-23)

### ✨ Features

- Add package name variant, `python-semantic-release`, project script, closes #1195 (PR#1199, 1ac97bc)

### 📖 Documentation

- github-actions: Update example workflow to handle rapid merges (PR#1200, 1a4116a)

## v9.20.0 (2025-02-17)

### ✨ Features

- cmd-version: Enable stamping of tag formatted versions into files, closes #846 (PR#1190, 8906d8e)

- cmd-version: Extend `version_variables` to stamp versions with `@` symbol separator, closes #1156 (PR#1185, 23f69b6)

### 📖 Documentation

- configuration: Add usage information for tag format version stamping (PR#1190, 8906d8e)

- configuration: Clarify `version_variables` config description & `@` separator usage (PR#1185, 23f69b6)

### ⚙️ Build System

- deps: Add `deprecated~=1.2` for deprecation notices & sphinx documentation (PR#1190, 8906d8e)

## v9.19.1 (2025-02-11)

### 🪲 Bug Fixes

- changelog: Standardize heading format for across all version sections (PR#1182, 81f9e80)

- changelog-md: Standardize heading format for extra release information (PR#1182, 81f9e80)

- changelog-rst: Standardize heading format for extra release information (PR#1182, 81f9e80)

- config: Handle invalid `commit_parser` type gracefully (PR#1180, 903c8ba)

- release-notes: Standardize heading format for extra release information (PR#1182, 81f9e80)

### 📖 Documentation

- Fix spelling errors & inaccurate descriptions (55d4a05)

- automatic-releases: Declutter the table of contents for automatic release guides (e8343ee)

- commit-parsing: Update reference to section name of additional release info (PR#1182, 81f9e80)

## v9.19.0 (2025-02-10)

### ✨ Features

- parser-conventional: Add official `conventional-commits` parser (PR#1177, 27ddf84)

### 📖 Documentation

- Update references to Angular parser to Conventional Commit Parser (PR#1177, 27ddf84)

### 💡 Additional Release Information

- parser-conventional: The ‘angular’ commit parser has been renamed to ‘conventional’ to match the official conventional-commits standard for which the ‘angular’ parser has evolved into. Please update your configurations to specify ‘conventional’ as the ‘commit_parser’ value in place of ‘angular’. The ‘angular’ type will be removed in v11.

## v9.18.1 (2025-02-08)

### 🪲 Bug Fixes

- config: Refactors default token resolution to prevent pre-mature insecure URL error, closes #1074, #1169 (PR#1173, 37db258)

## v9.18.0 (2025-02-06)

### ✨ Features

- Add `create_release_url` & `format_w_official_vcs_name` filters (PR#1161, f853cf0)

- changelog: Add `create_pypi_url` filter to jinja template render context (PR#1160, 45d49c3)

- changelog: Add additional release info to changeling from commit `NOTICE`’s (PR#1166, 834ce32)

- changelog-md: Add additional release info section to default markdown template, closes #223 (PR#1166, 834ce32)

- changelog-rst: Add additional release info section to default ReStructuredText template, closes #223 (PR#1166, 834ce32)

- commit-parser: Enable parsers to identify additional release notices from commit msgs (PR#1166, 834ce32)

- parser-angular: Add a `ignore_merge_commits` option to discard parsing merge commits (PR#1164, 463e43b)

- parser-angular: Add functionality to parse out `NOTICE:` prefixed statements in commits, closes #223 (PR#1166, 834ce32)

- parser-emoji: Add a `ignore_merge_commits` option to discard parsing merge commits (PR#1164, 463e43b)

- parser-emoji: Add functionality to parse out `NOTICE:` prefixed statements in commits, closes #223 (PR#1166, 834ce32)

- parsers: Add option `ignore_merge_commits` to discard parsing merge commits (PR#1164, 463e43b)

- release-notes: Add license information to default release notes template, closes #228 (PR#1167, 41172c1)

- vcs-bitbucket: Add `format_w_official_vcs_name` filter function (PR#1161, f853cf0)

- vcs-gitea: Add `create_release_url` & `format_w_official_vcs_name` filter functions (PR#1161, f853cf0)

- vcs-github: Add `create_release_url` & `format_w_official_vcs_name` filter functions (PR#1161, f853cf0)

- vcs-gitlab: Add `create_release_url` & `format_w_official_vcs_name` filter functions (PR#1161, f853cf0)

### 🪲 Bug Fixes

- Refactor parsing compatibility function to support older custom parsers (PR#1165, cf340c5)

- changelog: Fix parsing compatibility w/ custom parsers, closes #1162 (PR#1165, cf340c5)

- changelog-templates: Adjust default templates to avoid empty version sections (PR#1164, 463e43b)

- parser-angular: Adjust parser to prevent empty message extractions (PR#1166, 834ce32)

- parser-emoji: Adjust parser to prevent empty message extractions (PR#1166, 834ce32)

- version: Fix parsing compatibility w/ custom parsers, closes #1162 (PR#1165, cf340c5)

### 📖 Documentation

- changelog: Add formatted changelog into hosted documentation (PR#1155, 2f18a6d)

- changelog-templates: Add description for new `create_pypi_url` filter function (PR#1160, 45d49c3)

- changelog-templates: Add details about license specification in the release notes (PR#1167, 41172c1)

- changelog-templates: Define `create_release_url` & `format_w_official_vcs_name` filters (PR#1161, f853cf0)

- changelog-templates: Document special separate sections of commit descriptions (ebb4c67)

- commit-parsing: Document new release notice footer detection feature of built-in parsers (cd14e92)

## v9.17.0 (2025-01-26)

### ✨ Features

- changelog: Add `sort_numerically` filter function to template environment (PR#1146, 7792388)

- changelog: Parse squashed commits individually (PR#1112, cf785ca)

- config: Extend support of remote urls aliased using git `insteadOf` configurations, closes #1150 (PR#1151, 4045037)

- parsers: Parse squashed commits individually (PR#1112, cf785ca)

- parser-angular: Apply PR/MR numbers to all parsed commits from a squash merge (PR#1112, cf785ca)

- parser-angular: Upgrade angular parser to parse squashed commits individually, closes #1085 (PR#1112, cf785ca)

- parser-emoji: Add functionality to interpret scopes from gitmoji commit messages (PR#1112, cf785ca)

- parser-emoji: Upgrade emoji parser to parse squashed commits individually (PR#1112, cf785ca)

- version: Parse squashed commits individually (PR#1112, cf785ca)

### 🪲 Bug Fixes

- github-action: Disable writing python bytecode in action execution (PR#1152, 315ae21)

### ⚡ Performance Improvements

- logging: Remove irrelevant debug logging statements (PR#1147, f1ef4ec)

### 📖 Documentation

- changelog-templates: Add description for new `sort_numerically` filter function (PR#1146, 7792388)

- commit-parsing: Add description for squash commit evaluation option of default parsers (PR#1112, cf785ca)

- configuration: Update the `commit_parser_options` setting description (PR#1112, cf785ca)

## v9.16.1 (2025-01-12)

### 🪲 Bug Fixes

- parser-custom: Handle relative parent directory paths to module file better (PR#1142, c4056fc)

### 📖 Documentation

- github-actions: Update PSR versions in github workflow examples (PR#1140, 9bdd626)

## v9.16.0 (2025-01-12)

### ✨ Features

- config: Expand dynamic parser import to handle a filepath to module (PR#1135, 0418fd8)

### 🪲 Bug Fixes

- changelog: Fixes PSR release commit exclusions for customized commit messages (PR#1139, f9a2078)

- cmd-version: Fixes `--print-tag` result to match configured tag format (PR#1134, a990aa7)

- cmd-version: Fixes tag format on default version when force bump for initial release, closes #1137 (PR#1138, 007fd00)

- config-changelog: Validate `changelog.exclude_commit_patterns` on config load (PR#1139, f9a2078)

### 📖 Documentation

- commit-parsing: Add the new custom parser import spec description for direct path imports, closes #687 (PR#1135, 0418fd8)

- configuration: Adjust `commit_parser` option definition for direct path imports (PR#1135, 0418fd8)

## v9.15.2 (2024-12-16)

### 🪲 Bug Fixes

- changelog: Ensures user rendered files are trimmed to end with a single newline (PR#1118, 6dfbbb0)

- cli: Add error message of how to gather full error output (PR#1116, ba85532)

- cmd-version: Enable maintenance prereleases (PR#864, b88108e)

- cmd-version: Fix handling of multiple prerelease token variants & git flow merges (PR#1120, 8784b9a)

- cmd-version: Fix version determination algorithm to capture commits across merged branches (PR#1120, 8784b9a)

- cmd-version: Forces tag timestamp to be same time as release commit (PR#1117, 7898b11)

- cmd-version: Handle multiple prerelease token variants properly, closes #789 (PR#1120, 8784b9a)

- config: Ensure default config loads on network mounted windows environments, closes #1123 (PR#1124, a64cbc9)

- version: Remove some excessive log msgs from debug to silly level (PR#1120, 8784b9a)

- version-bump: Increment based on current commit’s history only, closes #861 (PR#864, b88108e)

### ⚡ Performance Improvements

- cmd-version: Refactor version determination algorithm for accuracy & speed (PR#1120, 8784b9a)

## v9.15.1 (2024-12-03)

### 🪲 Bug Fixes

- changelog-md: Fix commit sort of breaking descriptions section (75b342e)

- parser-angular: Ensure issues are sorted by numeric value rather than text sorted (3858add)

- parser-emoji: Ensure issues are sorted by numeric value rather than text sorted (7b8d2d9)

## v9.15.0 (2024-12-02)

### ✨ Features

- changelog-md: Add a breaking changes section to default Markdown template, closes #244 (PR#1110, 4fde30e)

- changelog-md: Alphabetize breaking change descriptions in markdown changelog template (PR#1110, 4fde30e)

- changelog-md: Alphabetize commit summaries & scopes in markdown changelog template (PR#1111, 8327068)

- changelog-rst: Add a breaking changes section to default reStructuredText template, closes #244 (PR#1110, 4fde30e)

- changelog-rst: Alphabetize breaking change descriptions in ReStructuredText template (PR#1110, 4fde30e)

- changelog-rst: Alphabetize commit summaries & scopes in ReStructuredText template (PR#1111, 8327068)

- commit-parser: Enable parsers to flag commit to be ignored for changelog, closes #778 (PR#1108, 0cc668c)

- default-changelog: Add a separate formatted breaking changes section, closes #244 (PR#1110, 4fde30e)

- default-changelog: Alphabetize commit summaries & scopes in change sections (PR#1111, 8327068)

- parsers: Add `other_allowed_tags` option for commit parser options (PR#1109, f90b8dc)

- parsers: Enable parsers to identify linked issues on a commit (PR#1109, f90b8dc)

- parser-angular: Automatically parse angular issue footers from commit messages (PR#1109, f90b8dc)

- parser-custom: Enable custom parsers to identify linked issues on a commit (PR#1109, f90b8dc)

- parser-emoji: Parse issue reference footers from commit messages (PR#1109, f90b8dc)

- release-notes: Add tag comparison link to release notes when supported (PR#1107, 9073344)

### 🪲 Bug Fixes

- cmd-version: Ensure release utilizes a timezone aware datetime (ca817ed)

- default-changelog: Alphabetically sort commit descriptions in version type sections (bdaaf5a)

- util: Prevent git footers from being collapsed during parse (PR#1109, f90b8dc)

### 📖 Documentation

- api-parsers: Add option documentation to parser options (PR#1109, f90b8dc)

- changelog-templates: Update examples using new `commit.linked_issues` attribute (PR#1109, f90b8dc)

- commit-parsing: Improve & expand commit parsing w/ parser descriptions (PR#1109, f90b8dc)

## v9.14.0 (2024-11-11)

### ✨ Features

- changelog: Add md to rst conversion for markdown inline links (cb2af1f)

- changelog: Define first release w/o change descriptions for default MD template (fa89dec)

- changelog: Define first release w/o change descriptions for default RST template (e30c94b)

- changelog: Prefix scopes on commit descriptions in default template (PR#1093, 560fd2c)

- changelog-md: Add markdown inline link format macro (c6d8211)

- changelog-md: Prefix scopes on commit descriptions in Markdown changelog template (PR#1093, 560fd2c)

- changelog-rst: Prefix scopes on commit descriptions in ReStructuredText template (PR#1093, 560fd2c)

- configuration: Add `changelog.default_templates.mask_initial_release` option (595a70b)

- context: Add `mask_initial_release` setting to changelog context (6f2ee39)

- release-notes: Define first release w/o change descriptions in default template (83167a3)

### 🪲 Bug Fixes

- release-notes: Override default word-wrap to non-wrap for in default template (99ab99b)

### 📖 Documentation

- changelog-templates: Document new `mask_initial_release` changelog context variable (f294957)

- configuration: Document new `mask_initial_release` option usage & effect (3cabcdc)

- homepage: Fix reference to new ci workflow for test status badge (6760069)

## v9.13.0 (2024-11-10)

### ✨ Features

- changelog: Add PR/MR url linking to default Markdown changelog, closes #924, #953 (cd8d131)

- changelog: Add PR/MR url linking to default reStructuredText template, closes #924, #953 (5f018d6)

- parsed-commit: Add linked merge requests list to the `ParsedCommit` object (9a91062)

- parser-angular: Automatically parse PR/MR numbers from subject lines in commits (2ac798f)

- parser-emoji: Automatically parse PR/MR numbers from subject lines in commits (bca9909)

- parser-scipy: Automatically parse PR/MR numbers from subject lines in commits (2b3f738)

### 🪲 Bug Fixes

- changelog-rst: Ignore unknown parsed commit types in default RST changelog (77609b1)

- parser-angular: Drop the `breaking` category but still maintain a major level bump (f1ffa54)

- parsers: Improve reliability of descriptions after reverse word-wrap (436374b)

### ⚡ Performance Improvements

- parser-angular: Simplify commit parsing type pre-calculation (a86a28c)

- parser-emoji: Increase speed of commit parsing (2c9c468)

- parser-scipy: Increase speed & decrease complexity of commit parsing (2b661ed)

### 📖 Documentation

- changelog-templates: Add `linked_merge_request` field to examples (d4376bc)

- changelog-templates: Fix api class reference links (7a5bdf2)

- commit-parsing: Add `linked_merge_request` field to Parsed Commit definition (ca61889)

## v9.12.2 (2024-11-07)

### 🪲 Bug Fixes

- bitbucket: Fix `pull_request_url` filter to ignore an PR prefix gracefully (PR#1089, 275ec88)

- cli: Gracefully capture all exceptions unless in very verbose debug mode (PR#1088, 13ca44f)

- gitea: Fix `issue_url` filter to ignore an issue prefix gracefully (PR#1089, 275ec88)

- gitea: Fix `pull_request_url` filter to ignore an PR prefix gracefully (PR#1089, 275ec88)

- github: Fix `issue_url` filter to ignore an issue prefix gracefully (PR#1089, 275ec88)

- github: Fix `pull_request_url` filter to ignore an PR prefix gracefully (PR#1089, 275ec88)

- gitlab: Fix `issue_url` filter to ignore an issue prefix gracefully (PR#1089, 275ec88)

- gitlab: Fix `merge_request_url` filter to ignore an PR prefix gracefully (PR#1089, 275ec88)

- hvcs: Add flexibility to issue & MR/PR url jinja filters (PR#1089, 275ec88)

### 📖 Documentation

- changelog-templates: Update descriptions of issue & MR/PR url jinja filters (PR#1089, 275ec88)

## v9.12.1 (2024-11-06)

### 🪲 Bug Fixes

- changelog: Fix raw-inline pattern replacement in `convert_md_to_rst` filter (2dc70a6)

- cmd-version: Fix `--as-prerelease` when no commit change from last full release (PR#1076, 3b7b772)

- release-notes: Add context variable shorthand `ctx` like docs claim & changelog has (d618d83)

### 📖 Documentation

- contributing: Update local testing instructions (74f03d4)

## v9.12.0 (2024-10-18)

### ✨ Features

- changelog: Add `autofit_text_width` filter to template environment (PR#1062, 83e4b86)

### 🪲 Bug Fixes

- changelog: Ignore commit exclusion when a commit causes a version bump (e8f886e)

- parser-angular: Change `Fixes` commit type heading to `Bug Fixes` (PR#1064, 09e3a4d)

- parser-emoji: Enable the default bump level option (bc27995)

### 📖 Documentation

- changelog-templates: Add definition & usage of `autofit_text_width` template filter (PR#1062, 83e4b86)

- commit-parsers: Add deprecation message for the tag parser (af94540)

- configuration: Add deprecation message for the tag parser (a83b7e4)

## v9.11.1 (2024-10-15)

### 🪲 Bug Fixes

- changelog: Prevent custom template errors when components are in hidden folders (PR#1060, a7614b0)

## v9.11.0 (2024-10-12)

### ✨ Features

- changelog: Add `convert_md_to_rst` filter to changelog environment (PR#1055, c2e8831)

- changelog: Add default changelog in re-structured text format, closes #399 (PR#1055, c2e8831)

- changelog: Add default changelog template in reStructuredText format (PR#1055, c2e8831)

- config: Enable default `changelog.insertion_flag` based on output format (PR#1055, c2e8831)

- config: Enable target changelog filename to trigger RST output format, closes #399 (PR#1055, c2e8831)

### 🪲 Bug Fixes

- changelog: Correct spacing for default markdown template during updates (PR#1055, c2e8831)

### 📖 Documentation

- changelog: Clarify the `convert_md_to_rst` filter added to the template environment (PR#1055, c2e8831)

- changelog: Increase detail about configuration options of default changelog creation (PR#1055, c2e8831)

- configuration: Update `changelog_file` with deprecation notice of setting relocation (PR#1055, c2e8831)

- configuration: Update `output_format` description for reStructuredText support (PR#1055, c2e8831)

- configuration: Update details of `insertion_flag`’s dynamic defaults with rst (PR#1055, c2e8831)

## v9.10.1 (2024-10-10)

### 🪲 Bug Fixes

- config: Handle branch match regex errors gracefully (PR#1054, 4d12251)

## v9.10.0 (2024-10-08)

### ✨ Features

- changelog: Add `changelog_insertion_flag` to changelog template context (PR#1045, c18c245)

- changelog: Add `changelog_mode` to changelog template context (PR#1045, c18c245)

- changelog: Add `prev_changelog_file` to changelog template context (PR#1045, c18c245)

- changelog: Add `read_file` function to changelog template context (PR#1045, c18c245)

- changelog: Add shorthand `ctx` variable to changelog template env (PR#1045, c18c245)

- changelog: Modify changelog template to support changelog updates, closes #858 (PR#1045, c18c245)

- config: Add `changelog.default_templates.output_format` config option (PR#1045, c18c245)

- config: Add `changelog.insertion_flag` as configuration option (PR#1045, c18c245)

- config: Add `changelog.mode` as configuration option (PR#1045, c18c245)

- github-actions: Add an action `build` directive to toggle the `--skip-build` option (PR#1044, 26597e2)

### 🪲 Bug Fixes

- changelog: Adjust angular heading names for readability (PR#1045, c18c245)

- changelog: Ensure changelog templates can handle complex directory includes (PR#1045, c18c245)

- changelog: Only render user templates when files exist (PR#1045, c18c245)

- config: Prevent jinja from autoescaping markdown content by default (PR#1045, c18c245)

### 📖 Documentation

- changelog-templates: Improve detail & describe new `changelog.mode="update"` (PR#1045, c18c245)

- commands: Update definition of the version commands `--skip-build` option (PR#1044, 26597e2)

- configuration: Add `changelog.mode` and `changelog.insertion_flag` config definitions (PR#1045, c18c245)

- configuration: Define the new `changelog.default_templates.output_format` option (PR#1045, c18c245)

- configuration: Mark version of configuration setting introduction (PR#1045, c18c245)

- configuration: Standardize all true/false to lowercase ensuring toml-compatibility (PR#1045, c18c245)

- configuration: Update `changelog.environment.autoescape` default to `false` to match code (PR#1045, c18c245)

- github-actions: Add description of the `build` input directive (PR#1044, 26597e2)

- github-actions: Update primary example with workflow sha controlled pipeline (14f04df)

- homepage: Update custom changelog reference (PR#1045, c18c245)

## v9.9.0 (2024-09-28)

### ✨ Features

- github-actions: Add `is_prerelease` output to the version action (PR#1038, 6a5d35d)

### 📖 Documentation

- automatic-releases: Drop extraneous github push configuration (PR#1011, 2135c68)

- github-actions: Add configuration & description of publish action (PR#1011, 2135c68)

- github-actions: Add description of new `is_prerelease` output for version action (PR#1038, 6a5d35d)

- github-actions: Clarify & consolidate GitHub Actions usage docs, closes #907 (PR#1011, 2135c68)

- github-actions: Expand descriptions & clarity of actions configs (PR#1011, 2135c68)

- github-actions: Revert removal of namespace prefix from examples (PR#1011, 2135c68)

- homepage: Remove link to old github config & update token scope config (PR#1011, 2135c68)

## v9.8.9 (2024-09-27)

### 🪲 Bug Fixes

- version-cmd: Ensure `version_variables` do not match partial variable names (PR#1028, 156915c)

- version-cmd: Improve `version_variables` flexibility w/ quotes (ie. json, yaml, etc) (PR#1028, 156915c)

- version-cmd: Increase `version_variable` flexibility with quotations (ie. json, yaml, etc), closes #601, #706, #962, #1026 (PR#1028, 156915c)

### 📖 Documentation

- Update docstrings to resolve sphinx failures, closes #1029 (PR#1030, d84efc7)

- configuration: Add clarity to `version_variables` usage & limitations (PR#1028, 156915c)

- homepage: Re-structure homepage to be separate from project readme (PR#1032, 2307ed2)

- README: Simplify README to point at official docs (PR#1032, 2307ed2)

## v9.8.8 (2024-09-01)

### 🪲 Bug Fixes

- config: Fix path traversal detection for windows compatibility, closes #994 (PR#1014, 16e6daa)

### 📖 Documentation

- configuration: Update `build_command` env table for windows to use all capital vars (0e8451c)

- github-actions: Update version in examples to latest version (3c894ea)

## v9.8.7 (2024-08-20)

### 🪲 Bug Fixes

- Provide `context.history` global in release notes templates (PR#1005, 5bd91b4)

- release-notes: Fix noop-changelog to print raw release notes (PR#1005, 5bd91b4)

- release-notes: Provide `context.history` global in release note templates, closes #984 (PR#1005, 5bd91b4)

### 📖 Documentation

- Use pinned version for GHA examples (PR#1004, 5fdf761)

- changelog: Clarify description of the default changelog generation process (399fa65)

- configuration: Clarify `changelog_file` vs `template_dir` option usage, closes #983 (a7199c8)

- configuration: Fix build_command_env table rendering (PR#996, a5eff0b)

- github-actions: Adjust formatting & version warning in code snippets (PR#1004, 5fdf761)

- github-actions: Use pinned version for GHA examples, closes #1003 (PR#1004, 5fdf761)

## v9.8.6 (2024-07-20)

### 🪲 Bug Fixes

- version-cmd: Resolve build command execution in powershell (PR#980, 32c8e70)

### 📖 Documentation

- configuration: Correct GHA parameter name for commit email (PR#981, ce9ffdb)

## v9.8.5 (2024-07-06)

### 🪲 Bug Fixes

- Enable `--print-last-released*` when in detached head or non-release branch (PR#926, 782c0a6)

- changelog: Resolve commit ordering issue when dates are similar (PR#972, bfda159)

- version-cmd: Drop branch restriction for `--print-last-released*` opts, closes #900 (PR#926, 782c0a6)

### ⚡ Performance Improvements

- Improve git history processing for changelog generation (PR#972, bfda159)

- changelog: Improve git history parser changelog generation (PR#972, bfda159)

## v9.8.4 (2024-07-04)

### 🪲 Bug Fixes

- changelog-cmd: Remove usage strings when error occurred, closes #810 (348a51d)

- changelog-cmd: Render default changelog when user template directory exist but is empty (bded8de)

- config: Prevent path traversal manipulation of target changelog location (43e35d0)

- config: Prevent path traversal manipulation of target changelog location (3eb3dba)

- publish-cmd: Prevent error when provided tag does not exist locally (16afbbb)

- publish-cmd: Remove usage strings when error occurred, closes #810 (afbb187)

- version-cmd: Remove usage strings when error occurred, closes #810 (a7c17c7)

## v9.8.3 (2024-06-18)

### 🪲 Bug Fixes

- parser: Strip DOS carriage-returns in commits, closes #955 (PR#956, 0b005df)

## v9.8.2 (2024-06-17)

### 🪲 Bug Fixes

- templates: Suppress extra newlines in default changelog (PR#954, 7b0079b)

## v9.8.1 (2024-06-05)

### 🪲 Bug Fixes

- Improve build cmd env on windows (PR#942, d911fae)

- version-cmd: Pass windows specific env vars to build cmd when on windows (PR#942, d911fae)

### 📖 Documentation

- configuration: Define windows specific env vars for build cmd (PR#942, d911fae)

## v9.8.0 (2024-05-27)

### ✨ Features

- Extend gitlab to edit a previous release if exists (PR#934, 23e02b9)

- gha: Configure ssh signed tags in GitHub Action, closes #936 (PR#937, dfb76b9)

- hvcs-gitlab: Enable gitlab to edit a previous release if found (PR#934, 23e02b9)

- version-cmd: Add toggle of `--no-verify` option to `git commit` (PR#927, 1de6f78)

### 🪲 Bug Fixes

- gitlab: Adjust release name to mirror other hvcs release names (PR#934, 23e02b9)

- hvcs-gitlab: Add tag message to release creation (PR#934, 23e02b9)

### 📖 Documentation

- configuration: Add `no_git_verify` description to the configuration page (PR#927, 1de6f78)

- migration-v8: Update version references in migration instructions (PR#938, d6ba16a)

## v9.7.3 (2024-05-15)

### 🪲 Bug Fixes

- Enabled `prerelease-token` parameter in github action (PR#929, 1bb26b0)

## v9.7.2 (2024-05-13)

### 🪲 Bug Fixes

- Enable user configuration of `build_command` env vars (PR#925, 6b5b271)

- version: Enable user config of `build_command` env variables, closes #922 (PR#925, 6b5b271)

### 📖 Documentation

- configuration: Clarify TOC & alphabetize configuration descriptions (19add16)

- configuration: Clarify TOC & standardize heading links (3a41995)

- configuration: Document `build_command_env` configuration option (PR#925, 6b5b271)

- CONTRIBUTING: Update build command definition for developers (PR#921, b573c4d)

## v9.7.1 (2024-05-07)

### 🪲 Bug Fixes

- gha: Fix missing `git_committer_*` definition in action, closes #918 (PR#919, ccef9d8)

## v9.7.0 (2024-05-06)

### ✨ Features

- version-cmd: Pass `NEW_VERSION` & useful env vars to build command (ee6b246)

### 🪲 Bug Fixes

- gha: Add missing `tag` option to GitHub Action definition, closes #906 (PR#908, 6b24288)

- gha: Correct use of `prerelease` option for GitHub Action (PR#914, 85e27b7)

### 📖 Documentation

- configuration: Add description of build command available env variables (c882dc6)

- gha: Update GitHub Actions doc with all available options (PR#914, 85e27b7)

### ⚙️ Build System

- deps: Bump GitHub Action container to use `python3.12`, closes #801 (PR#914, 85e27b7)

## v9.6.0 (2024-04-29)

### ✨ Features

- Changelog filters are specialized per vcs type (PR#890, 76ed593)

- changelog: Changelog filters are hvcs focused (PR#890, 76ed593)

- changelog-context: Add flag to jinja env for which hvcs is available (PR#890, 76ed593)

- changelog-gitea: Add issue url filter to changelog context (PR#890, 76ed593)

- changelog-github: Add issue url filter to changelog context (PR#890, 76ed593)

- version-cmd: Add `--as-prerelease` option to force the next version to be a prerelease, closes #639 (PR#647, 2acb5ac)

### 🪲 Bug Fixes

- Correct version `--prerelease` use & enable `--as-prerelease` (PR#647, 2acb5ac)

- github: Correct changelog filter for pull request urls (PR#890, 76ed593)

- parser-custom: Gracefully handle custom parser import errors (67f6038)

- version-cmd: Correct `--prerelease` use, closes #639 (PR#647, 2acb5ac)

### 📖 Documentation

- changelog-context: Explain new hvcs specific context filters (PR#890, 76ed593)

- commands: Update version command options definition about prereleases (PR#647, 2acb5ac)

## v9.5.0 (2024-04-23)

### ✨ Features

- Extend support to on-prem GitHub Enterprise Server (PR#896, 4fcb737)

- github: Extend support to on-prem GitHub Enterprise Server, closes #895 (PR#896, 4fcb737)

## v9.4.2 (2024-04-14)

### 🪲 Bug Fixes

- bitbucket: Allow insecure http connections if configured (PR#886, db13438)

- bitbucket: Correct url parsing & prevent double url schemes (PR#676, 5cfdb24)

- config: Add flag to allow insecure connections (PR#886, db13438)

- gitea: Allow insecure http connections if configured (PR#886, db13438)

- gitea: Correct url parsing & prevent double url schemes (PR#676, 5cfdb24)

- github: Allow insecure http connections if configured (PR#886, db13438)

- github: Correct url parsing & prevent double url schemes (PR#676, 5cfdb24)

- gitlab: Allow insecure http connections if configured (PR#886, db13438)

- gitlab: Correct url parsing & prevent double url schemes (PR#676, 5cfdb24)

- hvcs: Allow insecure http connections if configured (PR#886, db13438)

- hvcs: Prevent double protocol scheme urls in changelogs (PR#676, 5cfdb24)

- version-cmd: Handle HTTP exceptions more gracefully (PR#886, db13438)

### 📖 Documentation

- configuration: Update `remote` settings section with missing values, closes #868 (PR#886, db13438)

### ⚙️ Build System

- deps: Update rich requirement from ~=12.5 to ~=13.0, closes #888 (PR#877, 4a22a8c)

## v9.4.1 (2024-04-06)

### 🪲 Bug Fixes

- gh-actions-output: Fixed trailing newline to match GITHUB_OUTPUT format (PR#885, 2c7b6ec)

- gh-actions-output: Fixed trailing newline to match GITHUB_OUTPUT format, closes #884 (PR#885, 2c7b6ec)

## v9.4.0 (2024-03-31)

### ✨ Features

- gitea: Derives gitea api domain from base domain when unspecified (PR#675, 2ee3f8a)

## v9.3.1 (2024-03-24)

### 🪲 Bug Fixes

- algorithm: Handle merge-base errors gracefully, closes #724 (4c998b7)

- cli-version: Change implementation to only push the tag we generated, closes #803 (8a9da4f)

### ⚡ Performance Improvements

- algorithm: Simplify logs & use lookup when searching for commit & tag match (3690b95)

## v9.3.0 (2024-03-21)

### ✨ Features

- cmd-version: Changelog available to bundle (PR#779, 37fdb28)

- cmd-version: Create changelog prior to build enabling doc bundling (PR#779, 37fdb28)

## v9.2.2 (2024-03-19)

### 🪲 Bug Fixes

- cli: Enable subcommand help even if config is invalid, closes #840 (91d221a)

## v9.2.1 (2024-03-19)

### 🪲 Bug Fixes

- parse-git-url: Handle urls with url-safe special characters (27cd93a)

## v9.2.0 (2024-03-18)

### ✨ Features

- version: Add new version print flags to display the last released version and tag (814240c)

- version-config: Add option to disable 0.x.x versions (dedb3b7)

### 🪲 Bug Fixes

- changelog: Make sure default templates render ending in 1 newline (0b4a45e)

- changelog-generation: Fix incorrect release timezone determination (f802446)

### 📖 Documentation

- configuration: Add description of `allow-zero-version` configuration option (4028f83)

- configuration: Clarify the `major_on_zero` configuration option (f7753cd)

### ⚙️ Build System

- deps: Add click-option-group for grouping exclusive flags (bd892b8)

## v9.1.1 (2024-02-25)

### 🪲 Bug Fixes

- parse_git_url: Fix bad url with dash (1c25b8e)

## v9.1.0 (2024-02-14)

### ✨ Features

- Add bitbucket hvcs (bbbbfeb)

### 🪲 Bug Fixes

- Remove unofficial environment variables (a5168e4)

### 📖 Documentation

- Add bitbucket authentication (b78a387)

- Add bitbucket to token table (56f146d)

- Fix typo (b240e12)

### ⚙️ Build System

- deps: Bump minimum required `tomlkit` to `>=0.11.0`, closes #834 (291aace)

## v9.0.3 (2024-02-08)

### 🪲 Bug Fixes

- algorithm: Correct bfs to not abort on previously visited node (02df305)

### ⚡ Performance Improvements

- algorithm: Refactor bfs search to use queue rather than recursion (8b742d3)

## v9.0.2 (2024-02-08)

### 🪲 Bug Fixes

- util: Properly parse windows line-endings in commit messages, closes #820 (70193ba)

### 📖 Documentation

- Remove duplicate note in configuration.rst (PR#807, fb6f243)

## v9.0.1 (2024-02-06)

### 🪲 Bug Fixes

- config: Set commit parser opt defaults based on parser choice (PR#782, 9c594fb)

## v9.0.0 (2024-02-06)

### ♻️ Refactoring

- Drop support for Python 3.7 (PR#828, ad086f5)

### 💥 BREAKING CHANGES

- Removed Python 3.7 specific control flows and made more modern implementations the default control flow without a bypass or workaround. Will break on Python 3.7 now. If you require Python 3.7, you should lock your major version at v8. Since we only have enough manpower to maintain the latest major release, unfortunately there will not be any more updates to v8.

- We decided to remove support for Python 3.7 because it has been officially deprecated by the Python Foundation over a year ago and our codebase is starting to have limitations and custom implementations just to maintain support for 3.7.

## v8.7.2 (2024-01-03)

### 🪲 Bug Fixes

- lint: Correct linter errors (c9556b0)

## v8.7.1 (2024-01-03)

### 🪲 Bug Fixes

- cli-generate-config: Ensure configuration types are always toml parsable (PR#785, 758e649)

### 📖 Documentation

- Add note on default envvar behavior (PR#780, 0b07cae)

- configuration: Change defaults definition of token default to table (PR#786, df1df0d)

- contributing: Add docs-build, testing conf, & build instructions (PR#787, 011b072)

## v8.7.0 (2023-12-22)

### ✨ Features

- config: Enable default environment token per hvcs (PR#774, 26528eb)

## v8.6.0 (2023-12-22)

### ✨ Features

- utils: Expand parsable valid git remote url formats (PR#771, cf75f23)

### 📖 Documentation

- Minor correction to commit-parsing documentation (PR#777, 245e878)

## v8.5.2 (2023-12-19)

### 🪲 Bug Fixes

- cli: Gracefully output configuration validation errors (PR#772, e8c9d51)

## v8.5.1 (2023-12-12)

### 🪲 Bug Fixes

- cmd-version: Handle committing of git-ignored file gracefully (PR#764, ea89fa7)

- config: Cleanly handle repository in detached HEAD state (PR#765, ac4f9aa)

- config: Gracefully fail when repo is in a detached HEAD state (PR#765, ac4f9aa)

- version: Only commit non git-ignored files during version commit (PR#764, ea89fa7)

### 📖 Documentation

- configuration: Adjust wording and improve clarity (PR#766, 6b2fc8c)

- configuration: Fix typo in text (PR#766, 6b2fc8c)

## v8.5.0 (2023-12-07)

### ✨ Features

- Allow template directories to contain a ‘.’ at the top-level (PR#762, 07b232a)

## v8.4.0 (2023-12-07)

### ✨ Features

- cmd-version: Add `--tag/--no-tag` option to version command (PR#752, de6b9ad)

- version: Add `--no-tag` option to turn off tag creation (PR#752, de6b9ad)

### 🪲 Bug Fixes

- version: Separate push tags from commit push when not committing changes (PR#752, de6b9ad)

### 📖 Documentation

- commands: Update `version` subcommand options (PR#752, de6b9ad)

- migration: Fix comments about publish command (PR#747, 90380d7)

## v8.3.0 (2023-10-23)

### ✨ Features

- action: Use composite action for semantic release (PR#692, 4648d87)

## v8.2.0 (2023-10-23)

### ✨ Features

- Allow user customization of release notes template (PR#736, 94a1311)

### 📖 Documentation

- Add PYTHONPATH mention for commit parser (3284258)

## v8.1.2 (2023-10-13)

### 🪲 Bug Fixes

- Correct lint errors (a13a6c3)

- Error when running build command on windows systems (PR#732, 2553657)

## v8.1.1 (2023-09-19)

### 🪲 Bug Fixes

- Attribute error when logging non-strings (PR#711, 75e6e48)

## v8.1.0 (2023-09-19)

### ✨ Features

- Upgrade pydantic to v2 (PR#714, 5a5c5d0)

### 📖 Documentation

- Fix typos (PR#708, 2698b0e)

- Update project urls (PR#715, 5fd5485)

## v8.0.8 (2023-08-26)

### 🪲 Bug Fixes

- Dynamic_import() import path split (PR#686, 1007a06)

## v8.0.7 (2023-08-16)

### 🪲 Bug Fixes

- Use correct upload url for github (PR#661, 8a515ca)

## v8.0.6 (2023-08-13)

### 🪲 Bug Fixes

- publish: Improve error message when no tags found (PR#683, bdc06ea)

## v8.0.5 (2023-08-10)

### 🪲 Bug Fixes

- Don’t warn about vcs token if ignore_token_for_push is true. (PR#670, f1a54a6)

### 📖 Documentation

- `password` should be `token`. (PR#670, f1a54a6)

- Fix typo missing ‘s’ in version_variable[s] in configuration.rst (PR#668, 879186a)

## v8.0.4 (2023-07-26)

### 🪲 Bug Fixes

- changelog: Use version as semver tag by default (PR#653, 5984c77)

### 📖 Documentation

- Add Python 3.11 to classifiers in metadata (PR#651, 5a32a24)

- Clarify usage of assets config option (PR#655, efa2b30)

## v8.0.3 (2023-07-21)

### 🪲 Bug Fixes

- Skip non-parsable versions when calculating next version (PR#649, 88f25ea)

## v8.0.2 (2023-07-18)

### 🪲 Bug Fixes

- Handle missing configuration (PR#644, f15753c)

### 📖 Documentation

- Better description for tag_format usage (2129b72)

- Clarify v8 breaking changes in GitHub action inputs (PR#643, cda050c)

- Correct version_toml example in migrating_from_v7.rst (PR#641, 325d5e0)

## v8.0.1 (2023-07-17)

### 🪲 Bug Fixes

- Invalid version in Git history should not cause a release failure (PR#632, 254430b)

### 📖 Documentation

- Reduce readthedocs formats and add entries to migration from v7 guide (9b6ddfe)

- migration: Fix hyperlink (PR#631, 5fbd52d)

## v8.0.0 (2023-07-16)

### ✨ Features

- publish-cmd: Add `--post-to-release-tag` option to control where to publish (PR#619, ec30564)

- Make it easier to access commit messages in ParsedCommits (PR#619, ec30564)

- Remove publication of `dists/` to artifact repository (PR#619, ec30564)

- Rename ‘upload’ configuration section to ‘publish’ (PR#619, ec30564)

- github-action: Add GitHub Actions output variables (PR#619, ec30564)

- version-cmd: Add `--skip-build` option (PR#619, ec30564)

- version-cmd Add `--strict` version mode (PR#619, ec30564)

### 🪲 Bug Fixes

- Add logging for token auth, use token for push (PR#619, ec30564)

- Caching for repo owner and name (PR#619, ec30564)

- Correct assets type in configuration (PR#619, ec30564)

- Correct assets type-annotation for RuntimeContext (PR#619, ec30564)

- Correct Dockerfile CLI command and GHA fetch (PR#619, ec30564)

- Correct handling of build commands (PR#619, ec30564)

- Correct logic for generating release notes (PR#619, ec30564)

- Create_or_update_release for Gitlab hvcs (PR#619, ec30564)

- Make additional attributes available for template authors (PR#619, ec30564)

- Only call Github Action output callback once defaults are set (PR#619, ec30564)

- Remove commit amending behavior (PR#619, ec30564)

- Resolve branch checkout logic in GHA (PR#619, ec30564)

- Resolve bug in changelog logic, enable upload to pypi (PR#619, ec30564)

- Resolve loss of tag_format configuration (PR#619, ec30564)

- github-action: Pin Debian version in Dockerfile (PR#619, ec30564)

- github-action: Correct input parsing (PR#619, ec30564)

- github-action: Mark container fs as safe for git to operate on (PR#619, ec30564)

- github-action: Quotation for git config command (PR#619, ec30564)

- github-action: Remove default for ‘force’ (PR#619, ec30564)

### 📖 Documentation

- Convert to Furo theme (PR#619, ec30564)

- Fix typo (PR#619, ec30564)

- Remove reference to dist publication (PR#619, ec30564)

- Update docs with additional required permissions (PR#619, ec30564)

- changelog-templates: fix typo (PR#619, ec30564)

### ♻️ Refactoring

- Remove verify-ci command (PR#619, ec30564)

### 💥 BREAKING CHANGES

- numerous breaking changes, see Upgrading to v8 for more information

## v7.34.6 (2023-06-17)

### 🪲 Bug Fixes

- Relax invoke dependency constraint (18ea200)

## v7.34.5 (2023-06-17)

### 🪲 Bug Fixes

- Consider empty commits (PR#608, 6f2e890)

## v7.34.4 (2023-06-15)

### 🪲 Bug Fixes

- Docker build fails installing git (PR#605, 9e3eb97)

## v7.34.3 (2023-06-01)

### 🪲 Bug Fixes

- Generate markdown linter compliant changelog headers & lists (PR#597, cc87400)

## v7.34.2 (2023-05-29)

### 🪲 Bug Fixes

- Open all files with explicit utf-8 encoding (PR#596, cb71f35)

## v7.34.1 (2023-05-28)

### 🪲 Bug Fixes

- Generate markdown linter compliant changelog headers & lists (PR#594, 9d9d403)

## v7.34.0 (2023-05-28)

### ✨ Features

- Add option to only parse commits for current working directory (PR#509, cdf8116)

## v7.33.5 (2023-05-19)

### 🪲 Bug Fixes

- Update docs and default config for gitmoji changes (PR#590, 192da6e)

- Update sphinx dep (PR#590, 192da6e)

### 📖 Documentation

- Update broken badge and add links (PR#591, 0c23447)

## v7.33.4 (2023-05-14)

### 🪲 Bug Fixes

- If prerelease, publish prerelease (PR#587, 927da9f)

## v7.33.3 (2023-04-24)

### 🪲 Bug Fixes

- Trim emojis from config (PR#583, 02902f7)

- Update Gitmojis according to official node module (PR#582, 806fcfa)

### 📖 Documentation

- Grammar in `docs/troubleshooting.rst` (PR#557, bbe754a)

- Spelling and grammar in `travis.rst` (PR#556, 3a76e9d)

- Update repository name (PR#559, 5cdb05e)

## v7.33.2 (2023-02-17)

### 🪲 Bug Fixes

- Inconsistent versioning between print-version and publish (PR#524, 17d60e9)

## v7.33.1 (2023-02-01)

### 🪲 Bug Fixes

- action: Mark container fs as safe for git (PR#552, 2a55f68)

## v7.33.0 (2023-01-15)

### ✨ Features

- Add signing options to action (31ad5eb)

- Update action with configuration options (PR#518, 4664afe)

- repository: Add support for TWINE_CERT, closes #521 (PR#522, d56e85d)

### 🪲 Bug Fixes

- Changelog release commit search logic (PR#530, efb3410)

- github-actions: Bump Dockerfile to use Python 3.10 image, closes #533 (PR#536, 8f2185d)

- action: Fix environment variable names (3c66218)

### 📖 Documentation

- Update documentation (5cbdad2)

## v7.32.2 (2022-10-22)

### 🪲 Bug Fixes

- Fix changelog generation in tag-mode (PR#171, 482a62e)

### 📖 Documentation

- Fix code blocks (PR#506, 24b7673)

## v7.32.1 (2022-10-07)

### 🪲 Bug Fixes

- Corrections for deprecation warnings (PR#505, d47afb6)

### 📖 Documentation

- Correct spelling mistakes (PR#504, 3717e0d)

## v7.32.0 (2022-09-25)

### ✨ Features

- Add setting for enforcing textual changelog sections, closes #498 (PR#502, 988437d)

### 📖 Documentation

- Correct documented default behavior for `commit_version_number` (PR#497, ffae2dc)

## v7.31.4 (2022-08-23)

### 🪲 Bug Fixes

- Account for trailing newlines in commit messages, closes #490 (PR#495, 111b151)

## v7.31.3 (2022-08-22)

### 🪲 Bug Fixes

- Use `commit_subject` when searching for release commits (PR#488, 3849ed9)

## v7.31.2 (2022-07-29)

### 🪲 Bug Fixes

- Add better handling of missing changelog placeholder, closes #454 (e7a0e81)

- Add repo=None when not in git repo, closes #422 (40be804)

### 📖 Documentation

- Add example for pyproject.toml (2a4b8af)

## v7.31.1 (2022-07-29)

### 🪲 Bug Fixes

- Update git email in action, closes #473 (0ece6f2)

## v7.31.0 (2022-07-29)

### ✨ Features

- Add prerelease-patch and no-prerelease-patch flags for whether to auto-bump prereleases (b4e5b62)

- Override repository_url w REPOSITORY_URL env var (PR#439, cb7578c)

### 🪲 Bug Fixes

- bug:

    fix get_current_release_version for tag_only version_source (cad09be)

## v7.30.2 (2022-07-26)

### 🪲 Bug Fixes

- Declare additional_options as action inputs (PR#481, cb5d8c7)

## v7.30.1 (2022-07-25)

### 🪲 Bug Fixes

- Don’t use commit_subject for tag pattern matching (PR#480, ac3f11e)

## v7.30.0 (2022-07-25)

### ✨ Features

- Add `additional_options` input for GitHub Action (PR#477, aea60e3)

### 🪲 Bug Fixes

- Allow empty additional options (PR#479, c9b2514)

## v7.29.7 (2022-07-24)

### 🪲 Bug Fixes

- Ignore dependency version bumps when parsing version from commit logs (PR#476, 51bcb78)

## v7.29.6 (2022-07-15)

### 🪲 Bug Fixes

- Allow changing prerelease tag using CLI flags (PR#466, 395bf4f)

## v7.29.5 (2022-07-14)

### 🪲 Bug Fixes

- Add packaging module requirement (PR#469, b99c9fa)

- publish: Get version bump for current release (PR#467, dd26888)

## v7.29.4 (2022-06-29)

### 🪲 Bug Fixes

- Add text for empty ValueError (PR#461, 733254a)

## v7.29.3 (2022-06-26)

### 🪲 Bug Fixes

- Ensure that assets can be uploaded successfully on custom GitHub servers (PR#458, 32b516d)

## v7.29.2 (2022-06-20)

### 🪲 Bug Fixes

- Ensure should_bump checks against release version if not prerelease (PR#457, da0606f)

## v7.29.1 (2022-06-01)

### 🪲 Bug Fixes

- Capture correct release version when patch has more than one digit (PR#448, 426cdc7)

## v7.29.0 (2022-05-27)

### ✨ Features

- Allow using ssh-key to push version while using token to publish to hvcs (PR#419, 7b2dffa)

- config: Add ignore_token_for_push param (PR#419, 7b2dffa)

### 🪲 Bug Fixes

- Fix and refactor prerelease (PR#435, 94c9494)

- test: Override GITHUB_ACTOR env (PR#419, 7b2dffa)

### 📖 Documentation

- Add documentation for ignore_token_for_push (PR#419, 7b2dffa)

## v7.28.1 (2022-04-14)

### 🪲 Bug Fixes

- Fix getting current version when `version_source=tag_only` (PR#437, b247936)

## v7.28.0 (2022-04-11)

### ✨ Features

- Add `tag_only` option for `version_source`, closes #354 (PR#436, cf74339)

## v7.27.1 (2022-04-03)

### 🪲 Bug Fixes

- prerelease: Pass prerelease option to get_current_version (PR#432, aabab0b)

## v7.27.0 (2022-03-15)

### ✨ Features

- Add git-lfs to docker container (PR#427, 184e365)

## v7.26.0 (2022-03-07)

### ✨ Features

- publish-cmd: add `--prerelease` cli flag to enable prerelease versioning (PR#413, 7064265)

- version-cmd: add `--prerelease` cli flag to enable prerelease versioning (PR#413, 7064265)

### 📖 Documentation

- Added basic info about prerelease versioning (PR#413, 7064265)

## v7.25.2 (2022-02-24)

### 🪲 Bug Fixes

- gitea: Use form-data from asset upload (PR#421, e011944)

## v7.25.1 (2022-02-23)

### 🪲 Bug Fixes

- gitea: Build status and asset upload (PR#420, 57db81f)

- gitea: Handle list build status response (PR#420, 57db81f)

## v7.25.0 (2022-02-17)

### ✨ Features

- hvcs: Add gitea support (PR#412, b7e7936)

### 📖 Documentation

- Document tag_commit, closes #410 (b631ca0)

## v7.24.0 (2022-01-24)

### ✨ Features

- Include additional changes in release commits (3e34f95)

## v7.23.0 (2021-11-30)

### ✨ Features

- Support Github Enterprise server (b4e01f1)

## v7.22.0 (2021-11-21)

### ✨ Features

- parser_angular: Allow customization in parser (298eebb)

### 🪲 Bug Fixes

- Address PR feedback for `parser_angular.py` (f7bc458)

## v7.21.0 (2021-11-21)

### ✨ Features

- Use gitlab-ci or github actions env vars, closes #363 (8ca8dd4)

### 🪲 Bug Fixes

- Remove invalid repository exception (746b62d)

## v7.20.0 (2021-11-21)

### ✨ Features

- Allow custom environment variable names (PR#392, 372cda3)

- Rewrite Twine adapter for uploading to artifact repositories (cfb20af)

### 🪲 Bug Fixes

- Don’t use linux commands on windows (PR#393, 5bcccd2)

- Mypy errors in vcs_helpers (13ca0fe)

- Skip removing the build folder if it doesn’t exist (8e79fdc)

### 📖 Documentation

- Clean typos and add section for repository upload (1efa18a)

## v7.19.2 (2021-09-04)

### 🪲 Bug Fixes

- Fixed ImproperConfig import error (PR#377, b011a95)

## v7.19.1 (2021-08-17)

### 🪲 Bug Fixes

- Add get_formatted_tag helper instead of hardcoded v-prefix in the git tags (1a354c8)

## v7.19.0 (2021-08-16)

### ✨ Features

- Custom git tag format support (PR#373, 1d76632)

### 📖 Documentation

- configuration: define `tag_format` usage & resulting effect (PR#373, 1d76632)

- parser: Documentation for scipy-parser (45ee34a)

## v7.18.0 (2021-08-09)

### ✨ Features

- Add support for non-prefixed tags (PR#366, 0fee4dd)

### 📖 Documentation

- Clarify second argument of ParsedCommit (086ddc2)

## v7.17.0 (2021-08-07)

### ✨ Features

- parser: Add scipy style parser (PR#369, 51a3921)

## v7.16.4 (2021-08-03)

### 🪲 Bug Fixes

- Correct rendering of gitlab issue references, closes #358 (07429ec)

## v7.16.3 (2021-07-29)

### 🪲 Bug Fixes

- Print right info if token is not set, closes #360 (PR#361, a275a7a)

## v7.16.2 (2021-06-25)

### 🪲 Bug Fixes

- Use release-api for gitlab (1ef5cab)

### 📖 Documentation

- Recommend setting a concurrency group for GitHub Actions (34b0735)

- Update trove classifiers to reflect supported versions (PR#344, 7578004)

## v7.16.1 (2021-06-08)

### 🪲 Bug Fixes

- Tomlkit should stay at 0.7.0 (769a5f3)

## v7.16.0 (2021-06-08)

### ✨ Features

- Add option to omit tagging (PR#341, 20603e5)

## v7.15.6 (2021-06-08)

### 🪲 Bug Fixes

- Update click and tomlkit (PR#339, 947ea3b)

## v7.15.5 (2021-05-26)

### 🪲 Bug Fixes

- Pin tomlkit to 0.7.0 (2cd0db4)

## v7.15.4 (2021-04-29)

### 🪲 Bug Fixes

- Change log level of failed toml loading, closes #235 (24bb079)

## v7.15.3 (2021-04-03)

### 🪲 Bug Fixes

- Add venv to path in github action (583c5a1)

## v7.15.2 (2021-04-03)

### 🪲 Bug Fixes

- Run semantic-release in virtualenv in the github action, closes #331 (b508ea9)

- Set correct path for venv in action script (aac02b5)

- Use absolute path for venv in github action (d4823b3)

### 📖 Documentation

- Clarify that HVCS should be lowercase, closes #330 (da0ab0c)

## v7.15.1 (2021-03-26)

### 🪲 Bug Fixes

- Add support for setting build_command to “false”, closes #328 (520cf1e)

- Upgrade python-gitlab range, closes #329 (abfacc4)

### 📖 Documentation

- Add common options to documentation, closes #327 (20d79a5)

## v7.15.0 (2021-02-18)

### ✨ Features

- Allow the use of .pypirc for twine uploads (PR#325, 6bc56b8)

### 📖 Documentation

- Add documentation for releasing on a Jenkins instance (PR#324, 77ad988)

## v7.14.0 (2021-02-11)

### ✨ Features

- checks: Add support for Jenkins CI (PR#322, 3e99855)

### 📖 Documentation

- Correct casing on proper nouns (PR#320, d51b999)

- Correcting Python casing (PR#320, d51b999)

- Correcting Semantic Versioning casing (PR#320, d51b999)

## v7.13.2 (2021-01-29)

### 🪲 Bug Fixes

- Crash when TOML has no PSR section (PR#319, 5f8ab99)

- Fix crash when TOML has no PSR section (PR#319, 5f8ab99)

### 📖 Documentation

- Fix `version_toml` example for Poetry (PR#318, 39acb68)

## v7.13.1 (2021-01-26)

### 🪲 Bug Fixes

- Use multiline version_pattern match in replace, closes #306 (PR#315, 1a85af4)

## v7.13.0 (2021-01-26)

### ✨ Features

- Support toml files for version declaration, closes #245, #275 (PR#307, 9b62a7e)

## v7.12.0 (2021-01-25)

### ✨ Features

- github: Retry GitHub API requests on failure (PR#314, ac241ed)

### 🪲 Bug Fixes

- github: Add retries to github API requests (PR#314, ac241ed)

### 📖 Documentation

- actions: Pat must be passed to checkout step too, closes #311 (e2d8e47)

## v7.11.0 (2021-01-08)

### ✨ Features

- print-version: Add print-version command to output version (512e3d9)

### 🪲 Bug Fixes

- Add dot to –define option help (eb4107d)

- Avoid Unknown bump level 0 message (8ab624c)

- actions: Fix github actions with new main location (6666672)

### ⚙️ Build System

- Add __main__.py magic file (e93f36a)

## v7.10.0 (2021-01-08)

### ✨ Features

- build: Allow falsy values for build_command to disable build step (c07a440)

### 📖 Documentation

- Fix incorrect reference syntax (42027f0)

- Rewrite getting started page (97a9046)

## v7.9.0 (2020-12-21)

### ✨ Features

- hvcs: Add hvcs_domain config option, closes #277 (ab3061a)

### 🪲 Bug Fixes

- history: Coerce version to string (PR#298, d4cdc3d)

- history: Require semver >= 2.10 (5087e54)

## v7.8.2 (2020-12-19)

### ✨ Features

- repository: Add to settings artifact repository (f4ef373)

### 🪲 Bug Fixes

- cli: Skip remove_dist where not needed (04817d4)

## v7.8.1 (2020-12-18)

### 🪲 Bug Fixes

- Filenames with unknown mimetype are now properly uploaded to github release (f3ece78)

- logs: Fix TypeError when enabling debug logs (2591a94)

## v7.8.0 (2020-12-18)

### ✨ Features

- Add `upload_to_pypi_glob_patterns` option (42305ed)

### 🪲 Bug Fixes

- changelog: Use “issues” link vs “pull” (93e48c9)

- netrc: Prefer using token defined in GH_TOKEN instead of .netrc file (3af32a7)

## v7.7.0 (2020-12-12)

### ✨ Features

- changelog: Add PR links in markdown (PR#282, 0448f6c)

## v7.6.0 (2020-12-06)

### ✨ Features

- Add `major_on_zero` option (d324154)

### 📖 Documentation

- Add documentation for option `major_on_zero` (2e8b26e)

## v7.5.0 (2020-12-04)

### ✨ Features

- logs: Include scope in changelogs (PR#281, 21c96b6)

## v7.4.1 (2020-12-04)

### 🪲 Bug Fixes

- Add “changelog_capitalize” to flags, closes #278 (PR#279, 37716df)

## v7.4.0 (2020-11-24)

### ✨ Features

- Add changelog_capitalize configuration, closes #260 (7cacca1)

### 📖 Documentation

- Fix broken internal references (PR#270, da20b9b)

- Update links to Github docs (PR#268, c53162e)

## v7.3.0 (2020-09-28)

### ✨ Features

- Generate `changelog.md` file (PR#266, 2587dfe)

### 📖 Documentation

- Fix docstring (5a5e2cf)

## v7.2.5 (2020-09-16)

### 🪲 Bug Fixes

- Add required to inputs in action metadata (PR#264, e76b255)

## v7.2.4 (2020-09-14)

### 🪲 Bug Fixes

- Use range for toml dependency, closes #241 (45707e1)

## v7.2.3 (2020-09-12)

### 🪲 Bug Fixes

- Support multiline version_pattern matching by default (82f7849)

### 📖 Documentation

- Create ‘getting started’ instructions (PR#256, 5f4d000)

- Link to getting started guide in README (f490e01)

## v7.2.2 (2020-07-26)

### 🪲 Bug Fixes

- changelog: Send changelog to stdout, closes #250 (87e2bb8)

### 📖 Documentation

- Add quotation marks to the pip commands in CONTRIBUTING.rst (PR#253, e20fa43)

## v7.2.1 (2020-06-29)

### 🪲 Bug Fixes

- Commit all files with bumped versions (PR#249, b3a1766)

### 📖 Documentation

- Give example of multiple build commands (PR#248, 65f1ffc)

## v7.2.0 (2020-06-15)

### ✨ Features

- Bump versions in multiple files, closes #175 (PR#246, 0ba2c47)

## v7.1.1 (2020-05-28)

### 🪲 Bug Fixes

- changelog: Swap sha and message in table changelog (6741370)

## v7.1.0 (2020-05-24)

### ✨ Features

- changelog: Add changelog_table component, closes #237 (PR#242, fe6a7e7)

## v7.0.0 (2020-05-22)

### ✨ Features

- Pass changelog_sections to components (PR#240, 3e17a98)

- changelog: Add changelog components (PR#240, 3e17a98)

### 📖 Documentation

- Add conda-forge badge (e9536bb)

- Add documentation for changelog_components (PR#240, 3e17a98)

### 💥 BREAKING CHANGES

- changelog: The `compare_url` option has been removed in favor of using `changelog_components`. This functionality is now available as the `semantic_release.changelog.compare_url` component.

## v6.4.1 (2020-05-15)

### 🪲 Bug Fixes

- Convert `\r\n` to `\n` in commit messages, closes #239 (34acbbc)

## v6.4.0 (2020-05-15)

### ✨ Features

- history: Create emoji parser (PR#238, 2e1c50a)

### 🪲 Bug Fixes

- Add emojis to default changelog_sections (PR#238, 2e1c50a)

- Include all parsed types in changelog (PR#238, 2e1c50a)

### 📖 Documentation

- Add documentation for emoji parser (PR#238, 2e1c50a)

### ♻️ Refactoring

- history: Get breaking changes in parser (PR#238, 2e1c50a)

## v6.3.1 (2020-05-11)

### 🪲 Bug Fixes

- Use getboolean for commit_version_number, closes #186 (a60e0b4)

## v6.3.0 (2020-05-09)

### ✨ Features

- history: Support linking compare page in changelog, closes #218 (79a8e02)

### 📖 Documentation

- Document compare_link option (e52c355)

- Rewrite commit-log-parsing.rst (4c70f4f)

## v6.2.0 (2020-05-02)

### ✨ Features

- history: Check all paragraphs for breaking changes, closes #200 (fec08f0)

### 📖 Documentation

- Add = to verbosity option, closes #227 (a0f4c9c)

- Use references where possible, closes #221 (f38e5d4)

## v6.1.0 (2020-04-26)

### ✨ Features

- actions: Support PYPI_TOKEN on GitHub Actions (df2c080)

- pypi: Support easier use of API tokens, closes #213 (bac135c)

### 📖 Documentation

- Add documentation for PYPI_TOKEN (a8263a0)

## v6.0.1 (2020-04-15)

### 🪲 Bug Fixes

- hvcs: Convert get_hvcs to use LoggedFunction (3084249)

## v6.0.0 (2020-04-15)

### 📖 Documentation

- Create Read the Docs config file (aa5a1b7)

- Include README.rst in index.rst (8673a9d)

- Move action.rst into main documentation (509ccaf)

- Rewrite README.rst (e049772)

- Rewrite troubleshooting page (0285de2)

### ♻️ Refactoring

- debug: Use logging and click_log instead of ndebug (15b1f65)

### 💥 BREAKING CHANGES

- debug: `debug="*"` no longer has an effect, instead use `--verbosity DEBUG`.

## v5.2.0 (2020-04-09)

### ✨ Features

- github: Add tag as default release name (2997908)

### 📖 Documentation

- Automate API docs (7d4fea2)

## v5.1.0 (2020-04-04)

### ✨ Features

- history: Allow customizing changelog_sections (PR#207, d5803d5)

### 📖 Documentation

- Improve formatting of configuration page (9a8e22e)

- Improve formatting of envvars page (b376a56)

- Update index.rst (b27c26c)

## v5.0.3 (2020-03-26)

### 🪲 Bug Fixes

- Bump dependencies and fix Windows issues on Development (PR#173, 0a6f8c3)

- Missing mime types on Windows (PR#173, 0a6f8c3)

## v5.0.2 (2020-03-22)

### 🪲 Bug Fixes

- history: Leave case of other characters unchanged (96ba94c)

## v5.0.1 (2020-03-22)

### 🪲 Bug Fixes

- Make action use current version of semantic-release (123984d)

## v5.0.0 (2020-03-22)

### ✨ Features

- build: Allow config setting for build command, closes #188 (PR#195, 740f4bd)

### 🪲 Bug Fixes

- Rename default of build_command config (d5db22f)

### 📖 Documentation

- pypi: Update docstrings in pypi.py (6502d44)

### 💥 BREAKING CHANGES

- build: Previously the build_commands configuration variable set the types of bundles sent to `python setup.py`. It has been replaced by the configuration variable `build_command` which takes the full command e.g. `python setup.py sdist` or `poetry build`.

## v4.11.0 (2020-03-22)

### ✨ Features

- actions: Create GitHub Action (350245d)

### 📖 Documentation

- Make AUTHORS.rst dynamic (db2e076)

- readme: Fix minor typo (c22f69f)

## v4.10.0 (2020-03-03)

### ✨ Features

- Make commit message configurable (PR#184, eb0762c)

## v4.9.0 (2020-03-02)

### ✨ Features

- pypi: Add build_commands config (22146ea)

### 🪲 Bug Fixes

- pypi: Change bdist_wheels to bdist_wheel (c4db509)

## v4.8.0 (2020-02-28)

### ✨ Features

- git: Add a new config for commit author (aa2c22c)

## v4.7.1 (2020-02-28)

### 🪲 Bug Fixes

- Repair parsing of remotes in the gitlab ci format, closes #181 (0fddbe2)

## v4.7.0 (2020-02-28)

### ✨ Features

- Upload distribution files to GitHub Releases (PR#177, e427658)

- github: Upload dists to release (PR#177, e427658)

### 🪲 Bug Fixes

- Post changelog after PyPI upload (PR#177, e427658)

- Support repository owner names containing dots, closes #179 (a6c4da4)

- github: Fix upload of .whl files (PR#177, e427658)

- github: Use application/octet-stream for .whl files (90a7e47)

### 📖 Documentation

- Document upload_to_release config option (PR#177, e427658)

## v4.6.0 (2020-02-19)

### ✨ Features

- history: Capitalize changelog messages (1a8e306)

### 🪲 Bug Fixes

- Add more debug statements in logs (bc931ec)

- Only overwrite with patch if bump is None, closes #159 (1daa4e2)

## v4.5.1 (2020-02-16)

### 🪲 Bug Fixes

- github: Send token in request header, closes #167 (be9972a)

### 📖 Documentation

- Add note about automatic releases in readme (e606e75)

- Fix broken list in readme (7aa572b)

- Update readme and getting started docs (07b3208)

## v4.5.0 (2020-02-08)

### ✨ Features

- history: Enable colon defined version, closes #165 (7837f50)

### 🪲 Bug Fixes

- Remove erroneous submodule (762bfda)

- cli: –noop flag works when before command, closes #73 (4fcc781)

## v4.4.1 (2020-01-18)

### 🪲 Bug Fixes

- Add quotes around twine arguments, closes #163 (46a83a9)

## v4.4.0 (2020-01-17)

### ✨ Features

- parser: Add support for exclamation point for breaking changes, closes #156 (a4f8a10)

- parser: Make BREAKING-CHANGE synonymous with BREAKING CHANGE (beedccf)

### 🪲 Bug Fixes

- github: Add check for GITHUB_ACTOR for git push (PR#162, c41e9bb)

## v4.3.4 (2019-12-17)

### 🪲 Bug Fixes

- Fallback to whole log if correct tag is not available, closes #51 (PR#157, 252bffd)

## v4.3.3 (2019-11-06)

### 🪲 Bug Fixes

- Instead of requiring click 7.0, looks like all tests will pass with at least 2.0. (PR#155, f07c7f6)

- Set version of click to >=2.0,<8.0. (PR#155, f07c7f6)

- Upgrade to click 7.0, closes #117 (PR#155, f07c7f6)

## v4.3.2 (2019-10-05)

### 🪲 Bug Fixes

- Update regex to get repository owner and name for project with dots, closes #151 (2778e31)

## v4.3.1 (2019-09-29)

### 🪲 Bug Fixes

- Support repo urls without git terminator (700e9f1)

## v4.3.0 (2019-09-06)

### ✨ Features

- Add the possibility to load configuration from pyproject.toml (35f8bfe)

- Allow the override of configuration options from cli, closes #119 (f0ac82f)

- Allow users to get version from tag and write/commit bump to file, closes #104 (1f9fe1c)

- Make the vcs functionalities work with gitlab, closes #121 (82d555d)

### 🪲 Bug Fixes

- Manage subgroups in git remote url, closes #139, #140 (4b11875)

- Update list of commit types to include build, ci and perf, closes #145 (41ea12f)

## v4.2.0 (2019-08-05)

### ✨ Features

- Add configuration to customize handling of dists, closes #115 (2af6f41)

- Add support for configuring branch, closes #43 (14abb05)

- Add support for showing unreleased changelog, closes #134 (41ef794)

### 🪲 Bug Fixes

- Add commit hash when generating breaking changes, closes #120 (0c74faf)

- Kept setting new version for tag source (0e24a56)

- Remove deletion of build folder, closes #115 (b45703d)

- Updated the tag tests (3303eef)

- Upgrade click to 7.0 (2c5dd80)

## v4.1.2 (2019-08-04)

### 🪲 Bug Fixes

- Correct isort build fail (0037210)

- Make sure the history only breaks loop for version commit, closes #135 (5dc6cfc)

- vcs: Allow cli to be run from subdirectory (fb7bb14)

### 📖 Documentation

- circleci: Point badge to master branch (9c7302e)

## v4.1.1 (2019-02-15)

### 📖 Documentation

- Correct usage of changelog (f4f59b0)

- Debug usage and related (f08e594)

- Describing the commands (b6fa04d)

- Update url for commit guidelinesThe guidelines can now be found in theDEVELOPERS.md in angular. (90c1b21)

## v4.1.0 (2019-01-31)

### ✨ Features

- ci_checks: Add support for bitbucket (9fc120d)

### 🪲 Bug Fixes

- Initialize git Repo from current folder (c7415e6)

- Maintain version variable formatting on bump (PR#103, bf63156)

- Use same changelog code for command as post (248f622)

### 📖 Documentation

- Add installation instructions for development (PR#106, 9168d0e)

- readme: Add testing instructions (bb352f5)

## v4.0.1 (2019-01-12)

### 🪲 Bug Fixes

- Add better error message when pypi credentials are empty, closes #96 (c4e5dcb)

- Clean out dist and build before building, closes #86 (b628e46)

- Filter out pypi secrets from exceptions, closes #41 (5918371)

- Unfreeze dependencies, closes #100 (847833b)

- Use correct syntax to exclude tests in package, closes #92 (3e41e91)

- parser_angular: Fix non-match when special chars in scope (8a33123)

### 📖 Documentation

- Remove reference to gitter, closes #90 (896e37b)

## v4.0.0 (2018-11-22)

### ✨ Features

- Add support for commit_message config variable (4de5400)

- CI checks: Add support for GitLab CI checks, closes #88 (8df5e2b)

### 🪲 Bug Fixes

- Add check of credentials (7d945d4)

- Add credentials check (0694604)

- Add dists to twine call (1cec2df)

- Change requests from fixed version to version range (PR#93, af3ad59)

- Re-add skip-existing (366e9c1)

- Remove repository argument in twine (e24543b)

- Remove universal from setup config (18b2402)

- Update twine (c4ae7b8)

- Use new interface for twine (c04872d)

- Use twine through cli call (ab84beb)

### 📖 Documentation

- Add type hints and more complete docstrings, closes #81 (a6d5e9b)

- Fix typo in documentation index (da6844b)

### ♻️ Refactoring

- Remove support for python 2 (85fe638)

### 💥 BREAKING CHANGES

- If you rely on the commit message to be the version number only, this will break your code

- This will only work with python 3 after this commit.

## v3.11.2 (2018-06-10)

### 🪲 Bug Fixes

- Upgrade twine (9722313)

## v3.11.1 (2018-06-06)

### 🪲 Bug Fixes

- Change Gitpython version number, closes #80 (23c9d4b)

### 📖 Documentation

- Add retry option to cli docs (021da50)

## v3.11.0 (2018-04-12)

### ✨ Features

- Add –retry cli option (PR#78, 3e312c0)

- Add support to finding previous version from tags if not using commit messages (PR#68, 6786487)

- Be a bit more forgiving to find previous tags (PR#68, 6786487)

### 🪲 Bug Fixes

- Add pytest cache to gitignore (b8efd5a)

- Make repo non if it is not a git repository, closes #74 (1dc306b)

### 📖 Documentation

- Define `--retry` usage (3e312c0)

- Remove old notes about trello board (7f50c52)

- Update status badges (cfa13b8)

## v3.10.3 (2018-01-29)

### 🪲 Bug Fixes

- Error when not in git repository, closes #74 (PR#75, 251b190)

## v3.10.2 (2017-08-03)

### 🪲 Bug Fixes

- Update call to upload to work with twine 1.9.1 (PR#72, 8f47643)

## v3.10.1 (2017-07-22)

### 🪲 Bug Fixes

- Update Twine (PR#69, 9f268c3)

## v3.10.0 (2017-05-05)

### ✨ Features

- Add git hash to the changelog (PR#65, 628170e)

### 🪲 Bug Fixes

- Make changelog problems not fail whole publish (b5a68cf)

### 📖 Documentation

- Fix typo in cli.py docstring (PR#64, 0d13985)

## v3.9.0 (2016-07-03)

### ✨ Features

- Add option for choosing between versioning by commit or tag (c0cd1f5)

- Don’t use file to track version, only tag to commit for versioning (cd25862)

- Get repo version from historical tags instead of config file (a45a9bf)

### 🪲 Bug Fixes

- Can’t get the proper last tag from commit history (5a0e681)

## v3.8.1 (2016-04-17)

### 🪲 Bug Fixes

- Add search_parent_directories option to gitpython (PR#62, 8bf9ce1)

## v3.8.0 (2016-03-21)

### ✨ Features

- Add ci checks for circle ci (151d849)

### 🪲 Bug Fixes

- Add git fetch to frigg after success (74a6cae)

- Make tag parser work correctly with breaking changes (9496f6a)

- Refactoring cli.py to improve –help and error messages (c79fc34)

### 📖 Documentation

- Add info about correct commit guidelines (af35413)

- Add info about trello board in readme (5229557)

- Fix badges in readme (7f4e549)

- Update info about releases in contributing.md (466f046)

## v3.7.2 (2016-03-19)

### 🪲 Bug Fixes

- Move code around a bit to make flake8 happy (41463b4)

## v3.7.1 (2016-03-15)

### 📖 Documentation

- configuration: Fix typo in setup.cfg section (725d87d)

## v3.7.0 (2016-01-10)

### ✨ Features

- Add ci_checks for Frigg CI (577c374)

## v3.6.1 (2016-01-10)

### 🪲 Bug Fixes

- Add requests as dependency (4525a70)

## v3.6.0 (2015-12-28)

### ✨ Features

- Add checks for semaphore, closes #44 (2d7ef15)

### 📖 Documentation

- Add documentation for configuring on CI (7806940)

- Add note about node semantic release (0d2866c)

- Add step by step guide for configuring travis ci (6f23414)

- Move automatic-releases to subfolder (ed68e5b)

- Remove duplicate readme (42a9421)

## v3.5.0 (2015-12-22)

### ✨ Features

- Add author in commit, closes #40 (020efaa)

- Checkout master before publishing (dc4077a)

### 🪲 Bug Fixes

- Remove “ from git push command (031318b)

### 📖 Documentation

- Convert readme to rst (e8a8d26)

## v3.4.0 (2015-12-22)

### ✨ Features

- Add travis environment checks (f386db7)

## v3.3.3 (2015-12-22)

### 🪲 Bug Fixes

- Do git push and git push –tags instead of –follow-tags (8bc70a1)

## v3.3.2 (2015-12-21)

### 🪲 Bug Fixes

- Change build badge (0dc068f)

### 📖 Documentation

- Update docstrings for generate_changelog (987c6a9)

## v3.3.1 (2015-12-21)

### 🪲 Bug Fixes

- Add pandoc to travis settings (17d40a7)

- Only list commits from the last version tag, closes #28 (191369e)

## v3.3.0 (2015-12-20)

### ✨ Features

- Add support for environment variables for pypi credentials (3b383b9)

### 🪲 Bug Fixes

- Add missing parameters to twine.upload (4bae22b)

- Better filtering of github token in push error (9b31da4)

- Downgrade twine to version 1.5.0 (66df378)

- Make sure the github token is not in the output (55356b7)

- Push to master by default (a0bb023)

## v3.2.1 (2015-12-20)

### 🪲 Bug Fixes

- Add requirements to manifest (ed25ecb)

- pypi: Add sdist as default in addition to bdist_wheel (a1a35f4)

## v3.2.0 (2015-12-20)

### ✨ Features

- angular-parser: Remove scope requirement (90c9d8d)

- git: Add push to GH_TOKEN@github-url (546b5bf)

### 🪲 Bug Fixes

- deps: Use one file for requirements (4868543)

## v3.1.0 (2015-08-31)

### ✨ Features

- pypi: Add option to disable pypi upload (f5cd079)

## v3.0.0 (2015-08-25)

### ✨ Features

- parser: Add tag parser (a7f392f)

### 🪲 Bug Fixes

- errors: Add exposing of errors in package (3662d76)

- version: Parse file instead for version (005dba0)

## v2.1.4 (2015-08-24)

### 🪲 Bug Fixes

- github: Fix property calls (7ecdeb2)

## v2.1.3 (2015-08-22)

### 🪲 Bug Fixes

- hvcs: Make Github.token an property (37d5e31)

### 📖 Documentation

- api: Update apidocs (6185380)

- parsers: Add documentation about commit parsers (9b55422)

- readme: Update readme with information about the changelog command (56a745e)

## v2.1.2 (2015-08-20)

### 🪲 Bug Fixes

- cli: Fix call to generate_changelog in publish (5f8bce4)

## v2.1.1 (2015-08-20)

### 🪲 Bug Fixes

- history: Fix issue in get_previous_version (f961786)

## v2.1.0 (2015-08-20)

### ✨ Features

- cli: Add the possibility to re-post the changelog (4d028e2)

### 🪲 Bug Fixes

- cli: Fix check of token in changelog command (cc6e6ab)

- github: Fix the github releases integration (f0c3c1d)

- history: Fix changelog generation (f010272)

## v2.0.0 (2015-08-19)

### ✨ Features

- cli: Add command for printing the changelog (336b8bc)

- github: Add github release changelog helper (da18795)

- history: Add angular parser (91e4f0f)

- history: Add generate_changelog function (347f21a)

- history: Add markdown changelog formatter (d77b58d)

- history: Set angular parser as the default (c2cf537)

- publish: Add publishing of changelog to github (74324ba)

- settings: Add loading of current parser (7bd0916)

### 🪲 Bug Fixes

- cli: Change output indentation on changelog (2ca41d3)

- history: Fix level id’s in angular parser (2918d75)

- history: Fix regex in angular parser (974ccda)

- history: Support unexpected types in changelog generator (13deacf)

### 💥 BREAKING CHANGES

- history: The default parser is now angular. Thus, the default behavior of the commit log evaluator will change. From now on it will use the angular commit message spec to determine the new version.

## v1.0.0 (2015-08-04)

### 💥 Breaking

- Restructure helpers into history and pypi (00f64e6)

### 📖 Documentation

- Add automatic publishing documentation, resolves #18 (58076e6)

## v0.9.1 (2015-08-04)

### 🪲 Bug Fixes

- Fix `get_current_head_hash` to ensure it only returns the hash (7c28832)

## v0.9.0 (2015-08-03)

### ✨ Features

- Add Python 2.7 support, resolves #10 (c05e13f)

## v0.8.0 (2015-08-03)

### ✨ Features

- Add `check_build_status` option, resolves #5 (310bb93)

- Add `get_current_head_hash` in git helpers (d864282)

- Add git helper to get owner and name of repo (f940b43)

## v0.7.0 (2015-08-02)

### ✨ Features

- Add `patch_without_tag` option, resolves #6 (3734a88)

### 📖 Documentation

- Set up sphinx based documentation, resolves #1 (41fba78)

## v0.6.0 (2015-08-02)

### ✨ Features

- Add twine for uploads to pypi, resolves #13 (eec2561)

## v0.5.4 (2015-07-29)

### 🪲 Bug Fixes

- Add python2 not supported warning (e84c4d8)

## v0.5.3 (2015-07-28)

### ⚙️ Build System

- Add `wheel` as a dependency (971e479)

## v0.5.2 (2015-07-28)

### 🪲 Bug Fixes

- Fix python wheel tag (f9ac163)

## v0.5.1 (2015-07-28)

### 🪲 Bug Fixes

- Fix push commands (8374ef6)

## v0.5.0 (2015-07-28)

### ✨ Features

- Add setup.py hook for the cli interface (c363bc5)

## v0.4.0 (2015-07-28)

### ✨ Features

- Add publish command (d8116c9)

## v0.3.2 (2015-07-28)

- No change

## v0.3.1 (2015-07-28)

### 🪲 Bug Fixes

- Fix wheel settings (1e860e8)

## v0.3.0 (2015-07-27)

### ✨ Features

- Add support for tagging releases (5f4736f)

### 🪲 Bug Fixes

- Fix issue when version should not change (441798a)

## v0.2.0 (2015-07-27)

### ✨ Features

- added no-operation (`--noop`) mode (44c2039)

### ⚙️ Build System

- Swapped pygit2 with gitpython to avoid libgit2 dependency (8165a2e)

## v0.1.1 (2015-07-27)

### 🪲 Bug Fixes

- Fix entry point (bd7ce7f)

## v0.1.0 (2015-07-27)

- Initial Release