python-semantic-release 9.4.1__tar.gz → 9.4.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 (150) hide show
  1. {python-semantic-release-9.4.1/python_semantic_release.egg-info → python_semantic_release-9.4.2}/PKG-INFO +3 -3
  2. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/commands.rst +1 -1
  3. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/configuration.rst +227 -17
  4. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/pyproject.toml +3 -3
  5. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2/python_semantic_release.egg-info}/PKG-INFO +3 -3
  6. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/python_semantic_release.egg-info/requires.txt +2 -2
  7. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/__init__.py +1 -1
  8. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/cli/commands/version.py +20 -0
  9. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/cli/config.py +80 -30
  10. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/errors.py +7 -0
  11. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/hvcs/_base.py +13 -16
  12. python_semantic_release-9.4.2/semantic_release/hvcs/bitbucket.py +286 -0
  13. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/hvcs/gitea.py +153 -60
  14. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/hvcs/github.py +220 -53
  15. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/hvcs/gitlab.py +106 -41
  16. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/command_line/test_changelog.py +8 -10
  17. python_semantic_release-9.4.2/tests/conftest.py +86 -0
  18. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/fixtures/git_repo.py +1 -1
  19. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/changelog/test_default_changelog.py +1 -1
  20. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/changelog/test_release_notes.py +1 -1
  21. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/cli/test_config.py +34 -13
  22. python_semantic_release-9.4.2/tests/unit/semantic_release/hvcs/test_bitbucket.py +313 -0
  23. python_semantic_release-9.4.2/tests/unit/semantic_release/hvcs/test_gitea.py +804 -0
  24. python_semantic_release-9.4.2/tests/unit/semantic_release/hvcs/test_github.py +1007 -0
  25. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/hvcs/test_gitlab.py +181 -124
  26. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/util.py +0 -16
  27. python-semantic-release-9.4.1/semantic_release/hvcs/bitbucket.py +0 -114
  28. python-semantic-release-9.4.1/tests/conftest.py +0 -39
  29. python-semantic-release-9.4.1/tests/unit/semantic_release/hvcs/test_bitbucket.py +0 -169
  30. python-semantic-release-9.4.1/tests/unit/semantic_release/hvcs/test_gitea.py +0 -642
  31. python-semantic-release-9.4.1/tests/unit/semantic_release/hvcs/test_github.py +0 -735
  32. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/AUTHORS.rst +0 -0
  33. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/LICENSE +0 -0
  34. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/MANIFEST.in +0 -0
  35. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/README.rst +0 -0
  36. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/Makefile +0 -0
  37. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/algorithm.rst +0 -0
  38. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/automatic-releases/cronjobs.rst +0 -0
  39. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/automatic-releases/github-actions.rst +0 -0
  40. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/automatic-releases/index.rst +0 -0
  41. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/automatic-releases/travis.rst +0 -0
  42. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/changelog_templates.rst +0 -0
  43. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/commit-parsing.rst +0 -0
  44. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/conf.py +0 -0
  45. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/contributing.rst +0 -0
  46. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/contributors.rst +0 -0
  47. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/github-action.rst +0 -0
  48. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/index.rst +0 -0
  49. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/make.bat +0 -0
  50. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/migrating_from_v7.rst +0 -0
  51. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/multibranch_releases.rst +0 -0
  52. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/strict_mode.rst +0 -0
  53. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/docs/troubleshooting.rst +0 -0
  54. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/python_semantic_release.egg-info/SOURCES.txt +0 -0
  55. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/python_semantic_release.egg-info/dependency_links.txt +0 -0
  56. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/python_semantic_release.egg-info/entry_points.txt +0 -0
  57. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/python_semantic_release.egg-info/top_level.txt +0 -0
  58. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/__main__.py +0 -0
  59. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/changelog/__init__.py +0 -0
  60. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/changelog/context.py +0 -0
  61. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/changelog/release_history.py +0 -0
  62. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/changelog/template.py +0 -0
  63. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/cli/__init__.py +0 -0
  64. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/cli/commands/__init__.py +0 -0
  65. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/cli/commands/changelog.py +0 -0
  66. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/cli/commands/cli_context.py +0 -0
  67. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/cli/commands/generate_config.py +0 -0
  68. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/cli/commands/main.py +0 -0
  69. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/cli/commands/publish.py +0 -0
  70. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/cli/common.py +0 -0
  71. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/cli/const.py +0 -0
  72. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/cli/github_actions_output.py +0 -0
  73. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/cli/masking_filter.py +0 -0
  74. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/cli/util.py +0 -0
  75. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/commit_parser/__init__.py +0 -0
  76. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/commit_parser/_base.py +0 -0
  77. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/commit_parser/angular.py +0 -0
  78. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/commit_parser/emoji.py +0 -0
  79. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/commit_parser/scipy.py +0 -0
  80. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/commit_parser/tag.py +0 -0
  81. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/commit_parser/token.py +0 -0
  82. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/commit_parser/util.py +0 -0
  83. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/const.py +0 -0
  84. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/data/templates/CHANGELOG.md.j2 +0 -0
  85. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/data/templates/release_notes.md.j2 +0 -0
  86. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/enums.py +0 -0
  87. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/helpers.py +0 -0
  88. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/hvcs/__init__.py +0 -0
  89. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/hvcs/token_auth.py +0 -0
  90. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/hvcs/util.py +0 -0
  91. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/version/__init__.py +0 -0
  92. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/version/algorithm.py +0 -0
  93. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/version/declaration.py +0 -0
  94. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/version/translator.py +0 -0
  95. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/semantic_release/version/version.py +0 -0
  96. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/setup.cfg +0 -0
  97. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/__init__.py +0 -0
  98. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/command_line/__init__.py +0 -0
  99. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/command_line/conftest.py +0 -0
  100. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/command_line/test_generate_config.py +0 -0
  101. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/command_line/test_help.py +0 -0
  102. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/command_line/test_main.py +0 -0
  103. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/command_line/test_publish.py +0 -0
  104. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/command_line/test_version.py +0 -0
  105. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/const.py +0 -0
  106. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/fixtures/__init__.py +0 -0
  107. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/fixtures/commit_parsers.py +0 -0
  108. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/fixtures/example_project.py +0 -0
  109. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/fixtures/repos/__init__.py +0 -0
  110. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/fixtures/repos/git_flow/__init__.py +0 -0
  111. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/fixtures/repos/git_flow/repo_w_2_release_channels.py +0 -0
  112. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/fixtures/repos/git_flow/repo_w_3_release_channels.py +0 -0
  113. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/fixtures/repos/github_flow/__init__.py +0 -0
  114. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/fixtures/repos/github_flow/repo_w_release_channels.py +0 -0
  115. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/fixtures/repos/trunk_based_dev/__init__.py +0 -0
  116. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/fixtures/repos/trunk_based_dev/repo_w_no_tags.py +0 -0
  117. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/fixtures/repos/trunk_based_dev/repo_w_prereleases.py +0 -0
  118. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/fixtures/repos/trunk_based_dev/repo_w_tags.py +0 -0
  119. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/fixtures/scipy.py +0 -0
  120. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/scenario/__init__.py +0 -0
  121. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/scenario/test_next_version.py +0 -0
  122. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/scenario/test_release_history.py +0 -0
  123. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/scenario/test_template_render.py +0 -0
  124. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/__init__.py +0 -0
  125. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/__init__.py +0 -0
  126. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/changelog/__init__.py +0 -0
  127. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/changelog/test_template.py +0 -0
  128. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/cli/__init__.py +0 -0
  129. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/cli/test_github_actions_output.py +0 -0
  130. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/cli/test_masking_filter.py +0 -0
  131. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/cli/test_util.py +0 -0
  132. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/cli/test_version.py +0 -0
  133. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/commit_parser/__init__.py +0 -0
  134. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/commit_parser/helper.py +0 -0
  135. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/commit_parser/test_angular.py +0 -0
  136. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/commit_parser/test_emoji.py +0 -0
  137. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/commit_parser/test_scipy.py +0 -0
  138. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/commit_parser/test_tag.py +0 -0
  139. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/commit_parser/test_token.py +0 -0
  140. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/commit_parser/test_util.py +0 -0
  141. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/hvcs/__init__.py +0 -0
  142. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/hvcs/test__base.py +0 -0
  143. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/hvcs/test_token_auth.py +0 -0
  144. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/hvcs/test_util.py +0 -0
  145. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/test_helpers.py +0 -0
  146. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/version/__init__.py +0 -0
  147. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/version/test_algorithm.py +0 -0
  148. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/version/test_declaration.py +0 -0
  149. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/version/test_translator.py +0 -0
  150. {python-semantic-release-9.4.1 → python_semantic_release-9.4.2}/tests/unit/semantic_release/version/test_version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-semantic-release
