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: