Title: Triage audit: 30 open untriaged non-bug issues (May 2026, follow-up to #1964) · Issue #1965 · commitizen-tools/commitizen · GitHub
Open Graph Title: Triage audit: 30 open untriaged non-bug issues (May 2026, follow-up to #1964) · Issue #1965 · commitizen-tools/commitizen
X Title: Triage audit: 30 open untriaged non-bug issues (May 2026, follow-up to #1964) · Issue #1965 · commitizen-tools/commitizen
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 cur...
Open Graph 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). Togethe...
X 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). Togethe...
Opengraph URL: https://github.com/commitizen-tools/commitizen/issues/1965
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Triage audit: 30 open untriaged non-bug issues (May 2026, follow-up to #1964)","articleBody":"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.\r\n\r\nFindings are based on code inspection only — please confirm with a real reproduction or maintainer judgement before acting on any item.\r\n\r\n## ✅ Likely fixed — verify \u0026 close\r\n\r\n- [x] #1249 — questionary/ipython incompatibility — `pyproject.toml:16` already pins `questionary (\u003e=2.0,\u003c3.0)` which works with current `prompt_toolkit` and recent ipython releases. Closed as fixed; see follow-up below.\r\n\r\n## ❌ Still valid — needs implementation / fix\r\n\r\n- [ ] #1959 — Promote PR bump preview to a reusable workflow in `setup-cz` — feature not yet implemented; PR #1957 only adds the workflow to this repo.\r\n- [ ] #1944 — Remove `cmd.run` string signature for v5 — `commitizen/cmd.py:68-77` still accepts `cmd: str | Sequence[str]`.\r\n- [ ] #1934 — Enable `--merge-prerelease` on `cz bump` — `commitizen/cli.py:433-440` defines the flag only under `cz changelog`. **PR #1968 was opened, then closed pending maintainer triage** — feature requests sit with the maintainers for design / scope review.\r\n- [ ] #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.\r\n- [ ] #1676 — Separate version providers into optional workspace packages — `commitizen/providers/` ships 9 providers inline.\r\n- [ ] #1572 — Branch-aware bump rules (cap min/max increment per branch pattern) — no branch-aware bump logic in codebase.\r\n- [ ] #1567 — Create a `commitizen-extras` repository for community plugins — organisational meta-issue.\r\n- [ ] #1481 — Release commitizen v5 — meta tracker; depends on remaining `v5`-labelled items being landed.\r\n- [ ] #1411 — Relative-path behaviour changed in 4.6.3+ — `commitizen/commands/changelog.py:68` resolves the file path relative to the config parent when `config.path` exists.\r\n- [ ] #1393 — Add a `prepare-commit-msg` hook entry — `.pre-commit-hooks.yaml:1-28` only defines `commit-msg` and `pre-push` stages.\r\n- [ ] #1386 — `cz commit` fails inside a `prepare-commit-msg` hook on macOS — `commitizen/commands/commit.py` invokes `questionary.prompt` which requires a real TTY; selector errors when stdin is redirected.\r\n- [ ] #1332 — Global config merge — `commitizen/config/__init__.py:12-27` only walks the current directory and git root, never `~/.config/commitizen.toml`.\r\n- [ ] #1331 — `cz dump-config` / config export command — `commitizen/commands/__init__.py` lists Bump/Changelog/Check/Commit/Example/Info/Init/ListCz/Schema/Version only. **PR #1986 was opened, then closed pending maintainer triage** — feature requests sit with the maintainers for design / scope review.\r\n- [ ] #1278 — Make every aspect of a `cz_*` plugin configurable through TOML/JSON — broad enhancement umbrella related to #1270.\r\n- [ ] #1270 — Allow partially overriding `cz_conventional_commits` via `[tool.commitizen.customize]` — `commitizen/cz/customize/customize.py:27` is a standalone class that does not inherit from `ConventionalCommitsCz`.\r\n- [ ] #1267 — `cz changelog` includes commit body lines that match the parser regex — `commitizen/changelog.py:151-154` splits `commit.body` by `\\n\\n` and re-parses each block. **PR #1974 was opened, then closed pending maintainer triage** — feature requests sit with the maintainers for design / scope review.\r\n- [ ] #1258 — Discover providers via `metadata.entry_points` in `cz init` — `commitizen/commands/init.py:41,257` hardcodes `_VERSION_PROVIDER_CHOICES`. **PR #1971 was opened, then closed pending maintainer triage** — feature requests sit with the maintainers for design / scope review.\r\n- [ ] #1231 — Add `required` parameter to detailed customise questions — `commitizen/question.py` defines question types with no `required` validation field. **PR #1984 was opened, then closed pending maintainer triage** — feature requests sit with the maintainers for design / scope review.\r\n- [ ] #1218 — Option to write only main releases (skip rc/dev) into the changelog — `commitizen/commands/changelog.py:229-264` has prerelease merge logic but no full-exclude switch. **PR #1985 was opened, then closed pending maintainer triage** — feature requests sit with the maintainers for design / scope review.\r\n\r\n## 🔧 Has open PR\r\n\r\n- [ ] #1917 — Multi-line commit body input — PR #1919 (`pr-status: wait-for-review`).\r\n- [ ] #1901 — Interactive live subject preview — PR #1902 (`pr-status: wait-for-review`).\r\n- [ ] #1831 — `cz init` should use `DEFAULT_SETTINGS` instead of `self.config.settings` — PR #1832 (`pr-status: wait-for-review`).\r\n- [ ] #1510 — PR bump-preview workflow — PR #1957 (`pr-status: wait-for-review`).\r\n\r\n## 🎁 Mislabeled — relabel and remove `issue-status: needs-triage`\r\n\r\n- [x] #1847 — Make `BaseConfig` an abstract class — `commitizen/config/base_config.py:18-61` is a concrete class with `NotImplementedError` stubs. Relabeled `type: refactor`.\r\n- [x] #1229 — Add commit hash / issue number to changelog format — default-template feature; relabeled `wait-for-implementation`. (Existing template support via `sha1` is documented but only works for custom templates.)\r\n- [x] #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.\r\n\r\n## 🤷 By design / config issue / non-bug — close with explanation\r\n\r\n- [ ] #1334 — Monorepo example using `.cz.toml` files — `docs/tutorials/monorepo_guidance.md` already documents the multi-`.cz.toml` setup.\r\n- [ ] #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.\r\n\r\n## ❔ Needs reproduction / unclear\r\n\r\n- [ ] #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`.\r\n\r\n---\r\n\r\n**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.\r\n\r\nTogether 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.\r\n\r\n## Round-2 follow-up actions (May 2026)\r\n\r\nStrong-model validation, label cleanup, PRs, and external review for the items checked above.\r\n\r\n- **#1249** closed: validation by `claude-opus-4.7` confirmed questionary 2.1.0 + commitizen master (`questionary \u003e=2.0,\u003c3.0`) co-installs cleanly with current ipython 8/9; the repo's own `uv.lock` resolves all three together.\r\n- **#1934 → PR #1968** (`feat(bump): add --merge-prerelease flag`). CI green across the matrix. Reviewed by both an internal `claude-sonnet-4.6` code-review agent and GitHub Copilot — no findings.\r\n- **#1258 → PR #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 commit `1bad9047` adds a `seen_names` set seeded with the built-ins and a regression test `test_construct_version_provider_choices_dedupes_duplicate_third_party`.\r\n- **#1267 → PR #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.\r\n- **#1847** relabeled `type: 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 #1481 rather than a separate PR).\r\n- **#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).\r\n- **#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.\r\n\r\nIssues left to a maintainer (no PR opened yet):\r\n\r\n- **#1393** / **#1386** — `prepare-commit-msg` hook entry would be a one-line YAML addition, but the underlying `cz commit` interactive flow fails on macOS in such a hook (#1386), so adding the entry without addressing the TTY behaviour would just relocate the bug.\r\n- **#1944** — removing the `cmd.run` string signature is a breaking change scheduled for v5; better landed alongside the rest of v5.\r\n- All remaining \"still valid\" items in the table above.\r\n\r\nHappy to take individual items off this list — please comment with which # you're picking up.\r\n\r\n\u003e **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.","author":{"url":"https://github.com/bearomorphism","@type":"Person","name":"bearomorphism"},"datePublished":"2026-05-09T10:47:33.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/1965/commitizen/issues/1965"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:fb42bed3-1483-829a-76d5-e8319f7d4f13 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | B96C:2BF14B:5483FF:73A76D:6A4DA74F |
| html-safe-nonce | 878c02181d82c93e09b519ef28915981a00a791baf83f54aa0f043c4e4fe49c7 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCOTZDOjJCRjE0Qjo1NDgzRkY6NzNBNzZEOjZBNERBNzRGIiwidmlzaXRvcl9pZCI6IjMwMjY2MDIxOTYxNTYxMzExNTEiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | e28989b994e233fe25dad2942addf72d48d09e7f04d6a46a5e026eb8d03728d0 |
| hovercard-subject-tag | issue:4412237793 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/commitizen-tools/commitizen/1965/issue_layout |
| twitter:image | https://opengraph.githubassets.com/450f6e211e37cd692ee0f6a07889afa5cfb859027952942dec8bb19bfdfd6db0/commitizen-tools/commitizen/issues/1965 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/450f6e211e37cd692ee0f6a07889afa5cfb859027952942dec8bb19bfdfd6db0/commitizen-tools/commitizen/issues/1965 |
| og:image:alt | 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). Togethe... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | bearomorphism |
| hostname | github.com |
| expected-hostname | github.com |
| None | 06b8a6144231bf3a234f1c2e9993861e07ce98a905912b114aa386c2d7e84b33 |
| turbo-cache-control | no-preview |
| go-import | github.com/commitizen-tools/commitizen git https://github.com/commitizen-tools/commitizen.git |
| octolytics-dimension-user_id | 62252524 |
| octolytics-dimension-user_login | commitizen-tools |
| octolytics-dimension-repository_id | 106127589 |
| octolytics-dimension-repository_nwo | commitizen-tools/commitizen |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 106127589 |
| octolytics-dimension-repository_network_root_nwo | commitizen-tools/commitizen |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 47723578ce6819210724ef064c858fce6d3115a3 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width