3
- Version: 9.4.1
3
+ Version: 9.4.2
4
4
  Summary: Automatic Semantic Versioning for Python projects
5
5
  Author-email: Rolf Erik Lekang <me@rolflekang.com>
6
6
  License: MIT
@@ -30,13 +30,13 @@ Requires-Dist: tomlkit~=0.11
30
30
  Requires-Dist: dotty-dict~=1.3
31
31
  Requires-Dist: importlib-resources~=6.0
32
32
  Requires-Dist: pydantic~=2.0
33
- Requires-Dist: rich~=12.5
33
+ Requires-Dist: rich~=13.0
34
34
  Requires-Dist: shellingham~=1.5
35
35
  Provides-Extra: docs
36
36
  Requires-Dist: Sphinx~=6.0; extra == "docs"
37
37
  Requires-Dist: sphinxcontrib-apidoc==0.5.0; extra == "docs"
38
38
  Requires-Dist: sphinx-autobuild==2024.2.4; extra == "docs"
39
- Requires-Dist: furo~=2023.3; extra == "docs"
39
+ Requires-Dist: furo~=2024.1; extra == "docs"
40
40
  Provides-Extra: test
41
41
  Requires-Dist: coverage[toml]~=7.0; extra == "test"
42
42
  Requires-Dist: pytest~=7.0; extra == "test"
