Repository navigation
Triage audit: 30 open untriaged non-bug issues (May 2026, follow-up to #1964) #1965
Description
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.
✅ Likely fixed — verify & close
- Commitizen is not compatible with recent versions of ipython because of its dependency on questionary #1249 — questionary/ipython incompatibility —
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
- Promote PR bump preview to a reusable workflow in setup-cz #1959 — Promote PR bump preview to a reusable workflow in
setup-cz— feature not yet implemented; PR ci: add PR bump preview workflow #1957 only adds the workflow to this repo. - [breaking] remove
cmd.runstring signature #1944 — Removecmd.runstring signature for v5 —commitizen/cmd.py:68-77still acceptscmd: str | Sequence[str]. - Enable "--merge-prerelease" behavior in "cz bump" command #1934 — Enable
--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. - Separate version providers from core #1676 — Separate version providers into optional workspace packages —
commitizen/providers/ships 9 providers inline. - MAJOR,MINOR,PATCH config that takes in consideration the branch #1572 — Branch-aware bump rules (cap min/max increment per branch pattern) — no branch-aware bump logic in codebase.
- Create a new package called
commitizen-extras#1567 — Create acommitizen-extrasrepository for community plugins — organisational meta-issue. - Release commitizen v5 #1481 — Release commitizen v5 — meta tracker; depends on remaining
v5-labelled items being landed. - Relative paths works differently with newer versions #1411 — Relative-path behaviour changed in 4.6.3+ —
commitizen/commands/changelog.py:68resolves the file path relative to the config parent whenconfig.pathexists. - prepare-commit-msg pre-commit hook #1393 — Add a
prepare-commit-msghook entry —.pre-commit-hooks.yaml:1-28only definescommit-msgandpre-pushstages. - Problem executing cz commit in prepare-commit-msg hook on Mac #1386 —
cz commitfails inside aprepare-commit-msghook on macOS —commitizen/commands/commit.pyinvokesquestionary.promptwhich requires a real TTY; selector errors when stdin is redirected. - Global config that will be merged with repository config #1332 — Global config merge —
commitizen/config/__init__.py:12-27only walks the current directory and git root, never~/.config/commitizen.toml. - Command that generates current configuration file #1331 —
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. - make everything in a cz_ customizable through toml/json and etc #1278 — Make every aspect of a
cz_*plugin configurable through TOML/JSON — broad enhancement umbrella related to Enable cover cz_conventional_commits via [tool.commitizen.customize] #1270. - Enable cover cz_conventional_commits via [tool.commitizen.customize] #1270 — Allow partially overriding
cz_conventional_commitsvia[tool.commitizen.customize]—commitizen/cz/customize/customize.py:27is a standalone class that does not inherit fromConventionalCommitsCz. - The
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. - Scan for providers using metadata.entry_points in init #1258 — Discover providers via
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. - Add required parameter to Detailed questions content #1231 — Add
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. - CHANGELOG should only write down the main release #1218 — Option to write only main releases (skip rc/dev) into the changelog —
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
- Enable multi-line commit body input #1917 — Multi-line commit body input — PR Support multi-line commit body input #1919 (
pr-status: wait-for-review). - Feat: interactive live subject preview #1901 — Interactive live subject preview — PR Feat: add live subject preview for interactive commit (--preview) #1902 (
pr-status: wait-for-review). - Discuss
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). - Generate expected bump version comment when receiving a new pull request #1510 — PR bump-preview workflow — PR ci: add PR bump preview workflow #1957 (
pr-status: wait-for-review).
🎁 Mislabeled — relabel and remove issue-status: needs-triage
- [refactor] Make
BaseConfigan abstract class #1847 — MakeBaseConfigan abstract class —commitizen/config/base_config.py:18-61is a concrete class withNotImplementedErrorstubs. Relabeledtype: refactor. - Add commit hash and issue number to the changelog format as optional variables #1229 — Add commit hash / issue number to changelog format — default-template feature; relabeled
wait-for-implementation. (Existing template support viasha1is documented but only works for custom templates.) - Release after dev release results in error #1180 — Release after dev release results in error —
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
- Monorepo example using .cz.toml files #1334 — Monorepo example using
.cz.tomlfiles —docs/tutorials/monorepo_guidance.mdalready documents the multi-.cz.tomlsetup. - output suppressed until pre-commit scripts fully ran #1333 — Output suppressed until pre-commit scripts finish —
commitizen/cmd.pyusessubprocess.Popen(..., PIPE)+communicate()to capture git output for error parsing; intentional buffering.
❔ Needs reproduction / unclear
- Running
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.
- Commitizen is not compatible with recent versions of ipython because of its dependency on questionary #1249 closed: validation by
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. - Enable "--merge-prerelease" behavior in "cz bump" command #1934 → PR feat(bump): add --merge-prerelease flag #1968 (
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. - Scan for providers using metadata.entry_points in init #1258 → PR feat(init): discover third-party version providers via entry points #1971 (
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. - The
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. - [refactor] Make
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). - Add commit hash and issue number to the changelog format as optional variables #1229 relabeled
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). - Release after dev release results in error #1180 — added
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-msg pre-commit hook #1393 / Problem executing cz commit in prepare-commit-msg hook on Mac #1386 —
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. - [breaking] remove
cmd.runstring signature #1944 — removing thecmd.runstring signature is a breaking change scheduled for v5; better landed alongside the rest of v5. - 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.
Activity