← Back to issue list

`charmcraft upload` should allow a user to also release the charm

View original Github issue

Metadata

Project
charmcraft
Number
#1979
Type
issue
State
open
Author
lucabello
Labels
—
Created
Updated
Closed
—

Current evaluation

Requests single-command charm upload+release with automatic OCI resource handling. --release flag already exists; remaining gap is resource upload by image reference instead of revision number.

Suggested action: keep open

Reason: The core --release flag requested in the title already exists in UploadCommand (added by PR #255, with --resource support from PR #457), but the remaining request — uploading/releasing resources by OCI image reference rather than revision number — is still open and tracked internally as CRAFT-4049. Issue #839 shows automatic upstream-image uploads were previously rejected by design, so the resource-handling scope still needs clarification.

Evaluated by: mr-cal-bot

Impact: 55 Quick Win: 13 Complexity: 65 Confidence: 78 Actionability: 65

Issue body

### What needs to get done Currently, to release a charm you have to: ``` charmcraft upload <.charm> # note down the revision number charmcraft upload-resource <resource> # note down the revision number charmcraft release ... ``` We should have a way to release a charm right after uploading it; the resource can be uploaded automatically according to the `upstream-image` field in `charmcraft.yaml`. The approached discussed with @lengau would be to add `--release=latest/edge` flag to the `upload` command. Another option could be to introduce a new command that does both the update and release together. An example would be something like: ``` `charmcraft upload prometheus.charm prometheus-k8s --resource=prometheus-image:ubuntu/prometheus:9 --release=latest/edge` ``` ### Why it needs to get done In CI, releasing a charm currently translates to those three commands with weird parsing of the revision numbers, and the manual process is extremely error-prone.

Evaluation history

Date Model Scores Action Summary
~deepseek/deepseek-pro-latest
Impact: 55
Quick Win: 13
Complexity: 65
Confidence: 78
Actionability: 65
keep open Requests single-command charm upload+release with automatic OCI resource handling. --release flag already exists; remaining gap is resource upload by image reference instead of revision number.
qwen/qwen3.6-35b-a3b
Impact: 30
Quick Win: 19
Complexity: 20
Confidence: 90
Actionability: 80
close resolved The `--release` flag for `charmcraft upload` has been implemented and merged. The remaining request for automatic resource upload via `upstream-image` is a separate enhancement.
qwen/qwen3.8-27b
Impact: 40
Quick Win: 24
Staleness: 55
Complexity: 40
Confidence: 75
Support Request: 10
close not a bug Feature request to add --release flag to charmcraft upload command. The --release flag is already implemented (PR #255), but auto-uploading resources from upstream-image field in charmcraft.yaml remains unimplemented. Last activity Feb 2025.
qwen/qwen3.6-35b-a3b
Staleness: 75
Complexity: 40
Confidence: 85
Support Request: 10
needs triage Feature request to add a --release flag to charmcraft upload for combining upload and release in CI. Currently has an internal ticket but lacks public triage and prioritization.
qwen3.6-35b-a3b-mtp-q6
Staleness: 85
Complexity: 40
Confidence: 70
Support Request: 10
keep open Feature request to add a --release flag to charmcraft upload for streamlined CI workflows. Currently inactive for over a year with no maintainer implementation, though a community workaround exists.
qwen3.6-35b-a3b-mtp-q6
Staleness: 85
Complexity: 20
Confidence: 80
Support Request: 5
needs triage Feature request to add a --release flag to charmcraft upload, simplifying CI workflows by combining upload and release steps. Currently unlabelled and unassessed by maintainers.

Update history

No update history recorded yet.

Related work

  • Related To: charmcraft#255 (confidence 90%)

    PR #255 added the upload --release option, partially addressing the title request.

  • Related To: charmcraft#457 (confidence 90%)

    PR #457 added --resource support to upload --release, but requires revision numbers rather than image references.

  • Related To: charmcraft#1313 (confidence 85%)

    Open issue describing the same remaining UX gap: manual resource revision numbers instead of image references.

  • Related To: charmcraft#259 (confidence 85%)

    Support for attaching resources when releasing, resolved by PR #457.

  • Related To: charmcraft#839 (confidence 75%)

    Automatic resource uploads from upstream-image were rejected by design, informing the remaining scope.

Related issues

Issue Project State Summary Similarity
#1313 Make it easier to release charms in CI and in general charmcraft open Single-command charm upload and release with OCI resources remains unimplemented; upload accepts only existing resource revisions, so users must upload resources first and track returned IDs.
86%
#126 Add a "--release" option to the "upload" command charmcraft closed Implemented charmcraft upload --release in canonical/charmcraft#255 (merge 9064a3f3, feature bc06a62a); #457 added resource support and shipped in Charmcraft 1.1.2.
81%
#457 Allow including resources when releasing charms directly in the upload command (CRAFT-381). charmcraft merged Merged PR #457 (b5d735b4), adding --resource support to upload --release and fixing #456; the fix shipped in Charmcraft 1.1.2.
76%
#255 Add the option to release when uploading a charm or bundle charmcraft merged Merged PR #255 as 9064a3f3, adding upload-time release channel support for charms and bundles; implementation commit bc06a62a.
73%
#839 Upload resources on charmcraft upload when specified as upstream-resource in the metadata file charmcraft closed Feature request to auto-upload OCI resources during `charmcraft upload` was declined by design: maintainer refused to have Charmcraft copy Docker Hub images into Canonical's registry and cited upload inefficiency; user advised to script it using JSON output.
72%
#1263 `charmcraft upload` should be able to take several `*.charm` files at once charmcraft closed Closed by the reporter as expected behaviour: maintainers explained Charmhub supports charms of different bases per revision, so per-base .charm files are uploaded separately and Juju picks the right one. No code change.
71%
#368 feature request: charmcraft release=last-revision charmcraft closed No code change was needed: charmcraft upload <charm> --release=edge already uploads and releases the newly created revision.
71%