python-semantic-release 9.18.1__tar.gz → 9.19.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python_semantic_release-9.18.1/src/python_semantic_release.egg-info → python_semantic_release-9.19.0}/PKG-INFO +1 -1
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/automatic-releases/github-actions.rst +7 -7
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/changelog_templates.rst +4 -4
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/commit_parsing.rst +99 -19
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/configuration.rst +3 -2
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/index.rst +4 -3
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/migrating_from_v7.rst +15 -15
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/pyproject.toml +6 -1
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0/src/python_semantic_release.egg-info}/PKG-INFO +1 -1
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/python_semantic_release.egg-info/SOURCES.txt +2 -1
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/__init__.py +1 -1
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/cli/config.py +20 -1
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/commit_parser/__init__.py +4 -0
- python_semantic_release-9.19.0/src/semantic_release/commit_parser/conventional.py +31 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/const.py +7 -7
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_changelog/test_changelog.py +44 -44
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_changelog/test_changelog_custom_parser.py +6 -6
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_changelog/test_changelog_parsing.py +2 -2
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_changelog/test_changelog_release_notes.py +12 -12
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_config/test_generate_config.py +4 -4
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_publish/test_publish.py +4 -4
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_1_channel.py +2 -2
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_2_channels.py +2 -2
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_3_channels.py +4 -4
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_4_channels.py +2 -2
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/bump_version/github_flow/test_repo_1_channel.py +2 -2
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/bump_version/github_flow/test_repo_2_channels.py +2 -2
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk.py +2 -2
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk_dual_version_support.py +2 -2
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk_dual_version_support_w_prereleases.py +2 -2
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk_w_prereleases.py +2 -2
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/test_version.py +7 -7
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/test_version_build.py +5 -5
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/test_version_bump.py +117 -117
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/test_version_changelog.py +31 -31
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/test_version_changelog_custom_commit_msg.py +4 -4
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/test_version_github_actions.py +6 -2
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/test_version_print.py +35 -35
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/test_version_release_notes.py +3 -3
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/test_version_stamp.py +7 -7
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/test_version_strict.py +3 -3
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/test_help.py +4 -4
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/test_main.py +15 -9
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/commit_parsers.py +20 -20
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/example_project.py +7 -7
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/git_repo.py +23 -22
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/repos/git_flow/repo_w_1_release_channel.py +16 -16
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/repos/git_flow/repo_w_2_release_channels.py +17 -17
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/repos/git_flow/repo_w_3_release_channels.py +19 -19
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/repos/git_flow/repo_w_4_release_channels.py +15 -13
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/repos/github_flow/repo_w_default_release.py +11 -9
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/repos/github_flow/repo_w_release_channels.py +11 -9
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/repos/repo_initial_commit.py +2 -2
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/repos/trunk_based_dev/repo_w_dual_version_support.py +7 -7
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/repos/trunk_based_dev/repo_w_dual_version_support_w_prereleases.py +9 -9
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/repos/trunk_based_dev/repo_w_no_tags.py +8 -8
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/repos/trunk_based_dev/repo_w_prereleases.py +7 -7
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/repos/trunk_based_dev/repo_w_tags.py +7 -7
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/changelog/test_release_history.py +38 -38
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/cli/test_config.py +7 -7
- python_semantic_release-9.18.1/tests/unit/semantic_release/commit_parser/test_angular.py → python_semantic_release-9.19.0/tests/unit/semantic_release/commit_parser/test_conventional.py +65 -61
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/commit_parser/test_emoji.py +4 -4
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/commit_parser/test_scipy.py +4 -4
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/util.py +2 -2
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/AUTHORS.rst +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/LICENSE +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/MANIFEST.in +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/README.rst +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/Makefile +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/algorithm.rst +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/automatic-releases/cronjobs.rst +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/automatic-releases/index.rst +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/automatic-releases/travis.rst +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/commands.rst +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/conf.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/contributing.rst +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/contributors.rst +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/make.bat +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/multibranch_releases.rst +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/psr_changelog.rst +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/strict_mode.rst +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/troubleshooting.rst +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/setup.cfg +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/python_semantic_release.egg-info/dependency_links.txt +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/python_semantic_release.egg-info/entry_points.txt +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/python_semantic_release.egg-info/requires.txt +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/python_semantic_release.egg-info/top_level.txt +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/__main__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/changelog/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/changelog/context.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/changelog/release_history.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/changelog/template.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/cli/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/cli/changelog_writer.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/cli/cli_context.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/cli/commands/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/cli/commands/changelog.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/cli/commands/generate_config.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/cli/commands/main.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/cli/commands/publish.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/cli/commands/version.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/cli/const.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/cli/github_actions_output.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/cli/masking_filter.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/cli/util.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/commit_parser/_base.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/commit_parser/angular.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/commit_parser/emoji.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/commit_parser/scipy.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/commit_parser/tag.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/commit_parser/token.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/commit_parser/util.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/const.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/md/.components/changelog_header.md.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/md/.components/changelog_init.md.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/md/.components/changelog_update.md.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/md/.components/changes.md.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/md/.components/first_release.md.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/md/.components/macros.md.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/md/.components/unreleased_changes.md.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/md/.components/versioned_changes.md.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/md/.release_notes.md.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/md/CHANGELOG.md.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/rst/.components/changelog_header.rst.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/rst/.components/changelog_init.rst.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/rst/.components/changelog_update.rst.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/rst/.components/changes.rst.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/rst/.components/first_release.rst.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/rst/.components/macros.rst.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/rst/.components/unreleased_changes.rst.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/rst/.components/versioned_changes.rst.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/data/templates/angular/rst/CHANGELOG.rst.j2 +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/enums.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/errors.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/gitproject.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/globals.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/helpers.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/hvcs/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/hvcs/_base.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/hvcs/bitbucket.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/hvcs/gitea.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/hvcs/github.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/hvcs/gitlab.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/hvcs/remote_hvcs_base.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/hvcs/token_auth.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/hvcs/util.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/py.typed +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/version/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/version/algorithm.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/version/declaration.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/version/translator.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/version/version.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/conftest.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_changelog/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_config/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_publish/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/bump_version/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/bump_version/conftest.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/bump_version/git_flow/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/bump_version/github_flow/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/cmd_version/bump_version/trunk_based_dev/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/e2e/conftest.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/repos/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/repos/git_flow/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/repos/github_flow/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/repos/trunk_based_dev/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/fixtures/scipy.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/conftest.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/changelog/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/changelog/conftest.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/changelog/test_changelog_context.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/changelog/test_default_changelog.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/changelog/test_release_notes.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/changelog/test_template.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/changelog/test_template_render.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/cli/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/cli/test_github_actions_output.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/cli/test_masking_filter.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/cli/test_util.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/cli/test_version.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/commit_parser/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/commit_parser/test_parsed_commit.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/commit_parser/test_util.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/hvcs/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/hvcs/test__base.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/hvcs/test_bitbucket.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/hvcs/test_gitea.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/hvcs/test_github.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/hvcs/test_gitlab.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/hvcs/test_token_auth.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/hvcs/test_util.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/test_helpers.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/version/__init__.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/version/test_algorithm.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/version/test_declaration.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/version/test_translator.py +0 -0
- {python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/tests/unit/semantic_release/version/test_version.py +0 -0
|
@@ -337,7 +337,7 @@ before the :ref:`version <cmd-version>` subcommand.
|
|
|
337
337
|
|
|
338
338
|
.. code:: yaml
|
|
339
339
|
|
|
340
|
-
- uses: python-semantic-release/python-semantic-release@v9.18.
|
|
340
|
+
- uses: python-semantic-release/python-semantic-release@v9.18.1
|
|
341
341
|
with:
|
|
342
342
|
root_options: "-vv --noop"
|
|
343
343
|
|
|
@@ -576,7 +576,7 @@ before the :ref:`publish <cmd-publish>` subcommand.
|
|
|
576
576
|
|
|
577
577
|
.. code:: yaml
|
|
578
578
|
|
|
579
|
-
- uses: python-semantic-release/publish-action@v9.18.
|
|
579
|
+
- uses: python-semantic-release/publish-action@v9.18.1
|
|
580
580
|
with:
|
|
581
581
|
root_options: "-vv --noop"
|
|
582
582
|
|
|
@@ -684,7 +684,7 @@ to the GitHub Release Assets as well.
|
|
|
684
684
|
- name: Action | Semantic Version Release
|
|
685
685
|
id: release
|
|
686
686
|
# Adjust tag with desired version if applicable.
|
|
687
|
-
uses: python-semantic-release/python-semantic-release@v9.18.
|
|
687
|
+
uses: python-semantic-release/python-semantic-release@v9.18.1
|
|
688
688
|
with:
|
|
689
689
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
690
690
|
git_committer_name: "github-actions"
|
|
@@ -695,7 +695,7 @@ to the GitHub Release Assets as well.
|
|
|
695
695
|
if: steps.release.outputs.released == 'true'
|
|
696
696
|
|
|
697
697
|
- name: Publish | Upload to GitHub Release Assets
|
|
698
|
-
uses: python-semantic-release/publish-action@v9.18.
|
|
698
|
+
uses: python-semantic-release/publish-action@v9.18.1
|
|
699
699
|
if: steps.release.outputs.released == 'true'
|
|
700
700
|
with:
|
|
701
701
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -744,7 +744,7 @@ The equivalent GitHub Action configuration would be:
|
|
|
744
744
|
|
|
745
745
|
- name: Action | Semantic Version Release
|
|
746
746
|
# Adjust tag with desired version if applicable.
|
|
747
|
-
uses: python-semantic-release/python-semantic-release@v9.18.
|
|
747
|
+
uses: python-semantic-release/python-semantic-release@v9.18.1
|
|
748
748
|
with:
|
|
749
749
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
750
750
|
force: patch
|
|
@@ -772,13 +772,13 @@ Publish Action.
|
|
|
772
772
|
.. code:: yaml
|
|
773
773
|
|
|
774
774
|
- name: Release Project 1
|
|
775
|
-
uses: python-semantic-release/python-semantic-release@v9.18.
|
|
775
|
+
uses: python-semantic-release/python-semantic-release@v9.18.1
|
|
776
776
|
with:
|
|
777
777
|
directory: ./project1
|
|
778
778
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
779
779
|
|
|
780
780
|
- name: Release Project 2
|
|
781
|
-
uses: python-semantic-release/python-semantic-release@v9.18.
|
|
781
|
+
uses: python-semantic-release/python-semantic-release@v9.18.1
|
|
782
782
|
with:
|
|
783
783
|
directory: ./project2
|
|
784
784
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
{python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/changelog_templates.rst
RENAMED
|
@@ -71,8 +71,8 @@ A common and *highly-recommended* configuration option is the
|
|
|
71
71
|
:ref:`changelog.exclude_commit_patterns <config-changelog-exclude_commit_patterns>`
|
|
72
72
|
setting which allows the user to define regular expressions that will exclude commits
|
|
73
73
|
from the changelog output. This is useful to filter out change messages that are not
|
|
74
|
-
relevant to your external consumers (ex. ``ci`` and ``test`` in the
|
|
75
|
-
|
|
74
|
+
relevant to your external consumers (ex. ``ci`` and ``test`` in the conventional commit
|
|
75
|
+
standard) and only include the important changes that impact the consumer of your
|
|
76
76
|
software.
|
|
77
77
|
|
|
78
78
|
Another important configuration option is the :ref:`changelog.mode <config-changelog-mode>`
|
|
@@ -228,7 +228,7 @@ Configuration Examples
|
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
230
|
|
|
231
|
-
3. Goal: Configure an initializing reStructuredText changelog with filtered
|
|
231
|
+
3. Goal: Configure an initializing reStructuredText changelog with filtered conventional
|
|
232
232
|
commits patterns and merge commits within a custom config file ``releaserc.toml``.
|
|
233
233
|
|
|
234
234
|
.. code:: toml
|
|
@@ -282,7 +282,7 @@ for defining a custom template directory):
|
|
|
282
282
|
semantic-release --noop changelog --post-to-release-tag v1.0.0
|
|
283
283
|
|
|
284
284
|
The default template provided by PSR will respect the
|
|
285
|
-
:ref
|
|
285
|
+
:ref:`config-changelog-default_templates-mask_initial_release` setting and
|
|
286
286
|
will also add a comparison link to the previous release if one exists without
|
|
287
287
|
customization.
|
|
288
288
|
|
|
@@ -33,7 +33,7 @@ to handle your specific commit message style.
|
|
|
33
33
|
features are added beyond the scope of the original commit message style guidelines.
|
|
34
34
|
|
|
35
35
|
Other tools may not follow the same conventions as PSR's guideline extensions, so
|
|
36
|
-
if you plan to use any similar programs in
|
|
36
|
+
if you plan to use any similar programs in tandem with PSR, you should be aware of the
|
|
37
37
|
differences in feature support and fall back to the official format guidelines if
|
|
38
38
|
necessary.
|
|
39
39
|
|
|
@@ -48,27 +48,110 @@ Built-in Commit Parsers
|
|
|
48
48
|
|
|
49
49
|
The following parsers are built in to Python Semantic Release:
|
|
50
50
|
|
|
51
|
-
- :ref:`
|
|
51
|
+
- :ref:`ConventionalCommitParser <commit_parser-builtin-conventional>`
|
|
52
|
+
- :ref:`AngularCommitParser <commit_parser-builtin-angular>` *(deprecated in ${NEW_RELEASE_TAG})*
|
|
52
53
|
- :ref:`EmojiCommitParser <commit_parser-builtin-emoji>`
|
|
53
54
|
- :ref:`ScipyCommitParser <commit_parser-builtin-scipy>`
|
|
54
55
|
- :ref:`TagCommitParser <commit_parser-builtin-tag>` *(deprecated in v9.12.0)*
|
|
55
56
|
|
|
56
57
|
----
|
|
57
58
|
|
|
59
|
+
.. _commit_parser-builtin-conventional:
|
|
60
|
+
|
|
61
|
+
Conventional Commits Parser
|
|
62
|
+
"""""""""""""""""""""""""""
|
|
63
|
+
|
|
64
|
+
*Introduced in ${NEW_RELEASE_TAG}*
|
|
65
|
+
|
|
66
|
+
A parser that is designed to parse commits formatted according to the
|
|
67
|
+
`Conventional Commits Specification`_. The parser is implemented with the following
|
|
68
|
+
logic in relation to how PSR's core features:
|
|
69
|
+
|
|
70
|
+
- **Version Bump Determination**: This parser extracts the commit type from the subject
|
|
71
|
+
line of the commit (the first line of a commit message). This type is matched against
|
|
72
|
+
the configuration mapping to determine the level bump for the specific commit. If the
|
|
73
|
+
commit type is not found in the configuration mapping, the commit is considered a
|
|
74
|
+
non-parsable commit and will return it as a ParseError object and ultimately a commit
|
|
75
|
+
of type ``"unknown"``. The configuration mapping contains lists of commit types that
|
|
76
|
+
correspond to the level bump for each commit type. Some commit types are still valid
|
|
77
|
+
do not trigger a level bump, such as ``"chore"`` or ``"docs"``. You can also configure
|
|
78
|
+
the default level bump
|
|
79
|
+
:ref:`commit_parser_options.default_level_bump <config-commit_parser_options>` if desired.
|
|
80
|
+
To trigger a major release, the commit message body must contain a paragraph that begins
|
|
81
|
+
with ``BREAKING CHANGE:``. This will override the level bump determined by the commit type.
|
|
82
|
+
|
|
83
|
+
- **Changelog Generation**: PSR will group commits in the changelog by the commit type used
|
|
84
|
+
in the commit message. The commit type shorthand is converted to a more human-friendly
|
|
85
|
+
section heading and then used as the version section title of the changelog and release
|
|
86
|
+
notes. Under the section title, the parsed commit descriptions are listed out in full. If
|
|
87
|
+
the commit includes an optional scope, then the scope is prefixed on to the first line of
|
|
88
|
+
the commit description. If a commit has any breaking change prefixed paragraphs in the
|
|
89
|
+
commit message body, those paragraphs are separated out into a "Breaking Changes" section
|
|
90
|
+
in the changelog (Breaking Changes section is available from the default changelog in
|
|
91
|
+
v9.15.0). Each breaking change paragraph is listed in a bulleted list format across the
|
|
92
|
+
entire version. A single commit is allowed to have more than one breaking change
|
|
93
|
+
prefixed paragraph (as opposed to the `Conventional Commits Specification`_). Commits
|
|
94
|
+
with an optional scope and a breaking change will have the scope prefixed on to the
|
|
95
|
+
breaking change paragraph. Parsing errors will return a ParseError object and ultimately
|
|
96
|
+
a commit of type ``"unknown"``. Unknown commits are consolidated into an "Unknown" section
|
|
97
|
+
in the changelog by the default template. To remove unwanted commits from the changelog
|
|
98
|
+
that normally are placed in the "unknown" section, consider the use of the configuration
|
|
99
|
+
option :ref:`changelog.exclude_commit_patterns <config-changelog-exclude_commit_patterns>`
|
|
100
|
+
to ignore those commit styles.
|
|
101
|
+
|
|
102
|
+
- **Pull/Merge Request Identifier Detection**: This parser implements PSR's
|
|
103
|
+
:ref:`commit_parser-builtin-linked_merge_request_detection` to identify and extract
|
|
104
|
+
pull/merge request numbers. The parser will return a string value if a pull/merge
|
|
105
|
+
request number is found in the commit message. If no pull/merge request number is
|
|
106
|
+
found, the parser will return an empty string.
|
|
107
|
+
|
|
108
|
+
- **Linked Issue Identifier Detection**: This parser implements PSR's
|
|
109
|
+
:ref:`commit_parser-builtin-issue_number_detection` to identify and extract issue numbers.
|
|
110
|
+
The parser will return a tuple of issue numbers as strings if any are found in the commit
|
|
111
|
+
message. If no issue numbers are found, the parser will return an empty tuple.
|
|
112
|
+
|
|
113
|
+
- **Squash Commit Evaluation**: This parser implements PSR's
|
|
114
|
+
:ref:`commit_parser-builtin-squash_commit_evaluation` to identify and extract each commit
|
|
115
|
+
message as a separate commit message within a single squashed commit. You can toggle this
|
|
116
|
+
feature on/off via the :ref:`config-commit_parser_options` setting.
|
|
117
|
+
|
|
118
|
+
- **Release Notice Footer Detection**: This parser implements PSR's
|
|
119
|
+
:ref:`commit_parser-builtin-release_notice_footer_detection`, which is a custom extension
|
|
120
|
+
to traditional `Conventional Commits Specification`_ to use the ``NOTICE`` keyword as a git
|
|
121
|
+
footer to document additional release information that is not considered a breaking change.
|
|
122
|
+
|
|
123
|
+
**Limitations**:
|
|
124
|
+
|
|
125
|
+
- Commits with the ``revert`` type are not currently supported. Track the implementation
|
|
126
|
+
of this feature in the issue `#402`_.
|
|
127
|
+
|
|
128
|
+
If no commit parser options are provided via the configuration, the parser will use PSR's
|
|
129
|
+
built-in
|
|
130
|
+
:py:class:`defaults <semantic_release.commit_parser.conventional.ConventionalCommitParserOptions>`.
|
|
131
|
+
|
|
132
|
+
.. _#402: https://github.com/python-semantic-release/python-semantic-release/issues/402
|
|
133
|
+
.. _Conventional Commits Specification: https://www.conventionalcommits.org/en/v1.0.0
|
|
134
|
+
|
|
135
|
+
----
|
|
136
|
+
|
|
58
137
|
.. _commit_parser-builtin-angular:
|
|
59
138
|
|
|
60
139
|
Angular Commit Parser
|
|
61
140
|
"""""""""""""""""""""
|
|
62
141
|
|
|
142
|
+
.. warning::
|
|
143
|
+
This parser was deprecated in ``${NEW_RELEASE_TAG}``. It will be removed in a future release.
|
|
144
|
+
This parser is being replaced by the :ref:`commit_parser-builtin-conventional`.
|
|
145
|
+
|
|
63
146
|
A parser that is designed to parse commits formatted according to the
|
|
64
147
|
`Angular Commit Style Guidelines`_. The parser is implemented with the following
|
|
65
148
|
logic in relation to how PSR's core features:
|
|
66
149
|
|
|
67
150
|
- **Version Bump Determination**: This parser extracts the commit type from the subject
|
|
68
|
-
line of the commit (the first line of a commit
|
|
151
|
+
line of the commit (the first line of a commit message). This type is matched against
|
|
69
152
|
the configuration mapping to determine the level bump for the specific commit. If the
|
|
70
153
|
commit type is not found in the configuration mapping, the commit is considered a
|
|
71
|
-
non-
|
|
154
|
+
non-parsable commit and will return it as a ParseError object and ultimately a commit
|
|
72
155
|
of type ``"unknown"``. The configuration mapping contains lists of commit types that
|
|
73
156
|
correspond to the level bump for each commit type. Some commit types are still valid
|
|
74
157
|
do not trigger a level bump, such as ``"chore"`` or ``"docs"``. You can also configure
|
|
@@ -129,10 +212,7 @@ If no commit parser options are provided via the configuration, the parser will
|
|
|
129
212
|
built-in :py:class:`defaults <semantic_release.commit_parser.angular.AngularParserOptions>`.
|
|
130
213
|
|
|
131
214
|
.. _#402: https://github.com/python-semantic-release/python-semantic-release/issues/402
|
|
132
|
-
.. _#733: https://github.com/python-semantic-release/python-semantic-release/issues/733
|
|
133
|
-
.. _#1085: https://github.com/python-semantic-release/python-semantic-release/issues/1085
|
|
134
215
|
.. _Angular Commit Style Guidelines: https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#commits
|
|
135
|
-
.. _PR#1112: https://github.com/python-semantic-release/python-semantic-release/pull/1112
|
|
136
216
|
|
|
137
217
|
----
|
|
138
218
|
|
|
@@ -151,7 +231,7 @@ commit messages. The parser is implemented with the following logic in relation
|
|
|
151
231
|
how PSR's core features:
|
|
152
232
|
|
|
153
233
|
- **Version Bump Determination**: This parser only looks for emojis in the subject
|
|
154
|
-
line of the commit (the first line of a commit
|
|
234
|
+
line of the commit (the first line of a commit message). If more than one emoji is
|
|
155
235
|
found, the emoji configured with the highest priority is selected for the change impact
|
|
156
236
|
for the specific commit. The emoji with the highest priority is the one configured in the
|
|
157
237
|
``major`` configuration option, followed by the ``minor``, and ``patch`` in descending
|
|
@@ -209,7 +289,7 @@ Scipy Commit Parser
|
|
|
209
289
|
"""""""""""""""""""
|
|
210
290
|
|
|
211
291
|
A parser that is designed to parse commits formatted according to the
|
|
212
|
-
`Scipy Commit Style
|
|
292
|
+
`Scipy Commit Style Guidelines`_. This is essentially a variation of the `Angular Commit Style
|
|
213
293
|
Guidelines`_ with all different commit types. Because of this small variance, this parser
|
|
214
294
|
only extends our :ref:`commit_parser-builtin-angular` parser with pre-defined scipy commit types
|
|
215
295
|
in the default Scipy Parser Options and all other features are inherited.
|
|
@@ -217,7 +297,7 @@ in the default Scipy Parser Options and all other features are inherited.
|
|
|
217
297
|
If no commit parser options are provided via the configuration, the parser will use PSR's
|
|
218
298
|
built-in :py:class:`defaults <semantic_release.commit_parser.scipy.ScipyParserOptions>`.
|
|
219
299
|
|
|
220
|
-
.. _Scipy Commit Style
|
|
300
|
+
.. _Scipy Commit Style Guidelines: https://scipy.github.io/devdocs/dev/contributor/development_workflow.html#writing-the-commit-message
|
|
221
301
|
|
|
222
302
|
----
|
|
223
303
|
|
|
@@ -246,7 +326,7 @@ Common Linked Merge Request Detection
|
|
|
246
326
|
|
|
247
327
|
All of the PSR built-in parsers implement common pull/merge request identifier detection
|
|
248
328
|
logic to extract pull/merge request numbers from the commit message regardless of the
|
|
249
|
-
VCS platform. The parsers evaluate the subject line for a
|
|
329
|
+
VCS platform. The parsers evaluate the subject line for a parenthesis-enclosed number
|
|
250
330
|
at the end of the line. PSR's parsers will return a string value if a pull/merge request
|
|
251
331
|
number is found in the commit message. If no pull/merge request number is found, the
|
|
252
332
|
parsers will return an empty string.
|
|
@@ -291,7 +371,7 @@ for your VCS. PSR supports the following case-insensitive prefixes and their con
|
|
|
291
371
|
- implement (implements, implementing, implemented)
|
|
292
372
|
|
|
293
373
|
PSR also allows for a more flexible approach to identifying more than one issue number without
|
|
294
|
-
the need of extra git
|
|
374
|
+
the need of extra git trailers (although PSR does support multiple git trailers). PSR support
|
|
295
375
|
various list formats which can be used to identify more than one issue in a list. This format
|
|
296
376
|
will not necessarily work on your VCS. PSR currently support the following list formats:
|
|
297
377
|
|
|
@@ -364,7 +444,7 @@ will be evaluated individually for both the level bump and changelog generation.
|
|
|
364
444
|
squash commits are found, a list with the single commit object will be returned.
|
|
365
445
|
|
|
366
446
|
Currently, PSR has been tested against GitHub, BitBucket, and official ``git`` squash
|
|
367
|
-
merge
|
|
447
|
+
merge commit messages. GitLab does not have a default template for squash commit messages
|
|
368
448
|
but can be customized per project or server. If you are using GitLab, you will need to
|
|
369
449
|
ensure that the squash commit message format is similar to the example below.
|
|
370
450
|
|
|
@@ -381,10 +461,10 @@ formatted squash commit message of conventional commit style:*
|
|
|
381
461
|
|
|
382
462
|
* docs(configuration): defined new config option for the project
|
|
383
463
|
|
|
384
|
-
When parsed with the default
|
|
385
|
-
bump will be determined by the highest level bump of the three commits (in
|
|
386
|
-
minor bump because of the feature commit) and the release notes would look
|
|
387
|
-
the following:
|
|
464
|
+
When parsed with the default conventional-commit parser with squash commits toggled on,
|
|
465
|
+
the version bump will be determined by the highest level bump of the three commits (in
|
|
466
|
+
this case, a minor bump because of the feature commit) and the release notes would look
|
|
467
|
+
similar to the following:
|
|
388
468
|
|
|
389
469
|
.. code-block:: markdown
|
|
390
470
|
|
|
@@ -582,7 +662,8 @@ A subclass must implement the following:
|
|
|
582
662
|
:py:class:`ParseResult <semantic_release.commit_parser.token.ParseResult>`, or a
|
|
583
663
|
subclass of this.
|
|
584
664
|
|
|
585
|
-
By default, the constructor for
|
|
665
|
+
By default, the constructor for
|
|
666
|
+
:py:class:`CommitParser <semantic_release.commit_parser._base.CommitParser>`
|
|
586
667
|
will set the ``options`` parameter on the ``options`` attribute of the parser, so there
|
|
587
668
|
is no need to override this in order to access ``self.options`` during the ``parse``
|
|
588
669
|
method. However, if you have any parsing logic that needs to be done only once, it may
|
|
@@ -610,5 +691,4 @@ Therefore, a custom commit parser could be implemented via:
|
|
|
610
691
|
def parse(self, commit: git.objects.commit.Commit) -> semantic_release.ParseResult:
|
|
611
692
|
...
|
|
612
693
|
|
|
613
|
-
.. _angular commit guidelines: https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#commits
|
|
614
694
|
.. _gitpython-commit-object: https://gitpython.readthedocs.io/en/stable/reference.html#module-git.objects.commit
|
|
@@ -790,7 +790,8 @@ Specify which commit parser Python Semantic Release should use to parse the comm
|
|
|
790
790
|
within the Git repository.
|
|
791
791
|
|
|
792
792
|
Built-in parsers:
|
|
793
|
-
* ``angular`` - :ref:`AngularCommitParser <commit_parser-builtin-angular>`
|
|
793
|
+
* ``angular`` - :ref:`AngularCommitParser <commit_parser-builtin-angular>` *(deprecated in ${NEW_RELEASE_TAG})*
|
|
794
|
+
* ``conventional`` - :ref:`ConventionalCommitParser <commit_parser-builtin-conventional>` *(available in ${NEW_RELEASE_TAG}+)*
|
|
794
795
|
* ``emoji`` - :ref:`EmojiCommitParser <commit_parser-builtin-emoji>`
|
|
795
796
|
* ``scipy`` - :ref:`ScipyCommitParser <commit_parser-builtin-scipy>`
|
|
796
797
|
* ``tag`` - :ref:`TagCommitParser <commit_parser-builtin-tag>` *(deprecated in v9.12.0)*
|
|
@@ -800,7 +801,7 @@ your own commit parser in ``path/to/module_file.py:Class`` or ``module:Class`` f
|
|
|
800
801
|
|
|
801
802
|
For more information see :ref:`commit-parsing`.
|
|
802
803
|
|
|
803
|
-
**Default:** ``"
|
|
804
|
+
**Default:** ``"conventional"``
|
|
804
805
|
|
|
805
806
|
----
|
|
806
807
|
|
|
@@ -140,9 +140,8 @@ Setting up commit parsing
|
|
|
140
140
|
-------------------------
|
|
141
141
|
|
|
142
142
|
We rely on commit messages to detect when a version bump is needed.
|
|
143
|
-
By default, Python Semantic Release uses the
|
|
144
|
-
|
|
145
|
-
You can find out more about this in :ref:`commit-parsing`.
|
|
143
|
+
By default, Python Semantic Release uses the `Conventional Commits Specification`_
|
|
144
|
+
to parse commit messages. You can find out more about this in :ref:`commit-parsing`.
|
|
146
145
|
|
|
147
146
|
.. seealso::
|
|
148
147
|
- :ref:`config-branches` - Adding configuration for releases from multiple branches.
|
|
@@ -150,6 +149,8 @@ You can find out more about this in :ref:`commit-parsing`.
|
|
|
150
149
|
For example, Python Semantic Release also ships with emoji and scipy-style parsers.
|
|
151
150
|
- :ref:`remote.type <config-remote-type>` - specify the type of your remote VCS.
|
|
152
151
|
|
|
152
|
+
.. _Conventional Commits Specification: https://www.conventionalcommits.org/en/v1.0.0
|
|
153
|
+
|
|
153
154
|
Setting up the changelog
|
|
154
155
|
------------------------
|
|
155
156
|
|
{python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/docs/migrating_from_v7.rst
RENAMED
|
@@ -8,7 +8,7 @@ The internals have been changed significantly to better support highly-requested
|
|
|
8
8
|
features and to streamline the maintenance of the project.
|
|
9
9
|
|
|
10
10
|
As a result, certain things have been removed, reimplemented differently, or now
|
|
11
|
-
exhibit different
|
|
11
|
+
exhibit different behavior to earlier versions of Python Semantic Release. This
|
|
12
12
|
page is a guide to help projects to ``pip install python-semantic-release>=8.0.0`` with
|
|
13
13
|
fewer surprises.
|
|
14
14
|
|
|
@@ -19,12 +19,12 @@ Python Semantic Release GitHub Action
|
|
|
19
19
|
|
|
20
20
|
.. _breaking-removed-artefact-upload:
|
|
21
21
|
|
|
22
|
-
GitHub Action no longer publishes
|
|
22
|
+
GitHub Action no longer publishes artifacts to PyPI or GitHub Releases
|
|
23
23
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
24
24
|
|
|
25
25
|
Python Semantic Release no longer uploads distributions to PyPI - see
|
|
26
26
|
:ref:`breaking-commands-repurposed-version-and-publish`. If you are
|
|
27
|
-
using Python Semantic Release to publish release notes and
|
|
27
|
+
using Python Semantic Release to publish release notes and artifacts to
|
|
28
28
|
GitHub releases, there is a new GitHub Action `upload-to-gh-release`_
|
|
29
29
|
which will perform this action for you.
|
|
30
30
|
|
|
@@ -143,7 +143,7 @@ Repurposing of ``version`` and ``publish`` commands
|
|
|
143
143
|
"""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
144
144
|
Python Semantic Release's primary purpose is to enable automation of correct semantic
|
|
145
145
|
versioning for software projects. Over the years, this automation has been extended to
|
|
146
|
-
include other actions such as building/publishing the project and its
|
|
146
|
+
include other actions such as building/publishing the project and its artifacts to
|
|
147
147
|
artefact repositories, creating releases in remote version control systems, and writing
|
|
148
148
|
changelogs.
|
|
149
149
|
|
|
@@ -152,9 +152,9 @@ performing every piece of automation provided. This has been changed - the ``ver
|
|
|
152
152
|
command now handles determining the next version, applying the changes to the project
|
|
153
153
|
metadata according to the configuration, writing a changelog, and committing/pushing
|
|
154
154
|
changes to the remote Git repository. It also handles creating a release in the remote
|
|
155
|
-
VCS. It does *not* publish software
|
|
155
|
+
VCS. It does *not* publish software artifacts to remote repositories such as PyPI;
|
|
156
156
|
the rationale behind this decision is simply that under the hood, Python Semantic Release
|
|
157
|
-
used `twine`_ to upload
|
|
157
|
+
used `twine`_ to upload artifacts to package indexes such as PyPI, and it's recommended
|
|
158
158
|
to use twine directly via the command-line. From the twine
|
|
159
159
|
`documentation <https://twine.readthedocs.io/en/stable/contributing.html#architectural-overview>`_:
|
|
160
160
|
|
|
@@ -162,7 +162,7 @@ to use twine directly via the command-line. From the twine
|
|
|
162
162
|
|
|
163
163
|
As a result Python Semantic Release no longer depends on twine internals.
|
|
164
164
|
|
|
165
|
-
The ``publish`` command now handles publishing software
|
|
165
|
+
The ``publish`` command now handles publishing software artifacts to releases in the
|
|
166
166
|
remote version control system.
|
|
167
167
|
|
|
168
168
|
.. _twine: https://twine.readthedocs.io/en/stable
|
|
@@ -477,17 +477,17 @@ tag ``v1.1.4``, you should run::
|
|
|
477
477
|
|
|
478
478
|
semantic-release changelog --post-to-release-tag v1.1.4
|
|
479
479
|
|
|
480
|
-
.. _breaking-changelog-
|
|
480
|
+
.. _breaking-changelog-customization:
|
|
481
481
|
|
|
482
|
-
Changelog
|
|
482
|
+
Changelog customization
|
|
483
483
|
"""""""""""""""""""""""
|
|
484
484
|
|
|
485
|
-
A number of options relevant to
|
|
485
|
+
A number of options relevant to customizing the changelog have been removed. This is
|
|
486
486
|
because Python Semantic Release now supports authoring a completely custom `Jinja`_
|
|
487
487
|
template with the contents of your changelog.
|
|
488
488
|
Historically, the number of options added to Python Semantic Release in order to
|
|
489
|
-
allow this
|
|
490
|
-
fully open up
|
|
489
|
+
allow this customization has grown significantly; it now uses templates in order to
|
|
490
|
+
fully open up customizing the changelog's appearance.
|
|
491
491
|
|
|
492
492
|
.. _Jinja: https://jinja.palletsprojects.com/en/3.1.x/
|
|
493
493
|
|
|
@@ -499,7 +499,7 @@ Configuration
|
|
|
499
499
|
|
|
500
500
|
The configuration structure has been completely reworked, so you should read
|
|
501
501
|
:ref:`configuration` carefully during the process of upgrading to v8+. However,
|
|
502
|
-
some common pitfalls and potential sources of confusion are
|
|
502
|
+
some common pitfalls and potential sources of confusion are summarized here.
|
|
503
503
|
|
|
504
504
|
.. _breaking-configuration-setup-cfg-unsupported:
|
|
505
505
|
|
|
@@ -520,7 +520,7 @@ needs.
|
|
|
520
520
|
.. warning::
|
|
521
521
|
|
|
522
522
|
If you don't already have a ``pyproject.toml`` configuration file, ``pip`` can
|
|
523
|
-
change its
|
|
523
|
+
change its behavior once you add one, as a result of `PEP-517`_. If you find
|
|
524
524
|
that this breaks your packaging, you can add your Python Semantic Release
|
|
525
525
|
configuration to a separate file such as ``semantic-release.toml``, and use
|
|
526
526
|
the :ref:`--config <cmd-main-option-config>` option to reference this alternative
|
|
@@ -539,7 +539,7 @@ Commit parser options
|
|
|
539
539
|
|
|
540
540
|
Options such as ``major_emoji``, ``parser_angular_patch_types`` or
|
|
541
541
|
``parser_angular_default_level_bump`` have been removed. Instead, these have been
|
|
542
|
-
replaced with a single set of
|
|
542
|
+
replaced with a single set of recognized commit parser options, ``allowed_tags``,
|
|
543
543
|
``major_tags``, ``minor_tags``, and ``patch_tags``, though the interpretation of
|
|
544
544
|
these is up to the specific parsers in use. You can read more detail about using
|
|
545
545
|
commit parser options in :ref:`commit_parser_options <config-commit_parser_options>`,
|
|
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "python-semantic-release"
|
|
9
|
-
version = "9.
|
|
9
|
+
version = "9.19.0"
|
|
10
10
|
description = "Automatic Semantic Versioning for Python projects"
|
|
11
11
|
requires-python = ">=3.8"
|
|
12
12
|
license = { text = "MIT" }
|
|
@@ -436,6 +436,11 @@ match = "^(feat|fix|perf)/.+"
|
|
|
436
436
|
prerelease = true
|
|
437
437
|
prerelease_token = "alpha"
|
|
438
438
|
|
|
439
|
+
[tool.semantic_release.branches.dev]
|
|
440
|
+
match = ".+"
|
|
441
|
+
prerelease = true
|
|
442
|
+
prerelease_token = "dev"
|
|
443
|
+
|
|
439
444
|
[tool.semantic_release.remote]
|
|
440
445
|
type = "github"
|
|
441
446
|
token = { env = "GH_TOKEN" }
|
|
@@ -59,6 +59,7 @@ src/semantic_release/cli/commands/version.py
|
|
|
59
59
|
src/semantic_release/commit_parser/__init__.py
|
|
60
60
|
src/semantic_release/commit_parser/_base.py
|
|
61
61
|
src/semantic_release/commit_parser/angular.py
|
|
62
|
+
src/semantic_release/commit_parser/conventional.py
|
|
62
63
|
src/semantic_release/commit_parser/emoji.py
|
|
63
64
|
src/semantic_release/commit_parser/scipy.py
|
|
64
65
|
src/semantic_release/commit_parser/tag.py
|
|
@@ -180,7 +181,7 @@ tests/unit/semantic_release/cli/test_masking_filter.py
|
|
|
180
181
|
tests/unit/semantic_release/cli/test_util.py
|
|
181
182
|
tests/unit/semantic_release/cli/test_version.py
|
|
182
183
|
tests/unit/semantic_release/commit_parser/__init__.py
|
|
183
|
-
tests/unit/semantic_release/commit_parser/
|
|
184
|
+
tests/unit/semantic_release/commit_parser/test_conventional.py
|
|
184
185
|
tests/unit/semantic_release/commit_parser/test_emoji.py
|
|
185
186
|
tests/unit/semantic_release/commit_parser/test_parsed_commit.py
|
|
186
187
|
tests/unit/semantic_release/commit_parser/test_scipy.py
|
{python_semantic_release-9.18.1 → python_semantic_release-9.19.0}/src/semantic_release/cli/config.py
RENAMED
|
@@ -39,6 +39,7 @@ from semantic_release.cli.masking_filter import MaskingFilter
|
|
|
39
39
|
from semantic_release.commit_parser import (
|
|
40
40
|
AngularCommitParser,
|
|
41
41
|
CommitParser,
|
|
42
|
+
ConventionalCommitParser,
|
|
42
43
|
EmojiCommitParser,
|
|
43
44
|
ParseResult,
|
|
44
45
|
ParserOptions,
|
|
@@ -73,6 +74,7 @@ class HvcsClient(str, Enum):
|
|
|
73
74
|
|
|
74
75
|
|
|
75
76
|
_known_commit_parsers: Dict[str, type[CommitParser]] = {
|
|
77
|
+
"conventional": ConventionalCommitParser,
|
|
76
78
|
"angular": AngularCommitParser,
|
|
77
79
|
"emoji": EmojiCommitParser,
|
|
78
80
|
"scipy": ScipyCommitParser,
|
|
@@ -355,7 +357,7 @@ class RawConfig(BaseModel):
|
|
|
355
357
|
env="GIT_COMMIT_AUTHOR", default=DEFAULT_COMMIT_AUTHOR
|
|
356
358
|
)
|
|
357
359
|
commit_message: str = COMMIT_MESSAGE
|
|
358
|
-
commit_parser: NonEmptyString = "
|
|
360
|
+
commit_parser: NonEmptyString = "conventional"
|
|
359
361
|
# It's up to the parser_options() method to validate these
|
|
360
362
|
commit_parser_options: Dict[str, Any] = {}
|
|
361
363
|
logging_use_named_masks: bool = False
|
|
@@ -414,6 +416,22 @@ class RawConfig(BaseModel):
|
|
|
414
416
|
)
|
|
415
417
|
return val
|
|
416
418
|
|
|
419
|
+
@field_validator("commit_parser", mode="after")
|
|
420
|
+
@classmethod
|
|
421
|
+
def angular_commit_parser_deprecation_warning(cls, val: str) -> str:
|
|
422
|
+
if val == "angular":
|
|
423
|
+
log.warning(
|
|
424
|
+
str.join(
|
|
425
|
+
" ",
|
|
426
|
+
[
|
|
427
|
+
"The 'angular' parser is deprecated and will be removed in v11.",
|
|
428
|
+
"The Angular parser is being renamed to the conventional commit parser,",
|
|
429
|
+
"which is selected by switching the 'commit_parser' value to 'conventional'.",
|
|
430
|
+
],
|
|
431
|
+
)
|
|
432
|
+
)
|
|
433
|
+
return val
|
|
434
|
+
|
|
417
435
|
@field_validator("build_command_env", mode="after")
|
|
418
436
|
@classmethod
|
|
419
437
|
def remove_whitespace(cls, val: list[str]) -> list[str]:
|
|
@@ -863,6 +881,7 @@ class RuntimeContext:
|
|
|
863
881
|
changelog_excluded_commit_patterns=changelog_excluded_commit_patterns,
|
|
864
882
|
# TODO: change when we have other styles per parser
|
|
865
883
|
# changelog_style=changelog_style,
|
|
884
|
+
# TODO: Breaking Change v10, change to conventional
|
|
866
885
|
changelog_style="angular",
|
|
867
886
|
changelog_output_format=raw.changelog.default_templates.output_format,
|
|
868
887
|
prerelease=branch_config.prerelease,
|
|
@@ -6,6 +6,10 @@ from semantic_release.commit_parser.angular import (
|
|
|
6
6
|
AngularCommitParser,
|
|
7
7
|
AngularParserOptions,
|
|
8
8
|
)
|
|
9
|
+
from semantic_release.commit_parser.conventional import (
|
|
10
|
+
ConventionalCommitParser,
|
|
11
|
+
ConventionalCommitParserOptions,
|
|
12
|
+
)
|
|
9
13
|
from semantic_release.commit_parser.emoji import (
|
|
10
14
|
EmojiCommitParser,
|
|
11
15
|
EmojiParserOptions,
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from pydantic.dataclasses import dataclass
|
|
4
|
+
|
|
5
|
+
from semantic_release.commit_parser.angular import (
|
|
6
|
+
AngularCommitParser,
|
|
7
|
+
AngularParserOptions,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@dataclass
|
|
12
|
+
class ConventionalCommitParserOptions(AngularParserOptions):
|
|
13
|
+
"""Options dataclass for the ConventionalCommitParser."""
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class ConventionalCommitParser(AngularCommitParser):
|
|
17
|
+
"""
|
|
18
|
+
A commit parser for projects conforming to the conventional commits specification.
|
|
19
|
+
|
|
20
|
+
See https://www.conventionalcommits.org/en/v1.0.0/
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
# TODO: Deprecate in lieu of get_default_options()
|
|
24
|
+
parser_options = ConventionalCommitParserOptions
|
|
25
|
+
|
|
26
|
+
def __init__(self, options: ConventionalCommitParserOptions | None = None) -> None:
|
|
27
|
+
super().__init__(options)
|
|
28
|
+
|
|
29
|
+
@staticmethod
|
|
30
|
+
def get_default_options() -> ConventionalCommitParserOptions:
|
|
31
|
+
return ConventionalCommitParserOptions()
|
|
@@ -63,19 +63,19 @@ SUPPORTED_ISSUE_CLOSURE_PREFIXES = [
|
|
|
63
63
|
"Implementing",
|
|
64
64
|
]
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
CONVENTIONAL_COMMITS_CHORE = ("ci: added a commit lint job\n",)
|
|
67
67
|
# Different in-scope commits that produce a certain release type
|
|
68
|
-
|
|
69
|
-
*
|
|
68
|
+
CONVENTIONAL_COMMITS_PATCH = (
|
|
69
|
+
*CONVENTIONAL_COMMITS_CHORE,
|
|
70
70
|
"fix: fixed voltage in the flux capacitor\n",
|
|
71
71
|
)
|
|
72
|
-
|
|
73
|
-
*
|
|
72
|
+
CONVENTIONAL_COMMITS_MINOR = (
|
|
73
|
+
*CONVENTIONAL_COMMITS_PATCH,
|
|
74
74
|
"feat: last minute rush order\n",
|
|
75
75
|
)
|
|
76
76
|
# Take previous commits and insert a breaking change
|
|
77
|
-
|
|
78
|
-
*
|
|
77
|
+
CONVENTIONAL_COMMITS_MAJOR = (
|
|
78
|
+
*CONVENTIONAL_COMMITS_MINOR,
|
|
79
79
|
"fix!: big change\n\nBREAKING CHANGE: reworked something for previous feature\n",
|
|
80
80
|
)
|
|
81
81
|
|