python-semantic-release 9.8.1__tar.gz → 9.8.3__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 (146) hide show
  1. {python_semantic_release-9.8.1/python_semantic_release.egg-info → python_semantic_release-9.8.3}/PKG-INFO +2 -2
  2. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/changelog_templates.rst +3 -7
  3. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/pyproject.toml +2 -2
  4. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3/python_semantic_release.egg-info}/PKG-INFO +2 -2
  5. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/python_semantic_release.egg-info/requires.txt +1 -1
  6. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/__init__.py +1 -1
  7. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/commit_parser/token.py +4 -2
  8. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/data/templates/CHANGELOG.md.j2 +3 -3
  9. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/fixtures/git_repo.py +7 -9
  10. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/fixtures/scipy.py +0 -41
  11. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/scenario/test_next_version.py +13 -16
  12. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/AUTHORS.rst +0 -0
  13. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/LICENSE +0 -0
  14. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/MANIFEST.in +0 -0
  15. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/README.rst +0 -0
  16. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/Makefile +0 -0
  17. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/algorithm.rst +0 -0
  18. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/automatic-releases/cronjobs.rst +0 -0
  19. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/automatic-releases/github-actions.rst +0 -0
  20. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/automatic-releases/index.rst +0 -0
  21. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/automatic-releases/travis.rst +0 -0
  22. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/commands.rst +0 -0
  23. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/commit-parsing.rst +0 -0
  24. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/conf.py +0 -0
  25. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/configuration.rst +0 -0
  26. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/contributing.rst +0 -0
  27. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/contributors.rst +0 -0
  28. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/github-action.rst +0 -0
  29. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/index.rst +0 -0
  30. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/make.bat +0 -0
  31. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/migrating_from_v7.rst +0 -0
  32. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/multibranch_releases.rst +0 -0
  33. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/strict_mode.rst +0 -0
  34. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/docs/troubleshooting.rst +0 -0
  35. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/python_semantic_release.egg-info/SOURCES.txt +0 -0
  36. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/python_semantic_release.egg-info/dependency_links.txt +0 -0
  37. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/python_semantic_release.egg-info/entry_points.txt +0 -0
  38. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/python_semantic_release.egg-info/top_level.txt +0 -0
  39. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/__main__.py +0 -0
  40. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/changelog/__init__.py +0 -0
  41. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/changelog/context.py +0 -0
  42. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/changelog/release_history.py +0 -0
  43. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/changelog/template.py +0 -0
  44. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/cli/__init__.py +0 -0
  45. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/cli/commands/__init__.py +0 -0
  46. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/cli/commands/changelog.py +0 -0
  47. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/cli/commands/cli_context.py +0 -0
  48. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/cli/commands/generate_config.py +0 -0
  49. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/cli/commands/main.py +0 -0
  50. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/cli/commands/publish.py +0 -0
  51. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/cli/commands/version.py +0 -0
  52. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/cli/common.py +0 -0
  53. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/cli/config.py +0 -0
  54. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/cli/const.py +0 -0
  55. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/cli/github_actions_output.py +0 -0
  56. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/cli/masking_filter.py +0 -0
  57. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/cli/util.py +0 -0
  58. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/commit_parser/__init__.py +0 -0
  59. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/commit_parser/_base.py +0 -0
  60. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/commit_parser/angular.py +0 -0
  61. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/commit_parser/emoji.py +0 -0
  62. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/commit_parser/scipy.py +0 -0
  63. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/commit_parser/tag.py +0 -0
  64. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/commit_parser/util.py +0 -0
  65. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/const.py +0 -0
  66. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/data/templates/release_notes.md.j2 +0 -0
  67. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/enums.py +0 -0
  68. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/errors.py +0 -0
  69. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/helpers.py +0 -0
  70. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/hvcs/__init__.py +0 -0
  71. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/hvcs/_base.py +0 -0
  72. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/hvcs/bitbucket.py +0 -0
  73. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/hvcs/gitea.py +0 -0
  74. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/hvcs/github.py +0 -0
  75. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/hvcs/gitlab.py +0 -0
  76. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/hvcs/remote_hvcs_base.py +0 -0
  77. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/hvcs/token_auth.py +0 -0
  78. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/hvcs/util.py +0 -0
  79. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/version/__init__.py +0 -0
  80. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/version/algorithm.py +0 -0
  81. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/version/declaration.py +0 -0
  82. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/version/translator.py +0 -0
  83. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/semantic_release/version/version.py +0 -0
  84. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/setup.cfg +0 -0
  85. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/__init__.py +0 -0
  86. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/command_line/__init__.py +0 -0
  87. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/command_line/conftest.py +0 -0
  88. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/command_line/test_changelog.py +0 -0
  89. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/command_line/test_generate_config.py +0 -0
  90. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/command_line/test_help.py +0 -0
  91. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/command_line/test_main.py +0 -0
  92. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/command_line/test_publish.py +0 -0
  93. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/command_line/test_version.py +0 -0
  94. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/conftest.py +0 -0
  95. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/const.py +0 -0
  96. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/fixtures/__init__.py +0 -0
  97. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/fixtures/commit_parsers.py +0 -0
  98. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/fixtures/example_project.py +0 -0
  99. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/fixtures/repos/__init__.py +0 -0
  100. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/fixtures/repos/git_flow/__init__.py +0 -0
  101. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/fixtures/repos/git_flow/repo_w_2_release_channels.py +0 -0
  102. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/fixtures/repos/git_flow/repo_w_3_release_channels.py +0 -0
  103. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/fixtures/repos/github_flow/__init__.py +0 -0
  104. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/fixtures/repos/github_flow/repo_w_release_channels.py +0 -0
  105. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/fixtures/repos/trunk_based_dev/__init__.py +0 -0
  106. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/fixtures/repos/trunk_based_dev/repo_w_no_tags.py +0 -0
  107. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/fixtures/repos/trunk_based_dev/repo_w_prereleases.py +0 -0
  108. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/fixtures/repos/trunk_based_dev/repo_w_tags.py +0 -0
  109. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/scenario/__init__.py +0 -0
  110. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/scenario/test_release_history.py +0 -0
  111. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/scenario/test_template_render.py +0 -0
  112. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/__init__.py +0 -0
  113. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/__init__.py +0 -0
  114. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/changelog/__init__.py +0 -0
  115. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/changelog/test_changelog_context.py +0 -0
  116. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/changelog/test_default_changelog.py +0 -0
  117. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/changelog/test_release_notes.py +0 -0
  118. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/changelog/test_template.py +0 -0
  119. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/cli/__init__.py +0 -0
  120. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/cli/test_config.py +0 -0
  121. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/cli/test_github_actions_output.py +0 -0
  122. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/cli/test_masking_filter.py +0 -0
  123. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/cli/test_util.py +0 -0
  124. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/cli/test_version.py +0 -0
  125. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/commit_parser/__init__.py +0 -0
  126. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/commit_parser/test_angular.py +0 -0
  127. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/commit_parser/test_emoji.py +0 -0
  128. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/commit_parser/test_parsed_commit.py +0 -0
  129. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/commit_parser/test_scipy.py +0 -0
  130. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/commit_parser/test_tag.py +0 -0
  131. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/commit_parser/test_util.py +0 -0
  132. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/hvcs/__init__.py +0 -0
  133. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/hvcs/test__base.py +0 -0
  134. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/hvcs/test_bitbucket.py +0 -0
  135. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/hvcs/test_gitea.py +0 -0
  136. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/hvcs/test_github.py +0 -0
  137. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/hvcs/test_gitlab.py +0 -0
  138. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/hvcs/test_token_auth.py +0 -0
  139. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/hvcs/test_util.py +0 -0
  140. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/test_helpers.py +0 -0
  141. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/version/__init__.py +0 -0
  142. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/version/test_algorithm.py +0 -0
  143. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/version/test_declaration.py +0 -0
  144. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/version/test_translator.py +0 -0
  145. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/unit/semantic_release/version/test_version.py +0 -0
  146. {python_semantic_release-9.8.1 → python_semantic_release-9.8.3}/tests/util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-semantic-release
