python-semantic-release 10.0.1__tar.gz → 10.1.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-10.0.1 → python_semantic_release-10.1.0}/PKG-INFO +3 -3
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/api/commands.rst +63 -14
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/configuration/automatic-releases/github-actions.rst +15 -15
- python_semantic_release-10.1.0/docs/configuration/configuration-guides/index.rst +14 -0
- python_semantic_release-10.1.0/docs/configuration/configuration-guides/uv_integration.rst +327 -0
- python_semantic_release-10.1.0/docs/configuration/index.rst +24 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/upgrading/10-upgrade.rst +40 -7
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/pyproject.toml +5 -3
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/python_semantic_release.egg-info/SOURCES.txt +2 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/cli/changelog_writer.py +1 -1
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/cli/commands/version.py +6 -11
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/cli/config.py +5 -5
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/_base.py +1 -1
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/angular.py +0 -11
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/scipy.py +2 -2
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/token.py +1 -1
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/util.py +1 -1
- python_semantic_release-10.1.0/src/semantic_release/data/templates/conventional/md/.components/macros.md.j2 +199 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/.components/macros.rst.j2 +99 -136
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_stamp.py +5 -6
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/commit_parser/test_conventional.py +6 -8
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/commit_parser/test_emoji.py +6 -8
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/commit_parser/test_scipy.py +6 -8
- python_semantic_release-10.0.1/docs/configuration/index.rst +0 -18
- python_semantic_release-10.0.1/src/semantic_release/data/templates/conventional/md/.components/macros.md.j2 +0 -230
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/LICENSE +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/MANIFEST.in +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/README.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/Makefile +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/concepts/changelog_templates.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/concepts/commit_parsing.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/concepts/getting_started.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/concepts/index.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/concepts/installation.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/concepts/multibranch_releases.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/concepts/strict_mode.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/conf.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/configuration/automatic-releases/cronjobs.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/configuration/automatic-releases/index.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/configuration/automatic-releases/travis.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/configuration/configuration.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/contributing/contributing_guide.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/contributing/index.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/index.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/make.bat +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/misc/psr_changelog.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/misc/troubleshooting.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/upgrading/08-upgrade.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/upgrading/09-upgrade.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/upgrading/index.rst +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/setup.cfg +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/__main__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/changelog/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/changelog/context.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/changelog/release_history.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/changelog/template.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/cli/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/cli/cli_context.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/cli/commands/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/cli/commands/changelog.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/cli/commands/generate_config.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/cli/commands/main.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/cli/commands/publish.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/cli/const.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/cli/github_actions_output.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/cli/masking_filter.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/cli/util.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/conventional.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/emoji.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/tag.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/const.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/.components/changelog_header.md.j2 +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/.components/changelog_init.md.j2 +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/.components/changelog_update.md.j2 +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/.components/changes.md.j2 +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/.components/first_release.md.j2 +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/.components/unreleased_changes.md.j2 +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/.components/versioned_changes.md.j2 +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/.release_notes.md.j2 +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/CHANGELOG.md.j2 +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/.components/changelog_header.rst.j2 +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/.components/changelog_init.rst.j2 +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/.components/changelog_update.rst.j2 +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/.components/changes.rst.j2 +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/.components/first_release.rst.j2 +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/.components/unreleased_changes.rst.j2 +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/.components/versioned_changes.rst.j2 +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/CHANGELOG.rst.j2 +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/enums.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/errors.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/gitproject.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/globals.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/helpers.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/_base.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/bitbucket.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/gitea.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/github.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/gitlab.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/remote_hvcs_base.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/token_auth.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/util.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/py.typed +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/version/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/version/algorithm.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/version/declaration.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/version/declarations/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/version/declarations/enum.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/version/declarations/i_version_replacer.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/version/declarations/pattern.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/version/declarations/toml.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/version/translator.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/src/semantic_release/version/version.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/conftest.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/const.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_changelog/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_changelog/test_changelog.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_changelog/test_changelog_custom_parser.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_changelog/test_changelog_parsing.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_changelog/test_changelog_release_notes.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_config/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_config/test_generate_config.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_publish/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_publish/test_publish.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/conftest.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/git_flow/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_1_channel.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_2_channels.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_3_channels.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_4_channels.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/github_flow/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/github_flow/test_repo_1_channel.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/github_flow/test_repo_2_channels.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/trunk_based_dev/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk_dual_version_support.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk_dual_version_support_w_prereleases.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk_w_prereleases.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_build.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_bump.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_changelog.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_changelog_custom_commit_msg.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_github_actions.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_print.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_release_notes.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_strict.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/conftest.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/test_help.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/e2e/test_main.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/commit_parsers.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/example_project.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/git_repo.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/repos/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/repos/git_flow/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/repos/git_flow/repo_w_1_release_channel.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/repos/git_flow/repo_w_2_release_channels.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/repos/git_flow/repo_w_3_release_channels.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/repos/git_flow/repo_w_4_release_channels.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/repos/github_flow/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/repos/github_flow/repo_w_default_release.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/repos/github_flow/repo_w_release_channels.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/repos/repo_initial_commit.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/repos/trunk_based_dev/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/repos/trunk_based_dev/repo_w_dual_version_support.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/repos/trunk_based_dev/repo_w_dual_version_support_w_prereleases.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/repos/trunk_based_dev/repo_w_no_tags.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/repos/trunk_based_dev/repo_w_prereleases.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/repos/trunk_based_dev/repo_w_tags.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/fixtures/scipy.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/conftest.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/changelog/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/changelog/conftest.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/changelog/test_changelog_context.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/changelog/test_default_changelog.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/changelog/test_release_history.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/changelog/test_release_notes.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/changelog/test_template.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/changelog/test_template_render.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/cli/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/cli/test_config.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/cli/test_github_actions_output.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/cli/test_masking_filter.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/cli/test_util.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/cli/test_version.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/commit_parser/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/commit_parser/test_parsed_commit.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/commit_parser/test_util.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/hvcs/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/hvcs/test__base.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/hvcs/test_bitbucket.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/hvcs/test_gitea.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/hvcs/test_github.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/hvcs/test_gitlab.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/hvcs/test_token_auth.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/hvcs/test_util.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/test_helpers.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/version/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/version/declarations/__init__.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/version/declarations/test_pattern_declaration.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/version/declarations/test_toml_declaration.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/version/test_algorithm.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/version/test_translator.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/unit/semantic_release/version/test_version.py +0 -0
- {python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/tests/util.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-semantic-release
|
|
3
|
-
Version: 10.0
|
|
3
|
+
Version: 10.1.0
|
|
4
4
|
Summary: Automatic Semantic Versioning for Python projects
|
|
5
5
|
Author-email: Rolf Erik Lekang <me@rolflekang.com>
|
|
6
6
|
License: MIT
|
|
@@ -25,7 +25,7 @@ Requires-Dist: click-option-group~=0.5
|
|
|
25
25
|
Requires-Dist: gitpython~=3.0
|
|
26
26
|
Requires-Dist: requests~=2.25
|
|
27
27
|
Requires-Dist: jinja2~=3.1
|
|
28
|
-
Requires-Dist: python-gitlab<
|
|
28
|
+
Requires-Dist: python-gitlab<7.0.0,>=4.0.0
|
|
29
29
|
Requires-Dist: tomlkit~=0.11
|
|
30
30
|
Requires-Dist: dotty-dict~=1.3
|
|
31
31
|
Requires-Dist: importlib-resources~=6.0
|
|
@@ -62,7 +62,7 @@ Requires-Dist: pre-commit~=3.5; extra == "dev"
|
|
|
62
62
|
Requires-Dist: tox~=4.11; extra == "dev"
|
|
63
63
|
Requires-Dist: ruff==0.6.1; extra == "dev"
|
|
64
64
|
Provides-Extra: mypy
|
|
65
|
-
Requires-Dist: mypy==1.
|
|
65
|
+
Requires-Dist: mypy==1.16.0; extra == "mypy"
|
|
66
66
|
Requires-Dist: types-Deprecated~=1.2; extra == "mypy"
|
|
67
67
|
Requires-Dist: types-requests~=2.32.0; extra == "mypy"
|
|
68
68
|
Requires-Dist: types-pyyaml~=6.0; extra == "mypy"
|
|
@@ -96,25 +96,73 @@ pipeline, while omitting this flag would allow the pipeline to continue to run.
|
|
|
96
96
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
97
97
|
|
|
98
98
|
Detect the semantically correct next version that should be applied to your
|
|
99
|
-
project.
|
|
99
|
+
project and release it.
|
|
100
100
|
|
|
101
|
-
By default:
|
|
101
|
+
By default (in order):
|
|
102
102
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
103
|
+
#. Write this new version to the project metadata locations
|
|
104
|
+
specified in the configuration file
|
|
105
|
+
|
|
106
|
+
#. Update the changelog file with the new version and any changes
|
|
107
|
+
introduced since the last release, using the configured changelog template
|
|
108
|
+
|
|
109
|
+
#. Build the project using :ref:`config-build_command`, if specified
|
|
110
|
+
|
|
111
|
+
#. Create a new commit with these locations and any other assets configured
|
|
112
|
+
to be included in a release
|
|
113
|
+
|
|
114
|
+
#. Tag this commit according the configured format, with a tag that uniquely
|
|
115
|
+
identifies the version being released
|
|
116
|
+
|
|
117
|
+
#. Push the new tag and commit to the remote for the repository
|
|
118
|
+
|
|
119
|
+
#. Create a release in the remote VCS for this tag (if supported)
|
|
120
|
+
|
|
121
|
+
All of these steps can be toggled on or off using the command line options
|
|
122
|
+
described below. Some of the steps rely on others, so some options may implicitly
|
|
123
|
+
disable others.
|
|
112
124
|
|
|
113
125
|
Changelog generation is done identically to the way it is done in :ref:`cmd-changelog`,
|
|
114
126
|
but this command additionally ensures the updated changelog is included in the release
|
|
115
127
|
commit that is made.
|
|
116
128
|
|
|
129
|
+
**Common Variations**
|
|
130
|
+
|
|
131
|
+
.. code-block:: bash
|
|
132
|
+
|
|
133
|
+
# Print the next version that will be applied
|
|
134
|
+
semantic-release version --print
|
|
135
|
+
|
|
136
|
+
# Print the next version that will be applied, including the tag prefix
|
|
137
|
+
semantic-release version --print-tag
|
|
138
|
+
|
|
139
|
+
# Print the last released version
|
|
140
|
+
semantic-release version --print-last-released
|
|
141
|
+
|
|
142
|
+
# Print the last released version, including the tag prefix
|
|
143
|
+
semantic-release version --print-last-released-tag
|
|
144
|
+
|
|
145
|
+
# Only stamp the next version in the project metadata locations
|
|
146
|
+
semantic-release version --no-changelog --skip-build --no-commit --no-tag
|
|
147
|
+
|
|
148
|
+
# Stamp the version, update the changelog, and run the build command, then stop
|
|
149
|
+
semantic-release version --no-commit --no-tag
|
|
150
|
+
|
|
151
|
+
# Make all local changes but do not publish them to the remote (changelog, build, commit & tag)
|
|
152
|
+
semantic-release version --no-push
|
|
153
|
+
|
|
154
|
+
# Don't ever create a changelog (but do everything else)
|
|
155
|
+
semantic-release version --no-changelog
|
|
156
|
+
|
|
157
|
+
# Don't create a release in the remote VCS (but do publish the commit and tag)
|
|
158
|
+
semantic-release version --no-vcs-release
|
|
159
|
+
|
|
160
|
+
# Do everything
|
|
161
|
+
semantic-release version
|
|
162
|
+
|
|
163
|
+
|
|
117
164
|
.. seealso::
|
|
165
|
+
- :ref:`Ultraviolet (uv) integration <config-guides-uv_integration>`
|
|
118
166
|
- :ref:`cmd-changelog`
|
|
119
167
|
- :ref:`changelog-templates`
|
|
120
168
|
- :ref:`config-tag_format`
|
|
@@ -122,6 +170,7 @@ commit that is made.
|
|
|
122
170
|
- :ref:`config-version_toml`
|
|
123
171
|
- :ref:`config-version_variables`
|
|
124
172
|
|
|
173
|
+
|
|
125
174
|
.. _cmd-version-options:
|
|
126
175
|
|
|
127
176
|
Options:
|
|
@@ -362,9 +411,9 @@ Whether or not to push new commits and/or tags to the remote repository.
|
|
|
362
411
|
``--vcs-release/--no-vcs-release``
|
|
363
412
|
**********************************
|
|
364
413
|
|
|
365
|
-
Whether or not to create a "release" in the remote VCS service, if supported.
|
|
366
|
-
releases
|
|
367
|
-
|
|
414
|
+
Whether or not to create a "release" in the remote VCS service, if supported. If
|
|
415
|
+
releases aren't supported in a remote VCS, this option will not cause a command
|
|
416
|
+
failure, but will produce a warning.
|
|
368
417
|
|
|
369
418
|
**Default:** ``--no-vcs-release`` if ``--no-push`` is supplied (including where this is
|
|
370
419
|
implied by supplying only ``--no-commit``), otherwise ``--vcs-release``
|
|
@@ -371,9 +371,9 @@ to the remote repository. This option is equivalent to adding either ``--push``
|
|
|
371
371
|
""""""""""""""""
|
|
372
372
|
|
|
373
373
|
.. important::
|
|
374
|
-
This option has been removed in v10.0.0 and newer because of a
|
|
375
|
-
|
|
376
|
-
|
|
374
|
+
This option has been removed in v10.0.0 and newer because of a command injection
|
|
375
|
+
vulnerability. Please update as to v10.0.0 as soon as possible. See
|
|
376
|
+
:ref:`Upgrading to v10 <upgrade_v10-root_options>` for more information.
|
|
377
377
|
|
|
378
378
|
Additional options for the main ``semantic-release`` command, which will come
|
|
379
379
|
before the :ref:`version <cmd-version>` subcommand.
|
|
@@ -382,7 +382,7 @@ before the :ref:`version <cmd-version>` subcommand.
|
|
|
382
382
|
|
|
383
383
|
.. code:: yaml
|
|
384
384
|
|
|
385
|
-
- uses: python-semantic-release/python-semantic-release@
|
|
385
|
+
- uses: python-semantic-release/python-semantic-release@v9
|
|
386
386
|
with:
|
|
387
387
|
root_options: "-vv --noop"
|
|
388
388
|
|
|
@@ -688,9 +688,9 @@ This is useful for testing the action without actually publishing anything.
|
|
|
688
688
|
""""""""""""""""
|
|
689
689
|
|
|
690
690
|
.. important::
|
|
691
|
-
This option has been removed in v10.0.0 and newer because of a
|
|
692
|
-
|
|
693
|
-
|
|
691
|
+
This option has been removed in v10.0.0 and newer because of a command injection
|
|
692
|
+
vulnerability. Please update as to v10.0.0 as soon as possible. See
|
|
693
|
+
:ref:`Upgrading to v10 <upgrade_v10-root_options>` for more information.
|
|
694
694
|
|
|
695
695
|
Additional options for the main ``semantic-release`` command, which will come
|
|
696
696
|
before the :ref:`publish <cmd-publish>` subcommand.
|
|
@@ -699,7 +699,7 @@ before the :ref:`publish <cmd-publish>` subcommand.
|
|
|
699
699
|
|
|
700
700
|
.. code:: yaml
|
|
701
701
|
|
|
702
|
-
- uses: python-semantic-release/publish-action@
|
|
702
|
+
- uses: python-semantic-release/publish-action@v9
|
|
703
703
|
with:
|
|
704
704
|
root_options: "-vv --noop"
|
|
705
705
|
|
|
@@ -873,14 +873,14 @@ to the GitHub Release Assets as well.
|
|
|
873
873
|
- name: Action | Semantic Version Release
|
|
874
874
|
id: release
|
|
875
875
|
# Adjust tag with desired version if applicable.
|
|
876
|
-
uses: python-semantic-release/python-semantic-release@v10.
|
|
876
|
+
uses: python-semantic-release/python-semantic-release@v10.1.0
|
|
877
877
|
with:
|
|
878
878
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
879
879
|
git_committer_name: "github-actions"
|
|
880
880
|
git_committer_email: "actions@users.noreply.github.com"
|
|
881
881
|
|
|
882
882
|
- name: Publish | Upload to GitHub Release Assets
|
|
883
|
-
uses: python-semantic-release/publish-action@v10.
|
|
883
|
+
uses: python-semantic-release/publish-action@v10.1.0
|
|
884
884
|
if: steps.release.outputs.released == 'true'
|
|
885
885
|
with:
|
|
886
886
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -979,7 +979,7 @@ The equivalent GitHub Action configuration would be:
|
|
|
979
979
|
|
|
980
980
|
- name: Action | Semantic Version Release
|
|
981
981
|
# Adjust tag with desired version if applicable.
|
|
982
|
-
uses: python-semantic-release/python-semantic-release@v10.
|
|
982
|
+
uses: python-semantic-release/python-semantic-release@v10.1.0
|
|
983
983
|
with:
|
|
984
984
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
985
985
|
force: patch
|
|
@@ -1038,14 +1038,14 @@ Publish Action.
|
|
|
1038
1038
|
|
|
1039
1039
|
- name: Release submodule 1
|
|
1040
1040
|
id: release-submod-1
|
|
1041
|
-
uses: python-semantic-release/python-semantic-release@v10.
|
|
1041
|
+
uses: python-semantic-release/python-semantic-release@v10.1.0
|
|
1042
1042
|
with:
|
|
1043
1043
|
directory: ${{ env.SUBMODULE_1_DIR }}
|
|
1044
1044
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
1045
1045
|
|
|
1046
1046
|
- name: Release submodule 2
|
|
1047
1047
|
id: release-submod-2
|
|
1048
|
-
uses: python-semantic-release/python-semantic-release@v10.
|
|
1048
|
+
uses: python-semantic-release/python-semantic-release@v10.1.0
|
|
1049
1049
|
with:
|
|
1050
1050
|
directory: ${{ env.SUBMODULE_2_DIR }}
|
|
1051
1051
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -1057,7 +1057,7 @@ Publish Action.
|
|
|
1057
1057
|
# ------------------------------------------------------------------- #
|
|
1058
1058
|
|
|
1059
1059
|
- name: Publish | Upload package 1 to GitHub Release Assets
|
|
1060
|
-
uses: python-semantic-release/publish-action@v10.
|
|
1060
|
+
uses: python-semantic-release/publish-action@v10.1.0
|
|
1061
1061
|
if: steps.release-submod-1.outputs.released == 'true'
|
|
1062
1062
|
with:
|
|
1063
1063
|
directory: ${{ env.SUBMODULE_1_DIR }}
|
|
@@ -1065,7 +1065,7 @@ Publish Action.
|
|
|
1065
1065
|
tag: ${{ steps.release-submod-1.outputs.tag }}
|
|
1066
1066
|
|
|
1067
1067
|
- name: Publish | Upload package 2 to GitHub Release Assets
|
|
1068
|
-
uses: python-semantic-release/publish-action@v10.
|
|
1068
|
+
uses: python-semantic-release/publish-action@v10.1.0
|
|
1069
1069
|
if: steps.release-submod-2.outputs.released == 'true'
|
|
1070
1070
|
with:
|
|
1071
1071
|
directory: ${{ env.SUBMODULE_2_DIR }}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
.. _config-guides:
|
|
2
|
+
|
|
3
|
+
Configuration Guides
|
|
4
|
+
====================
|
|
5
|
+
|
|
6
|
+
This section provides detailed guides on how to configure PSR for various use cases and
|
|
7
|
+
integrations. It is recommended to complete the
|
|
8
|
+
:ref:`Getting Started Guide <getting-started-guide>` first before diving into these
|
|
9
|
+
more specific configurations.
|
|
10
|
+
|
|
11
|
+
.. toctree::
|
|
12
|
+
:maxdepth: 1
|
|
13
|
+
|
|
14
|
+
UV Project Setup <uv_integration>
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
.. _config-guides-uv_integration:
|
|
2
|
+
|
|
3
|
+
Ultraviolet (``uv``) Integration
|
|
4
|
+
================================
|
|
5
|
+
|
|
6
|
+
.. _uv: https://docs.astral.sh/uv/
|
|
7
|
+
|
|
8
|
+
`uv`_ is an extremely fast Python package and project manager that
|
|
9
|
+
provides a modern alternative to `pip <https://pip.pypa.io/en/stable/>`_
|
|
10
|
+
and `venv <https://docs.python.org/3/library/venv.html>`_. It provides a lot
|
|
11
|
+
of features that solve the common problems of Python package management but
|
|
12
|
+
it also introduces a few quirks that need to be taken into account when using
|
|
13
|
+
Python Semantic Release.
|
|
14
|
+
|
|
15
|
+
.. important::
|
|
16
|
+
|
|
17
|
+
**Prerequisite:** Make sure you have run through the
|
|
18
|
+
:ref:`Getting Started Guide <getting-started-guide>` before proceeding with
|
|
19
|
+
this guide.
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
Updating the ``uv.lock``
|
|
23
|
+
------------------------
|
|
24
|
+
|
|
25
|
+
One of the best features of ``uv`` is that it automatically generates a lock file
|
|
26
|
+
(``uv.lock``) that contains the exact versions of all the dependencies used in
|
|
27
|
+
your project. The lock file is generated when you run the ``uv install`` command,
|
|
28
|
+
and it is used to ensure that CI workflows are repeatable and development environments
|
|
29
|
+
are consistent.
|
|
30
|
+
|
|
31
|
+
When creating a new release using Python Semantic Release, PSR will update the version
|
|
32
|
+
in the project's definition file (e.g., ``pyproject.toml``) to indicate the new version.
|
|
33
|
+
Unfortunately, this action will cause ``uv`` to fail on the next execution because the
|
|
34
|
+
lock file will be out of sync with the project's definition file. There are two ways to
|
|
35
|
+
resolve this issue depending on your preference:
|
|
36
|
+
|
|
37
|
+
#. **Add a step to your build command**: Modify your
|
|
38
|
+
:ref:`semantic_release.build_command <config-build_command>` to include the command
|
|
39
|
+
to update the lock file and stage it for commit. This is commonly used with the
|
|
40
|
+
:ref:`GitHub Action <gh_actions-psr>` and other CI/CD tools when you are building
|
|
41
|
+
the artifact at the time of release.
|
|
42
|
+
|
|
43
|
+
.. code-block:: toml
|
|
44
|
+
|
|
45
|
+
[tool.semantic_release]
|
|
46
|
+
build_command = """
|
|
47
|
+
uv lock --offline
|
|
48
|
+
git add uv.lock
|
|
49
|
+
uv build
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
The ``--offline`` flag is used to ensure that the lock file is updated without
|
|
53
|
+
updating any dependency versions. The intent of this call is **ONLY** to update
|
|
54
|
+
the version of your project within the lock file after PSR has updated the version
|
|
55
|
+
in your project's definition file (e.g., ``pyproject.toml``). When you are running
|
|
56
|
+
PSR, you have already tested the project as is and you don't want to actually
|
|
57
|
+
update the dependencies if a new one just became available.
|
|
58
|
+
|
|
59
|
+
If you are using the :ref:`PSR GitHub Action <gh_actions-psr>`, you will need to add an
|
|
60
|
+
installation command for ``uv`` to the :ref:`build_command <config-build_command>`
|
|
61
|
+
because the action runs in a Docker environment does not include ``uv`` by default.
|
|
62
|
+
The best way to ensure that the correct version of ``uv`` is installed is to define
|
|
63
|
+
the version of ``uv`` in an optional dependency list (e.g. ``build``). This will
|
|
64
|
+
also help with other automated tools like Dependabot or Renovate to keep the version
|
|
65
|
+
of ``uv`` up to date.
|
|
66
|
+
|
|
67
|
+
.. code-block:: toml
|
|
68
|
+
|
|
69
|
+
[project.optional-dependencies]
|
|
70
|
+
build = ["uv ~= 0.7.12"]
|
|
71
|
+
|
|
72
|
+
[tool.semantic_release]
|
|
73
|
+
build_command = """
|
|
74
|
+
python -m pip install -e .[build]
|
|
75
|
+
uv lock --offline
|
|
76
|
+
git add uv.lock
|
|
77
|
+
uv build
|
|
78
|
+
"""
|
|
79
|
+
|
|
80
|
+
#. **Stamp the code first & then separately run release**: If you prefer to not modify the
|
|
81
|
+
build command, then you will need to run the ``uv lock --offline`` command prior to actually
|
|
82
|
+
creating the release. Essentially, you will run PSR twice: (1) once to update the version
|
|
83
|
+
in the project's definition file, and (2) a second time to generate the release.
|
|
84
|
+
|
|
85
|
+
The intent of the ``uv lock --offline`` command is **ONLY** to update the version of your
|
|
86
|
+
project within the lock file after PSR has updated the version in your project's definition
|
|
87
|
+
file (e.g., ``pyproject.toml``). When you are running PSR, you have already tested the project
|
|
88
|
+
as is and you don't want to actually update the dependencies if a new one just became available.
|
|
89
|
+
|
|
90
|
+
.. code-block:: bash
|
|
91
|
+
|
|
92
|
+
# 1. PSR stamps version into files (nothing else)
|
|
93
|
+
# don't build the changelog (especially in update mode)
|
|
94
|
+
semantic-release -v version --skip-build --no-commit --no-tag --no-changelog
|
|
95
|
+
|
|
96
|
+
# 2. run UV lock as pyproject.toml is updated with the next version
|
|
97
|
+
uv lock --offline
|
|
98
|
+
|
|
99
|
+
# 3. stage the lock file to ensure it is included in the PSR commit
|
|
100
|
+
git add uv.lock
|
|
101
|
+
|
|
102
|
+
# 4. run PSR fully to create release
|
|
103
|
+
semantic-release -v version
|
|
104
|
+
|
|
105
|
+
**Advanced Example**
|
|
106
|
+
|
|
107
|
+
Of course, you can mix and match these 2 approaches as needed. If PSR's pipeline was using
|
|
108
|
+
``uv``, we would have a mixture of the 2 approaches because we run the build in a separate
|
|
109
|
+
job from the release. In our case, PSR would also need to carry the lock file as a workflow
|
|
110
|
+
artifact along the pipeline for the release job to commit it. This advanced workflow would
|
|
111
|
+
look like this:
|
|
112
|
+
|
|
113
|
+
.. code-block:: text
|
|
114
|
+
|
|
115
|
+
# File: .tool-versions
|
|
116
|
+
uv 0.7.12
|
|
117
|
+
|
|
118
|
+
.. code-block:: text
|
|
119
|
+
|
|
120
|
+
# File: .python-version
|
|
121
|
+
3.11.11
|
|
122
|
+
|
|
123
|
+
.. code-block:: toml
|
|
124
|
+
|
|
125
|
+
# File: pyproject.toml
|
|
126
|
+
[project.optional-dependencies]
|
|
127
|
+
build = ["python-semantic-release ~= 10.0"]
|
|
128
|
+
test = ["pytest ~= 8.0"]
|
|
129
|
+
|
|
130
|
+
[tool.semantic_release]
|
|
131
|
+
build_command = """
|
|
132
|
+
uv lock --offline
|
|
133
|
+
uv build
|
|
134
|
+
"""
|
|
135
|
+
|
|
136
|
+
.. code-block:: yaml
|
|
137
|
+
|
|
138
|
+
# File: .github/workflows/release.yml
|
|
139
|
+
on:
|
|
140
|
+
push:
|
|
141
|
+
branches:
|
|
142
|
+
- main
|
|
143
|
+
|
|
144
|
+
jobs:
|
|
145
|
+
|
|
146
|
+
build:
|
|
147
|
+
runs-on: ubuntu-latest
|
|
148
|
+
permissions:
|
|
149
|
+
contents: read
|
|
150
|
+
env:
|
|
151
|
+
dist_artifacts_name: dist
|
|
152
|
+
dist_artifacts_dir: dist
|
|
153
|
+
lock_file_artifact: uv.lock
|
|
154
|
+
steps:
|
|
155
|
+
- name: Setup | Checkout Repository at workflow sha
|
|
156
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
157
|
+
with:
|
|
158
|
+
ref: ${{ github.sha }}
|
|
159
|
+
fetch-depth: 0
|
|
160
|
+
|
|
161
|
+
- name: Setup | Force correct release branch on workflow sha
|
|
162
|
+
run: git checkout -B ${{ github.ref_name }}
|
|
163
|
+
|
|
164
|
+
- name: Setup | Install uv
|
|
165
|
+
uses: asdf-vm/actions/install@1902764435ca0dd2f3388eea723a4f92a4eb8302 # v4.0.2
|
|
166
|
+
|
|
167
|
+
- name: Setup | Install Python & Project dependencies
|
|
168
|
+
run: uv sync --extra build
|
|
169
|
+
|
|
170
|
+
- name: Build | Build next version artifacts
|
|
171
|
+
id: version
|
|
172
|
+
env:
|
|
173
|
+
GH_TOKEN: "none"
|
|
174
|
+
run: uv run semantic-release -v version --no-commit --no-tag
|
|
175
|
+
|
|
176
|
+
- name: Upload | Distribution Artifacts
|
|
177
|
+
if: ${{ steps.version.outputs.released == 'true' }}
|
|
178
|
+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
179
|
+
with:
|
|
180
|
+
name: ${{ env.dist_artifacts_name }}
|
|
181
|
+
path: ${{ format('{0}/**', env.dist_artifacts_dir) }}
|
|
182
|
+
if-no-files-found: error
|
|
183
|
+
retention-days: 2
|
|
184
|
+
|
|
185
|
+
- name: Upload | Lock File Artifact
|
|
186
|
+
if: ${{ steps.version.outputs.released == 'true' }}
|
|
187
|
+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
188
|
+
with:
|
|
189
|
+
name: ${{ env.lock_file_artifact }}
|
|
190
|
+
path: ${{ env.lock_file_artifact }}
|
|
191
|
+
if-no-files-found: error
|
|
192
|
+
retention-days: 2
|
|
193
|
+
|
|
194
|
+
outputs:
|
|
195
|
+
new-release-detected: ${{ steps.version.outputs.released }}
|
|
196
|
+
new-release-version: ${{ steps.version.outputs.version }}
|
|
197
|
+
new-release-tag: ${{ steps.version.outputs.tag }}
|
|
198
|
+
new-release-is-prerelease: ${{ steps.version.outputs.is_prerelease }}
|
|
199
|
+
distribution-artifacts: ${{ env.dist_artifacts_name }}
|
|
200
|
+
lock-file-artifact: ${{ env.lock_file_artifact }}
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
test-e2e:
|
|
204
|
+
needs: build
|
|
205
|
+
runs-on: ubuntu-latest
|
|
206
|
+
steps:
|
|
207
|
+
- name: Setup | Checkout Repository
|
|
208
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
209
|
+
with:
|
|
210
|
+
ref: ${{ github.sha }}
|
|
211
|
+
fetch-depth: 1
|
|
212
|
+
|
|
213
|
+
- name: Setup | Download Distribution Artifacts
|
|
214
|
+
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
|
215
|
+
if: ${{ needs.build.outputs.new-release-detected == 'true' }}
|
|
216
|
+
id: artifact-download
|
|
217
|
+
with:
|
|
218
|
+
name: ${{ needs.build.outputs.distribution-artifacts }}
|
|
219
|
+
path: ./dist
|
|
220
|
+
|
|
221
|
+
- name: Setup | Install uv
|
|
222
|
+
uses: asdf-vm/actions/install@1902764435ca0dd2f3388eea723a4f92a4eb8302 # v4.0.2
|
|
223
|
+
|
|
224
|
+
- name: Setup | Install Python & Project dependencies
|
|
225
|
+
run: uv sync --extra test
|
|
226
|
+
|
|
227
|
+
- name: Setup | Install distribution artifact
|
|
228
|
+
if: ${{ steps.artifact-download.outcome == 'success' }}
|
|
229
|
+
run: |
|
|
230
|
+
uv pip uninstall my-package
|
|
231
|
+
uv pip install dist/python_semantic_release-*.whl
|
|
232
|
+
|
|
233
|
+
- name: Test | Run pytest
|
|
234
|
+
run: uv run pytest -vv tests/e2e
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
release:
|
|
238
|
+
runs-on: ubuntu-latest
|
|
239
|
+
needs:
|
|
240
|
+
- build
|
|
241
|
+
- test-e2e
|
|
242
|
+
|
|
243
|
+
if: ${{ needs.build.outputs.new-release-detected == 'true' }}
|
|
244
|
+
|
|
245
|
+
concurrency:
|
|
246
|
+
group: ${{ github.workflow }}-release-${{ github.ref_name }}
|
|
247
|
+
cancel-in-progress: false
|
|
248
|
+
|
|
249
|
+
permissions:
|
|
250
|
+
contents: write
|
|
251
|
+
|
|
252
|
+
steps:
|
|
253
|
+
- name: Setup | Checkout Repository on Release Branch
|
|
254
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
255
|
+
with:
|
|
256
|
+
ref: ${{ github.ref_name }}
|
|
257
|
+
fetch-depth: 0
|
|
258
|
+
|
|
259
|
+
- name: Setup | Force release branch to be at workflow sha
|
|
260
|
+
run: git reset --hard ${{ github.sha }}
|
|
261
|
+
|
|
262
|
+
- name: Setup | Install uv
|
|
263
|
+
uses: asdf-vm/actions/install@1902764435ca0dd2f3388eea723a4f92a4eb8302 # v4.0.2
|
|
264
|
+
|
|
265
|
+
- name: Setup | Install Python & Project dependencies
|
|
266
|
+
run: uv sync --extra build
|
|
267
|
+
|
|
268
|
+
- name: Setup | Download Build Artifacts
|
|
269
|
+
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
|
270
|
+
id: artifact-download
|
|
271
|
+
with:
|
|
272
|
+
name: ${{ needs.build.outputs.distribution-artifacts }}
|
|
273
|
+
path: dist
|
|
274
|
+
|
|
275
|
+
- name: Setup | Download Lock File Artifact
|
|
276
|
+
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
|
277
|
+
with:
|
|
278
|
+
name: ${{ needs.build.outputs.lock-file-artifact }}
|
|
279
|
+
|
|
280
|
+
- name: Setup | Stage Lock File for Version Commit
|
|
281
|
+
run: git add uv.lock
|
|
282
|
+
|
|
283
|
+
- name: Release | Create Release
|
|
284
|
+
id: release
|
|
285
|
+
shell: bash
|
|
286
|
+
env:
|
|
287
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
288
|
+
run: |
|
|
289
|
+
bash .github/workflows/verify_upstream.sh
|
|
290
|
+
uv run semantic-release -v --strict version --skip-build
|
|
291
|
+
uv run semantic-release publish
|
|
292
|
+
|
|
293
|
+
outputs:
|
|
294
|
+
released: ${{ steps.release.outputs.released }}
|
|
295
|
+
new-release-version: ${{ steps.release.outputs.version }}
|
|
296
|
+
new-release-tag: ${{ steps.release.outputs.tag }}
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
deploy:
|
|
300
|
+
name: Deploy
|
|
301
|
+
runs-on: ubuntu-latest
|
|
302
|
+
if: ${{ needs.release.outputs.released == 'true' && github.repository == 'python-semantic-release/my-package' }}
|
|
303
|
+
needs:
|
|
304
|
+
- build
|
|
305
|
+
- release
|
|
306
|
+
|
|
307
|
+
environment:
|
|
308
|
+
name: pypi
|
|
309
|
+
url: https://pypi.org/project/my-package/
|
|
310
|
+
|
|
311
|
+
permissions:
|
|
312
|
+
id-token: write
|
|
313
|
+
|
|
314
|
+
steps:
|
|
315
|
+
- name: Setup | Download Build Artifacts
|
|
316
|
+
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
|
317
|
+
id: artifact-download
|
|
318
|
+
with:
|
|
319
|
+
name: ${{ needs.build.outputs.distribution-artifacts }}
|
|
320
|
+
path: dist
|
|
321
|
+
|
|
322
|
+
- name: Publish package distributions to PyPI
|
|
323
|
+
uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc # v1.12.4
|
|
324
|
+
with:
|
|
325
|
+
packages-dir: dist
|
|
326
|
+
print-hash: true
|
|
327
|
+
verbose: true
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
.. _configuration:
|
|
2
|
+
|
|
3
|
+
Configuration
|
|
4
|
+
=============
|
|
5
|
+
|
|
6
|
+
Python Semantic Release is highly configurable, allowing you to tailor it to your
|
|
7
|
+
project's needs. It supports various runtime environments and can be integrated with
|
|
8
|
+
different CI/CD services.
|
|
9
|
+
|
|
10
|
+
#. Check out our set of :ref:`configuration guides <config-guides>` to help walk
|
|
11
|
+
you through the set up of common project customizations.
|
|
12
|
+
|
|
13
|
+
#. Dive in deep and explore the full set of possible :ref:`customization options <config>`.
|
|
14
|
+
|
|
15
|
+
#. Go Automatic and Configure your :ref:`CI/CD services <automatic>` to use Python
|
|
16
|
+
Semantic Release.
|
|
17
|
+
|
|
18
|
+
.. toctree::
|
|
19
|
+
:maxdepth: 1
|
|
20
|
+
:hidden:
|
|
21
|
+
|
|
22
|
+
Guides <configuration-guides/index>
|
|
23
|
+
Options <configuration>
|
|
24
|
+
automatic-releases/index
|
{python_semantic_release-10.0.1 → python_semantic_release-10.1.0}/docs/upgrading/10-upgrade.rst
RENAMED
|
@@ -42,18 +42,51 @@ This vulnerability existed in both the
|
|
|
42
42
|
|
|
43
43
|
For the main :ref:`python-semantic-release/python-semantic-release <gh_actions-psr>` action,
|
|
44
44
|
the following inputs are now available (in place of the old ``root_options`` parameter):
|
|
45
|
+
:ref:`gh_actions-psr-inputs-config_file`, :ref:`gh_actions-psr-inputs-noop`,
|
|
46
|
+
:ref:`gh_actions-psr-inputs-strict`, and :ref:`gh_actions-psr-inputs-verbosity`.
|
|
45
47
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
**Example migration**
|
|
49
|
+
|
|
50
|
+
If you previously had the following in your GitHub Actions workflow file:
|
|
51
|
+
|
|
52
|
+
.. code:: yaml
|
|
53
|
+
|
|
54
|
+
- uses: python-semantic-release/python-semantic-release@v9
|
|
55
|
+
with:
|
|
56
|
+
root_options: "-vv --strict"
|
|
57
|
+
|
|
58
|
+
It would be updated to:
|
|
59
|
+
|
|
60
|
+
.. code:: yaml
|
|
61
|
+
|
|
62
|
+
- uses: python-semantic-release/python-semantic-release@v10
|
|
63
|
+
with:
|
|
64
|
+
strict: true
|
|
65
|
+
verbosity: 2
|
|
50
66
|
|
|
51
67
|
For the :ref:`python-semantic-release/publish-action <gh_actions-publish>` action,
|
|
52
68
|
the following inputs are now available (in place of the old ``root_options`` parameter):
|
|
69
|
+
:ref:`gh_actions-publish-inputs-config_file`, :ref:`gh_actions-publish-inputs-noop`,
|
|
70
|
+
and :ref:`gh_actions-publish-inputs-verbosity`.
|
|
71
|
+
|
|
72
|
+
**Example migration**
|
|
73
|
+
|
|
74
|
+
If you previously had the following in your GitHub Actions workflow file:
|
|
75
|
+
|
|
76
|
+
.. code:: yaml
|
|
77
|
+
|
|
78
|
+
- uses: python-semantic-release/publish-action@v9
|
|
79
|
+
with:
|
|
80
|
+
root_options: "-v -c /path/to/releaserc.yaml"
|
|
81
|
+
|
|
82
|
+
It would be updated to:
|
|
83
|
+
|
|
84
|
+
.. code:: yaml
|
|
53
85
|
|
|
54
|
-
- :
|
|
55
|
-
|
|
56
|
-
|
|
86
|
+
- uses: python-semantic-release/publish-action@v10
|
|
87
|
+
with:
|
|
88
|
+
config_file: /path/to/releaserc.yaml
|
|
89
|
+
verbosity: 1
|
|
57
90
|
|
|
58
91
|
|
|
59
92
|
.. _upgrade_v10-changelog_format-1_line_commit_subjects:
|