python-semantic-release 10.0.2__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.
Files changed (214) hide show
  1. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/PKG-INFO +3 -3
  2. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/api/commands.rst +63 -14
  3. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/configuration/automatic-releases/github-actions.rst +15 -15
  4. python_semantic_release-10.1.0/docs/configuration/configuration-guides/index.rst +14 -0
  5. python_semantic_release-10.1.0/docs/configuration/configuration-guides/uv_integration.rst +327 -0
  6. python_semantic_release-10.1.0/docs/configuration/index.rst +24 -0
  7. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/upgrading/10-upgrade.rst +40 -7
  8. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/pyproject.toml +5 -3
  9. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/python_semantic_release.egg-info/SOURCES.txt +2 -0
  10. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/cli/changelog_writer.py +1 -1
  11. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/cli/commands/version.py +6 -11
  12. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/cli/config.py +5 -5
  13. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/_base.py +1 -1
  14. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/angular.py +0 -11
  15. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/scipy.py +2 -2
  16. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/token.py +1 -1
  17. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/util.py +1 -1
  18. python_semantic_release-10.1.0/src/semantic_release/data/templates/conventional/md/.components/macros.md.j2 +199 -0
  19. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/.components/macros.rst.j2 +99 -136
  20. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_stamp.py +5 -6
  21. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/commit_parser/test_conventional.py +6 -8
  22. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/commit_parser/test_emoji.py +6 -8
  23. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/commit_parser/test_scipy.py +6 -8
  24. python_semantic_release-10.0.2/docs/configuration/index.rst +0 -18
  25. python_semantic_release-10.0.2/src/semantic_release/data/templates/conventional/md/.components/macros.md.j2 +0 -230
  26. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/LICENSE +0 -0
  27. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/MANIFEST.in +0 -0
  28. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/README.rst +0 -0
  29. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/Makefile +0 -0
  30. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/concepts/changelog_templates.rst +0 -0
  31. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/concepts/commit_parsing.rst +0 -0
  32. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/concepts/getting_started.rst +0 -0
  33. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/concepts/index.rst +0 -0
  34. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/concepts/installation.rst +0 -0
  35. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/concepts/multibranch_releases.rst +0 -0
  36. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/concepts/strict_mode.rst +0 -0
  37. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/conf.py +0 -0
  38. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/configuration/automatic-releases/cronjobs.rst +0 -0
  39. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/configuration/automatic-releases/index.rst +0 -0
  40. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/configuration/automatic-releases/travis.rst +0 -0
  41. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/configuration/configuration.rst +0 -0
  42. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/contributing/contributing_guide.rst +0 -0
  43. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/contributing/index.rst +0 -0
  44. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/index.rst +0 -0
  45. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/make.bat +0 -0
  46. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/misc/psr_changelog.rst +0 -0
  47. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/misc/troubleshooting.rst +0 -0
  48. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/upgrading/08-upgrade.rst +0 -0
  49. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/upgrading/09-upgrade.rst +0 -0
  50. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/docs/upgrading/index.rst +0 -0
  51. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/setup.cfg +0 -0
  52. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/__init__.py +0 -0
  53. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/__main__.py +0 -0
  54. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/changelog/__init__.py +0 -0
  55. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/changelog/context.py +0 -0
  56. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/changelog/release_history.py +0 -0
  57. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/changelog/template.py +0 -0
  58. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/cli/__init__.py +0 -0
  59. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/cli/cli_context.py +0 -0
  60. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/cli/commands/__init__.py +0 -0
  61. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/cli/commands/changelog.py +0 -0
  62. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/cli/commands/generate_config.py +0 -0
  63. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/cli/commands/main.py +0 -0
  64. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/cli/commands/publish.py +0 -0
  65. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/cli/const.py +0 -0
  66. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/cli/github_actions_output.py +0 -0
  67. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/cli/masking_filter.py +0 -0
  68. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/cli/util.py +0 -0
  69. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/__init__.py +0 -0
  70. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/conventional.py +0 -0
  71. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/emoji.py +0 -0
  72. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/commit_parser/tag.py +0 -0
  73. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/const.py +0 -0
  74. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/.components/changelog_header.md.j2 +0 -0
  75. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/.components/changelog_init.md.j2 +0 -0
  76. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/.components/changelog_update.md.j2 +0 -0
  77. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/.components/changes.md.j2 +0 -0
  78. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/.components/first_release.md.j2 +0 -0
  79. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/.components/unreleased_changes.md.j2 +0 -0
  80. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/.components/versioned_changes.md.j2 +0 -0
  81. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/.release_notes.md.j2 +0 -0
  82. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/md/CHANGELOG.md.j2 +0 -0
  83. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/.components/changelog_header.rst.j2 +0 -0
  84. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/.components/changelog_init.rst.j2 +0 -0
  85. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/.components/changelog_update.rst.j2 +0 -0
  86. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/.components/changes.rst.j2 +0 -0
  87. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/.components/first_release.rst.j2 +0 -0
  88. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/.components/unreleased_changes.rst.j2 +0 -0
  89. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/.components/versioned_changes.rst.j2 +0 -0
  90. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/data/templates/conventional/rst/CHANGELOG.rst.j2 +0 -0
  91. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/enums.py +0 -0
  92. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/errors.py +0 -0
  93. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/gitproject.py +0 -0
  94. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/globals.py +0 -0
  95. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/helpers.py +0 -0
  96. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/__init__.py +0 -0
  97. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/_base.py +0 -0
  98. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/bitbucket.py +0 -0
  99. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/gitea.py +0 -0
  100. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/github.py +0 -0
  101. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/gitlab.py +0 -0
  102. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/remote_hvcs_base.py +0 -0
  103. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/token_auth.py +0 -0
  104. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/hvcs/util.py +0 -0
  105. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/py.typed +0 -0
  106. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/version/__init__.py +0 -0
  107. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/version/algorithm.py +0 -0
  108. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/version/declaration.py +0 -0
  109. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/version/declarations/__init__.py +0 -0
  110. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/version/declarations/enum.py +0 -0
  111. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/version/declarations/i_version_replacer.py +0 -0
  112. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/version/declarations/pattern.py +0 -0
  113. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/version/declarations/toml.py +0 -0
  114. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/version/translator.py +0 -0
  115. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/src/semantic_release/version/version.py +0 -0
  116. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/__init__.py +0 -0
  117. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/conftest.py +0 -0
  118. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/const.py +0 -0
  119. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/__init__.py +0 -0
  120. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_changelog/__init__.py +0 -0
  121. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_changelog/test_changelog.py +0 -0
  122. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_changelog/test_changelog_custom_parser.py +0 -0
  123. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_changelog/test_changelog_parsing.py +0 -0
  124. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_changelog/test_changelog_release_notes.py +0 -0
  125. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_config/__init__.py +0 -0
  126. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_config/test_generate_config.py +0 -0
  127. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_publish/__init__.py +0 -0
  128. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_publish/test_publish.py +0 -0
  129. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/__init__.py +0 -0
  130. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/__init__.py +0 -0
  131. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/conftest.py +0 -0
  132. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/git_flow/__init__.py +0 -0
  133. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_1_channel.py +0 -0
  134. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_2_channels.py +0 -0
  135. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_3_channels.py +0 -0
  136. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_4_channels.py +0 -0
  137. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/github_flow/__init__.py +0 -0
  138. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/github_flow/test_repo_1_channel.py +0 -0
  139. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/github_flow/test_repo_2_channels.py +0 -0
  140. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/trunk_based_dev/__init__.py +0 -0
  141. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk.py +0 -0
  142. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk_dual_version_support.py +0 -0
  143. {python_semantic_release-10.0.2 → 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
  144. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk_w_prereleases.py +0 -0
  145. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version.py +0 -0
  146. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_build.py +0 -0
  147. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_bump.py +0 -0
  148. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_changelog.py +0 -0
  149. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_changelog_custom_commit_msg.py +0 -0
  150. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_github_actions.py +0 -0
  151. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_print.py +0 -0
  152. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_release_notes.py +0 -0
  153. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/cmd_version/test_version_strict.py +0 -0
  154. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/conftest.py +0 -0
  155. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/test_help.py +0 -0
  156. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/e2e/test_main.py +0 -0
  157. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/__init__.py +0 -0
  158. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/commit_parsers.py +0 -0
  159. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/example_project.py +0 -0
  160. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/git_repo.py +0 -0
  161. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/repos/__init__.py +0 -0
  162. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/repos/git_flow/__init__.py +0 -0
  163. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/repos/git_flow/repo_w_1_release_channel.py +0 -0
  164. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/repos/git_flow/repo_w_2_release_channels.py +0 -0
  165. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/repos/git_flow/repo_w_3_release_channels.py +0 -0
  166. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/repos/git_flow/repo_w_4_release_channels.py +0 -0
  167. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/repos/github_flow/__init__.py +0 -0
  168. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/repos/github_flow/repo_w_default_release.py +0 -0
  169. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/repos/github_flow/repo_w_release_channels.py +0 -0
  170. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/repos/repo_initial_commit.py +0 -0
  171. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/repos/trunk_based_dev/__init__.py +0 -0
  172. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/repos/trunk_based_dev/repo_w_dual_version_support.py +0 -0
  173. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/repos/trunk_based_dev/repo_w_dual_version_support_w_prereleases.py +0 -0
  174. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/repos/trunk_based_dev/repo_w_no_tags.py +0 -0
  175. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/repos/trunk_based_dev/repo_w_prereleases.py +0 -0
  176. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/repos/trunk_based_dev/repo_w_tags.py +0 -0
  177. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/fixtures/scipy.py +0 -0
  178. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/__init__.py +0 -0
  179. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/conftest.py +0 -0
  180. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/__init__.py +0 -0
  181. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/changelog/__init__.py +0 -0
  182. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/changelog/conftest.py +0 -0
  183. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/changelog/test_changelog_context.py +0 -0
  184. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/changelog/test_default_changelog.py +0 -0
  185. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/changelog/test_release_history.py +0 -0
  186. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/changelog/test_release_notes.py +0 -0
  187. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/changelog/test_template.py +0 -0
  188. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/changelog/test_template_render.py +0 -0
  189. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/cli/__init__.py +0 -0
  190. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/cli/test_config.py +0 -0
  191. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/cli/test_github_actions_output.py +0 -0
  192. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/cli/test_masking_filter.py +0 -0
  193. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/cli/test_util.py +0 -0
  194. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/cli/test_version.py +0 -0
  195. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/commit_parser/__init__.py +0 -0
  196. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/commit_parser/test_parsed_commit.py +0 -0
  197. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/commit_parser/test_util.py +0 -0
  198. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/hvcs/__init__.py +0 -0
  199. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/hvcs/test__base.py +0 -0
  200. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/hvcs/test_bitbucket.py +0 -0
  201. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/hvcs/test_gitea.py +0 -0
  202. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/hvcs/test_github.py +0 -0
  203. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/hvcs/test_gitlab.py +0 -0
  204. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/hvcs/test_token_auth.py +0 -0
  205. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/hvcs/test_util.py +0 -0
  206. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/test_helpers.py +0 -0
  207. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/version/__init__.py +0 -0
  208. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/version/declarations/__init__.py +0 -0
  209. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/version/declarations/test_pattern_declaration.py +0 -0
  210. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/version/declarations/test_toml_declaration.py +0 -0
  211. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/version/test_algorithm.py +0 -0
  212. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/version/test_translator.py +0 -0
  213. {python_semantic_release-10.0.2 → python_semantic_release-10.1.0}/tests/unit/semantic_release/version/test_version.py +0 -0
  214. {python_semantic_release-10.0.2 → 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.2
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<6.0.0,>=4.0.0
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.15.0; extra == "mypy"
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
- * Write this new version to the project metadata locations
104
- specified in the configuration file
105
- * Build the project using :ref:`config-build_command`, if specified
106
- * Create a new commit with these locations and any other assets configured
107
- to be included in a release
108
- * Tag this commit according the configured format, with a tag that uniquely
109
- identifies the version being released
110
- * Push the new tag and commit to the remote for the repository
111
- * Create a release (if supported) in the remote VCS for this tag
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. Currently
366
- releases in GitHub and Gitea remotes are supported. If releases aren't supported in a
367
- remote VCS, this option will not cause a command failure, but will produce a warning.
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
- command injection vulnerability. Please update as to v10.0.0 as soon
376
- as possible.
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@v10.0.1
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
- command injection vulnerability. Please update as to v10.0.0 as soon
693
- as possible.
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@v10.0.1
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.0.1
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.0.1
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.0.1
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.0.1
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.0.1
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.0.1
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.0.1
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
@@ -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
- - :ref:`gh_actions-psr-inputs-config_file`
47
- - :ref:`gh_actions-psr-inputs-noop`
48
- - :ref:`gh_actions-psr-inputs-strict`
49
- - :ref:`gh_actions-psr-inputs-verbosity`
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
- - :ref:`gh_actions-publish-inputs-config_file`
55
- - :ref:`gh_actions-publish-inputs-noop`
56
- - :ref:`gh_actions-publish-inputs-verbosity`
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: