python-semantic-release 9.12.0__tar.gz → 9.12.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/MANIFEST.in +1 -4
  2. {python_semantic_release-9.12.0/python_semantic_release.egg-info → python_semantic_release-9.12.2}/PKG-INFO +6 -5
  3. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/automatic-releases/github-actions.rst +5 -5
  4. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/changelog_templates.rst +21 -15
  5. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/configuration.rst +1 -1
  6. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/pyproject.toml +25 -15
  7. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src/python_semantic_release.egg-info}/PKG-INFO +6 -5
  8. python_semantic_release-9.12.2/src/python_semantic_release.egg-info/SOURCES.txt +170 -0
  9. python_semantic_release-9.12.2/src/python_semantic_release.egg-info/entry_points.txt +3 -0
  10. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/python_semantic_release.egg-info/requires.txt +5 -4
  11. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/__init__.py +1 -1
  12. python_semantic_release-9.12.2/src/semantic_release/__main__.py +42 -0
  13. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/changelog/context.py +1 -1
  14. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/cli/changelog_writer.py +12 -4
  15. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/cli/commands/main.py +4 -0
  16. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/cli/commands/version.py +0 -11
  17. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/cli/const.py +1 -1
  18. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/commit_parser/angular.py +62 -38
  19. python_semantic_release-9.12.0/semantic_release/data/templates/angular/md/.changelog_init.md.j2 → python_semantic_release-9.12.2/src/semantic_release/data/templates/angular/md/.components/changelog_init.md.j2 +3 -3
  20. python_semantic_release-9.12.0/semantic_release/data/templates/angular/md/.changelog_update.md.j2 → python_semantic_release-9.12.2/src/semantic_release/data/templates/angular/md/.components/changelog_update.md.j2 +3 -3
  21. python_semantic_release-9.12.0/semantic_release/data/templates/angular/md/.unreleased_changes.md.j2 → python_semantic_release-9.12.2/src/semantic_release/data/templates/angular/md/.components/unreleased_changes.md.j2 +1 -1
  22. python_semantic_release-9.12.0/semantic_release/data/templates/angular/md/.versioned_changes.md.j2 → python_semantic_release-9.12.2/src/semantic_release/data/templates/angular/md/.components/versioned_changes.md.j2 +1 -1
  23. python_semantic_release-9.12.2/src/semantic_release/data/templates/angular/md/.release_notes.md.j2 +1 -0
  24. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/data/templates/angular/md/CHANGELOG.md.j2 +2 -2
  25. python_semantic_release-9.12.0/semantic_release/data/templates/angular/rst/.changelog_init.rst.j2 → python_semantic_release-9.12.2/src/semantic_release/data/templates/angular/rst/.components/changelog_init.rst.j2 +3 -3
  26. python_semantic_release-9.12.0/semantic_release/data/templates/angular/rst/.changelog_update.rst.j2 → python_semantic_release-9.12.2/src/semantic_release/data/templates/angular/rst/.components/changelog_update.rst.j2 +3 -3
  27. python_semantic_release-9.12.0/semantic_release/data/templates/angular/rst/.changes.rst.j2 → python_semantic_release-9.12.2/src/semantic_release/data/templates/angular/rst/.components/changes.rst.j2 +1 -1
  28. python_semantic_release-9.12.0/semantic_release/data/templates/angular/rst/.unreleased_changes.rst.j2 → python_semantic_release-9.12.2/src/semantic_release/data/templates/angular/rst/.components/unreleased_changes.rst.j2 +1 -1
  29. python_semantic_release-9.12.0/semantic_release/data/templates/angular/rst/.versioned_changes.rst.j2 → python_semantic_release-9.12.2/src/semantic_release/data/templates/angular/rst/.components/versioned_changes.rst.j2 +2 -2
  30. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/data/templates/angular/rst/CHANGELOG.rst.j2 +2 -2
  31. python_semantic_release-9.12.2/src/semantic_release/globals.py +6 -0
  32. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/hvcs/bitbucket.py +14 -1
  33. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/hvcs/gitea.py +27 -2
  34. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/hvcs/github.py +27 -2
  35. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/hvcs/gitlab.py +28 -4
  36. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/conftest.py +83 -0
  37. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/const.py +39 -52
  38. {python_semantic_release-9.12.0/tests/command_line → python_semantic_release-9.12.2/tests/e2e/cmd_changelog}/test_changelog.py +103 -93
  39. python_semantic_release-9.12.2/tests/e2e/cmd_version/test_version.py +275 -0
  40. python_semantic_release-9.12.2/tests/e2e/cmd_version/test_version_build.py +395 -0
  41. python_semantic_release-9.12.2/tests/e2e/cmd_version/test_version_bump.py +3571 -0
  42. python_semantic_release-9.12.2/tests/e2e/cmd_version/test_version_changelog.py +519 -0
  43. python_semantic_release-9.12.2/tests/e2e/cmd_version/test_version_github_actions.py +45 -0
  44. python_semantic_release-9.12.2/tests/e2e/cmd_version/test_version_print.py +531 -0
  45. python_semantic_release-9.12.2/tests/e2e/cmd_version/test_version_release_notes.py +78 -0
  46. {python_semantic_release-9.12.0/tests/scenario → python_semantic_release-9.12.2/tests/e2e/cmd_version}/test_version_stamp.py +137 -46
  47. python_semantic_release-9.12.2/tests/e2e/cmd_version/test_version_strict.py +117 -0
  48. {python_semantic_release-9.12.0/tests/command_line → python_semantic_release-9.12.2/tests/e2e}/conftest.py +9 -0
  49. python_semantic_release-9.12.2/tests/fixtures/commit_parsers.py +85 -0
  50. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/fixtures/example_project.py +32 -0
  51. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/fixtures/git_repo.py +25 -0
  52. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/fixtures/repos/__init__.py +1 -0
  53. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/fixtures/repos/git_flow/repo_w_2_release_channels.py +260 -36
  54. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/fixtures/repos/git_flow/repo_w_3_release_channels.py +376 -67
  55. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/fixtures/repos/github_flow/repo_w_release_channels.py +5 -0
  56. python_semantic_release-9.12.2/tests/fixtures/repos/repo_initial_commit.py +181 -0
  57. python_semantic_release-9.12.2/tests/unit/conftest.py +14 -0
  58. {python_semantic_release-9.12.0/tests/scenario → python_semantic_release-9.12.2/tests/unit/semantic_release/changelog}/test_release_history.py +87 -66
  59. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/changelog/test_release_notes.py +1 -2
  60. python_semantic_release-9.12.2/tests/unit/semantic_release/hvcs/__init__.py +0 -0
  61. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/hvcs/test_bitbucket.py +2 -2
  62. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/hvcs/test_gitea.py +4 -4
  63. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/hvcs/test_github.py +4 -4
  64. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/hvcs/test_gitlab.py +5 -5
  65. python_semantic_release-9.12.2/tests/unit/semantic_release/hvcs/test_util.py +0 -0
  66. python_semantic_release-9.12.2/tests/unit/semantic_release/version/__init__.py +0 -0
  67. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/util.py +8 -0
  68. python_semantic_release-9.12.0/python_semantic_release.egg-info/SOURCES.txt +0 -174
  69. python_semantic_release-9.12.0/python_semantic_release.egg-info/entry_points.txt +0 -3
  70. python_semantic_release-9.12.0/semantic_release/__main__.py +0 -6
  71. python_semantic_release-9.12.0/semantic_release/data/templates/angular/release_notes.md.j2 +0 -1
  72. python_semantic_release-9.12.0/tests/command_line/test_version.py +0 -1855
  73. python_semantic_release-9.12.0/tests/fixtures/commit_parsers.py +0 -34
  74. python_semantic_release-9.12.0/tests/scenario/test_next_version.py +0 -2018
  75. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/AUTHORS.rst +0 -0
  76. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/LICENSE +0 -0
  77. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/README.rst +0 -0
  78. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/Makefile +0 -0
  79. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/algorithm.rst +0 -0
  80. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/automatic-releases/cronjobs.rst +0 -0
  81. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/automatic-releases/index.rst +0 -0
  82. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/automatic-releases/travis.rst +0 -0
  83. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/commands.rst +0 -0
  84. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/commit-parsing.rst +0 -0
  85. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/conf.py +0 -0
  86. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/contributing.rst +0 -0
  87. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/contributors.rst +0 -0
  88. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/index.rst +0 -0
  89. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/make.bat +0 -0
  90. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/migrating_from_v7.rst +0 -0
  91. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/multibranch_releases.rst +0 -0
  92. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/strict_mode.rst +0 -0
  93. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/docs/troubleshooting.rst +0 -0
  94. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/setup.cfg +0 -0
  95. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/python_semantic_release.egg-info/dependency_links.txt +0 -0
  96. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/python_semantic_release.egg-info/top_level.txt +0 -0
  97. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/changelog/__init__.py +0 -0
  98. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/changelog/release_history.py +0 -0
  99. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/changelog/template.py +0 -0
  100. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/cli/__init__.py +0 -0
  101. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/cli/cli_context.py +0 -0
  102. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/cli/commands/__init__.py +0 -0
  103. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/cli/commands/changelog.py +0 -0
  104. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/cli/commands/generate_config.py +0 -0
  105. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/cli/commands/publish.py +0 -0
  106. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/cli/config.py +0 -0
  107. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/cli/github_actions_output.py +0 -0
  108. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/cli/masking_filter.py +0 -0
  109. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/cli/util.py +0 -0
  110. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/commit_parser/__init__.py +0 -0
  111. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/commit_parser/_base.py +0 -0
  112. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/commit_parser/emoji.py +0 -0
  113. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/commit_parser/scipy.py +0 -0
  114. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/commit_parser/tag.py +0 -0
  115. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/commit_parser/token.py +0 -0
  116. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/commit_parser/util.py +0 -0
  117. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/const.py +0 -0
  118. /python_semantic_release-9.12.0/semantic_release/data/templates/angular/md/.changelog_header.md.j2 → /python_semantic_release-9.12.2/src/semantic_release/data/templates/angular/md/.components/changelog_header.md.j2 +0 -0
  119. /python_semantic_release-9.12.0/semantic_release/data/templates/angular/md/.changes.md.j2 → /python_semantic_release-9.12.2/src/semantic_release/data/templates/angular/md/.components/changes.md.j2 +0 -0
  120. /python_semantic_release-9.12.0/semantic_release/data/templates/angular/rst/.changelog_header.rst.j2 → /python_semantic_release-9.12.2/src/semantic_release/data/templates/angular/rst/.components/changelog_header.rst.j2 +0 -0
  121. /python_semantic_release-9.12.0/semantic_release/data/templates/angular/rst/.macros.rst.j2 → /python_semantic_release-9.12.2/src/semantic_release/data/templates/angular/rst/.components/macros.rst.j2 +0 -0
  122. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/enums.py +0 -0
  123. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/errors.py +0 -0
  124. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/gitproject.py +0 -0
  125. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/helpers.py +0 -0
  126. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/hvcs/__init__.py +0 -0
  127. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/hvcs/_base.py +0 -0
  128. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/hvcs/remote_hvcs_base.py +0 -0
  129. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/hvcs/token_auth.py +0 -0
  130. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/hvcs/util.py +0 -0
  131. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/version/__init__.py +0 -0
  132. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/version/algorithm.py +0 -0
  133. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/version/declaration.py +0 -0
  134. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/version/translator.py +0 -0
  135. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2/src}/semantic_release/version/version.py +0 -0
  136. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/__init__.py +0 -0
  137. {python_semantic_release-9.12.0/tests/command_line → python_semantic_release-9.12.2/tests/e2e}/__init__.py +0 -0
  138. {python_semantic_release-9.12.0/tests/scenario → python_semantic_release-9.12.2/tests/e2e/cmd_changelog}/__init__.py +0 -0
  139. {python_semantic_release-9.12.0/tests/unit → python_semantic_release-9.12.2/tests/e2e/cmd_config}/__init__.py +0 -0
  140. {python_semantic_release-9.12.0/tests/command_line → python_semantic_release-9.12.2/tests/e2e/cmd_config}/test_generate_config.py +0 -0
  141. {python_semantic_release-9.12.0/tests/unit/semantic_release → python_semantic_release-9.12.2/tests/e2e/cmd_publish}/__init__.py +0 -0
  142. {python_semantic_release-9.12.0/tests/command_line → python_semantic_release-9.12.2/tests/e2e/cmd_publish}/test_publish.py +0 -0
  143. {python_semantic_release-9.12.0/tests/unit/semantic_release/changelog → python_semantic_release-9.12.2/tests/e2e/cmd_version}/__init__.py +0 -0
  144. {python_semantic_release-9.12.0/tests/command_line → python_semantic_release-9.12.2/tests/e2e}/test_help.py +0 -0
  145. {python_semantic_release-9.12.0/tests/command_line → python_semantic_release-9.12.2/tests/e2e}/test_main.py +0 -0
  146. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/fixtures/__init__.py +0 -0
  147. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/fixtures/repos/git_flow/__init__.py +0 -0
  148. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/fixtures/repos/github_flow/__init__.py +0 -0
  149. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/fixtures/repos/trunk_based_dev/__init__.py +0 -0
  150. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/fixtures/repos/trunk_based_dev/repo_w_no_tags.py +0 -0
  151. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/fixtures/repos/trunk_based_dev/repo_w_prereleases.py +0 -0
  152. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/fixtures/repos/trunk_based_dev/repo_w_tags.py +0 -0
  153. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/fixtures/scipy.py +0 -0
  154. {python_semantic_release-9.12.0/tests/unit/semantic_release/cli → python_semantic_release-9.12.2/tests/unit}/__init__.py +0 -0
  155. {python_semantic_release-9.12.0/tests/unit/semantic_release/commit_parser → python_semantic_release-9.12.2/tests/unit/semantic_release}/__init__.py +0 -0
  156. {python_semantic_release-9.12.0/tests/unit/semantic_release/hvcs → python_semantic_release-9.12.2/tests/unit/semantic_release/changelog}/__init__.py +0 -0
  157. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/changelog/test_changelog_context.py +0 -0
  158. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/changelog/test_default_changelog.py +0 -0
  159. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/changelog/test_template.py +0 -0
  160. {python_semantic_release-9.12.0/tests/scenario → python_semantic_release-9.12.2/tests/unit/semantic_release/changelog}/test_template_render.py +0 -0
  161. {python_semantic_release-9.12.0/tests/unit/semantic_release/version → python_semantic_release-9.12.2/tests/unit/semantic_release/cli}/__init__.py +0 -0
  162. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/cli/test_config.py +0 -0
  163. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/cli/test_github_actions_output.py +0 -0
  164. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/cli/test_masking_filter.py +0 -0
  165. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/cli/test_util.py +0 -0
  166. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/cli/test_version.py +0 -0
  167. /python_semantic_release-9.12.0/tests/unit/semantic_release/hvcs/test_util.py → /python_semantic_release-9.12.2/tests/unit/semantic_release/commit_parser/__init__.py +0 -0
  168. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/commit_parser/test_angular.py +0 -0
  169. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/commit_parser/test_emoji.py +0 -0
  170. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/commit_parser/test_parsed_commit.py +0 -0
  171. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/commit_parser/test_scipy.py +0 -0
  172. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/commit_parser/test_util.py +0 -0
  173. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/hvcs/test__base.py +0 -0
  174. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/hvcs/test_token_auth.py +0 -0
  175. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/test_helpers.py +0 -0
  176. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/version/test_algorithm.py +0 -0
  177. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/version/test_declaration.py +0 -0
  178. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/version/test_translator.py +0 -0
  179. {python_semantic_release-9.12.0 → python_semantic_release-9.12.2}/tests/unit/semantic_release/version/test_version.py +0 -0
