Skip to content

Commit c533e70

Browse files
josixwilson-wang-appier
authored andcommitted
fix(commands/bump): prevent using incremental changelog when it is set to false in config
1 parent a6db54c commit c533e70

File tree

5 files changed

+30
-2
lines changed

5 files changed

+30
-2
lines changed

commitizen/commands/bump.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,9 @@ def __call__(self) -> None:
314314
"unreleased_version": new_tag_version,
315315
"template": self.template,
316316
"extras": self.extras,
317-
"incremental": True,
317+
"incremental": self.config.mutated_settings.get(
318+
"changelog_incremental", True
319+
),
318320
"dry_run": dry_run,
319321
# governs logic for merge_prerelease
320322
"during_version_bump": self.arguments["prerelease"] is None,
@@ -330,7 +332,14 @@ def __call__(self) -> None:
330332

331333
changelog_cmd = Changelog(
332334
self.config,
333-
{**changelog_args, "file_name": self.file_name}, # type: ignore[typeddict-item]
335+
{
336+
"unreleased_version": new_tag_version,
337+
"incremental": True,
338+
"dry_run": dry_run,
339+
"template": self.template,
340+
"extras": self.extras,
341+
"file_name": self.file_name,
342+
},
334343
)
335344
changelog_cmd()
336345
changelog_file_name = changelog_cmd.file_name

commitizen/config/base_config.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@ class BaseConfig:
1919
def __init__(self) -> None:
2020
self._settings: Settings = DEFAULT_SETTINGS.copy()
2121
self._path: Path | None = None
22+
self._settings_from_configs: Settings = {}
23+
24+
def contains_commitizen_section(self) -> bool:
25+
"""Check if the config file contains a commitizen section.
26+
27+
The implementation is different for each config file type.
28+
"""
29+
raise NotImplementedError()
2230

2331
def contains_commitizen_section(self) -> bool:
2432
"""Check if the config file contains a commitizen section.
@@ -31,6 +39,14 @@ def contains_commitizen_section(self) -> bool:
3139
def settings(self) -> Settings:
3240
return self._settings
3341

42+
@property
43+
def mutated_settings(self) -> Settings:
44+
return self._settings_from_configs
45+
46+
@property
47+
def mutated_settings(self) -> Settings:
48+
return self._settings_from_configs
49+
3450
@property
3551
def path(self) -> Path:
3652
return self._path # type: ignore[return-value]

commitizen/config/json_config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,5 +63,6 @@ def _parse_setting(self, data: bytes | str) -> None:
6363

6464
try:
6565
self.settings.update(doc["commitizen"])
66+
self.mutated_settings.update(doc["commitizen"])
6667
except KeyError:
6768
pass

commitizen/config/toml_config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,5 +70,6 @@ def _parse_setting(self, data: bytes | str) -> None:
7070

7171
try:
7272
self.settings.update(doc["tool"]["commitizen"]) # type: ignore[index,typeddict-item] # TODO: fix this
73+
self.mutated_settings.update(doc["tool"]["commitizen"]) # type: ignore
7374
except exceptions.NonExistentKey:
7475
pass

commitizen/config/yaml_config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ def _parse_setting(self, data: bytes | str) -> None:
5252

5353
try:
5454
self.settings.update(doc["commitizen"])
55+
self.mutated_settings.update(doc["commitizen"])
5556
except (KeyError, TypeError):
5657
pass
5758

0 commit comments

Comments
 (0)