← Back to issue list

Charmcraft tool base skeleton

View original Github issue

Metadata

Project
charmcraft
Number
#1
Type
pull request
State
merged
Author
facundobatista
Labels
—
Created
Updated
Closed

Current evaluation

Merged PR #1 as commit 1acba721, introducing Charmcraft’s initial CLI skeleton with extensible commands, routing, logging, and error/exit-code handling.

Resolution: closed resolved

Reason: PR #1 was approved and merged into canonical/charmcraft as merge commit 1acba721, establishing the command architecture and execution infrastructure described in the proposal.

Evaluated by: mr-cal-bot

No scores available.

Issue body

Draft of the skeleton for the charm tool. Two big details that surely needs considering before having this final: - add tests - what we'll do to provide help regarding grouped commands (currently implemented, but very hacky) That said, this draft has a lot of established functionality: - multiple commands handling - each command is responsible for - provide name and help message - declare own CLI parameters - properly do something - send messages to the user ("print to screen") through logging, in the regular levels - raise `CommandError` if wants to signal an error to the system - having each command separated in a class leaves lot of room for expansion (for example if in the future we would want to have several versions of same command, or deprecate any, or have some that needs auth, or...) - wrap command execution to properly return a retcode if something is decided to be wrong (but not hiding a normal traceback if we crash) - decide logger level according to regular `verbose`/`quiet` parameter flags, but also support DEBUG envvar for seeing debug messages *before* the parameter processing. - have both requirements files, however "prod" one is still empty (didn't need to use anything external so far) - infrastructure tests in place

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Merged PR #1 as commit 1acba721, introducing Charmcraft’s initial CLI skeleton with extensible commands, routing, logging, and error/exit-code handling.
stealth/space-bunny-alpha — closed resolved Merged the initial Charmcraft CLI skeleton in PR #1, adding extensible command classes, routing, logging, error handling, and exit-code behavior.
stealth/space-bunny-alpha — closed resolved Merged Charmcraft's initial CLI skeleton, adding command routing, logging, error and exit-code handling, and an extensible command-class architecture. Tests and grouped-command help remained follow-up work.
qwen/qwen3.6-35b-a3b — — Merged the Charmcraft CLI skeleton, establishing command routing, logging, error handling, and extensible architecture. The maintainer approved and integrated the structure, deferring tests and grouped command help to future work.
qwen3.6-35b-a3b-mtp-q6 — — Merged the Charmcraft CLI base skeleton. Introduces modular command handling, CLI argument parsing, structured logging, error codes, and verbose/debug flags. Includes test infrastructure. Author addressed review feedback before merging.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#32 The charm tool should offer an initial skeleton charmcraft closed Implemented `charmcraft init` to generate an initial charm skeleton via merged PR canonical/charmcraft#91.
75%
#91 First pass at 'charmcraft init' charmcraft merged Merged PR #91 delivered the first non-interactive charmcraft init scaffolding implementation; README improvements, extra options, and prompts were deferred (commit 0ebd9f87).
73%
#4 First version of the build command. charmcraft merged Merged the initial Charmcraft build command into main via ad9f68c1, with implementation commit 27aece73.
72%
#46 New functionality from charmcraft (CRAFT-706). craft-cli merged Merged CRAFT-706 functionality from Charmcraft into craft-cli, including dispatcher and help-text improvements, via canonical/craft-cli#46 (4b190c5).
70%