@@ -1,8 +1,5 @@
1
- # Make sure Jinja templates are included
2
- recursive-include ./ *.j2
3
-
4
1
  # Make sure non-python files are included
5
- graft semantic_release/data
2
+ graft src/**/data/
6
3
 
7
4
  # include docs & testing into sdist, ignored for wheel build
8
5
  graft tests/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-semantic-release
3
- Version: 9.12.0
3
+ Version: 9.12.2
4
4
  Summary: Automatic Semantic Versioning for Python projects
5
5
  Author-email: Rolf Erik Lekang <me@rolflekang.com>
6
6
  License: MIT
@@ -43,13 +43,14 @@ Provides-Extra: test
43
43
  Requires-Dist: coverage[toml]~=7.0; extra == "test"
44
44
  Requires-Dist: pyyaml~=6.0; extra == "test"
45
45
  Requires-Dist: pytest~=8.3; extra == "test"
46
+ Requires-Dist: pytest-clarity~=1.0; extra == "test"
47
+ Requires-Dist: pytest-cov~=5.0; extra == "test"
46
48
  Requires-Dist: pytest-env~=1.0; extra == "test"
47
- Requires-Dist: pytest-xdist~=3.0; extra == "test"
48
- Requires-Dist: pytest-mock~=3.0; extra == "test"
49
49
  Requires-Dist: pytest-lazy-fixtures~=1.1.1; extra == "test"
