← Back to issue list

snapcraft help fails on many commands

View original Github issue

Metadata

Project
snapcraft
Number
#5169
Type
issue
State
closed
Author
plars
Labels
Created
Updated
Closed

Current evaluation

Fixed a crash in snapcraft help caused by missing help text for certain arguments, triggering an IndexError in craft_cli. Resolved in PR #5178 and released in snapcraft 8.5.1.

Suggested action:

No scores available.

Issue body

### Bug Description On some commands such as promote, validate, revisions... you get error output when trying to do `snapcraft help <command>` or `snapcraft <command> -h` ### To Reproduce run `snapcraft help <command>` with one of the above mentioned commands, and possibly others. ### Environment Ubuntu, snapcraft 8.5.0 ### snapcraft.yaml ```yaml n/a ``` ### Relevant log output ```shell Internal error while loading snapcraft: IndexError('list index out of range') Full execution log: '/home/plars/.local/state/snapcraft/log/snapcraft-20241206-152815.612091.log' Traceback (most recent call last): File "/snap/snapcraft/13008/lib/python3.10/site-packages/craft_application/application.py", line 502, in _get_dispatcher global_args = dispatcher.pre_parse_args(sys.argv[1:], app_config) File "/snap/snapcraft/13008/lib/python3.10/site-packages/craft_cli/dispatcher.py", line 476, in pre_parse_args help_text = self._get_requested_help(cmd_args, app_config) File "/snap/snapcraft/13008/lib/python3.10/site-packages/craft_cli/dispatcher.py", line 358, in _get_requested_help return self._help_builder.get_command_help(command, command_options, output_format) File "/snap/snapcraft/13008/lib/python3.10/site-packages/craft_cli/helptexts.py", line 468, in get_command_help textblocks = builder(command, usage, parameters, options, other_command_names) File "/snap/snapcraft/13008/lib/python3.10/site-packages/craft_cli/helptexts.py", line 337, in _build_plain_command_help positional_args_lines.extend(_build_item_plain(title, text, max_title_len)) File "/snap/snapcraft/13008/lib/python3.10/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 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/snap/snapcraft/13008/lib/python3.10/site-packages/craft_application/application.py", line 663, in run return_code = self._run_inner() File "/snap/snapcraft/13008/lib/python3.10/site-packages/snapcraft/application.py", line 202, in _run_inner return_code = super()._run_inner() File "/snap/snapcraft/13008/lib/python3.10/site-packages/craft_application/application.py", line 610, in _run_inner dispatcher = self._get_dispatcher() File "/snap/snapcraft/13008/lib/python3.10/site-packages/snapcraft/application.py", line 431, in _get_dispatcher return super()._get_dispatcher() File "/snap/snapcraft/13008/lib/python3.10/site-packages/craft_application/application.py", line 525, in _get_dispatcher if self.services.config.get("debug"): File "/snap/snapcraft/13008/lib/python3.10/site-packages/craft_application/services/service_factory.py", line 125, in __getattr__ instance.setup() File "/snap/snapcraft/13008/lib/python3.10/site-packages/craft_application/services/config.py", line 163, in setup super().setup() File "/snap/snapcraft/13008/lib/python3.10/site-packages/craft_application/services/base.py", line 45, in setup emit.debug(f"Setting up {self.__class__.__name__}") File "/snap/snapcraft/13008/lib/python3.10/site-packages/craft_cli/messages.py", line 417, in func raise RuntimeError("Emitter is stopped already") RuntimeError: Emitter is stopped already During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/snap/snapcraft/13008/bin/snapcraft", line 8, in <module> sys.exit(main()) File "/snap/snapcraft/13008/lib/python3.10/site-packages/snapcraft/application.py", line 482, in main return app.run() File "/snap/snapcraft/13008/lib/python3.10/site-packages/craft_application/application.py", line 693, in run if self.services.config.get("debug"): File "/snap/snapcraft/13008/lib/python3.10/site-packages/craft_application/services/service_factory.py", line 125, in __getattr__ instance.setup() File "/snap/snapcraft/13008/lib/python3.10/site-packages/craft_application/services/config.py", line 163, in setup super().setup() File "/snap/snapcraft/13008/lib/python3.10/site-packages/craft_application/services/base.py", line 45, in setup emit.debug(f"Setting up {self.__class__.__name__}") File "/snap/snapcraft/13008/lib/python3.10/site-packages/craft_cli/messages.py", line 417, in func raise RuntimeError("Emitter is stopped already") RuntimeError: Emitter is stopped already ``` ### Additional context _No response_

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.6-35b-a3b Fixed a crash in snapcraft help caused by missing help text for certain arguments, triggering an IndexError in craft_cli. Resolved in PR #5178 and released in snapcraft 8.5.1.
qwen/qwen3.6-35b-a3b Fixed in PR #5178 and released in snapcraft 8.5.1. The help command crashed with an IndexError on arguments lacking help text. Adding the missing descriptions resolved the crash.
qwen3.6-35b-a3b-mtp-q6 Fixed a crash in snapcraft help caused by missing help text for certain arguments, triggering an IndexError. Resolved in PR #5178 and released in snapcraft 8.5.1.
qwen3.6-35b-a3b-mtp-q6 Fixed in PR #5178 and released in snapcraft 8.5.1. The help command crashed with an IndexError on commands like promote and validate due to missing argument descriptions. The fix adds the required help text to resolve the crash.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#1698116 snapcraft help claims to have help for topics, but doesn't snapcraft (launchpad) closed Closed. The CLI error message for snapcraft help without arguments was updated to list available topics, resolving the discovery confusion.
74%
#1510954 Help crashes if specified plugin does not exist snapcraft (launchpad) closed Fixed an UnboundLocalError crash when running snapcraft help with a non-existent plugin. Resolved by properly handling missing module references in help.py.
74%
#1845 cli: implement help <command> snapcraft merged Implemented snapcraft help <command> CLI functionality. Merged after passing CI checks and receiving reviewer approval. Closes issue #1699.
73%
#13 Help crashes if specified plugin does not exist snapcraft closed Fixed an UnboundLocalError crash in snapcraft help when requesting help for a non-existent plugin. The maintainer confirmed the traceback is resolved and closed the issue.
71%