← Back to issue list

Unhelpful error message when creating help if an argument doesn't have a help text

View original Github issue

Metadata

Project
craft-cli
Number
#242
Type
issue
State
open
Author
lengau
Labels
Created
Updated
Closed

Current evaluation

craft-cli raised an unhelpful IndexError when a command argument lacked help text; the crash is now guarded in helptexts.py, and maintainer cmatsuoka is addressing the root cause via open PR #481 (fail early on missing help).

Suggested action: keep open

Reason: Maintainer cmatsuoka commented 2 days ago that '#481 makes applications fail early in case of missing help messages', and PR craft-cli#481 ('feat: error early when help message is missing') is open and directly targets this. The underlying IndexError is already guarded in _build_item_plain (helptexts.py), so the issue is triaged, valid, and being actively addressed — keep open until #481 merges.

Impact: 45 Quick Win: 27.0 Staleness: 10 Complexity: 40 Confidence: 80 Support Request: 10

Issue body

### Bug Description If a command adds an argument without `help` text, the error raised isn't very useful. It should give a better error. ### To Reproduce ``` import sys import craft_cli class ExampleCommand(craft_cli.BaseCommand): name = "example" help_msg = overview = "unimportant" def fill_parser(self, parser): parser.add_argument("--do-something") craft_cli.emit.init(craft_cli.EmitterMode.BRIEF, "example-app", "example app") dispatcher = craft_cli.Dispatcher( "example-app", [craft_cli.CommandGroup("Example", [ExampleCommand])], summary="summary" ) dispatcher.pre_parse_args(sys.argv[1:]) dispatcher.load_command(None) dispatcher.run() ``` `python ./example.py help example` ### part yaml ```shell n/a ``` ### Relevant log output ```shell Traceback (most recent call last): File "/home/lengau/Work/Code/charmcraft-2/charmcraft/application/commands/example.py", line 22, in <module> dispatcher.pre_parse_args(sys.argv[1:]) File "/home/lengau/Work/Code/charmcraft-2/.venv/lib/python3.11/site-packages/craft_cli/dispatcher.py", line 469, in pre_parse_args help_text = self._get_requested_help(cmd_args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/lengau/Work/Code/charmcraft-2/.venv/lib/python3.11/site-packages/craft_cli/dispatcher.py", line 355, in _get_requested_help return self._help_builder.get_command_help(command, command_options, output_format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/lengau/Work/Code/charmcraft-2/.venv/lib/python3.11/site-packages/craft_cli/helptexts.py", line 425, in get_command_help textblocks = builder(usage, command.overview, options, other_command_names) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/lengau/Work/Code/charmcraft-2/.venv/lib/python3.11/site-packages/craft_cli/helptexts.py", line 312, in _build_plain_command_help option_lines.extend(_build_item_plain(title, text, max_title_len)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/lengau/Work/Code/charmcraft-2/.venv/lib/python3.11/site-packages/craft_cli/helptexts.py", line 71, in _build_item_plain first = f" {title:>{title_space}s}: {wrapped_lines[0]}" ~~~~~~~~~~~~~^^^ IndexError: list index out of range ```

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.8-27b
Impact: 45
Quick Win: 27.0
Staleness: 10
Complexity: 40
Confidence: 80
Support Request: 10
keep open craft-cli raised an unhelpful IndexError when a command argument lacked help text; the crash is now guarded in helptexts.py, and maintainer cmatsuoka is addressing the root cause via open PR #481 (fail early on missing help).
qwen/qwen3.6-35b-a3b
Staleness: 95
Complexity: 20
Confidence: 85
Support Request: 0
close stale Unhelpful IndexError when creating help for an argument without help text. Issue is 880 days old, inactive, and lacks maintainer engagement.
qwen3.6-35b-a3b-mtp-q6
Staleness: 95
Complexity: 20
Confidence: 80
Support Request: 0
close stale Unhelpful IndexError when generating help for arguments missing help text. Issue remains unlabelled and inactive for over two years with no maintainer engagement.
qwen3.6-35b-a3b-mtp-q6
Staleness: 95
Complexity: 20
Confidence: 80
Support Request: 0
close stale Generating help for commands with arguments lacking help text triggers an IndexError instead of a clear error. Open, unassigned, and untriaged. Requires investigation and a better validation message.

Update history

Date Change
updated

Related work

  • Likely Fixed By: craft-cli#481 (confidence 85%)

    Open PR 'feat: error early when help message is missing' is the maintainer's chosen approach to this issue, per cmatsuoka's comment.

Related issues

No related issues found above the similarity threshold.