← Back to issue list

`--bases-index` ignored on charmcraft 3

View original Github issue

Metadata

Project
charmcraft
Number
#1983
Type
issue
State
open
Author
carlcsaposs-canonical
Labels
Created
Updated
Closed

Current evaluation

charmcraft 3 pack ignores --bases-index, building all bases instead of the requested one. Reported on 3.2.1; no maintainer response, only a Jira sync bot comment. Option still exists in code but appears unused in the pack run path.

Suggested action: needs triage

Reason: No maintainer has acknowledged, labelled, or responded to this bug; the only comment is an autogenerated Jira sync (CRAFT-3670). The reporter provides a clear reproduction and logs, and the code still defines --bases-index in PackCommand._fill_parser, but I found no evidence it is consumed in the pack run path, so it needs triage to confirm the bug and decide whether to fix or document the deprecation in favor of --platform.

Impact: 55 Quick Win: 33.0 Staleness: 70 Complexity: 40 Confidence: 70 Support Request: 5

Issue body

### Bug Description `charmcraft pack` with `--bases-index` packs all bases For example, using `charmcraft pack --bases-index 1` with a charmcraft.yaml bases that looks like ```yaml bases: - name: ubuntu channel: "20.04" architectures: [amd64] - name: ubuntu channel: "22.04" architectures: [amd64] - name: ubuntu channel: "22.04" architectures: [arm64] ``` packs base 0 and base 1 instead of just base 1 Only occurs on charmcraft 3, not charmcraft 2 ### To Reproduce ``` lxd init --auto sudo snap install charmcraft --classic git clone https://github.com/canonical/mysql-router-operator cd mysql-router-operator/ git checkout 60ad0549c590d48d77d37f83fe8d105f5a182d4a charmcraft pack -v --bases-index 1 ``` Output shows ``` Launching managed ubuntu 20.04 instance... [...] Packing charm mysql-router_ubuntu-20.04-amd64.charm Packed mysql-router_ubuntu-20.04-amd64.charm Launching managed ubuntu 22.04 instance... [...] Packing charm mysql-router_ubuntu-22.04-amd64.charm Packed mysql-router_ubuntu-22.04-amd64.charm ``` ### Environment Ubuntu 22.04.1 LTS ``` $ snap list Name Version Rev Tracking Publisher Notes charmcraft 3.2.1 4914 latest/stable canonical✓ classic core18 20221027 2620 latest/stable canonical✓ base core20 20221027 1695 latest/stable canonical✓ base core22 20241001 1663 latest/stable canonical✓ base lxd 5.0.1-9dcf35b 23541 5.0/stable/… canonical✓ - snapd 2.57.5 17576 latest/stable canonical✓ snapd ``` ### charmcraft.yaml ```yaml # Copyright 2022 Canonical Ltd. # See LICENSE file for licensing details. type: charm bases: # Whenever "bases" is changed: # - Update tests/conftest.py::pytest_configure() # - Update .github/workflow/ci.yaml integration-test matrix - name: ubuntu channel: "20.04" architectures: [amd64] - name: ubuntu channel: "22.04" architectures: [amd64] - name: ubuntu channel: "22.04" architectures: [arm64] parts: files: plugin: dump source: . build-packages: - git override-build: | # Workaround to add unique identifier (git hash) to charm version while specification # DA053 - Charm versioning # (https://docs.google.com/document/d/1Jv1jhWLl8ejK3iJn7Q3VbCIM9GIhp8926bgXpdtx-Sg/edit?pli=1) # is pending review. python3 -c 'import pathlib; import shutil; import subprocess; git_hash=subprocess.run(["git", "describe", "--always", "--dirty"], capture_output=True, check=True, encoding="utf-8").stdout; file = pathlib.Path("charm_version"); shutil.copy(file, pathlib.Path("charm_version.backup")); version = file.read_text().strip(); file.write_text(f"{version}+{git_hash}")' craftctl default stage: # Exclude requirements.txt file during staging # Workaround for https://github.com/canonical/charmcraft/issues/1389 on charmcraft 2 - -requirements.txt prime: - charm_version - workload_version charm: build-snaps: - rustup build-packages: - libffi-dev - libssl-dev - pkg-config override-build: | rustup default stable # Convert subset of poetry.lock to requirements.txt curl -sSL https://install.python-poetry.org | python3 - /root/.local/bin/poetry export --only main,charm-libs --output requirements.txt craftctl default stage: # Exclude charm_version file during staging - -charm_version # TODO: enable after https://github.com/canonical/charmcraft/issues/1456 fixed charm-strict-dependencies: false charm-requirements: [requirements.txt] charm-entrypoint: src/machine_charm.py ``` ### Relevant log output [charmcraft_output.txt](https://github.com/user-attachments/files/17679837/charmcraft_output.txt) [charmcraft-20241108-113122.844623.log](https://github.com/user-attachments/files/17679838/charmcraft-20241108-113122.844623.log)

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.8-27b
Impact: 55
Quick Win: 33.0
Staleness: 70
Complexity: 40
Confidence: 70
Support Request: 5
needs triage charmcraft 3 pack ignores --bases-index, building all bases instead of the requested one. Reported on 3.2.1; no maintainer response, only a Jira sync bot comment. Option still exists in code but appears unused in the pack run path.
qwen/qwen3.6-35b-a3b
Staleness: 85
Complexity: 35
Confidence: 85
Support Request: 5
needs triage charmcraft pack --bases-index flag ignored in v3, packing all bases instead of the specified one. Open since ~1.5 years with no maintainer response.
qwen3.6-35b-a3b-mtp-q6
Staleness: 85
Complexity: 40
Confidence: 80
Support Request: 5
needs triage Needs maintainer assessment. Reports --bases-index flag ignored in charmcraft 3, packing all bases instead of the specified one. Clear reproduction steps provided, but no maintainer response or labels in over a year.
qwen3.6-35b-a3b-mtp-q6
Staleness: 85
Complexity: 45
Confidence: 80
Support Request: 5
needs triage Regression in charmcraft 3 where --bases-index is ignored during pack, building all bases instead of the specified one. Unlabelled with no maintainer response in over a year.
qwen3.6-35b-a3b-mtp-q6
Staleness: 80
Complexity: 45
Confidence: 65
Support Request: 5
needs triage charmcraft v3 ignores the --bases-index flag during pack, building all bases instead of the specified one. Open for 584 days, inactive for 304 days, and synced to Jira ticket CRAFT-3670 awaiting triage.

Update history

No update history recorded yet.

Related issues

No related issues found above the similarity threshold.