50
- Requires-Dist: pytest-cov~=5.0; extra == "test"
50
+ Requires-Dist: pytest-mock~=3.0; extra == "test"
51
+ Requires-Dist: pytest-order~=1.3; extra == "test"
51
52
  Requires-Dist: pytest-pretty~=1.2; extra == "test"
52
- Requires-Dist: pytest-clarity~=1.0; extra == "test"
53
+ Requires-Dist: pytest-xdist~=3.0; extra == "test"
53
54
  Requires-Dist: responses~=0.25.0; extra == "test"
54
55
  Requires-Dist: requests-mock~=1.10; extra == "test"
55
56
  Provides-Extra: dev
@@ -337,7 +337,7 @@ before the :ref:`version <cmd-version>` subcommand.
337
337
 
338
338
  .. code:: yaml
339
339
 
340
- - uses: python-semantic-release/python-semantic-release@v9.12.0
340
+ - uses: python-semantic-release/python-semantic-release@v9.12.2
341
341
  with:
342
342
  root_options: "-vv --noop"
343
343
 
@@ -684,7 +684,7 @@ to the GitHub Release Assets as well.
684
684
  - name: Action | Semantic Version Release
685
685
  id: release
686
686
  # Adjust tag with desired version if applicable.
687
- uses: python-semantic-release/python-semantic-release@v9.12.0
687
+ uses: python-semantic-release/python-semantic-release@v9.12.2
688
688
  with:
