Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

--bases-index ignored on charmcraft 3 #1983

Open
carlcsaposs-canonical opened this issue Nov 8, 2024 · 1 comment
Open

--bases-index ignored on charmcraft 3 #1983

carlcsaposs-canonical opened this issue Nov 8, 2024 · 1 comment
Labels
Bug Something isn't working triaged

Comments

@carlcsaposs-canonical
Copy link
Contributor

carlcsaposs-canonical commented Nov 8, 2024

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

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

# 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
charmcraft-20241108-113122.844623.log

@carlcsaposs-canonical carlcsaposs-canonical added the Bug Something isn't working label Nov 8, 2024
@lengau lengau added the triaged label Nov 12, 2024
Copy link

Thank you for reporting us your feedback!

The internal ticket has been created: https://warthogs.atlassian.net/browse/CRAFT-3670.

This message was autogenerated

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working triaged
Projects
None yet
Development

No branches or pull requests

2 participants