← 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
2024-11-08 11:55:53+00:00
Updated
2025-08-15 15:18:06+00:00
Closed

Current evaluation

No evaluation has been recorded for this issue yet.

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

No evaluation history available.