@@ -165,7 +165,7 @@ Note if the version can not be found nothing will be printed.
165
165
  .. _cmd-version-option-print-last-released-tag:
166
166
 
167
167
  ``--print-last-released-tag``
168
- ***************
168
+ *****************************
169
169
 
170
170
  Same as the :ref:`cmd-version-option-print-last-released` flag but prints the
171
171
  complete tag name (ex. ``v1.0.0`` or ``py-v1.0.0``) instead of the raw version
@@ -100,11 +100,15 @@ In this structure:
100
100
  Settings
101
101
  --------
102
102
 
103
+ ----
104
+
103
105
  .. _config-root:
104
106
 
105
107
  ``[tool.semantic_release]``
106
108
  ***************************
107
109
 
110
+ ----
111
+
108
112
  .. _config-assets:
109
113
 
110
114
  ``assets (List[str])``
@@ -115,6 +119,8 @@ in addition to any files modified by writing the new version.
115
119
 
116
120
  **Default:** ``[]``
117
121
 
122
+ ----
123
+
118
124
  .. _config-branches:
119
125
 
120
126
  ``branches``
@@ -131,6 +137,8 @@ This setting is discussed in more detail at :ref:`multibranch-releases`
131
137
  prerelease_token = "rc"
132
138
  prerelease = false
133
139
 
140
+ ----
141
+
134
142
  .. _config-build-command:
135
143
 
136
144
  ``build_command (Optional[str])``
@@ -140,6 +148,8 @@ Command to use when building the current project during :ref:`cmd-version`
140
148
 
141
149
  **Default:** ``None`` (not specified)
142
150
 
151
+ ----
152
+
143
153
  .. _config-commit_author:
144
154
 
145
155
  ``commit_author (str)``
@@ -156,6 +166,8 @@ Author used in commits in the format ``name <email>``.
156
166
 
157
167
  **Default:** ``semantic-release <semantic-release>``
158
168
 
169
+ ----
170
+
159
171
  .. _config-commit-message:
160
172
 
161
173
  ``commit_message (str)``
