commitizen 4.18.0__tar.gz → 4.19.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. {commitizen-4.18.0 → commitizen-4.19.0}/PKG-INFO +6 -1
  2. commitizen-4.19.0/commitizen/__version__.py +1 -0
  3. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/commands/bump.py +5 -1
  4. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/commands/changelog.py +1 -0
  5. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/commands/commit.py +5 -2
  6. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/commands/version.py +3 -1
  7. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/cz/base.py +46 -0
  8. {commitizen-4.18.0 → commitizen-4.19.0}/docs/README.md +5 -0
  9. {commitizen-4.18.0 → commitizen-4.19.0}/pyproject.toml +2 -1
  10. {commitizen-4.18.0 → commitizen-4.19.0}/pyproject.toml.orig +2 -1
  11. commitizen-4.18.0/commitizen/__version__.py +0 -1
  12. {commitizen-4.18.0 → commitizen-4.19.0}/LICENSE +0 -0
  13. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/__init__.py +0 -0
  14. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/__main__.py +0 -0
  15. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/bump.py +0 -0
  16. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/changelog.py +0 -0
  17. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/changelog_formats/__init__.py +0 -0
  18. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/changelog_formats/asciidoc.py +0 -0
  19. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/changelog_formats/base.py +0 -0
  20. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/changelog_formats/markdown.py +0 -0
  21. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/changelog_formats/restructuredtext.py +0 -0
  22. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/changelog_formats/textile.py +0 -0
  23. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/cli.py +0 -0
  24. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/cmd.py +0 -0
  25. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/commands/__init__.py +0 -0
  26. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/commands/check.py +0 -0
  27. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/commands/example.py +0 -0
  28. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/commands/info.py +0 -0
  29. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/commands/init.py +0 -0
  30. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/commands/list_cz.py +0 -0
  31. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/commands/schema.py +0 -0
  32. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/config/__init__.py +0 -0
  33. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/config/base_config.py +0 -0
  34. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/config/factory.py +0 -0
  35. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/config/json_config.py +0 -0
  36. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/config/toml_config.py +0 -0
  37. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/config/yaml_config.py +0 -0
  38. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/cz/__init__.py +0 -0
  39. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/cz/conventional_commits/__init__.py +0 -0
  40. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/cz/conventional_commits/conventional_commits.py +0 -0
  41. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/cz/conventional_commits/conventional_commits_info.txt +0 -0
  42. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/cz/customize/__init__.py +0 -0
  43. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/cz/customize/customize.py +0 -0
  44. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/cz/customize/customize_info.txt +0 -0
  45. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/cz/exceptions.py +0 -0
  46. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/cz/jira/__init__.py +0 -0
  47. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/cz/jira/jira.py +0 -0
  48. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/cz/jira/jira_info.txt +0 -0
  49. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/cz/utils.py +0 -0
  50. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/defaults.py +0 -0
  51. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/exceptions.py +0 -0
  52. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/factory.py +0 -0
  53. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/git.py +0 -0
  54. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/hooks.py +0 -0
  55. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/out.py +0 -0
  56. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/project_info.py +0 -0
  57. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/providers/__init__.py +0 -0
  58. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/providers/base_provider.py +0 -0
  59. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/providers/cargo_provider.py +0 -0
  60. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/providers/commitizen_provider.py +0 -0
  61. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/providers/composer_provider.py +0 -0
  62. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/providers/npm_provider.py +0 -0
  63. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/providers/pep621_provider.py +0 -0
  64. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/providers/poetry_provider.py +0 -0
  65. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/providers/scm_provider.py +0 -0
  66. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/providers/uv_provider.py +0 -0
  67. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/py.typed +0 -0
  68. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/question.py +0 -0
  69. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/tags.py +0 -0
  70. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/templates/CHANGELOG.adoc.j2 +0 -0
  71. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/templates/CHANGELOG.md.j2 +0 -0
  72. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/templates/CHANGELOG.rst.j2 +0 -0
  73. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/templates/CHANGELOG.textile.j2 +0 -0
  74. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/version_increment.py +0 -0
  75. {commitizen-4.18.0 → commitizen-4.19.0}/commitizen/version_schemes.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: commitizen
3
- Version: 4.18.0
3
+ Version: 4.19.0
4
4
  Summary: Python commitizen client tool
5
5
  Keywords: commitizen,conventional,commits,git
6
6
  Author: Santiago Fraire
@@ -349,6 +349,11 @@ After installation, you can verify the completion is working by:
349
349
 