689
689
  github_token: ${{ secrets.GITHUB_TOKEN }}
690
690
  git_committer_name: "github-actions"
@@ -744,7 +744,7 @@ The equivalent GitHub Action configuration would be:
744
744
 
745
745
  - name: Action | Semantic Version Release
746
746
  # Adjust tag with desired version if applicable.
747
- uses: python-semantic-release/python-semantic-release@v9.12.0
747
+ uses: python-semantic-release/python-semantic-release@v9.12.2
748
748
  with:
749
749
  github_token: ${{ secrets.GITHUB_TOKEN }}
750
750
  force: patch
@@ -772,13 +772,13 @@ Publish Action.
772
772
  .. code:: yaml
773
773
 
774
774
  - name: Release Project 1
775
- uses: python-semantic-release/python-semantic-release@v9.12.0
775
+ uses: python-semantic-release/python-semantic-release@v9.12.2
776
776
  with:
777
777
  directory: ./project1
778
778
  github_token: ${{ secrets.GITHUB_TOKEN }}
779
779
 
780
780
  - name: Release Project 2
781
- uses: python-semantic-release/python-semantic-release@v9.12.0
781
+ uses: python-semantic-release/python-semantic-release@v9.12.2
782
782
  with:
783
783
  directory: ./project2
784
784
  github_token: ${{ secrets.GITHUB_TOKEN }}
@@ -694,10 +694,12 @@ The filters provided vary based on the VCS configured and available features:
694
694
 
695
695
  https://example.com/example/repo/compare/v1.0.0...v1.1.0
696
696
 
