Bug Fixes
- Correct version `--prerelease` use & enable `--as-prerelease`
([647](https://github.com/python-semantic-release/python-semantic-release/pull/647),
[`2acb5ac`](https://github.com/python-semantic-release/python-semantic-release/commit/2acb5ac35ae79d7ae25ca9a03fb5c6a4a68b3673))
* test(version): add validation of `--as-prerelease` and `--prerelease opts`
* fix(version-cmd): correct `--prerelease` use
Prior to this change, `--prerelease` performed the role of converting whichever forced version into
a prerelease version declaration, which was an unintentional breaking change to the CLI compared
to v7.
`--prerelease` now forces the next version to increment the prerelease revision, which makes it
consistent with `--patch`, `--minor` and `--major`. Temporarily disabled the ability to force a
prerelease.
Resolves: 639
* feat(version-cmd): add `--as-prerelease` option to force the next version to be a prerelease
Prior to this change, `--prerelease` performed the role that `--as-prerelease` now does, which was
an unintentional breaking change to the CLI compared to v7.
`--prerelease` is used to force the next version to increment the prerelease revision, which makes
it consistent with `--patch`, `--minor` and `--major`, while `--as-prerelease` forces for the next
version to be converted to a prerelease version type before it is applied to the project
regardless of the bump level.
* docs(commands): update version command options definition about prereleases
---------
Co-authored-by: codejedi365 <codejedi365gmail.com>
- **parser-custom**: Gracefully handle custom parser import errors
([`67f6038`](https://github.com/python-semantic-release/python-semantic-release/commit/67f60389e3f6e93443ea108c0e1b4d30126b8e06))
Features
- Changelog filters are specialized per vcs type
([890](https://github.com/python-semantic-release/python-semantic-release/pull/890),
[`76ed593`](https://github.com/python-semantic-release/python-semantic-release/commit/76ed593ea33c851005994f0d1a6a33cc890fb908))
* test(github): sync pr url expectation with GitHub api documentation
* fix(github): correct changelog filter for pull request urls
* refactor(hvcs-base): change to an abstract class & simplify interface
* refactor(remote-hvcs-base): extend the base abstract class with common remote base class
* refactor(github): adapt to new abstract base class
* refactor(gitea): adapt to new abstract base class
* refactor(gitlab): adapt to new abstract base class
* refactor(bitbucket): adapt to new abstract base class
* refactor(cmds): prevent hvcs from executing if not remote hosted vcs
* feat(changelog): changelog filters are hvcs focused
* test(hvcs): add validation for issue_url generation
* feat(changelog-github): add issue url filter to changelog context
* feat(changelog-gitea): add issue url filter to changelog context
* refactor(cmd-version): consolidate asset uploads with release creation
* style: resolve ruff errors
* feat(changelog-context): add flag to jinja env for which hvcs is available
* test(changelog-context): demonstrate per hvcs filters upon render
* docs(changelog-context): explain new hvcs specific context filters
* refactor(config): adjust default token resolution w/ subclasses