3
- Version: 9.8.1
3
+ Version: 9.8.3
4
4
  Summary: Automatic Semantic Versioning for Python projects
5
5
  Author-email: Rolf Erik Lekang <me@rolflekang.com>
6
6
  License: MIT
@@ -55,7 +55,7 @@ Requires-Dist: types-pytest-lazy-fixture~=0.6.3; extra == "test"
55
55
  Provides-Extra: dev
56
56
  Requires-Dist: pre-commit~=3.5; extra == "dev"
57
57
  Requires-Dist: tox~=4.11; extra == "dev"
58
- Requires-Dist: ruff==0.4.4; extra == "dev"
58
+ Requires-Dist: ruff==0.4.9; extra == "dev"
59
59
  Provides-Extra: mypy
60
60
  Requires-Dist: mypy==1.10.0; extra == "mypy"
61
61
  Requires-Dist: types-requests~=2.31.0; extra == "mypy"
@@ -339,8 +339,7 @@ Below is an example template that can be used to render a Changelog:
339
339
  .. code-block::
340
340
 
341
341
  # CHANGELOG
342
- {% if context.history.unreleased | length > 0 %}
343
-
342
+ {% if context.history.unreleased | length > 0 -%}
344
343
  {# UNRELEASED #}
345
344
  ## Unreleased
346
345
  {% for type_, commits in context.history.unreleased | dictsort %}
@@ -349,12 +348,9 @@ Below is an example template that can be used to render a Changelog:
349
348
  * {{ commit.commit.message.rstrip() }} ([`{{ commit.commit.hexsha[:7] }}`]({{ commit.commit.hexsha | commit_hash_url }}))
350
349
  {% else %}
351
350
  * {{ commit.commit.message.rstrip() }} ([`{{ commit.commit.hexsha[:7] }}`]({{ commit.commit.hexsha | commit_hash_url }}))
352
- {% endif %}{% endfor %}{% endfor %}
353
-
354
- {% endif %}
355
-
351
+ {% endif %}{% endfor %}{% endfor %}{% endif -%}
356
352
  {# RELEASED #}
357
- {% for version, release in context.history.released.items() %}
353
+ {% for version, release in context.history.released.items() -%}
358
354
  ## {{ version.as_tag() }} ({{ release.tagged_date.strftime("%Y-%m-%d") }})
359
355
  {% for type_, commits in release["elements"] | dictsort %}
360
356
  ### {{ type_ | capitalize }}
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "python-semantic-release"
9
- version = "9.8.1"
9
+ version = "9.8.3"
10
10
  description = "Automatic Semantic Versioning for Python projects"
11
11
  requires-python = ">=3.8"
12
12
  license = { text = "MIT" }
@@ -74,7 +74,7 @@ test = [
74
74
  dev = [
75
75
  "pre-commit ~= 3.5",
76
76
  "tox ~= 4.11",
77
- "ruff == 0.4.4"
77
+ "ruff == 0.4.9"
78
78
  ]
79
79
  mypy = [
80
80
  "mypy == 1.10.0",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-semantic-release
3
- Version: 9.8.1
3
+ Version: 9.8.3
4
4
  Summary: Automatic Semantic Versioning for Python projects
5
5
  Author-email: Rolf Erik Lekang <me@rolflekang.com>
6
6
  License: MIT
@@ -55,7 +55,7 @@ Requires-Dist: types-pytest-lazy-fixture~=0.6.3; extra == "test"
55
55
  Provides-Extra: dev
56
56
  Requires-Dist: pre-commit~=3.5; extra == "dev"
57
57
  Requires-Dist: tox~=4.11; extra == "dev"
58
- Requires-Dist: ruff==0.4.4; extra == "dev"
58
+ Requires-Dist: ruff==0.4.9; extra == "dev"
59
59
  Provides-Extra: mypy
60
60
  Requires-Dist: mypy==1.10.0; extra == "mypy"
61
61
  Requires-Dist: types-requests~=2.31.0; extra == "mypy"
@@ -17,7 +17,7 @@ build~=1.2
17
17
  [dev]
18
18
  pre-commit~=3.5
19
19
  tox~=4.11
20
- ruff==0.4.4
20
+ ruff==0.4.9
21
21
 
22
22
  [docs]
23
23
  Sphinx~=6.0
@@ -24,7 +24,7 @@ from semantic_release.version import (
24
24
  tags_and_versions,
25
25
  )
26
26
 
27
- __version__ = "9.8.1"
27
+ __version__ = "9.8.3"
28
28
 
29
29
 
30
30
  def setup_hook(argv: list[str]) -> None:
@@ -21,7 +21,8 @@ class ParsedCommit(NamedTuple):
21
21
  @property
22
22
  def message(self) -> str:
23
23
  m = self.commit.message
24
- return m.decode("utf-8") if isinstance(m, bytes) else m
24
+ message_str = m.decode("utf-8") if isinstance(m, bytes) else m
25
+ return message_str.replace("\r", "")
25
26
 
26
27
  @property
27
28
  def hexsha(self) -> str:
@@ -39,7 +40,8 @@ class ParseError(NamedTuple):
39
40
  @property
40
41
  def message(self) -> str:
41
42
  m = self.commit.message
42
- return m.decode("utf-8") if isinstance(m, bytes) else m
43
+ message_str = m.decode("utf-8") if isinstance(m, bytes) else m
44
+ return message_str.replace("\r", "")
43
45
 
44
46
  @property
45
47
  def hexsha(self) -> str:
@@ -1,5 +1,5 @@
1
1
  # CHANGELOG
2
- {% if context.history.unreleased | length > 0 %}
2
+ {% if context.history.unreleased | length > 0 -%}
3
3
  {# UNRELEASED #}
4
4
  ## Unreleased
5
5
  {% for type_, commits in context.history.unreleased | dictsort %}
@@ -8,8 +8,8 @@
8
8
  * {{ commit.message.rstrip() }} ([`{{ commit.short_hash }}`]({{ commit.hexsha | commit_hash_url }}))
9
9
  {% else %}
10
10
  * {{ commit.message.rstrip() }} ([`{{ commit.short_hash }}`]({{ commit.hexsha | commit_hash_url }}))
11
- {% endif %}{% endfor %}{% endfor %}{% endif %}
12
- {% for version, release in context.history.released.items() %}
11
+ {% endif %}{% endfor %}{% endfor %}{% endif -%}
12
+ {% for version, release in context.history.released.items() -%}
13
13
  {# RELEASED #}
14
14
  ## {{ version.as_semver_tag() }} ({{ release.tagged_date.strftime("%Y-%m-%d") }})
15
15
  {% for type_, commits in release["elements"] | dictsort %}
@@ -21,7 +21,7 @@ from tests.util import (
21
21
  )
22
22
 
23
23
  if TYPE_CHECKING:
24
- from typing import Generator, Literal, Protocol, TypedDict, Union
24
+ from typing import Generator, Protocol, TypedDict, Union
25
25
 
26
26
  from semantic_release.hvcs import HvcsBase
27
27
 
@@ -34,7 +34,7 @@ if TYPE_CHECKING:
34
34
  UseParserFn,
35
35
  )
36
36
 
37
- CommitConvention = Literal["angular", "emoji", "scipy", "tag"] | str
37
+ CommitConvention = str
38
38
  VersionStr = str
39
39
  CommitMsg = str
40
40
  ChangelogTypeHeading = str
@@ -331,15 +331,13 @@ def simulate_default_changelog_creation() -> SimulateDefaultChangelogCreationFn:
331
331
  if version == "Unreleased":
332
332
  version_entry.append(f"## {version}\n")
333
333
  else:
334
- version_entry.append(
335
- # TODO: artificial newline in front due to template when no Unreleased changes exist
336
- f"\n## v{version} ({TODAY_DATE_STR})\n"
337
- )
334
+ version_entry.append(f"## v{version} ({TODAY_DATE_STR})\n")
338
335
 
339
336
  for section_def in version_def["changelog_sections"]:
340
337
  version_entry.append(f"### {section_def['section']}\n")
341
- for i in section_def["i_commits"]:
342
- version_entry.append(f"* {version_def['commits'][i]}\n")
338
+ version_entry.extend(
339
+ [f"* {version_def['commits'][i]}\n" for i in section_def["i_commits"]]
340
+ )
343
341
 
344
342
  return str.join("\n", version_entry)
345
343
 
@@ -355,7 +353,7 @@ def simulate_default_changelog_creation() -> SimulateDefaultChangelogCreationFn:
355
353
  version_entries.insert(0, build_version_entry(version, version_def))
356
354
 
357
355
  changelog_content = (
358
- str.join("\n" * 3, [header, str.join("\n", list(version_entries))]).rstrip()
356
+ str.join("\n" * 2, [header, str.join("\n", list(version_entries))]).rstrip()
359
357
  + "\n"
360
358
  )
361
359
 
@@ -394,44 +394,3 @@ def scipy_major_mixed_commits(
394
394
  ),
395
395
  )
396
396
  )
397
-
398
-
399
- # @pytest.fixture(
400
- # params=xdist_sort_hack(
401
- # [
402
- # k
403
- # for k, v in ScipyParserOptions().tag_to_level.items()
404
- # if v is LevelBump.MAJOR
405
- # ]
406
- # )
407
- # )
408
- # def scipy_major_commits(request, subject, default_scipy_parser_options):
409
- # patch_tags = [
410
- # k
411
- # for k, v in default_scipy_parser_options.tag_to_level.items()
412
- # if v is LevelBump.PATCH
413
- # ]
414
- # minor_tags = [
415
- # k
416
- # for k, v in default_scipy_parser_options.tag_to_level.items()
417
- # if v is LevelBump.MINOR
418
- # ]
419
- # patch_commits = [
420
- # _make_scipy_commit(random.choice(patch_tags), subject, body_parts)
421
- # for body_parts in SCIPY_FORMATTED_COMMIT_BODY_PARTS
422
- # ]
423
- # minor_commits = [
424
- # _make_scipy_commit(random.choice(minor_tags), subject, body_parts)
425
- # for body_parts in SCIPY_FORMATTED_COMMIT_BODY_PARTS
426
- # ]
427
- # major_commits = [
428
- # _make_scipy_commit(request.param, subject, body_parts)
429
- # for body_parts in SCIPY_FORMATTED_COMMIT_BODY_PARTS
430
- # ]
431
- # return list(
432
- # chain.from_iterable(
433
- # zip_longest(
434
- # major_commits, minor_commits, patch_commits, fillvalue="uninteresting"
435
- # )
436
- # )
437
- # )
@@ -802,10 +802,9 @@ def test_algorithm_no_zero_dot_versions_tag(
802
802
  )
803
803
  ),
804
804
  *(
805
- # when allow_zero_version is True,
806
- # prerelease is True, & major_on_zero is False, the version should be
807
- # minor bumped, when given commits of a minor or major level because
808
- # major_on_zero = False
805
+ # when allow_zero_version is True, prerelease is True, & major_on_zero
806
+ # is False, the version should be minor bumped, when given commits of a
807
+ # minor or major level because major_on_zero = False
809
808
  (commits, False, False, True, "0.3.0")
810
809
  for commits in (
811
810
  lazy_fixture(angular_minor_commits.__name__),
@@ -1212,10 +1211,9 @@ def test_algorithm_with_zero_dot_versions_angular(
1212
1211
  )
1213
1212
  ),
1214
1213
  *(
1215
- # when allow_zero_version is True,
1216
- # prerelease is True, & major_on_zero is False, the version should be
1217
- # minor bumped, when given commits of a minor or major level because
1218
- # major_on_zero = False
1214
+ # when allow_zero_version is True, prerelease is True, & major_on_zero
1215
+ # is False, the version should be minor bumped, when given commits of a
1216
+ # minor or major level because major_on_zero = False
1219
1217
  (commits, False, False, True, "0.3.0")
1220
1218
  for commits in (
1221
1219
  lazy_fixture(emoji_minor_commits.__name__),
@@ -1622,10 +1620,9 @@ def test_algorithm_with_zero_dot_versions_emoji(
1622
1620
  )
1623
1621
  ),
1624
1622
  *(
1625
- # when allow_zero_version is True,
1626
- # prerelease is True, & major_on_zero is False, the version should be
1627
- # minor bumped, when given commits of a minor or major level because
1628
- # major_on_zero = False
1623
+ # when allow_zero_version is True, prerelease is True, & major_on_zero
1624
+ # is False, the version should be minor bumped, when given commits of a
1625
+ # minor or major level because major_on_zero = False
1629
1626
  (commits, False, False, True, "0.3.0")
1630
1627
  for commits in (
1631
1628
  lazy_fixture(scipy_minor_commits.__name__),
@@ -2026,10 +2023,10 @@ def test_algorithm_with_zero_dot_versions_scipy(
2026
2023
  )
2027
2024
  ),
2028
2025
  *(
2029
- # when allow_zero_version is True,
2030
- # prerelease is True, & major_on_zero is False, the version should be
2031
- # minor bumped, when given commits of a minor or major level because
2032
- # major_on_zero = False
2026
+ # when allow_zero_version is True, prerelease is True,
2027
+ # & major_on_zero is False, the version should be minor
2028
+ # bumped, when given commits of a minor or major level
2029
+ # because major_on_zero = False
2033
2030
  (commits, False, False, True, "0.3.0")
2034
2031
  for commits in (
2035
2032
  lazy_fixture(tag_minor_commits.__name__),