diff --git a/commitizen/commands/bump.py b/commitizen/commands/bump.py index c29c4c35c5..3975218660 100644 --- a/commitizen/commands/bump.py +++ b/commitizen/commands/bump.py @@ -293,7 +293,9 @@ def __call__(self) -> None: # noqa: C901 "unreleased_version": new_tag_version, "template": self.template, "extras": self.extras, - "incremental": True, + "incremental": self.config.mutated_settings.get( + "changelog_incremental", True + ), "dry_run": True, }, ) @@ -305,7 +307,9 @@ def __call__(self) -> None: # noqa: C901 self.config, { "unreleased_version": new_tag_version, - "incremental": True, + "incremental": self.config.mutated_settings.get( + "changelog_incremental", True + ), "dry_run": dry_run, "template": self.template, "extras": self.extras, diff --git a/commitizen/config/base_config.py b/commitizen/config/base_config.py index 478691aa14..5a3f237ab0 100644 --- a/commitizen/config/base_config.py +++ b/commitizen/config/base_config.py @@ -10,11 +10,21 @@ def __init__(self): self._settings: Settings = DEFAULT_SETTINGS.copy() self.encoding = self.settings["encoding"] self._path: Path | None = None + self._settings_from_configs: Settings = {} @property def settings(self) -> Settings: return self._settings + @property + def mutated_settings(self) -> Settings: + """It is used to record the changes from the config file defined by users, + which helps distinguish the ambiguous default behavior of + `changelog_incremental`. + Please refer to https://github.com/commitizen-tools/commitizen/pull/996 + """ + return self._settings_from_configs + @property def path(self) -> Path | None: return self._path diff --git a/commitizen/config/json_config.py b/commitizen/config/json_config.py index cf554922d6..9087dbd5a7 100644 --- a/commitizen/config/json_config.py +++ b/commitizen/config/json_config.py @@ -52,5 +52,6 @@ def _parse_setting(self, data: bytes | str) -> None: try: self.settings.update(doc["commitizen"]) + self.mutated_settings.update(doc["commitizen"]) except KeyError: self.is_empty_config = True diff --git a/commitizen/config/toml_config.py b/commitizen/config/toml_config.py index d45860d650..4dd2989387 100644 --- a/commitizen/config/toml_config.py +++ b/commitizen/config/toml_config.py @@ -58,5 +58,6 @@ def _parse_setting(self, data: bytes | str) -> None: try: self.settings.update(doc["tool"]["commitizen"]) # type: ignore + self.mutated_settings.update(doc["tool"]["commitizen"]) # type: ignore except exceptions.NonExistentKey: self.is_empty_config = True diff --git a/commitizen/config/yaml_config.py b/commitizen/config/yaml_config.py index 396e2eba11..5beec3220a 100644 --- a/commitizen/config/yaml_config.py +++ b/commitizen/config/yaml_config.py @@ -38,6 +38,7 @@ def _parse_setting(self, data: bytes | str) -> None: try: self.settings.update(doc["commitizen"]) + self.mutated_settings.update(doc["commitizen"]) except (KeyError, TypeError): self.is_empty_config = True
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: