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

Allow changing the charm entrypoint with the python and poetry plugins #1994

Open
carlcsaposs-canonical opened this issue Nov 15, 2024 · 2 comments
Labels
Enhancement New feature or request triaged

Comments

@carlcsaposs-canonical
Copy link
Contributor

carlcsaposs-canonical commented Nov 15, 2024

Bug Description

dispatch file missing from *.charm file when using poetry plugin

To Reproduce

git clone https://github.com/canonical/mysql-router-k8s-operator
cd mysql-router-k8s-operator
git checkout 1940ada229f9d873b7b07f6c3af66493c37cb15a
charmcraft pack -v
mkdir foo
cd foo
unzip ../mysql-router-k8s_ubuntu-22.04-amd64.charm
ls foo

dispatch file missing in foo

Environment

Ubuntu 22.04

$ snap list
Name              Version                 Rev    Tracking            Publisher          Notes
charmcraft        3.2.2.post75+gff00a899  5394   3.x/edge            canonical✓         classic,held
core18            20240920                2846   latest/stable       canonical✓         base
core20            20240911                2434   latest/stable       canonical✓         base
core22            20241001                1663   latest/stable       canonical✓         base
juju              3.5.4                   28520  3/stable            canonical✓         -
lxd               5.0.3-80aeff7           29351  5.0/stable/…        canonical✓         -
microk8s          v1.29.9                 7227   1.29-strict/stable  canonical✓         -
snapd             2.63                    21759  latest/stable       canonical✓         snapd

charmcraft.yaml

# Copyright 2022 Canonical Ltd.
# See LICENSE file for licensing details.

type: charm
bases:
  - name: ubuntu
    channel: "22.04"
    architectures: [amd64]
  - name: ubuntu
    channel: "22.04"
    architectures: [arm64]
parts:
  poetry-deps:
    plugin: nil
    build-packages:
      - curl
    override-build: |
      python3 -m pip install --upgrade pip==24.3.1
      curl -sSL https://install.python-poetry.org | python3 - --version 1.8.4
      ln -sf $HOME/.local/bin/poetry /usr/local/bin/poetry
  foo:
    plugin: poetry
    source: .
    after:
      - poetry-deps
    poetry-with:
      - charm-libs
    build-snaps:
      - rustup
    build-packages:
      - libffi-dev
      - libssl-dev
      - pkg-config
    override-build: |
      rustup default stable
      craftctl default

#
#  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
#      - scripts
#  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
#    charm-strict-dependencies: true
#    charm-requirements: [requirements.txt]
#    charm-entrypoint: src/kubernetes_charm.py

Relevant log output

charmcraft-20241115-101114.717652.log

Copy link

Thank you for reporting us your feedback!

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

This message was autogenerated

@lengau lengau added Enhancement New feature or request and removed Bug Something isn't working labels Nov 18, 2024
@lengau lengau changed the title No dispatch file created with poetry plugin Allow changing the charm entrypoint with the python and poetry plugins Nov 18, 2024
@lengau
Copy link
Collaborator

lengau commented Nov 18, 2024

Thanks for the report! This is intentional, though we should probably put a better warning on it. I've renamed the issue though, as the primary concern appears to be the name of the entrypoint.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement New feature or request triaged
Projects
None yet
Development

No branches or pull requests

2 participants