697
- * ``issue_url (Callable[[IssueNumStr | IssueNumInt], UrlStr])``: given an issue number, return
698
- a URL to the issue on the remote vcs.
697
+ * ``issue_url (Callable[[IssueNumStr | IssueNumInt], UrlStr])``: given an issue
698
+ number, return a URL to the issue on the remote vcs. In v9.12.2, this filter
699
+ was updated to handle a string that has leading prefix symbols (ex. ``#29``)
700
+ and will strip the prefix before generating the URL.
699
701
 
700
- *Introduced in v9.6.0.*
702
+ *Introduced in v9.6.0, Modified in v9.12.2.*
701
703
 
702
704
  **Example Usage:**
703
705
 
@@ -712,9 +714,11 @@ The filters provided vary based on the VCS configured and available features:
712
714
  * ``merge_request_url (Callable[[MergeReqStr | MergeReqInt], UrlStr])``: given a
713
715
  merge request number, return a URL to the merge request in the remote. This is
714
716
  an alias to the ``pull_request_url`` but only available for the VCS that uses
715
- the merge request terminology.
717
+ the merge request terminology. In v9.12.2, this filter was updated to handle
718
+ a string that has leading prefix symbols (ex. ``#29``) and will strip the prefix
719
+ before generating the URL.
716
720
 
717
- *Introduced in v9.6.0.*
721
+ *Introduced in v9.6.0, Modified in v9.12.2.*
718
722
 
719
723
  **Example Usage:**
720
724
 
@@ -729,9 +733,11 @@ The filters provided vary based on the VCS configured and available features:
729
733
  * ``pull_request_url (Callable[[PullReqStr | PullReqInt], UrlStr])``: given a pull
730
734
  request number, return a URL to the pull request in the remote. For remote vcs'
731
735
  that use merge request terminology, this filter is an alias to the
732
- ``merge_request_url`` filter function.
736
+ ``merge_request_url`` filter function. In v9.12.2, this filter was updated to
737
+ handle a string that has leading prefix symbols (ex. ``#29``) and will strip
738
+ the prefix before generating the URL.
733
739
 
734
- *Introduced in v9.6.0.*
740
+ *Introduced in v9.6.0, Modified in v9.12.2.*
735
741
 
736
742
  **Example Usage:**
737
743
 
@@ -863,7 +869,7 @@ the template directory structure and modularity is maintained.
863
869
  .. tip::
864
870
  When initially starting out at customizing your own release notes template, you
865
871
  should reference the default template embedded within PSR. The release notes template
866
- can be found in the directory ``data/templates/<parser>`` within the PSR package.
872
+ can be found in the directory ``data/templates/<parser>/md`` within the PSR package.
867
873
 
868
874
 
869
875
  .. _changelog-templates-custom_release_notes-context:
@@ -1009,7 +1015,7 @@ primarily you should review the embedded default templates in the PSR package
1009
1015
  for a full example. You can find the default templates at `data/templates/`__
1010
1016
  directory.
1011
1017
 
1012
- __ https://github.com/python-semantic-release/python-semantic-release/tree/master/semantic_release/data/templates
1018
+ __ https://github.com/python-semantic-release/python-semantic-release/tree/master/src/semantic_release/data/templates
1013
1019
 
1014
1020
  1. **Add a conditional to check the changelog_mode.** This will allow you
1015
1021
  to determine if you should render the entire changelog or just the new
@@ -1018,29 +1024,29 @@ __ https://github.com/python-semantic-release/python-semantic-release/tree/maste
1018
1024
  2. **Use the new read_file filter** to read in the existing changelog file
1019
1025
  ``ctx.prev_changelog_file``. This will allow you to include the existing
1020
1026
  changelog content in your new changelog file. See
1021
- ``data/templates/*/md/.changelog_update.md.j2`` for reference.
1027
+ ``data/templates/*/md/.components/changelog_update.md.j2`` for reference.
1022
1028
 
1023
1029
  3. **Split the changelog content based on the insertion flag.** This will
1024
1030
  allow you to insert the new release information after the insertion flag
1025
1031
  (``ctx.changelog_insertion_flag``). See
1026
- ``data/templates/*/md/.changelog_update.md.j2`` for reference.
1032
+ ``data/templates/*/md/.components/changelog_update.md.j2`` for reference.
1027
1033
 
1028
1034
  4. **Print the leading content before the insertion flag.** This ensures you
1029
1035
  maintain any content that should be included before the new release information.
1030
- See ``data/templates/*/md/.changelog_update.md.j2`` for reference.
1036
+ See ``data/templates/*/md/.components/changelog_update.md.j2`` for reference.
1031
1037
 
1032
1038
  5. **Print your insertion flag.** This is impartive to ensure that the resulting
1033
1039
  changelog can be updated in the future. See
1034
- ``data/templates/*/md/.changelog_update.md.j2`` for reference.
1040
+ ``data/templates/*/md/.components/changelog_update.md.j2`` for reference.
1035
1041
 
1036
1042
  6. **Print the new release information.** Be sure to consider both unreleased
1037
1043
  and released commits during this step because of the :ref:`cmd-changelog`
1038
1044
  command that can be run at any time. See
1039
- ``data/templates/*/md/.changelog_update.md.j2`` for reference.
1045
+ ``data/templates/*/md/.components/changelog_update.md.j2`` for reference.
1040
1046
 
1041
1047
  7. **Print the trailing content after the insertion flag.** This ensures you
1042
1048
  maintain any content that should be included after the new release information.
1043
- See ``data/templates/*/md/.changelog_update.md.j2`` for reference.
1049
+ See ``data/templates/*/md/.components/changelog_update.md.j2`` for reference.
1044
1050
 
1045
1051
 
1046
1052
  .. tip::
@@ -1252,7 +1252,7 @@ specified in ``file:variable`` format. For example:
1252
1252
 
1253
1253
  [semantic_release]
1254
1254
  version_variables = [
1255
- "semantic_release/__init__.py:__version__",
1255
+ "src/semantic_release/__init__.py:__version__",
1256
1256
  "docs/conf.py:version",
1257
1257
  ]
1258
1258
 
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "python-semantic-release"
9
- version = "9.12.0"
9
+ version = "9.12.2"
10
10
  description = "Automatic Semantic Versioning for Python projects"
11
11
  requires-python = ">=3.8"
12
12
  license = { text = "MIT" }
@@ -37,8 +37,8 @@ dependencies = [
37
37
  ]
38
38
 
39
39
  [project.scripts]
40
- semantic-release = "semantic_release.cli.commands.main:main"
41
- psr = "semantic_release.cli.commands.main:main"
40
+ semantic-release = "semantic_release.__main__:main"
41
+ psr = "semantic_release.__main__:main"
42
42
 
43
43
  [project.urls]
44
44
  changelog = "https://github.com/python-semantic-release/python-semantic-release/blob/master/CHANGELOG.md"
@@ -61,13 +61,14 @@ test = [
61
61
  "coverage[toml] ~= 7.0",
62
62
  "pyyaml ~= 6.0",
63
63
  "pytest ~= 8.3",
64
+ "pytest-clarity ~= 1.0",
65
+ "pytest-cov ~= 5.0",
64
66
  "pytest-env ~= 1.0",
65
- "pytest-xdist ~= 3.0",
66
- "pytest-mock ~= 3.0",
67
67
  "pytest-lazy-fixtures ~= 1.1.1",
68
- "pytest-cov ~= 5.0",
68
+ "pytest-mock ~= 3.0",
69
+ "pytest-order ~= 1.3",
69
70
  "pytest-pretty ~= 1.2",
70
- "pytest-clarity ~= 1.0",
71
+ "pytest-xdist ~= 3.0",
71
72
  "responses ~= 0.25.0",
72
73
  "requests-mock ~= 1.10",
73
74
  ]
@@ -82,8 +83,12 @@ mypy = [
82
83
  ]
83
84
 
84
85
 
85
- [tool.setuptools.package-dir]
86
- semantic_release = "semantic_release"
86
+ [tool.setuptools]
87
+ include-package-data = true
88
+
89
+
90
+ [tool.setuptools.packages.find]
91
+ where = ["src"]
87
92
 
88
93
 
89
94
  [tool.pytest.ini_options]
@@ -97,6 +102,7 @@ addopts = [
97
102
  "-ra",
98
103
  "--diff-symbols",
99
104
  "--cache-clear",
105
+ "--durations=20",
100
106
  # No default coverage - causes problems with debuggers
101
107
  # "--cov=semantic_release",
102
108
  # "--cov-context=test",
@@ -106,6 +112,11 @@ addopts = [
106
112
  testpaths = [
107
113
  "tests"
108
114
  ]
115
+ markers = [
116
+ "unit: mark a test as a unit test",
117
+ "e2e: mark a test as a end-to-end test",
118
+ "comprehensive: mark a test as a comprehensive (multiple variations) test",
119
+ ]
109
120
 
110
121
  [tool.coverage.html]
111
122
  show_contexts = true
@@ -138,7 +149,7 @@ commands =
138
149
  [testenv:mypy]
139
150
  deps = .[mypy]
140
151
  commands =
141
- mypy semantic_release
152
+ mypy src/
142
153
 
143
154
  [testenv:coverage]
144
155
  deps = coverage[toml]
@@ -155,7 +166,6 @@ commands =
155
166
 
156
167
  [tool.mypy]
157
168
  python_version = "3.8"
158
- packages = ["semantic_release"]
159
169
  show_column_numbers = true
160
170
  show_error_context = true
161
171
  pretty = true
@@ -304,11 +314,11 @@ quote-style = "double"
304
314
  # Imported but unused
305
315
  "__init__.py" = ["F401"]
306
316
  # pydantic 1 can't handle __future__ annotations-enabled syntax on < 3.10
307
- "semantic_release/cli/config.py" = ["UP", "TCH"]
308
- "semantic_release/commit_parser/*" = ["UP", "FA", "TCH"]
317
+ "src/semantic_release/cli/config.py" = ["UP", "TCH"]
318
+ "src/semantic_release/commit_parser/*" = ["UP", "FA", "TCH"]
309
319
  # Method argument not used. This is mostly a base class
310
320
  # anyway
311
- "semantic_release/hvcs/_base.py" = ["ARG002"]
321
+ "src/semantic_release/hvcs/_base.py" = ["ARG002"]
312
322
  # from tests.fixtures import * is deliberate
313
323
  "tests/conftest.py" = ["F403"]
314
324
  "tests/fixtures/**/__init__.py" = ["F403"]
@@ -387,7 +397,7 @@ build_command = """
387
397
  python -m build .
388
398
  """
389
399
  major_on_zero = true
390
- version_variables = ["semantic_release/__init__.py:__version__"]
400
+ version_variables = ["src/semantic_release/__init__.py:__version__"]
391
401
  version_toml = ["pyproject.toml:project.version"]
392
402
 
393
403
  [tool.semantic_release.changelog]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-semantic-release
3
- Version: 9.12.0
3
+ Version: 9.12.2
4
4
  Summary: Automatic Semantic Versioning for Python projects
5
5
  Author-email: Rolf Erik Lekang <me@rolflekang.com>
6
6
  License: MIT
@@ -43,13 +43,14 @@ Provides-Extra: test
43
43
  Requires-Dist: coverage[toml]~=7.0; extra == "test"
44
44
  Requires-Dist: pyyaml~=6.0; extra == "test"
45
45
  Requires-Dist: pytest~=8.3; extra == "test"
46
+ Requires-Dist: pytest-clarity~=1.0; extra == "test"
47
+ Requires-Dist: pytest-cov~=5.0; extra == "test"
46
48
  Requires-Dist: pytest-env~=1.0; extra == "test"
47
- Requires-Dist: pytest-xdist~=3.0; extra == "test"
48
- Requires-Dist: pytest-mock~=3.0; extra == "test"
49
49
  Requires-Dist: pytest-lazy-fixtures~=1.1.1; extra == "test"
50
- Requires-Dist: pytest-cov~=5.0; extra == "test"
50
+ Requires-Dist: pytest-mock~=3.0; extra == "test"
51
+ Requires-Dist: pytest-order~=1.3; extra == "test"
51
52
  Requires-Dist: pytest-pretty~=1.2; extra == "test"
52
- Requires-Dist: pytest-clarity~=1.0; extra == "test"
53
+ Requires-Dist: pytest-xdist~=3.0; extra == "test"
53
54
  Requires-Dist: responses~=0.25.0; extra == "test"
54
55
  Requires-Dist: requests-mock~=1.10; extra == "test"
55
56
  Provides-Extra: dev
@@ -0,0 +1,170 @@
1
+ AUTHORS.rst
2
+ LICENSE
3
+ MANIFEST.in
4
+ README.rst
5
+ pyproject.toml
6
+ docs/Makefile
7
+ docs/algorithm.rst
8
+ docs/changelog_templates.rst
9
+ docs/commands.rst
10
+ docs/commit-parsing.rst
11
+ docs/conf.py
12
+ docs/configuration.rst
13
+ docs/contributing.rst
14
+ docs/contributors.rst
15
+ docs/index.rst
16
+ docs/make.bat
17
+ docs/migrating_from_v7.rst
18
+ docs/multibranch_releases.rst
19
+ docs/strict_mode.rst
20
+ docs/troubleshooting.rst
21
+ docs/automatic-releases/cronjobs.rst
22
+ docs/automatic-releases/github-actions.rst
23
+ docs/automatic-releases/index.rst
24
+ docs/automatic-releases/travis.rst
25
+ src/python_semantic_release.egg-info/PKG-INFO
26
+ src/python_semantic_release.egg-info/SOURCES.txt
27
+ src/python_semantic_release.egg-info/dependency_links.txt
28
+ src/python_semantic_release.egg-info/entry_points.txt
29
+ src/python_semantic_release.egg-info/requires.txt
30
+ src/python_semantic_release.egg-info/top_level.txt
31
+ src/semantic_release/__init__.py
32
+ src/semantic_release/__main__.py
33
+ src/semantic_release/const.py
34
+ src/semantic_release/enums.py
35
+ src/semantic_release/errors.py
36
+ src/semantic_release/gitproject.py
37
+ src/semantic_release/globals.py
38
+ src/semantic_release/helpers.py
39
+ src/semantic_release/changelog/__init__.py
40
+ src/semantic_release/changelog/context.py
41
+ src/semantic_release/changelog/release_history.py
42
+ src/semantic_release/changelog/template.py
43
+ src/semantic_release/cli/__init__.py
44
+ src/semantic_release/cli/changelog_writer.py
45
+ src/semantic_release/cli/cli_context.py
46
+ src/semantic_release/cli/config.py
47
+ src/semantic_release/cli/const.py
48
+ src/semantic_release/cli/github_actions_output.py
49
+ src/semantic_release/cli/masking_filter.py
50
+ src/semantic_release/cli/util.py
51
+ src/semantic_release/cli/commands/__init__.py
52
+ src/semantic_release/cli/commands/changelog.py
53
+ src/semantic_release/cli/commands/generate_config.py
54
+ src/semantic_release/cli/commands/main.py
55
+ src/semantic_release/cli/commands/publish.py
56
+ src/semantic_release/cli/commands/version.py
57
+ src/semantic_release/commit_parser/__init__.py
58
+ src/semantic_release/commit_parser/_base.py
59
+ src/semantic_release/commit_parser/angular.py
60
+ src/semantic_release/commit_parser/emoji.py
61
+ src/semantic_release/commit_parser/scipy.py
62
+ src/semantic_release/commit_parser/tag.py
63
+ src/semantic_release/commit_parser/token.py
64
+ src/semantic_release/commit_parser/util.py
65
+ src/semantic_release/data/templates/angular/md/.release_notes.md.j2
66
+ src/semantic_release/data/templates/angular/md/CHANGELOG.md.j2
67
+ src/semantic_release/data/templates/angular/md/.components/changelog_header.md.j2
68
+ src/semantic_release/data/templates/angular/md/.components/changelog_init.md.j2
69
+ src/semantic_release/data/templates/angular/md/.components/changelog_update.md.j2
70
+ src/semantic_release/data/templates/angular/md/.components/changes.md.j2
71
+ src/semantic_release/data/templates/angular/md/.components/unreleased_changes.md.j2
72
+ src/semantic_release/data/templates/angular/md/.components/versioned_changes.md.j2
73
+ src/semantic_release/data/templates/angular/rst/CHANGELOG.rst.j2
74
+ src/semantic_release/data/templates/angular/rst/.components/changelog_header.rst.j2
75
+ src/semantic_release/data/templates/angular/rst/.components/changelog_init.rst.j2
76
+ src/semantic_release/data/templates/angular/rst/.components/changelog_update.rst.j2
77
+ src/semantic_release/data/templates/angular/rst/.components/changes.rst.j2
78
+ src/semantic_release/data/templates/angular/rst/.components/macros.rst.j2
79
+ src/semantic_release/data/templates/angular/rst/.components/unreleased_changes.rst.j2
80
+ src/semantic_release/data/templates/angular/rst/.components/versioned_changes.rst.j2
81
+ src/semantic_release/hvcs/__init__.py
82
+ src/semantic_release/hvcs/_base.py
83
+ src/semantic_release/hvcs/bitbucket.py
84
+ src/semantic_release/hvcs/gitea.py
85
+ src/semantic_release/hvcs/github.py
86
+ src/semantic_release/hvcs/gitlab.py
87
+ src/semantic_release/hvcs/remote_hvcs_base.py
88
+ src/semantic_release/hvcs/token_auth.py
89
+ src/semantic_release/hvcs/util.py
90
+ src/semantic_release/version/__init__.py
91
+ src/semantic_release/version/algorithm.py
92
+ src/semantic_release/version/declaration.py
93
+ src/semantic_release/version/translator.py
94
+ src/semantic_release/version/version.py
95
+ tests/__init__.py
96
+ tests/conftest.py
97
+ tests/const.py
98
+ tests/util.py
99
+ tests/e2e/__init__.py
100
+ tests/e2e/conftest.py
101
+ tests/e2e/test_help.py
102
+ tests/e2e/test_main.py
103
+ tests/e2e/cmd_changelog/__init__.py
104
+ tests/e2e/cmd_changelog/test_changelog.py
105
+ tests/e2e/cmd_config/__init__.py
106
+ tests/e2e/cmd_config/test_generate_config.py
107
+ tests/e2e/cmd_publish/__init__.py
108
+ tests/e2e/cmd_publish/test_publish.py
109
+ tests/e2e/cmd_version/__init__.py
110
+ tests/e2e/cmd_version/test_version.py
111
+ tests/e2e/cmd_version/test_version_build.py
112
+ tests/e2e/cmd_version/test_version_bump.py
113
+ tests/e2e/cmd_version/test_version_changelog.py
114
+ tests/e2e/cmd_version/test_version_github_actions.py
115
+ tests/e2e/cmd_version/test_version_print.py
116
+ tests/e2e/cmd_version/test_version_release_notes.py
117
+ tests/e2e/cmd_version/test_version_stamp.py
118
+ tests/e2e/cmd_version/test_version_strict.py
119
+ tests/fixtures/__init__.py
120
+ tests/fixtures/commit_parsers.py
121
+ tests/fixtures/example_project.py
122
+ tests/fixtures/git_repo.py
123
+ tests/fixtures/scipy.py
124
+ tests/fixtures/repos/__init__.py
125
+ tests/fixtures/repos/repo_initial_commit.py
126
+ tests/fixtures/repos/git_flow/__init__.py
127
+ tests/fixtures/repos/git_flow/repo_w_2_release_channels.py
128
+ tests/fixtures/repos/git_flow/repo_w_3_release_channels.py
129
+ tests/fixtures/repos/github_flow/__init__.py
130
+ tests/fixtures/repos/github_flow/repo_w_release_channels.py
131
+ tests/fixtures/repos/trunk_based_dev/__init__.py
132
+ tests/fixtures/repos/trunk_based_dev/repo_w_no_tags.py
133
+ tests/fixtures/repos/trunk_based_dev/repo_w_prereleases.py
134
+ tests/fixtures/repos/trunk_based_dev/repo_w_tags.py
135
+ tests/unit/__init__.py
136
+ tests/unit/conftest.py
137
+ tests/unit/semantic_release/__init__.py
138
+ tests/unit/semantic_release/test_helpers.py
139
+ tests/unit/semantic_release/changelog/__init__.py
140
+ tests/unit/semantic_release/changelog/test_changelog_context.py
141
+ tests/unit/semantic_release/changelog/test_default_changelog.py
142
+ tests/unit/semantic_release/changelog/test_release_history.py
143
+ tests/unit/semantic_release/changelog/test_release_notes.py
144
+ tests/unit/semantic_release/changelog/test_template.py
145
+ tests/unit/semantic_release/changelog/test_template_render.py
146
+ tests/unit/semantic_release/cli/__init__.py
147
+ tests/unit/semantic_release/cli/test_config.py
148
+ tests/unit/semantic_release/cli/test_github_actions_output.py
149
+ tests/unit/semantic_release/cli/test_masking_filter.py
150
+ tests/unit/semantic_release/cli/test_util.py
151
+ tests/unit/semantic_release/cli/test_version.py
152
+ tests/unit/semantic_release/commit_parser/__init__.py
153
+ tests/unit/semantic_release/commit_parser/test_angular.py
154
+ tests/unit/semantic_release/commit_parser/test_emoji.py
155
+ tests/unit/semantic_release/commit_parser/test_parsed_commit.py
156
+ tests/unit/semantic_release/commit_parser/test_scipy.py
157
+ tests/unit/semantic_release/commit_parser/test_util.py
158
+ tests/unit/semantic_release/hvcs/__init__.py
159
+ tests/unit/semantic_release/hvcs/test__base.py
160
+ tests/unit/semantic_release/hvcs/test_bitbucket.py
161
+ tests/unit/semantic_release/hvcs/test_gitea.py
162
+ tests/unit/semantic_release/hvcs/test_github.py
163
+ tests/unit/semantic_release/hvcs/test_gitlab.py
164
+ tests/unit/semantic_release/hvcs/test_token_auth.py
165
+ tests/unit/semantic_release/hvcs/test_util.py
166
+ tests/unit/semantic_release/version/__init__.py
167
+ tests/unit/semantic_release/version/test_algorithm.py
168
+ tests/unit/semantic_release/version/test_declaration.py
169
+ tests/unit/semantic_release/version/test_translator.py
170
+ tests/unit/semantic_release/version/test_version.py
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ psr = semantic_release.__main__:main
3
+ semantic-release = semantic_release.__main__:main
@@ -33,12 +33,13 @@ types-requests~=2.32.0
33
33
  coverage[toml]~=7.0
34
34
  pyyaml~=6.0
35
35
  pytest~=8.3
36
+ pytest-clarity~=1.0
37
+ pytest-cov~=5.0
36
38
  pytest-env~=1.0
37
- pytest-xdist~=3.0
38
- pytest-mock~=3.0
39
39
  pytest-lazy-fixtures~=1.1.1
40
- pytest-cov~=5.0
40
+ pytest-mock~=3.0
41
+ pytest-order~=1.3
41
42
  pytest-pretty~=1.2
42
- pytest-clarity~=1.0
43
+ pytest-xdist~=3.0
43
44
  responses~=0.25.0
44
45
  requests-mock~=1.10
@@ -24,7 +24,7 @@ from semantic_release.version import (
24
24
  tags_and_versions,
25
25
  )
26
26
 
27
- __version__ = "9.12.0"
27
+ __version__ = "9.12.2"
28
28
 
29
29
  __all__ = [
30
30
  "CommitParser",
@@ -0,0 +1,42 @@
1
+ """Entrypoint for the `semantic-release` module."""
2
+ # ruff: noqa: T201, print statements are fine here as this is for cli entry only
3
+
4
+ from __future__ import annotations
5
+
6
+ import sys
7
+ from traceback import format_exception
8
+
9
+ from semantic_release import globals
10
+ from semantic_release.cli.commands.main import main as cli_main
11
+
12
+
13
+ def main() -> None:
14
+ try:
15
+ cli_main(args=sys.argv[1:])
16
+ print("semantic-release completed successfully.", file=sys.stderr)
17
+ except KeyboardInterrupt:
18
+ print("\n-- User Abort! --", file=sys.stderr)
19
+ sys.exit(127)
20
+ except Exception as err: # noqa: BLE001, graceful error handling across application
21
+ if globals.debug:
22
+ print(f"{err.__class__.__name__}: {err}\n", file=sys.stderr)
23
+ etype, value, traceback = sys.exc_info()
24
+ print(
25
+ str.join(
26
+ "",
27
+ format_exception(
28
+ etype,
29
+ value,
30
+ traceback,
31
+ limit=None,
32
+ chain=True,
33
+ )[:-1],
34
+ ),
35
+ file=sys.stderr,
36
+ )
37
+ print(f"::ERROR:: {err}", file=sys.stderr)
38
+ sys.exit(1)
39
+
40
+
41
+ if __name__ == "__main__":
42
+ main()
@@ -110,7 +110,7 @@ def convert_md_to_rst(md_content: str) -> str:
110
110
  # Replace markdown bullets with rst bullets
111
111
  "bullets": (regexp(r"^(\s*)-(\s)"), r"\1*\2"),
112
112
  # Replace markdown inline raw content with rst inline raw content
113
- "raw-inline": (regexp(r"(?<=\s)(`[^`]+`)(?![`_])(?=\s|$)"), r"`\1`"),
113
+ "raw-inline": (regexp(r"(?<=\s)(`[^`]+`)(?![`_])"), r"`\1`"),
114
114
  }
115
115
 
116
116
  for pattern, replacement in replacements.values():
@@ -16,6 +16,7 @@ from semantic_release.changelog.context import (
16
16
  make_changelog_context,
17
17
  )
18
18
  from semantic_release.changelog.template import environment, recursive_render
19
+ from semantic_release.cli.config import ChangelogOutputFormat
19
20
  from semantic_release.cli.const import (
20
21
  DEFAULT_CHANGELOG_NAME_STEM,
21
22
  DEFAULT_RELEASE_NOTES_TPL_FILE,
@@ -29,7 +30,7 @@ if TYPE_CHECKING:
29
30
 
30
31
  from semantic_release.changelog.context import ChangelogContext
31
32
  from semantic_release.changelog.release_history import Release, ReleaseHistory
32
- from semantic_release.cli.config import ChangelogOutputFormat, RuntimeContext
33
+ from semantic_release.cli.config import RuntimeContext
33
34
  from semantic_release.hvcs._base import HvcsBase
34
35
 
35
36
 
@@ -193,7 +194,7 @@ def write_changelog_files(
193
194
 
194
195
  with suppress(ValueError):
195
196
  # do not include a release notes override when considering number of changelog templates
196
- user_templates.remove(template_dir / f".{DEFAULT_RELEASE_NOTES_TPL_FILE}")
197
+ user_templates.remove(template_dir / DEFAULT_RELEASE_NOTES_TPL_FILE)
197
198
 
198
199
  # Render user templates if found
199
200
  if len(user_templates) > 0:
@@ -226,12 +227,16 @@ def generate_release_notes(
226
227
  history: ReleaseHistory,
227
228
  style: str,
228
229
  ) -> str:
229
- users_tpl_file = template_dir / f".{DEFAULT_RELEASE_NOTES_TPL_FILE}"
230
+ users_tpl_file = template_dir / DEFAULT_RELEASE_NOTES_TPL_FILE
230
231
 
231
232
  # Determine if the user has a custom release notes template or we should use
232
233
  # the default template directory with our default release notes template
233
234
  tpl_dir = (
234
- template_dir if users_tpl_file.is_file() else get_default_tpl_dir(style=style)
235
+ template_dir
236
+ if users_tpl_file.is_file()
237
+ else get_default_tpl_dir(
238
+ style=style, sub_dir=ChangelogOutputFormat.MARKDOWN.value
239
+ )
235
240
  )
236
241
 
237
242
  release_notes_tpl_file = (
@@ -257,6 +262,9 @@ def generate_release_notes(
257
262
  release_notes_env.globals["context"] = {
258
263
  "history": history,
259
264
  }
265
+ release_notes_env.globals["ctx"] = {
266
+ "history": history,
267
+ }
260
268
 
261
269
  return render_release_notes(
262
270
  release_notes_template_file=release_notes_tpl_file,
@@ -10,6 +10,7 @@ from rich.console import Console
10
10
  from rich.logging import RichHandler
11
11
 
12
12
  import semantic_release
13
+ from semantic_release import globals
13
14
  from semantic_release.cli.cli_context import CliContextObj
14
15
  from semantic_release.cli.config import GlobalCommandLineOptions
15
16
  from semantic_release.cli.const import DEFAULT_CONFIG_FILE
@@ -122,6 +123,9 @@ def main(
122
123
  logger = logging.getLogger(__name__)
123
124
  logger.debug("logging level set to: %s", logging.getLevelName(log_level))
124
125
 
126
+ if log_level == logging.DEBUG:
127
+ globals.debug = True
128
+
125
129
  if noop:
126
130
  rprint(
127
131
  ":shield: [bold cyan]You are running in no-operation mode, because the "