350
350
  For more detailed information about argcomplete configuration and troubleshooting, visit the [argcomplete documentation](https://kislyuk.github.io/argcomplete/).
351
351
 
352
+ ## Star History
353
+
354
+ [![Star History Chart](https://star-history.dera.page/svg?repos=commitizen-tools/commitizen)](https://star-history.dera.page/#commitizen-tools/commitizen)
355
+
356
+
352
357
  ## Sponsors
353
358
 
354
359
  These are our cool sponsors!
@@ -0,0 +1 @@
1
+ __version__ = "4.19.0"
@@ -158,7 +158,11 @@ class Bump:
158
158
  raise NoPatternMapError(
159
159
  f"'{self.config.settings['name']}' rule does not support bump"
160
160
  )
161
- return bump.find_increment(commits, regex=bump_pattern, increments_map=bump_map)
161
+ return bump.find_increment(
162
+ self.cz.filter_commits_before_bump(commits),
163
+ regex=bump_pattern,
164
+ increments_map=bump_map,
165
+ )
162
166
 
163
167
  def _validate_arguments(self, current_version: VersionProtocol) -> None:
164
168
  errors: list[str] = []
@@ -265,6 +265,7 @@ class Changelog:
265
265
  ):
266
266
  raise NoCommitsFoundError("No commits found")
267
267
 
268
+ commits = self.cz.filter_commits_before_changelog(commits)
268
269
  tree = changelog.generate_tree_from_commits(
269
270
  commits,
270
271
  tags,
@@ -120,9 +120,12 @@ class Commit:
120
120
  if len(lines) < 3:
121
121
  return message
122
122
 
123
- # First line is subject, second is blank line, rest are body lines
123
+ # Preserve intentional blank (or whitespace-only) lines while wrapping
124
+ # non-empty body lines. textwrap.wrap() returns [] for such lines, so
125
+ # they must be special-cased to avoid being silently dropped.
124
126
  wrapped_body_lines = chain.from_iterable(
125
- textwrap.wrap(line, width=body_length_limit) for line in lines[2:]
127
+ textwrap.wrap(line, width=body_length_limit) if line.strip() else [line]
128
+ for line in lines[2:]
126
129
  )
127
130
  return "\n".join(chain(lines[:2], wrapped_body_lines))
128
131
 
@@ -181,7 +181,9 @@ class Version:
181
181
  f"'{self.config.settings['name']}' rule does not support bump"
182
182
  )
183
183
  increment = bump.find_increment(
184
- commits, regex=bump_pattern, increments_map=bump_map
184
+ self.cz.filter_commits_before_bump(commits),
185
+ regex=bump_pattern,
186
+ increments_map=bump_map,
185
187
  )
186
188
 
187
189
  # TODO: Consider adding all the parameters `.bump` supports:
@@ -78,6 +78,52 @@ class BaseCommitizen(metaclass=ABCMeta):
78
78
  if not self.config.settings.get("style"):
79
79
  self.config.settings.update({"style": BaseCommitizen.default_style_config})
80
80
 
81
+ def filter_commits(self, commits: list[git.GitCommit]) -> list[git.GitCommit]:
82
+ """Select commits shared by bump and changelog operations.
83
+
84
+ Custom rules can override this method when both operations should use the
85
+ same subset of commits.
86
+
87
+ Args:
88
+ commits: The commits available to the current operation.
89
+
90
+ Returns:
91
+ The commits that the rule considers relevant.
92
+ """
93
+ return commits
94
+
95
+ def filter_commits_before_bump(
96
+ self, commits: list[git.GitCommit]
97
+ ) -> list[git.GitCommit]:
98
+ """Select commits before calculating a version increment.
99
+
100
+ This operation-specific hook delegates to `filter_commits` so custom rules
101
+ can share filtering by default or override only bump behavior.
102
+
103
+ Args:
104
+ commits: The commits available for bump calculation.
105
+
106
+ Returns:
107
+ The commits that should contribute to the version increment.
108
+ """
109
+ return self.filter_commits(commits)
110
+
111
+ def filter_commits_before_changelog(
112
+ self, commits: list[git.GitCommit]
113
+ ) -> list[git.GitCommit]:
114
+ """Select commits before generating a changelog.
115
+
116
+ This operation-specific hook delegates to `filter_commits` so custom rules
117
+ can share filtering by default or override only changelog behavior.
118
+
119
+ Args:
120
+ commits: The commits available for changelog generation.
121
+
122
+ Returns:
123
+ The commits that should contribute to the changelog.
124
+ """
125
+ return self.filter_commits(commits)
126
+
81
127
  @abstractmethod
82
128
  def questions(self) -> list[CzQuestion]:
83
129
  """Questions regarding the commit message."""
@@ -303,6 +303,11 @@ After installation, you can verify the completion is working by:
303
303
 
304
304
  For more detailed information about argcomplete configuration and troubleshooting, visit the [argcomplete documentation](https://kislyuk.github.io/argcomplete/).
305
305
 
306
+ ## Star History
307
+
308
+ [![Star History Chart](https://star-history.dera.page/svg?repos=commitizen-tools/commitizen)](https://star-history.dera.page/#commitizen-tools/commitizen)
309
+
310
+
306
311
  ## Sponsors
307
312
 
308
313
  These are our cool sponsors!
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "commitizen"
3
- version = "4.18.0"
3
+ version = "4.19.0"
4
4
  description = "Python commitizen client tool"
5
5
  license = "MIT"
6
6
  license-files = ["LICENSE"]
@@ -152,6 +152,7 @@ version_files = [
152
152
  version_provider = "uv"
153
153
  version_scheme = "pep440"
154
154
  annotated_tag = true
155
+ update_changelog_on_bump = true
155
156
 
156
157
  [tool.uv.build-backend]
157
158
  module-name = "commitizen"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "commitizen"
3
- version = "4.18.0"
3
+ version = "4.19.0"
4
4
  description = "Python commitizen client tool"
5
5
  authors = [{ name = "Santiago Fraire", email = "santiwilly@gmail.com" }]
6
6
  maintainers = [
@@ -146,6 +146,7 @@ version_files = [
146
146
  version_provider = "uv"
147
147
  version_scheme = "pep440"
148
148
  annotated_tag = true
149
+ update_changelog_on_bump = true
149
150
 
150
151
  [tool.uv.build-backend]
151
152
  module-name = "commitizen"
@@ -1 +0,0 @@
1
- __version__ = "4.18.0"
File without changes