From c4b0d7c2899a04bafd141e7fcbc6649e2acb4eb5 Mon Sep 17 00:00:00 2001 From: Alex Lowe <alex.lowe@canonical.com> Date: Thu, 17 Oct 2024 16:16:59 -0400 Subject: [PATCH 1/2] build: use the Charmcraft poetry plugin --- charmcraft.yaml | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/charmcraft.yaml b/charmcraft.yaml index e5e0208749..3a885baca6 100644 --- a/charmcraft.yaml +++ b/charmcraft.yaml @@ -10,7 +10,8 @@ bases: channel: "22.04" architectures: [arm64] parts: - charm: + rust-deps: + plugin: nil build-snaps: - rustup build-packages: @@ -20,14 +21,23 @@ parts: - libpq-dev override-build: | rustup default stable - - # Convert subset of poetry.lock to requirements.txt + poetry-deps: + plugin: nil + build-packages: + - curl + build-environment: + - POETRY_VERSION: "1.8.0" + override-build: | curl -sSL https://install.python-poetry.org | python3 - - /root/.local/bin/poetry export --only main,charm-libs --output requirements.txt + ln -sf $HOME/.local/bin/poetry /usr/local/bin/poetry - craftctl default - charm-strict-dependencies: true - charm-requirements: [requirements.txt] + /usr/bin/python3 -m pip install pip==24.2 + charm: + after: [rust-deps, poetry-deps] + plugin: poetry + source: . + poetry-with: + - charm-libs libpq: build-packages: - libpq-dev From 6a1f01cff11a740a63d740bcaa7aed9f7fa166fb Mon Sep 17 00:00:00 2001 From: Alex Lowe <alex.lowe@canonical.com> Date: Thu, 17 Oct 2024 16:32:35 -0400 Subject: [PATCH 2/2] ci: use Charmcraft from the edge channel for testing This can be dropped once charmcraft 3.3 is released. --- .github/workflows/ci.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c2988045d8..5e1c7b6f4c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -48,6 +48,8 @@ jobs: uses: canonical/data-platform-workflows/.github/workflows/build_charm.yaml@v23.0.2 with: cache: true + # Needed for the poetry plugin + charmcraft-snap-channel: latest/edge integration-test: strategy: