You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue tracks an audit of 30 currently-open untriaged, non-type: bug issues, checked against master (v4.15.1). It is the follow-up to #1964 (which covered the 30 open type: bug issues). Together the two issues span 60 of the ~120 currently-open issues.
Findings are based on code inspection only — please confirm with a real reproduction or maintainer judgement before acting on any item.
VersionIncrement related cleanup #1777 — Replace MAJOR/MINOR/PATCH string constants with VersionIncrement IntEnum — commitizen/bump.py:25 still uses find_increment() returning strings even though commitizen/version_increment.py already defines the enum.
🎁 Mislabeled — relabel and remove issue-status: needs-triage
[refactor] Make BaseConfig an abstract class #1847 — Make BaseConfig an abstract class — commitizen/config/base_config.py:18-61 is a concrete class with NotImplementedError stubs. Relabeled type: refactor.
Release after dev release results in error #1180 — Release after dev release results in error — commitizen/commands/changelog.py:151-155 SequenceMatcher picks the wrong closest tag for dev versions. Relabeled type: bug; analysis comment posted.
🤷 By design / config issue / non-bug — close with explanation
output suppressed until pre-commit scripts fully ran #1333 — Output suppressed until pre-commit scripts finish — commitizen/cmd.py uses subprocess.Popen(..., PIPE) + communicate() to capture git output for error parsing; intentional buffering.
❔ Needs reproduction / unclear
Running cz commit ends with "The system cannot find the path specified." #1419 — Windows "system cannot find the path specified" after commit — last reporter comment ("transient issue, not able to pinpoint") leaves the failure unreproduced; temp file lifecycle is in commitizen/git.py and commitizen/commands/commit.py.
Summary: 1 likely fixed (closed) · 19 still valid (3 of which now have PRs from this round) · 4 had open PRs at audit time · 3 mislabels · 2 by-design · 1 unclear.
Together with #1964: out of 60 audited open issues, 24 are still actionable bugs, 19 are still actionable feature/refactor requests, and 8 already have open PRs awaiting review. Round-3 audit: #1976.
Round-2 follow-up actions (May 2026)
Strong-model validation, label cleanup, PRs, and external review for the items checked above.
The cz ch command generates a CHANGELOG.md that includes the content from the body. #1267 → PR fix(changelog): add changelog_subject_only to skip body parsing #1974 (fix(changelog): add changelog_subject_only to skip body parsing). CI green. Reviewers (sonnet-4.6 and Copilot) both flagged the same test gap: no end-to-end test for the config-key wiring at commands/changelog.py:279. Fixup commit 292feb4f adds tests/commands/test_changelog_command.py::test_changelog_subject_only_setting_skips_body_parsing which constructs a real cz changelog invocation; the new test was verified to fail (KeyError) when the config key is mistyped.
Add commit hash and issue number to the changelog format as optional variables #1229 relabeled needs-triage → wait-for-implementation, kept type: feature (the audit had proposed type: documentation, but a closer read of the issue shows the user wants sha1 / issue links in the default changelog template; existing template support is only a workaround).
Release after dev release results in error #1180 — added type: bug and wait-for-implementation; posted a comment with the SequenceMatcher analysis so a future fixer has clear direction. Not PR'd because the design choice (exact-match vs fuzzy-fallback) deserves a maintainer call.
All remaining "still valid" items in the table above.
Happy to take individual items off this list — please comment with which # you're picking up.
Policy update (2026-05-09) — feature-request issues are not auto-PR'd from this triage. PRs #1968, #1971, #1974, #1984, #1985, #1986 (each opened to close one of the feature items above) have been re-closed and the corresponding issue labels reverted to issue-status: needs-triage. The implementation branches are preserved on the fork (feat/1934-bump-merge-prerelease-flag, feat/1258-init-discover-providers, fix/1267-changelog-subject-only, feat/1231-customize-question-required, fix/1218-changelog-skip-prereleases, feat/1331-dump-config-command) so a maintainer can re-open any of them with one click if they decide the direction is right. Bug-fix PRs from this triage (#1979, #1982, #1987 — plus the round-1 sibling bug-fix PRs in #1964) remain open.
This issue tracks an audit of 30 currently-open untriaged, non-
type: bugissues, checked againstmaster(v4.15.1). It is the follow-up to #1964 (which covered the 30 opentype: bugissues). Together the two issues span 60 of the ~120 currently-open issues.Findings are based on code inspection only — please confirm with a real reproduction or maintainer judgement before acting on any item.
✅ Likely fixed — verify & close
pyproject.toml:16already pinsquestionary (>=2.0,<3.0)which works with currentprompt_toolkitand recent ipython releases. Closed as fixed; see follow-up below.❌ Still valid — needs implementation / fix
setup-cz— feature not yet implemented; PR feat(ci): add PR bump preview workflow #1957 only adds the workflow to this repo.cmd.runstring signature #1944 — Removecmd.runstring signature for v5 —commitizen/cmd.py:68-77still acceptscmd: str | Sequence[str].--merge-prereleaseoncz bump—commitizen/cli.py:433-440defines the flag only undercz changelog. PR feat(bump): add --merge-prerelease flag #1968 was opened, then closed pending maintainer triage — feature requests sit with the maintainers for design / scope review.VersionIncrementrelated cleanup #1777 — ReplaceMAJOR/MINOR/PATCHstring constants withVersionIncrementIntEnum —commitizen/bump.py:25still usesfind_increment()returning strings even thoughcommitizen/version_increment.pyalready defines the enum.commitizen/providers/ships 9 providers inline.commitizen-extras#1567 — Create acommitizen-extrasrepository for community plugins — organisational meta-issue.v5-labelled items being landed.commitizen/commands/changelog.py:68resolves the file path relative to the config parent whenconfig.pathexists.prepare-commit-msghook entry —.pre-commit-hooks.yaml:1-28only definescommit-msgandpre-pushstages.cz commitfails inside aprepare-commit-msghook on macOS —commitizen/commands/commit.pyinvokesquestionary.promptwhich requires a real TTY; selector errors when stdin is redirected.commitizen/config/__init__.py:12-27only walks the current directory and git root, never~/.config/commitizen.toml.cz dump-config/ config export command —commitizen/commands/__init__.pylists Bump/Changelog/Check/Commit/Example/Info/Init/ListCz/Schema/Version only. PR feat: add cz dump-config command to output effective configuration #1986 was opened, then closed pending maintainer triage — feature requests sit with the maintainers for design / scope review.cz_*plugin configurable through TOML/JSON — broad enhancement umbrella related to Enable cover cz_conventional_commits via [tool.commitizen.customize] #1270.cz_conventional_commitsvia[tool.commitizen.customize]—commitizen/cz/customize/customize.py:27is a standalone class that does not inherit fromConventionalCommitsCz.cz chcommand generates aCHANGELOG.mdthat includes the content from the body. #1267 —cz changelogincludes commit body lines that match the parser regex —commitizen/changelog.py:151-154splitscommit.bodyby\n\nand re-parses each block. PR fix(changelog): add changelog_subject_only to skip body parsing #1974 was opened, then closed pending maintainer triage — feature requests sit with the maintainers for design / scope review.metadata.entry_pointsincz init—commitizen/commands/init.py:41,257hardcodes_VERSION_PROVIDER_CHOICES. PR feat(init): discover third-party version providers via entry points #1971 was opened, then closed pending maintainer triage — feature requests sit with the maintainers for design / scope review.requiredparameter to detailed customise questions —commitizen/question.pydefines question types with norequiredvalidation field. PR feat(customize): add required field for input questions #1984 was opened, then closed pending maintainer triage — feature requests sit with the maintainers for design / scope review.commitizen/commands/changelog.py:229-264has prerelease merge logic but no full-exclude switch. PR feat: add changelog_skip_prereleases setting to omit prerelease entries from changelog #1985 was opened, then closed pending maintainer triage — feature requests sit with the maintainers for design / scope review.🔧 Has open PR
pr-status: wait-for-review).pr-status: wait-for-review).cz initself.config#1831 —cz initshould useDEFAULT_SETTINGSinstead ofself.config.settings— PR refactor(init): replace self.config.settings with DEFAULT_SETTINGS #1832 (pr-status: wait-for-review).pr-status: wait-for-review).🎁 Mislabeled — relabel and remove
issue-status: needs-triageBaseConfigan abstract class #1847 — MakeBaseConfigan abstract class —commitizen/config/base_config.py:18-61is a concrete class withNotImplementedErrorstubs. Relabeledtype: refactor.wait-for-implementation. (Existing template support viasha1is documented but only works for custom templates.)commitizen/commands/changelog.py:151-155SequenceMatcher picks the wrong closest tag for dev versions. Relabeledtype: bug; analysis comment posted.🤷 By design / config issue / non-bug — close with explanation
.cz.tomlfiles —docs/tutorials/monorepo_guidance.mdalready documents the multi-.cz.tomlsetup.commitizen/cmd.pyusessubprocess.Popen(..., PIPE)+communicate()to capture git output for error parsing; intentional buffering.❔ Needs reproduction / unclear
cz commitends with "The system cannot find the path specified." #1419 — Windows "system cannot find the path specified" after commit — last reporter comment ("transient issue, not able to pinpoint") leaves the failure unreproduced; temp file lifecycle is incommitizen/git.pyandcommitizen/commands/commit.py.Summary: 1 likely fixed (closed) · 19 still valid (3 of which now have PRs from this round) · 4 had open PRs at audit time · 3 mislabels · 2 by-design · 1 unclear.
Together with #1964: out of 60 audited open issues, 24 are still actionable bugs, 19 are still actionable feature/refactor requests, and 8 already have open PRs awaiting review. Round-3 audit: #1976.
Round-2 follow-up actions (May 2026)
Strong-model validation, label cleanup, PRs, and external review for the items checked above.
claude-opus-4.7confirmed questionary 2.1.0 + commitizen master (questionary >=2.0,<3.0) co-installs cleanly with current ipython 8/9; the repo's ownuv.lockresolves all three together.feat(bump): add --merge-prerelease flag). CI green across the matrix. Reviewed by both an internalclaude-sonnet-4.6code-review agent and GitHub Copilot — no findings.feat(init): discover third-party version providers via entry points). CI green. Copilot review surfaced a duplicate-entry-point-name edge case (two distributions registering the same provider name); fixup commit1bad9047adds aseen_namesset seeded with the built-ins and a regression testtest_construct_version_provider_choices_dedupes_duplicate_third_party.cz chcommand generates aCHANGELOG.mdthat includes the content from the body. #1267 → PR fix(changelog): add changelog_subject_only to skip body parsing #1974 (fix(changelog): add changelog_subject_only to skip body parsing). CI green. Reviewers (sonnet-4.6 and Copilot) both flagged the same test gap: no end-to-end test for the config-key wiring atcommands/changelog.py:279. Fixup commit292feb4faddstests/commands/test_changelog_command.py::test_changelog_subject_only_setting_skips_body_parsingwhich constructs a realcz changeloginvocation; the new test was verified to fail (KeyError) when the config key is mistyped.BaseConfigan abstract class #1847 relabeledtype: feature→type: refactor, status →wait-for-implementation(maintainer comment confirms this is a v5 breaking change candidate, so leaving for the v5 release work in Release commitizen v5 #1481 rather than a separate PR).needs-triage→wait-for-implementation, kepttype: feature(the audit had proposedtype: documentation, but a closer read of the issue shows the user wantssha1/ issue links in the default changelog template; existing template support is only a workaround).type: bugandwait-for-implementation; posted a comment with theSequenceMatcheranalysis so a future fixer has clear direction. Not PR'd because the design choice (exact-match vs fuzzy-fallback) deserves a maintainer call.Issues left to a maintainer (no PR opened yet):
prepare-commit-msghook entry would be a one-line YAML addition, but the underlyingcz commitinteractive flow fails on macOS in such a hook (Problem executing cz commit in prepare-commit-msg hook on Mac #1386), so adding the entry without addressing the TTY behaviour would just relocate the bug.cmd.runstring signature #1944 — removing thecmd.runstring signature is a breaking change scheduled for v5; better landed alongside the rest of v5.Happy to take individual items off this list — please comment with which # you're picking up.