@@ -170,6 +182,8 @@ adding the old message pattern(s) to :ref:`exclude_commit_patterns <config-chang
170
182
 
171
183
  **Default:** ``"{version}\n\nAutomatically generated by python-semantic-release"``
172
184
 
185
+ ----
186
+
173
187
  .. _config-commit-parser:
174
188
 
175
189
  ``commit_parser (str)``
@@ -191,6 +205,8 @@ For more information see :ref:`commit-parsing`.
191
205
 
192
206
  **Default:** ``"angular"``
193
207
 
208
+ ----
209
+
194
210
  .. _config-commit-parser-options:
195
211
 
196
212
  ``commit_parser_options (Dict[str, Any])``
@@ -258,6 +274,8 @@ the expections from ``commit_parser`` value to default options value.
258
274
  :ref:`commit_parser <config-commit-parser>` as indicated above.
259
275
 
260
276
 
277
+ ----
278
+
261
279
  .. _config-logging-use-named-masks:
262
280
 
263
281
  ``logging_use_named_masks (bool)``
@@ -268,6 +286,8 @@ identifying which secrets were replaced, or use a generic string to mask them.
268
286
 
269
287
  **Default:** ``false``
270
288
 
289
+ ----
290
+
271
291
  .. _config-allow-zero-version:
272
292
 
273
293
  ``allow_zero_version (bool)``
@@ -288,6 +308,8 @@ the :ref:`major_on_zero` setting is ignored.
288
308
 
289
309
  **Default:** ``true``
290
310
 
311
+ ----
312
+
291
313
  .. _config-major-on-zero:
292
314
 
293
315
  ``major_on_zero (bool)``
@@ -316,6 +338,8 @@ When :ref:`allow_zero_version` is set to ``false``, this setting is ignored.
316
338
 
317
339
  **Default:** ``true``
318
340
 
341
+ ----
342
+
319
343
  .. _config-tag-format:
320
344
 
321
345
  ``tag_format (str)``
@@ -350,6 +374,8 @@ Tags which do not match this format will not be considered as versions of your p
350
374
 
351
375
  **Default:** ``"v{version}"``
352
376
 
377
+ ----
378
+
353
379
  .. _config-version-variables:
354
380
 
355
381
  ``version_variables (List[str])``
@@ -368,6 +394,8 @@ specified in ``file:variable`` format. For example:
368
394
 
369
395
  **Default:** ``[]``
370
396
 
397
+ ----
398
+
371
399
  .. _config-version-toml:
372
400
 
373
401
  ``version_toml (List[str])``
@@ -385,11 +413,15 @@ dotted notation to indicate the key for which the value represents the version:
385
413
 
386
414
  **Default:** ``[]``
387
415
 
416
+ ----
417
+
388
418
  .. _config-changelog:
389
419
 
390
420
  ``[tool.semantic_release.changelog]``
391
421
  *************************************
392
422
 
423
+ ----
424
+
393
425
  .. _config-changelog-template-dir:
394
426
 
395
427
  ``template_dir (str)``
@@ -402,6 +434,8 @@ This option is discussed in more detail at :ref:`changelog-templates`
402
434
 
403
435
  **Default:** ``"templates"``
404
436
 
437
+ ----
438
+
405
439
  .. _config-changelog-changelog-file:
406
440
 
407
441
  ``changelog_file (str)``
@@ -411,6 +445,8 @@ Specify the name of the changelog file (after template rendering has taken place
411
445
 
412
446
  **Default:** ``"CHANGELOG.md"``
413
447
 
448
+ ----
449
+
414
450
  .. _config-changelog-exclude-commit-patterns:
415
451
 
416
452
  ``exclude_commit_patterns (List[str])``
@@ -426,6 +462,8 @@ The patterns in this list are treated as regular expressions.
426
462
 
427
463
  **Default:** ``[]``
428
464
 
465
+ ----
466
+
429
467
  .. _config-changelog-environment:
430
468
 
431
469
  ``[tool.semantic_release.changelog.environment]``
@@ -439,6 +477,8 @@ The patterns in this list are treated as regular expressions.
439
477
 
440
478
  .. _`jinja2.Environment`: https://jinja.palletsprojects.com/en/3.1.x/api/#jinja2.Environment
441
479
 
480
+ ----
481
+
442
482
  .. _config-changelog-environment-block-start-string:
443
483
 
444
484
  ``block_start_string (str)``
@@ -448,6 +488,8 @@ This setting is passed directly to the `jinja2.Environment`_ constructor.
448
488
 
449
489
  **Default:** ``"{%"``
450
490
 
491
+ ----
492
+
451
493
  .. _config-changelog-environment-block-end-string:
452
494
 
453
495
  ``block_end_string (str)``
@@ -457,6 +499,8 @@ This setting is passed directly to the `jinja2.Environment`_ constructor.
457
499
 
458
500
  **Default:** ``"%}"``
459
501
 
502
+ ----
503
+
460
504
  .. _config-changelog-environment-variable-start-string:
461
505
 
462
506
  ``variable_start_string (str)``
@@ -466,6 +510,8 @@ This setting is passed directly to the `jinja2.Environment`_ constructor.
466
510
 
467
511
  **Default:** ``"{{"``
468
512
 
513
+ ----
514
+
469
515
  .. _config-changelog-environment-variable-end-string:
470
516
 
471
517
  ``variable_end_string (str)``
@@ -475,6 +521,8 @@ This setting is passed directly to the `jinja2.Environment`_ constructor.
475
521
 
476
522
  **Default:** ``"}}"``
477
523
 
524
+ ----
525
+
478
526
  .. _config-changelog-environment-comment-start-string:
479
527
 
480
528
  ``comment_start_string (str)``
@@ -484,6 +532,8 @@ This setting is passed directly to the `jinja2.Environment`_ constructor.
484
532
 
485
533
  **Default:** ``{#``
486
534
 
535
+ ----
536
+
487
537
  .. _config-changelog-environment-comment-end-string:
488
538
 
489
539
  ``comment_end_string (str)``
@@ -493,6 +543,8 @@ This setting is passed directly to the `jinja2.Environment`_ constructor.
493
543
 
494
544
  **Default:** ``"#}"``
495
545
 
546
+ ----
547
+
496
548
  .. _config-changelog-environment-line-statement-prefix:
497
549
 
498
550
  ``line_statement_prefix (Optional[str])``
@@ -502,6 +554,8 @@ This setting is passed directly to the `jinja2.Environment`_ constructor.
502
554
 
503
555
  **Default:** ``None`` (not specified)
504
556
 
557
+ ----
558
+
505
559
  .. _config-changelog-environment-line-comment-prefix:
506
560
 
507
561
  ``line_comment_prefix (Optional[str])``
@@ -511,6 +565,8 @@ This setting is passed directly to the `jinja2.Environment`_ constructor.
511
565
 
512
566
  **Default:** ``None`` (not specified)
513
567
 
568
+ ----
569
+
514
570
  .. _config-changelog-environment-trim-blocks:
515
571
 
516
572
  ``trim_blocks (bool)``
@@ -520,6 +576,8 @@ This setting is passed directly to the `jinja2.Environment`_ constructor.
520
576
 
521
577
  **Default:** ``false``
522
578
 
579
+ ----
580
+
523
581
  .. _config-changelog-environment-lstrip-blocks:
524
582
 
525
583
  ``lstrip_blocks (bool)``
@@ -529,6 +587,8 @@ This setting is passed directly to the `jinja2.Environment`_ constructor.
529
587
 
530
588
  **Default:** ``false``
531
589
 
590
+ ----
591
+
532
592
  .. _config-changelog-environment-newline-sequence:
533
593
 
534
594
  ``newline_sequence (Literal["\n", "\r", "\r\n"])``
@@ -538,6 +598,8 @@ This setting is passed directly to the `jinja2.Environment`_ constructor.
538
598
 
539
599
  **Default:** ``"\n"``
540
600
 
601
+ ----
602
+
541
603
  .. _config-changelog-environment-keep-trailing-newline:
542
604
 
543
605
  ``keep_trailing_newline (bool)``
@@ -547,6 +609,8 @@ This setting is passed directly to the `jinja2.Environment`_ constructor.
547
609
 
548
610
  **Default:** ``false``
549
611
 
612
+ ----
613
+
550
614
  .. _config-changelog-environment-extensions:
551
615
 
552
616
  ``extensions (List[str])``
@@ -556,6 +620,7 @@ This setting is passed directly to the `jinja2.Environment`_ constructor.
556
620
 
557
621
  **Default:** ``[]``
558
622
 
623
+ ----
559
624
 
560
625
  .. _config-changelog-environment-autoescape:
561
626
 
@@ -578,35 +643,98 @@ constructor.
578
643
 
579
644
  **Default:** ``true``
580
645
 
646
+ ----
647
+
581
648
  .. _config-remote:
582
649
 
583
- ``[tool.semantic_release.remote]``
584
- **********************************
650
+ ``remote``
651
+ **********
585
652
 
586
- .. _config-remote-name:
653
+ .. note::
654
+ The remote configuration is a group of settings that configure PSR's integration
655
+ with remote version control systems.
656
+
657
+ **pyproject.toml:** ``[tool.semantic_release.remote]``
658
+
659
+ ----
587
660
 
588
- ``name (str)``
661
+ .. _config-remote-api_domain:
662
+
663
+ ``api_domain``
589
664
  """"""""""""""
590
665
 
591
- Name of the remote to push to using ``git push -u $name <branch_name>``
666
+ **Type:** ``Optional[str | Dict['env', str]]``
592
667
 
593
- **Default:** ``"origin"``
668
+ The hosting domain for the API of your remote HVCS if different than the ``domain``.
669
+ Generally, this will be used to specify a separate subdomain that is used for API
670
+ calls rather than the primary domain (ex. ``api.github.com``).
594
671
 
595
- .. _config-remote-type:
672
+ **Most on-premise HVCS installations will NOT use this setting!** Whether or not
673
+ this value is used depends on the HVCS configured (and your server administration)
674
+ in the :ref:`remote.type <config-remote-type>` setting and used in tadem with the
675
+ :ref:`remote.domain <config-remote-domain>` setting.
596
676
 
597
- ``type (str)``
598
- """"""""""""""
677
+ When using a custom :ref:`remote.domain <config-remote-domain>` and a HVCS
678
+ :ref:`remote.type <config-remote-type>` that is configured with a separate domain
679
+ or sub-domain for API requests, this value is used to configure the location of API
680
+ requests that are sent from PSR.
599
681
 
600
- The type of the remote VCS. Currently, Python Semantic Release supports ``"github"``,
601
- ``"gitlab"``, ``"gitea"`` and ``"bitbucket"``. Not all functionality is available with all
602
- remote types, but we welcome pull requests to help improve this!
682
+ Most on-premise or self-hosted HVCS environments will use a path prefix to handle inbound
683
+ API requests, which means this value will ignored.
603
684
 
604
- **Default:** ``"github"``
685
+ PSR knows the expected api domains for known cloud services and their associated
686
+ api domains which means this value is not necessary to explicitly define for services
687
+ as ``bitbucket.org``, and ``github.com``.
688
+
689
+ Including the protocol schemes, such as ``https://``, for the API domain is optional.
690
+ Secure ``HTTPS`` connections are assumed unless the setting of
691
+ :ref:`remote.insecure <config-remote-insecure>` is ``True``.
692
+
693
+ **Default:** ``None``
694
+
695
+ ----
696
+
697
+ .. _config-remote-domain:
698
+
699
+ ``domain``
700
+ """"""""""
701
+
702
+ **Type:** ``Optional[str | Dict['env', str]]``
703
+
704
+ The host domain for your HVCS server. This setting is used to support on-premise
705
+ installations of HVCS providers with custom domain hosts.
706
+
707
+ If you are using the official domain of the associated
708
+ :ref:`remote.type <config-remote-type>`, this value is not required. PSR will use the
709
+ default domain value for the :ref:`remote.type <config-remote-type>` when not specified.
710
+ For example, when ``remote.type="github"`` is specified the default domain of
711
+ ``github.com`` is used.
712
+
713
+ Including the protocol schemes, such as ``https://``, for the domain value is optional.
714
+ Secure ``HTTPS`` connections are assumed unless the setting of
715
+ :ref:`remote.insecure <config-remote-insecure>` is ``True``.
716
+
717
+ This setting also supports reading from an environment variable for ease-of-use
718
+ in CI pipelines. See :ref:`Environment Variable <config-environment-variables>` for
719
+ more information. Depending on the :ref:`remote.type <config-remote-type>`, the default
720
+ environment variable for the default domain's CI pipeline environment will automatically
721
+ be checked so this value is not required in default environments. For example, when
722
+ ``remote.type="gitlab"`` is specified, PSR will look to the ``CI_SERVER_URL`` environment
723
+ variable when ``remote.domain`` is not specified.
724
+
725
+ **Default:** ``None``
726
+
727
+ .. seealso::
728
+ - :ref:`remote.api_domain <config-remote-api-domain>`
729
+
730
+ ----
605
731
 
606
732
  .. _config-remote-ignore-token-for-push:
607
733
 
608
- ``ignore_token_for_push (bool)``
609
- """"""""""""""""""""""""""""""""
734
+ ``ignore_token_for_push``
735
+ """""""""""""""""""""""""
736
+
737
+ **Type:** ``bool``
610
738
 
611
739
  If set to ``True``, ignore the authentication token when pushing changes to the remote.
612
740
  This is ideal, for example, if you already have SSH keys set up which can be used for
@@ -614,10 +742,87 @@ pushing.
614
742
 
615
743
  **Default:** ``False``
616
744
 
745
+ ----
746
+
747
+ .. _config-remote-insecure:
748
+
749
+ ``insecure``
750
+ """"""""""""
751
+
752
+ **Type:** ``bool``
753
+
754
+ Insecure is used to allow non-secure ``HTTP`` connections to your HVCS server. If set to
755
+ ``True``, any domain value passed will assume ``http://`` if it is not specified and allow
756
+ it. When set to ``False`` (implicitly or explicitly), it will force ``https://`` communications.
757
+
758
+ When a custom ``domain`` or ``api_domain`` is provided as a configuration, this flag governs
759
+ the protocol scheme used for those connections. If the protocol scheme is not provided in
760
+ the field value, then this ``insecure`` option defines whether ``HTTP`` or ``HTTPS`` is
761
+ used for the connection. If the protocol scheme is provided in the field value, it must
762
+ match this setting or it will throw an error.
763
+
764
+ The purpose of this flag is to prevent any typos in provided ``domain`` and ``api_domain``
765
+ values that accidently specify an insecure connection but allow users to toggle the protection
766
+ scheme off when desired.
767
+
768
+ **Default:** ``False``
769
+
770
+ ----
771
+
772
+ .. _config-remote-name:
773
+
774
+ ``name``
775
+ """"""""
776
+
777
+ **Type:** ``str``
778
+
779
+ Name of the remote to push to using ``git push -u $name <branch_name>``
780
+
781
+ **Default:** ``"origin"``
782
+
783
+ ----
784
+
785
+ .. _config-remote-url:
786
+
787
+ ``url``
788
+ """""""
789
+
790
+ **Type:** ``Optional[str | Dict['env', str]]``
791
+
792
+ An override setting used to specify the remote upstream location of ``git push``.
793
+
794
+ **Not commonly used!** This is used to override the derived upstream location when
795
+ the desired push location is different than the location the repository was cloned
796
+ from.
797
+
798
+ This setting will override the upstream location url that would normally be derived
799
+ from the :ref:`remote.name <config-remote-name>` location of your git repository.
800
+
801
+ **Default:** ``None``
802
+
803
+ ----
804
+
805
+ .. _config-remote-type:
806
+
807
+ ``type``
808
+ """"""""
809
+
810
+ **Type:** ``Literal["bitbucket", "gitea", "github", "gitlab"]``
811
+
812
+ The type of the remote VCS. Currently, Python Semantic Release supports ``"github"``,
813
+ ``"gitlab"``, ``"gitea"`` and ``"bitbucket"``. Not all functionality is available with all
814
+ remote types, but we welcome pull requests to help improve this!
815
+
816
+ **Default:** ``"github"``
817
+
818
+ ----
819
+
617
820
  .. _config-remote-token:
618
821
 
619
- ``token (Dict['env': str])``
620
- """"""""""""""""""""""""""""
822
+ ``token``
823
+ """""""""
824
+
825
+ **Type:** ``Optional[str | Dict['env', str]]``
621
826
 
622
827
  :ref:`Environment Variable <config-environment-variables>` from which to source the
623
828
  authentication token for the remote VCS. Common examples include ``"GH_TOKEN"``,
@@ -654,12 +859,15 @@ default token value will be for each remote type.
654
859
  **Default:** ``{ env = "<envvar name>" }``, where ``<envvar name>`` depends on
655
860
  :ref:`remote.type <config-remote-type>` as indicated above.
656
861
 
862
+ ----
657
863
 
658
864
  .. _config-publish:
659
865
 
660
866
  ``[tool.semantic_release.publish]``
661
867
  ***********************************
662
868
 
869
+ ----
870
+
663
871
  .. _config-publish-dist-glob-patterns:
664
872
 
665
873
  ``dist_glob_patterns (List[str])``
@@ -670,6 +878,8 @@ list should be a string containing a Unix-style glob pattern.
670
878
 
671
879
  **Default:** ``["dist/*"]``
672
880
 
881
+ ----
882
+
673
883
  .. _config-publish-upload-to-vcs-release:
674
884
 
675
885
  ``upload_to_vcs_release (bool)``
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "python-semantic-release"
9
- version = "9.4.1"
9
+ version = "9.4.2"
10
10
  description = "Automatic Semantic Versioning for Python projects"
11
11
  requires-python = ">=3.8"
12
12
  license = { text = "MIT" }
@@ -32,7 +32,7 @@ dependencies = [
32
32
  "dotty-dict ~= 1.3",
33
33
  "importlib-resources ~= 6.0",
34
34
  "pydantic ~= 2.0",
35
- "rich ~= 12.5",
35
+ "rich ~= 13.0",
36
36
  "shellingham ~= 1.5",
37
37
  ]
38
38
 
@@ -52,7 +52,7 @@ docs = [
52
52
  "Sphinx ~= 6.0",
53
53
  "sphinxcontrib-apidoc == 0.5.0",
54
54
  "sphinx-autobuild == 2024.2.4",
55
- "furo ~= 2023.3",
55
+ "furo ~= 2024.1",
56
56
  ]
57
57
  test = [
58
58
  "coverage[toml] ~= 7.0",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-semantic-release
3
- Version: 9.4.1
3
+ Version: 9.4.2
4
4
  Summary: Automatic Semantic Versioning for Python projects
5
5
  Author-email: Rolf Erik Lekang <me@rolflekang.com>
6
6
  License: MIT
@@ -30,13 +30,13 @@ Requires-Dist: tomlkit~=0.11
30
30
  Requires-Dist: dotty-dict~=1.3
31
31
  Requires-Dist: importlib-resources~=6.0
32
32
  Requires-Dist: pydantic~=2.0
33
- Requires-Dist: rich~=12.5
33
+ Requires-Dist: rich~=13.0
34
34
  Requires-Dist: shellingham~=1.5
35
35
  Provides-Extra: docs
36
36
  Requires-Dist: Sphinx~=6.0; extra == "docs"
37
37
  Requires-Dist: sphinxcontrib-apidoc==0.5.0; extra == "docs"
38
38
  Requires-Dist: sphinx-autobuild==2024.2.4; extra == "docs"
39
- Requires-Dist: furo~=2023.3; extra == "docs"
39
+ Requires-Dist: furo~=2024.1; extra == "docs"
40
40
  Provides-Extra: test
41
41
  Requires-Dist: coverage[toml]~=7.0; extra == "test"
42
42
  Requires-Dist: pytest~=7.0; extra == "test"
@@ -8,7 +8,7 @@ tomlkit~=0.11
8
8
  dotty-dict~=1.3
9
9
  importlib-resources~=6.0
10
10
  pydantic~=2.0
11
- rich~=12.5
11
+ rich~=13.0
12
12
  shellingham~=1.5
13
13
 
14
14
  [dev]
@@ -20,7 +20,7 @@ ruff==0.3.5
20
20
  Sphinx~=6.0
21
21
  sphinxcontrib-apidoc==0.5.0
22
22
  sphinx-autobuild==2024.2.4
23
- furo~=2023.3
23
+ furo~=2024.1
24
24
 
25
25
  [mypy]
26
26
  mypy==1.9.0
@@ -24,7 +24,7 @@ from semantic_release.version import (
24
24
  tags_and_versions,
25
25
  )
26
26
 
27
- __version__ = "9.4.1"
27
+ __version__ = "9.4.2"
28
28
 
29
29
 
30
30
  def setup_hook(argv: list[str]) -> None:
@@ -11,6 +11,7 @@ import click
11
11
  import shellingham # type: ignore[import]
12
12
  from click_option_group import MutuallyExclusiveOptionGroup, optgroup
13
13
  from git.exc import GitCommandError
14
+ from requests import HTTPError
14
15
 
15
16
  from semantic_release.changelog import ReleaseHistory, environment, recursive_render
16
17
  from semantic_release.changelog.context import make_changelog_context
@@ -23,6 +24,7 @@ from semantic_release.cli.github_actions_output import VersionGitHubActionsOutpu
23
24
  from semantic_release.cli.util import indented, noop_report, rprint
24
25
  from semantic_release.const import DEFAULT_SHELL, DEFAULT_VERSION
25
26
  from semantic_release.enums import LevelBump
27
+ from semantic_release.errors import UnexpectedResponse
26
28
  from semantic_release.version import Version, next_version, tags_and_versions
27
29
 
28
30
  log = logging.getLogger(__name__)
@@ -633,6 +635,21 @@ def version( # noqa: C901
633
635
  release_notes=release_notes,
634
636
  prerelease=new_version.is_prerelease,
635
637
  )
638
+ except HTTPError as err:
639
+ log.exception(err)
640
+ ctx.fail(str.join("\n", [str(err), "Failed to create release!"]))
641
+ except UnexpectedResponse as err:
642
+ log.exception(err)
643
+ ctx.fail(
644
+ str.join(
645
+ "\n",
646
+ [
647
+ str(err),
648
+ "Unexpected response from remote VCS!",
649
+ "Before re-running, make sure to clean up any artifacts on the hvcs that may have already been created.",
650
+ ],
651
+ )
652
+ )
636
653
  except Exception as e:
637
654
  log.exception(e)
638
655
  ctx.fail(str(e))
@@ -641,6 +658,9 @@ def version( # noqa: C901
641
658
  log.info("Uploading asset %s", asset)
642
659
  try:
643
660
  hvcs_client.upload_asset(release_id, asset)
661
+ except HTTPError as err:
662
+ log.exception(err)
663
+ ctx.fail(str.join("\n", [str(err), "Failed to upload asset!"]))
644
664
  except Exception as e:
645
665
  log.exception(e)
646
666
  ctx.fail(str(e))