python-semantic-release 9.21.0__tar.gz → 9.21.2__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.21.0/src/python_semantic_release.egg-info → python_semantic_release-9.21.2}/PKG-INFO +11 -8
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/automatic-releases/github-actions.rst +86 -21
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/pyproject.toml +19 -14
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2/src/python_semantic_release.egg-info}/PKG-INFO +11 -8
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/python_semantic_release.egg-info/requires.txt +7 -6
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/__init__.py +3 -1
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/helpers.py +12 -2
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/remote_hvcs_base.py +14 -4
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_1_channel.py +1 -1
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_2_channels.py +1 -1
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_3_channels.py +1 -1
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_4_channels.py +1 -1
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/github_flow/test_repo_1_channel.py +1 -1
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/github_flow/test_repo_2_channels.py +1 -1
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk.py +1 -1
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk_dual_version_support.py +1 -1
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk_dual_version_support_w_prereleases.py +1 -1
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk_w_prereleases.py +1 -1
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_build.py +1 -1
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/hvcs/test_bitbucket.py +23 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/hvcs/test_gitea.py +23 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/hvcs/test_github.py +23 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/hvcs/test_gitlab.py +23 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/test_helpers.py +29 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/AUTHORS.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/LICENSE +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/MANIFEST.in +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/README.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/Makefile +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/algorithm.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/automatic-releases/cronjobs.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/automatic-releases/index.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/automatic-releases/travis.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/changelog_templates.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/commands.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/commit_parsing.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/conf.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/configuration.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/contributing.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/contributors.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/index.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/make.bat +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/migrating_from_v7.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/multibranch_releases.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/psr_changelog.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/strict_mode.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/docs/troubleshooting.rst +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/setup.cfg +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/python_semantic_release.egg-info/SOURCES.txt +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/python_semantic_release.egg-info/dependency_links.txt +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/python_semantic_release.egg-info/entry_points.txt +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/python_semantic_release.egg-info/top_level.txt +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/__main__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/changelog/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/changelog/context.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/changelog/release_history.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/changelog/template.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/cli/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/cli/changelog_writer.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/cli/cli_context.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/cli/commands/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/cli/commands/changelog.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/cli/commands/generate_config.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/cli/commands/main.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/cli/commands/publish.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/cli/commands/version.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/cli/config.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/cli/const.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/cli/github_actions_output.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/cli/masking_filter.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/cli/util.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/_base.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/angular.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/conventional.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/emoji.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/scipy.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/tag.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/token.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/util.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/const.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.components/changelog_header.md.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.components/changelog_init.md.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.components/changelog_update.md.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.components/changes.md.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.components/first_release.md.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.components/macros.md.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.components/unreleased_changes.md.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.components/versioned_changes.md.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.release_notes.md.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/CHANGELOG.md.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/.components/changelog_header.rst.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/.components/changelog_init.rst.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/.components/changelog_update.rst.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/.components/changes.rst.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/.components/first_release.rst.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/.components/macros.rst.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/.components/unreleased_changes.rst.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/.components/versioned_changes.rst.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/CHANGELOG.rst.j2 +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/enums.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/errors.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/gitproject.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/globals.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/_base.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/bitbucket.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/gitea.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/github.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/gitlab.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/token_auth.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/util.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/py.typed +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/version/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/version/algorithm.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/version/declaration.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/version/declarations/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/version/declarations/enum.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/version/declarations/i_version_replacer.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/version/declarations/pattern.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/version/declarations/toml.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/version/translator.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/version/version.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/conftest.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/const.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_changelog/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_changelog/test_changelog.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_changelog/test_changelog_custom_parser.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_changelog/test_changelog_parsing.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_changelog/test_changelog_release_notes.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_config/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_config/test_generate_config.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_publish/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_publish/test_publish.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/conftest.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/git_flow/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/github_flow/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/trunk_based_dev/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_bump.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_changelog.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_changelog_custom_commit_msg.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_github_actions.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_print.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_release_notes.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_stamp.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_strict.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/conftest.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/test_help.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/e2e/test_main.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/commit_parsers.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/example_project.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/git_repo.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/repos/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/repos/git_flow/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/repos/git_flow/repo_w_1_release_channel.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/repos/git_flow/repo_w_2_release_channels.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/repos/git_flow/repo_w_3_release_channels.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/repos/git_flow/repo_w_4_release_channels.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/repos/github_flow/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/repos/github_flow/repo_w_default_release.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/repos/github_flow/repo_w_release_channels.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/repos/repo_initial_commit.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/repos/trunk_based_dev/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/repos/trunk_based_dev/repo_w_dual_version_support.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/repos/trunk_based_dev/repo_w_dual_version_support_w_prereleases.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/repos/trunk_based_dev/repo_w_no_tags.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/repos/trunk_based_dev/repo_w_prereleases.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/repos/trunk_based_dev/repo_w_tags.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/fixtures/scipy.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/conftest.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/changelog/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/changelog/conftest.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/changelog/test_changelog_context.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/changelog/test_default_changelog.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/changelog/test_release_history.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/changelog/test_release_notes.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/changelog/test_template.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/changelog/test_template_render.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/cli/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/cli/test_config.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/cli/test_github_actions_output.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/cli/test_masking_filter.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/cli/test_util.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/cli/test_version.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/commit_parser/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/commit_parser/test_conventional.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/commit_parser/test_emoji.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/commit_parser/test_parsed_commit.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/commit_parser/test_scipy.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/commit_parser/test_util.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/hvcs/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/hvcs/test__base.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/hvcs/test_token_auth.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/hvcs/test_util.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/version/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/version/declarations/__init__.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/version/declarations/test_pattern_declaration.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/version/declarations/test_toml_declaration.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/version/test_algorithm.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/version/test_translator.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/unit/semantic_release/version/test_version.py +0 -0
- {python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/tests/util.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: python-semantic-release
|
|
3
|
-
Version: 9.21.
|
|
3
|
+
Version: 9.21.2
|
|
4
4
|
Summary: Automatic Semantic Versioning for Python projects
|
|
5
5
|
Author-email: Rolf Erik Lekang <me@rolflekang.com>
|
|
6
6
|
License: MIT
|
|
@@ -17,25 +17,27 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
20
21
|
Requires-Python: >=3.8
|
|
21
22
|
Description-Content-Type: text/x-rst
|
|
22
23
|
License-File: LICENSE
|
|
23
24
|
License-File: AUTHORS.rst
|
|
24
|
-
Requires-Dist: click~=8.0
|
|
25
|
+
Requires-Dist: click~=8.1.0
|
|
25
26
|
Requires-Dist: click-option-group~=0.5
|
|
26
27
|
Requires-Dist: gitpython~=3.0
|
|
27
28
|
Requires-Dist: requests~=2.25
|
|
28
29
|
Requires-Dist: jinja2~=3.1
|
|
29
|
-
Requires-Dist: python-gitlab
|
|
30
|
-
Requires-Dist: tomlkit~=0.
|
|
30
|
+
Requires-Dist: python-gitlab<6.0.0,>=4.0.0
|
|
31
|
+
Requires-Dist: tomlkit~=0.13.0
|
|
31
32
|
Requires-Dist: dotty-dict~=1.3
|
|
32
33
|
Requires-Dist: importlib-resources~=6.0
|
|
33
34
|
Requires-Dist: pydantic~=2.0
|
|
34
|
-
Requires-Dist: rich~=
|
|
35
|
+
Requires-Dist: rich~=14.0
|
|
35
36
|
Requires-Dist: shellingham~=1.5
|
|
36
37
|
Requires-Dist: Deprecated~=1.2
|
|
37
38
|
Provides-Extra: build
|
|
38
39
|
Requires-Dist: build~=1.2; extra == "build"
|
|
40
|
+
Requires-Dist: tomlkit~=0.13.0; extra == "build"
|
|
39
41
|
Provides-Extra: docs
|
|
40
42
|
Requires-Dist: Sphinx~=6.0; extra == "docs"
|
|
41
43
|
Requires-Dist: sphinxcontrib-apidoc==0.5.0; extra == "docs"
|
|
@@ -44,12 +46,12 @@ Requires-Dist: furo~=2024.1; extra == "docs"
|
|
|
44
46
|
Provides-Extra: test
|
|
45
47
|
Requires-Dist: coverage[toml]~=7.0; extra == "test"
|
|
46
48
|
Requires-Dist: filelock~=3.15; extra == "test"
|
|
47
|
-
Requires-Dist:
|
|
49
|
+
Requires-Dist: flatdict2~=4.0; extra == "test"
|
|
48
50
|
Requires-Dist: freezegun~=1.5; extra == "test"
|
|
49
51
|
Requires-Dist: pyyaml~=6.0; extra == "test"
|
|
50
52
|
Requires-Dist: pytest~=8.3; extra == "test"
|
|
51
53
|
Requires-Dist: pytest-clarity~=1.0; extra == "test"
|
|
52
|
-
Requires-Dist: pytest-cov
|
|
54
|
+
Requires-Dist: pytest-cov<7.0.0,>=5.0.0; extra == "test"
|
|
53
55
|
Requires-Dist: pytest-env~=1.0; extra == "test"
|
|
54
56
|
Requires-Dist: pytest-lazy-fixtures~=1.1.1; extra == "test"
|
|
55
57
|
Requires-Dist: pytest-mock~=3.0; extra == "test"
|
|
@@ -67,6 +69,7 @@ Requires-Dist: mypy==1.15.0; extra == "mypy"
|
|
|
67
69
|
Requires-Dist: types-Deprecated~=1.2; extra == "mypy"
|
|
68
70
|
Requires-Dist: types-requests~=2.32.0; extra == "mypy"
|
|
69
71
|
Requires-Dist: types-pyyaml~=6.0; extra == "mypy"
|
|
72
|
+
Dynamic: license-file
|
|
70
73
|
|
|
71
74
|
Python Semantic Release
|
|
72
75
|
***********************
|
|
@@ -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.
|
|
340
|
+
- uses: python-semantic-release/python-semantic-release@v9.21.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.
|
|
579
|
+
- uses: python-semantic-release/publish-action@v9.21.1
|
|
580
580
|
with:
|
|
581
581
|
root_options: "-vv --noop"
|
|
582
582
|
|
|
@@ -698,7 +698,7 @@ to the GitHub Release Assets as well.
|
|
|
698
698
|
run: |
|
|
699
699
|
set +o pipefail
|
|
700
700
|
|
|
701
|
-
UPSTREAM_BRANCH_NAME="$(git status -sb | head -n 1 |
|
|
701
|
+
UPSTREAM_BRANCH_NAME="$(git status -sb | head -n 1 | awk -F '\\.\\.\\.' '{print $2}' | cut -d ' ' -f1)"
|
|
702
702
|
printf '%s\n' "Upstream branch name: $UPSTREAM_BRANCH_NAME"
|
|
703
703
|
|
|
704
704
|
set -o pipefail
|
|
@@ -728,23 +728,23 @@ to the GitHub Release Assets as well.
|
|
|
728
728
|
- name: Action | Semantic Version Release
|
|
729
729
|
id: release
|
|
730
730
|
# Adjust tag with desired version if applicable.
|
|
731
|
-
uses: python-semantic-release/python-semantic-release@v9.
|
|
731
|
+
uses: python-semantic-release/python-semantic-release@v9.21.1
|
|
732
732
|
with:
|
|
733
733
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
734
734
|
git_committer_name: "github-actions"
|
|
735
735
|
git_committer_email: "actions@users.noreply.github.com"
|
|
736
736
|
|
|
737
|
-
- name: Publish | Upload package to PyPI
|
|
738
|
-
uses: pypa/gh-action-pypi-publish@v1
|
|
739
|
-
if: steps.release.outputs.released == 'true'
|
|
740
|
-
|
|
741
737
|
- name: Publish | Upload to GitHub Release Assets
|
|
742
|
-
uses: python-semantic-release/publish-action@v9.
|
|
738
|
+
uses: python-semantic-release/publish-action@v9.21.1
|
|
743
739
|
if: steps.release.outputs.released == 'true'
|
|
744
740
|
with:
|
|
745
741
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
746
742
|
tag: ${{ steps.release.outputs.tag }}
|
|
747
743
|
|
|
744
|
+
- name: Publish | Upload package to PyPI
|
|
745
|
+
uses: pypa/gh-action-pypi-publish@SHA1_HASH # vX.X.X
|
|
746
|
+
if: steps.release.outputs.released == 'true'
|
|
747
|
+
|
|
748
748
|
.. important::
|
|
749
749
|
The `concurrency`_ directive is used on the job to prevent race conditions of more than
|
|
750
750
|
one release job in the case if there are multiple pushes to ``main`` in a short period
|
|
@@ -794,7 +794,7 @@ The equivalent GitHub Action configuration would be:
|
|
|
794
794
|
|
|
795
795
|
- name: Action | Semantic Version Release
|
|
796
796
|
# Adjust tag with desired version if applicable.
|
|
797
|
-
uses: python-semantic-release/python-semantic-release@v9.
|
|
797
|
+
uses: python-semantic-release/python-semantic-release@v9.21.1
|
|
798
798
|
with:
|
|
799
799
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
800
800
|
force: patch
|
|
@@ -816,19 +816,84 @@ For multiple packages, you would need to run the action multiple times, to relea
|
|
|
816
816
|
each project. The following example demonstrates how to release two projects in
|
|
817
817
|
a monorepo.
|
|
818
818
|
|
|
819
|
+
Remember that for each release of each submodule you will then need to handle publishing
|
|
820
|
+
each package separately as well. This is dependent on the result of your build commands.
|
|
821
|
+
In the example below, we assume a simple ``build`` module command to build a ``sdist``
|
|
822
|
+
and wheel artifacts into the submodule's ``dist`` directory.
|
|
823
|
+
|
|
819
824
|
The ``directory`` input directive is also available for the Python Semantic Release
|
|
820
825
|
Publish Action.
|
|
821
826
|
|
|
822
827
|
.. code:: yaml
|
|
823
828
|
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
829
|
+
jobs:
|
|
830
|
+
|
|
831
|
+
release:
|
|
832
|
+
|
|
833
|
+
env:
|
|
834
|
+
SUBMODULE_1_DIR: project1
|
|
835
|
+
SUBMODULE_2_DIR: project2
|
|
836
|
+
|
|
837
|
+
steps:
|
|
838
|
+
|
|
839
|
+
# ------------------------------------------------------------------- #
|
|
840
|
+
# Note the use of different IDs to distinguish which submodule was #
|
|
841
|
+
# identified to be released. The subsequent actions then reference #
|
|
842
|
+
# their specific release ID to determine if a release occurred. #
|
|
843
|
+
# ------------------------------------------------------------------- #
|
|
844
|
+
|
|
845
|
+
- name: Release submodule 1
|
|
846
|
+
id: release-submod-1
|
|
847
|
+
uses: python-semantic-release/python-semantic-release@v9.21.1
|
|
848
|
+
with:
|
|
849
|
+
directory: ${{ env.SUBMODULE_1_DIR }}
|
|
850
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
851
|
+
|
|
852
|
+
- name: Release submodule 2
|
|
853
|
+
id: release-submod-2
|
|
854
|
+
uses: python-semantic-release/python-semantic-release@v9.21.1
|
|
855
|
+
with:
|
|
856
|
+
directory: ${{ env.SUBMODULE_2_DIR }}
|
|
857
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
858
|
+
|
|
859
|
+
# ------------------------------------------------------------------- #
|
|
860
|
+
# For each submodule, you will have to publish the package separately #
|
|
861
|
+
# and only attempt to publish if the release for that submodule was #
|
|
862
|
+
# deemed a release (and the release was successful). #
|
|
863
|
+
# ------------------------------------------------------------------- #
|
|
864
|
+
|
|
865
|
+
- name: Publish | Upload package 1 to GitHub Release Assets
|
|
866
|
+
uses: python-semantic-release/publish-action@v9.21.1
|
|
867
|
+
if: steps.release-submod-1.outputs.released == 'true'
|
|
868
|
+
with:
|
|
869
|
+
directory: ${{ env.SUBMODULE_1_DIR }}
|
|
870
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
871
|
+
tag: ${{ steps.release-submod-1.outputs.tag }}
|
|
872
|
+
|
|
873
|
+
- name: Publish | Upload package 2 to GitHub Release Assets
|
|
874
|
+
uses: python-semantic-release/publish-action@v9.21.1
|
|
875
|
+
if: steps.release-submod-2.outputs.released == 'true'
|
|
876
|
+
with:
|
|
877
|
+
directory: ${{ env.SUBMODULE_2_DIR }}
|
|
878
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
879
|
+
tag: ${{ steps.release-submod-2.outputs.tag }}
|
|
880
|
+
|
|
881
|
+
# ------------------------------------------------------------------- #
|
|
882
|
+
# Python Semantic Release is not responsible for publishing your #
|
|
883
|
+
# python artifacts to PyPI. Use the official PyPA publish action #
|
|
884
|
+
# instead. The following steps are an example but is not guaranteed #
|
|
885
|
+
# to work as the action is not maintained by the #
|
|
886
|
+
# python-semantic-release team. #
|
|
887
|
+
# ------------------------------------------------------------------- #
|
|
888
|
+
|
|
889
|
+
- name: Publish | Upload package 1 to PyPI
|
|
890
|
+
uses: pypa/gh-action-pypi-publish@SHA1_HASH # vX.X.X
|
|
891
|
+
if: steps.release-submod-1.outputs.released == 'true'
|
|
892
|
+
with:
|
|
893
|
+
packages-dir: ${{ format('{}/dist', env.SUBMODULE_1_DIR) }}
|
|
894
|
+
|
|
895
|
+
- name: Publish | Upload package 2 to PyPI
|
|
896
|
+
uses: pypa/gh-action-pypi-publish@SHA1_HASH # vX.X.X
|
|
897
|
+
if: steps.release-submod-2.outputs.released == 'true'
|
|
898
|
+
with:
|
|
899
|
+
packages-dir: ${{ format('{}/dist', env.SUBMODULE_2_DIR) }}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
# Ref: https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
|
|
2
|
-
# and https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
|
|
3
1
|
[build-system]
|
|
4
|
-
requires = ["setuptools
|
|
2
|
+
requires = ["setuptools >= 75.3.0, < 81.0.0", "wheel ~= 0.42"]
|
|
5
3
|
build-backend = "setuptools.build_meta"
|
|
6
4
|
|
|
7
5
|
[project]
|
|
8
6
|
name = "python-semantic-release"
|
|
9
|
-
version = "9.21.
|
|
7
|
+
version = "9.21.2"
|
|
10
8
|
description = "Automatic Semantic Versioning for Python projects"
|
|
11
9
|
requires-python = ">=3.8"
|
|
12
10
|
license = { text = "MIT" }
|
|
@@ -19,21 +17,22 @@ classifiers = [
|
|
|
19
17
|
"Programming Language :: Python :: 3.11",
|
|
20
18
|
"Programming Language :: Python :: 3.12",
|
|
21
19
|
"Programming Language :: Python :: 3.13",
|
|
20
|
+
"Programming Language :: Python :: 3.14",
|
|
22
21
|
]
|
|
23
22
|
readme = "README.rst"
|
|
24
23
|
authors = [{ name = "Rolf Erik Lekang", email = "me@rolflekang.com" }]
|
|
25
24
|
dependencies = [
|
|
26
|
-
"click ~= 8.0",
|
|
25
|
+
"click ~= 8.1.0",
|
|
27
26
|
"click-option-group ~= 0.5",
|
|
28
27
|
"gitpython ~= 3.0",
|
|
29
28
|
"requests ~= 2.25",
|
|
30
29
|
"jinja2 ~= 3.1",
|
|
31
|
-
"python-gitlab
|
|
32
|
-
"tomlkit ~= 0.
|
|
30
|
+
"python-gitlab >= 4.0.0, < 6.0.0",
|
|
31
|
+
"tomlkit ~= 0.13.0",
|
|
33
32
|
"dotty-dict ~= 1.3",
|
|
34
33
|
"importlib-resources ~= 6.0",
|
|
35
34
|
"pydantic ~= 2.0",
|
|
36
|
-
"rich ~=
|
|
35
|
+
"rich ~= 14.0",
|
|
37
36
|
"shellingham ~= 1.5",
|
|
38
37
|
"Deprecated ~= 1.2", # Backport of deprecated decorator for python 3.8
|
|
39
38
|
]
|
|
@@ -52,7 +51,8 @@ repository = "http://github.com/python-semantic-release/python-semantic-release.
|
|
|
52
51
|
|
|
53
52
|
[project.optional-dependencies]
|
|
54
53
|
build = [
|
|
55
|
-
"build ~= 1.2"
|
|
54
|
+
"build ~= 1.2",
|
|
55
|
+
"tomlkit ~= 0.13.0",
|
|
56
56
|
]
|
|
57
57
|
docs = [
|
|
58
58
|
"Sphinx ~= 6.0",
|
|
@@ -63,12 +63,12 @@ docs = [
|
|
|
63
63
|
test = [
|
|
64
64
|
"coverage[toml] ~= 7.0",
|
|
65
65
|
"filelock ~= 3.15",
|
|
66
|
-
"
|
|
66
|
+
"flatdict2 ~= 4.0",
|
|
67
67
|
"freezegun ~= 1.5",
|
|
68
68
|
"pyyaml ~= 6.0",
|
|
69
69
|
"pytest ~= 8.3",
|
|
70
70
|
"pytest-clarity ~= 1.0",
|
|
71
|
-
"pytest-cov
|
|
71
|
+
"pytest-cov >= 5.0.0, < 7.0.0",
|
|
72
72
|
"pytest-env ~= 1.0",
|
|
73
73
|
"pytest-lazy-fixtures ~= 1.1.1",
|
|
74
74
|
"pytest-mock ~= 3.0",
|
|
@@ -91,6 +91,7 @@ mypy = [
|
|
|
91
91
|
]
|
|
92
92
|
|
|
93
93
|
|
|
94
|
+
|
|
94
95
|
[tool.setuptools]
|
|
95
96
|
include-package-data = true
|
|
96
97
|
|
|
@@ -197,7 +198,7 @@ module = "tests.*"
|
|
|
197
198
|
disallow_untyped_defs = false
|
|
198
199
|
|
|
199
200
|
[[tool.mypy.overrides]]
|
|
200
|
-
module = "
|
|
201
|
+
module = "flatdict2"
|
|
201
202
|
ignore_missing_imports = true
|
|
202
203
|
|
|
203
204
|
[[tool.mypy.overrides]]
|
|
@@ -412,7 +413,6 @@ build_command = """
|
|
|
412
413
|
python -m build .
|
|
413
414
|
"""
|
|
414
415
|
major_on_zero = true
|
|
415
|
-
version_variables = ["src/semantic_release/__init__.py:__version__"]
|
|
416
416
|
version_toml = ["pyproject.toml:project.version"]
|
|
417
417
|
|
|
418
418
|
[tool.semantic_release.changelog]
|
|
@@ -434,7 +434,12 @@ mode = "update"
|
|
|
434
434
|
template_dir = "config/release-templates"
|
|
435
435
|
|
|
436
436
|
[tool.semantic_release.branches.main]
|
|
437
|
-
match = "(main|master)"
|
|
437
|
+
match = "^(main|master)$"
|
|
438
|
+
prerelease = false
|
|
439
|
+
prerelease_token = "rc"
|
|
440
|
+
|
|
441
|
+
[tool.semantic_release.branches.maintenance]
|
|
442
|
+
match = "^releases/v9"
|
|
438
443
|
prerelease = false
|
|
439
444
|
prerelease_token = "rc"
|
|
440
445
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: python-semantic-release
|
|
3
|
-
Version: 9.21.
|
|
3
|
+
Version: 9.21.2
|
|
4
4
|
Summary: Automatic Semantic Versioning for Python projects
|
|
5
5
|
Author-email: Rolf Erik Lekang <me@rolflekang.com>
|
|
6
6
|
License: MIT
|
|
@@ -17,25 +17,27 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
20
21
|
Requires-Python: >=3.8
|
|
21
22
|
Description-Content-Type: text/x-rst
|
|
22
23
|
License-File: LICENSE
|
|
23
24
|
License-File: AUTHORS.rst
|
|
24
|
-
Requires-Dist: click~=8.0
|
|
25
|
+
Requires-Dist: click~=8.1.0
|
|
25
26
|
Requires-Dist: click-option-group~=0.5
|
|
26
27
|
Requires-Dist: gitpython~=3.0
|
|
27
28
|
Requires-Dist: requests~=2.25
|
|
28
29
|
Requires-Dist: jinja2~=3.1
|
|
29
|
-
Requires-Dist: python-gitlab
|
|
30
|
-
Requires-Dist: tomlkit~=0.
|
|
30
|
+
Requires-Dist: python-gitlab<6.0.0,>=4.0.0
|
|
31
|
+
Requires-Dist: tomlkit~=0.13.0
|
|
31
32
|
Requires-Dist: dotty-dict~=1.3
|
|
32
33
|
Requires-Dist: importlib-resources~=6.0
|
|
33
34
|
Requires-Dist: pydantic~=2.0
|
|
34
|
-
Requires-Dist: rich~=
|
|
35
|
+
Requires-Dist: rich~=14.0
|
|
35
36
|
Requires-Dist: shellingham~=1.5
|
|
36
37
|
Requires-Dist: Deprecated~=1.2
|
|
37
38
|
Provides-Extra: build
|
|
38
39
|
Requires-Dist: build~=1.2; extra == "build"
|
|
40
|
+
Requires-Dist: tomlkit~=0.13.0; extra == "build"
|
|
39
41
|
Provides-Extra: docs
|
|
40
42
|
Requires-Dist: Sphinx~=6.0; extra == "docs"
|
|
41
43
|
Requires-Dist: sphinxcontrib-apidoc==0.5.0; extra == "docs"
|
|
@@ -44,12 +46,12 @@ Requires-Dist: furo~=2024.1; extra == "docs"
|
|
|
44
46
|
Provides-Extra: test
|
|
45
47
|
Requires-Dist: coverage[toml]~=7.0; extra == "test"
|
|
46
48
|
Requires-Dist: filelock~=3.15; extra == "test"
|
|
47
|
-
Requires-Dist:
|
|
49
|
+
Requires-Dist: flatdict2~=4.0; extra == "test"
|
|
48
50
|
Requires-Dist: freezegun~=1.5; extra == "test"
|
|
49
51
|
Requires-Dist: pyyaml~=6.0; extra == "test"
|
|
50
52
|
Requires-Dist: pytest~=8.3; extra == "test"
|
|
51
53
|
Requires-Dist: pytest-clarity~=1.0; extra == "test"
|
|
52
|
-
Requires-Dist: pytest-cov
|
|
54
|
+
Requires-Dist: pytest-cov<7.0.0,>=5.0.0; extra == "test"
|
|
53
55
|
Requires-Dist: pytest-env~=1.0; extra == "test"
|
|
54
56
|
Requires-Dist: pytest-lazy-fixtures~=1.1.1; extra == "test"
|
|
55
57
|
Requires-Dist: pytest-mock~=3.0; extra == "test"
|
|
@@ -67,6 +69,7 @@ Requires-Dist: mypy==1.15.0; extra == "mypy"
|
|
|
67
69
|
Requires-Dist: types-Deprecated~=1.2; extra == "mypy"
|
|
68
70
|
Requires-Dist: types-requests~=2.32.0; extra == "mypy"
|
|
69
71
|
Requires-Dist: types-pyyaml~=6.0; extra == "mypy"
|
|
72
|
+
Dynamic: license-file
|
|
70
73
|
|
|
71
74
|
Python Semantic Release
|
|
72
75
|
***********************
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
click~=8.0
|
|
1
|
+
click~=8.1.0
|
|
2
2
|
click-option-group~=0.5
|
|
3
3
|
gitpython~=3.0
|
|
4
4
|
requests~=2.25
|
|
5
5
|
jinja2~=3.1
|
|
6
|
-
python-gitlab
|
|
7
|
-
tomlkit~=0.
|
|
6
|
+
python-gitlab<6.0.0,>=4.0.0
|
|
7
|
+
tomlkit~=0.13.0
|
|
8
8
|
dotty-dict~=1.3
|
|
9
9
|
importlib-resources~=6.0
|
|
10
10
|
pydantic~=2.0
|
|
11
|
-
rich~=
|
|
11
|
+
rich~=14.0
|
|
12
12
|
shellingham~=1.5
|
|
13
13
|
Deprecated~=1.2
|
|
14
14
|
|
|
15
15
|
[build]
|
|
16
16
|
build~=1.2
|
|
17
|
+
tomlkit~=0.13.0
|
|
17
18
|
|
|
18
19
|
[dev]
|
|
19
20
|
pre-commit~=3.5
|
|
@@ -35,12 +36,12 @@ types-pyyaml~=6.0
|
|
|
35
36
|
[test]
|
|
36
37
|
coverage[toml]~=7.0
|
|
37
38
|
filelock~=3.15
|
|
38
|
-
|
|
39
|
+
flatdict2~=4.0
|
|
39
40
|
freezegun~=1.5
|
|
40
41
|
pyyaml~=6.0
|
|
41
42
|
pytest~=8.3
|
|
42
43
|
pytest-clarity~=1.0
|
|
43
|
-
pytest-cov
|
|
44
|
+
pytest-cov<7.0.0,>=5.0.0
|
|
44
45
|
pytest-env~=1.0
|
|
45
46
|
pytest-lazy-fixtures~=1.1.1
|
|
46
47
|
pytest-mock~=3.0
|
{python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/__init__.py
RENAMED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
import importlib.metadata
|
|
6
|
+
|
|
5
7
|
from semantic_release.commit_parser import (
|
|
6
8
|
CommitParser,
|
|
7
9
|
ParsedCommit,
|
|
@@ -24,7 +26,7 @@ from semantic_release.version import (
|
|
|
24
26
|
tags_and_versions,
|
|
25
27
|
)
|
|
26
28
|
|
|
27
|
-
__version__ =
|
|
29
|
+
__version__ = importlib.metadata.version(f"python_{__package__}".replace("_", "-"))
|
|
28
30
|
|
|
29
31
|
__all__ = [
|
|
30
32
|
"CommitParser",
|
{python_semantic_release-9.21.0 → python_semantic_release-9.21.2}/src/semantic_release/helpers.py
RENAMED
|
@@ -10,7 +10,7 @@ from functools import lru_cache, reduce, wraps
|
|
|
10
10
|
from pathlib import Path, PurePosixPath
|
|
11
11
|
from re import IGNORECASE, compile as regexp
|
|
12
12
|
from typing import TYPE_CHECKING, Any, Callable, NamedTuple, Sequence, TypeVar
|
|
13
|
-
from urllib.parse import urlsplit
|
|
13
|
+
from urllib.parse import urlsplit, urlunsplit
|
|
14
14
|
|
|
15
15
|
if TYPE_CHECKING: # pragma: no cover
|
|
16
16
|
from re import Pattern
|
|
@@ -215,6 +215,16 @@ class ParsedGitUrl(NamedTuple):
|
|
|
215
215
|
repo_name: str
|
|
216
216
|
|
|
217
217
|
|
|
218
|
+
def _hide_credentials_in_url(url: str) -> str:
|
|
219
|
+
url_parts = urlsplit(url)
|
|
220
|
+
|
|
221
|
+
if not url_parts.scheme or "@" not in url_parts.netloc:
|
|
222
|
+
return url
|
|
223
|
+
|
|
224
|
+
_, _, host = url_parts.netloc.rpartition("@")
|
|
225
|
+
return urlunsplit(url_parts._replace(netloc=f"<credentials>@{host}"))
|
|
226
|
+
|
|
227
|
+
|
|
218
228
|
@lru_cache(maxsize=512)
|
|
219
229
|
def parse_git_url(url: str) -> ParsedGitUrl:
|
|
220
230
|
"""
|
|
@@ -242,7 +252,7 @@ def parse_git_url(url: str) -> ParsedGitUrl:
|
|
|
242
252
|
|
|
243
253
|
Raises ValueError if the url can't be parsed.
|
|
244
254
|
"""
|
|
245
|
-
log.debug("Parsing git url %r", url)
|
|
255
|
+
log.debug("Parsing git url %r", _hide_credentials_in_url(url))
|
|
246
256
|
|
|
247
257
|
# Normalizers are a list of tuples of (pattern, replacement)
|
|
248
258
|
normalizers = [
|
|
@@ -95,10 +95,15 @@ class RemoteHvcsBase(HvcsBase, metaclass=ABCMeta):
|
|
|
95
95
|
query: str | None = None,
|
|
96
96
|
fragment: str | None = None,
|
|
97
97
|
) -> str:
|
|
98
|
-
# Ensure any path prefix is
|
|
98
|
+
# Ensure any path prefix is transferred but not doubled up on the derived url
|
|
99
|
+
normalized_path = (
|
|
100
|
+
f"{self.hvcs_domain.path}/{path}"
|
|
101
|
+
if self.hvcs_domain.path and not path.startswith(self.hvcs_domain.path)
|
|
102
|
+
else path
|
|
103
|
+
)
|
|
99
104
|
return self._derive_url(
|
|
100
105
|
self.hvcs_domain,
|
|
101
|
-
path=
|
|
106
|
+
path=normalized_path,
|
|
102
107
|
auth=auth,
|
|
103
108
|
query=query,
|
|
104
109
|
fragment=fragment,
|
|
@@ -123,10 +128,15 @@ class RemoteHvcsBase(HvcsBase, metaclass=ABCMeta):
|
|
|
123
128
|
query: str | None = None,
|
|
124
129
|
fragment: str | None = None,
|
|
125
130
|
) -> str:
|
|
126
|
-
# Ensure any api path prefix is
|
|
131
|
+
# Ensure any api path prefix is transferred but not doubled up on the derived api url
|
|
132
|
+
normalized_endpoint = (
|
|
133
|
+
f"{self.api_url.path}/{endpoint}"
|
|
134
|
+
if self.api_url.path and not endpoint.startswith(self.api_url.path)
|
|
135
|
+
else endpoint
|
|
136
|
+
)
|
|
127
137
|
return self._derive_url(
|
|
128
138
|
self.api_url,
|
|
129
|
-
path=
|
|
139
|
+
path=normalized_endpoint,
|
|
130
140
|
auth=auth,
|
|
131
141
|
query=query,
|
|
132
142
|
fragment=fragment,
|
|
@@ -10,7 +10,7 @@ from unittest import mock
|
|
|
10
10
|
import pytest
|
|
11
11
|
import shellingham
|
|
12
12
|
import tomlkit
|
|
13
|
-
from
|
|
13
|
+
from flatdict2 import FlatDict
|
|
14
14
|
from pytest_lazy_fixtures.lazy_fixture import lf as lazy_fixture
|
|
15
15
|
|
|
16
16
|
from semantic_release.cli.commands.main import main
|
|
@@ -301,6 +301,29 @@ def test_commit_hash_url(default_bitbucket_client: Bitbucket):
|
|
|
301
301
|
assert expected_url == default_bitbucket_client.commit_hash_url(sha)
|
|
302
302
|
|
|
303
303
|
|
|
304
|
+
def test_commit_hash_url_w_custom_server():
|
|
305
|
+
"""
|
|
306
|
+
Test the commit hash URL generation for a self-hosted Bitbucket server with prefix.
|
|
307
|
+
|
|
308
|
+
ref: https://github.com/python-semantic-release/python-semantic-release/issues/1204
|
|
309
|
+
"""
|
|
310
|
+
sha = "244f7e11bcb1e1ce097db61594056bc2a32189a0"
|
|
311
|
+
expected_url = "{server}/{owner}/{repo}/commits/{sha}".format(
|
|
312
|
+
server=f"https://{EXAMPLE_HVCS_DOMAIN}/projects/demo-foo",
|
|
313
|
+
owner="foo",
|
|
314
|
+
repo=EXAMPLE_REPO_NAME,
|
|
315
|
+
sha=sha,
|
|
316
|
+
)
|
|
317
|
+
|
|
318
|
+
with mock.patch.dict(os.environ, {}, clear=True):
|
|
319
|
+
actual_url = Bitbucket(
|
|
320
|
+
remote_url=f"https://{EXAMPLE_HVCS_DOMAIN}/projects/demo-foo/foo/{EXAMPLE_REPO_NAME}.git",
|
|
321
|
+
hvcs_domain=f"https://{EXAMPLE_HVCS_DOMAIN}/projects/demo-foo",
|
|
322
|
+
).commit_hash_url(sha)
|
|
323
|
+
|
|
324
|
+
assert expected_url == actual_url
|
|
325
|
+
|
|
326
|
+
|
|
304
327
|
@pytest.mark.parametrize("pr_number", (666, "666", "#666"))
|
|
305
328
|
def test_pull_request_url(default_bitbucket_client: Bitbucket, pr_number: int | str):
|
|
306
329
|
expected_url = "{server}/{owner}/{repo}/pull-requests/{pr_number}".format(
|