From 23e99433c99cf507eac73fef387475cca4ae3f2e Mon Sep 17 00:00:00 2001 From: kraysent Date: Sat, 21 Mar 2026 17:36:50 +0000 Subject: [PATCH 1/9] workflow to check that wheel builds --- .github/workflows/build-wheel.yaml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/build-wheel.yaml diff --git a/.github/workflows/build-wheel.yaml b/.github/workflows/build-wheel.yaml new file mode 100644 index 0000000..202971e --- /dev/null +++ b/.github/workflows/build-wheel.yaml @@ -0,0 +1,27 @@ +name: Build wheel + +on: + - push + +jobs: + build-wheel: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v6 + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.12" + + - name: Set up uv + uses: astral-sh/setup-uv@v6 + + - name: Build wheel + run: uv build --wheel + + - name: Upload wheel artifact + uses: actions/upload-artifact@v4 + with: + name: wheel + path: dist/*.whl From c5131fe83be08d796a943e754494f19104ea6382 Mon Sep 17 00:00:00 2001 From: kraysent Date: Sat, 21 Mar 2026 17:39:07 +0000 Subject: [PATCH 2/9] add testing --- .github/workflows/build-wheel.yaml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.github/workflows/build-wheel.yaml b/.github/workflows/build-wheel.yaml index 202971e..616e522 100644 --- a/.github/workflows/build-wheel.yaml +++ b/.github/workflows/build-wheel.yaml @@ -25,3 +25,27 @@ jobs: with: name: wheel path: dist/*.whl + + test-wheel: + runs-on: ubuntu-22.04 + needs: build-wheel + steps: + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.12" + + - name: Set up uv + uses: astral-sh/setup-uv@v6 + + - name: Download wheel artifact + uses: actions/download-artifact@v5 + with: + name: wheel + path: dist + + - name: Install wheel + run: uv pip install dist/*.whl + + - name: Check CLI help + run: uv run uploader --help From ee61186bcdefcb64fee64a70dd75cb073e76980f Mon Sep 17 00:00:00 2001 From: kraysent Date: Sat, 21 Mar 2026 17:41:59 +0000 Subject: [PATCH 3/9] fix wheel installation --- .github/workflows/build-wheel.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-wheel.yaml b/.github/workflows/build-wheel.yaml index 616e522..ffd27ad 100644 --- a/.github/workflows/build-wheel.yaml +++ b/.github/workflows/build-wheel.yaml @@ -44,8 +44,8 @@ jobs: name: wheel path: dist - - name: Install wheel - run: uv pip install dist/*.whl + - name: Install wheel as tool + run: uv tool install --from dist/*.whl "{{ project_name }}" - name: Check CLI help - run: uv run uploader --help + run: 'uploader --help' From b7f950f3f38b2c58b9b6979774213df922355bab Mon Sep 17 00:00:00 2001 From: kraysent Date: Sat, 21 Mar 2026 17:43:16 +0000 Subject: [PATCH 4/9] fix naming --- .github/workflows/build-wheel.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-wheel.yaml b/.github/workflows/build-wheel.yaml index ffd27ad..dcbd10a 100644 --- a/.github/workflows/build-wheel.yaml +++ b/.github/workflows/build-wheel.yaml @@ -45,7 +45,7 @@ jobs: path: dist - name: Install wheel as tool - run: uv tool install --from dist/*.whl "{{ project_name }}" + run: uv tool install --from dist/*.whl testtool - name: Check CLI help - run: 'uploader --help' + run: 'testtool --help' From 39c03de5509092e38a849ef5ef7b533fcfcf4cbc Mon Sep 17 00:00:00 2001 From: kraysent Date: Sat, 21 Mar 2026 17:44:11 +0000 Subject: [PATCH 5/9] rename back --- .github/workflows/build-wheel.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-wheel.yaml b/.github/workflows/build-wheel.yaml index dcbd10a..ec75b4d 100644 --- a/.github/workflows/build-wheel.yaml +++ b/.github/workflows/build-wheel.yaml @@ -45,7 +45,7 @@ jobs: path: dist - name: Install wheel as tool - run: uv tool install --from dist/*.whl testtool + run: uv tool install --from dist/*.whl uploader - name: Check CLI help - run: 'testtool --help' + run: 'uploader --help' From 823da6ece740eb2305bb9226643169f4892f1166 Mon Sep 17 00:00:00 2001 From: kraysent Date: Sat, 21 Mar 2026 17:45:52 +0000 Subject: [PATCH 6/9] add codegen --- .github/workflows/build-wheel.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build-wheel.yaml b/.github/workflows/build-wheel.yaml index ec75b4d..5193699 100644 --- a/.github/workflows/build-wheel.yaml +++ b/.github/workflows/build-wheel.yaml @@ -17,6 +17,9 @@ jobs: - name: Set up uv uses: astral-sh/setup-uv@v6 + - name: Generate API client + run: make gen + - name: Build wheel run: uv build --wheel From d8b3e48aec00fb47accb055f6a797e8e4efdd7a8 Mon Sep 17 00:00:00 2001 From: kraysent Date: Sat, 21 Mar 2026 17:53:03 +0000 Subject: [PATCH 7/9] update template once again --- .github/workflows/build-wheel.yaml | 6 ++--- .github/workflows/release-wheel.yaml | 34 ++++++++++++++++++++++++++++ .template.yaml | 2 +- 3 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/release-wheel.yaml diff --git a/.github/workflows/build-wheel.yaml b/.github/workflows/build-wheel.yaml index 5193699..137db7f 100644 --- a/.github/workflows/build-wheel.yaml +++ b/.github/workflows/build-wheel.yaml @@ -5,7 +5,7 @@ on: jobs: build-wheel: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 @@ -30,7 +30,7 @@ jobs: path: dist/*.whl test-wheel: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest needs: build-wheel steps: - name: Set up Python @@ -48,7 +48,7 @@ jobs: path: dist - name: Install wheel as tool - run: uv tool install --from dist/*.whl uploader + run: uv tool install --from dist/*.whl "uploader" - name: Check CLI help run: 'uploader --help' diff --git a/.github/workflows/release-wheel.yaml b/.github/workflows/release-wheel.yaml new file mode 100644 index 0000000..fe075df --- /dev/null +++ b/.github/workflows/release-wheel.yaml @@ -0,0 +1,34 @@ +name: Release wheels + +on: + workflow_dispatch: + +jobs: + release-wheel: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: + - ubuntu-22.04 + - ubuntu-24.04 + - macos-latest + steps: + - uses: actions/checkout@v6 + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.12" + + - name: Set up uv + uses: astral-sh/setup-uv@v6 + + - name: Build wheel + run: uv build --wheel + + - name: Upload wheel artifact + uses: actions/upload-artifact@v4 + with: + name: wheel-${{ matrix.os }} + path: dist/*.whl diff --git a/.template.yaml b/.template.yaml index 551d969..d9c18a1 100644 --- a/.template.yaml +++ b/.template.yaml @@ -1,6 +1,6 @@ # Autogenerated - DO NOT EDIT # Parameters of the project as generated from template -_commit: f510818 +_commit: 7d1c15b _src_path: gh:kraysent/python-template package_name: uploader project_name: uploader From bfe1ed721fb750541826947d86c15e468c3ef7c3 Mon Sep 17 00:00:00 2001 From: kraysent Date: Sat, 21 Mar 2026 17:55:32 +0000 Subject: [PATCH 8/9] force generated client to be included --- pyproject.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index d006c5b..a0f3ed4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,6 +26,10 @@ dependencies = [ requires = ["hatchling"] build-backend = "hatchling.build" +[tool.hatch.build.targets.wheel] +packages = ["uploader"] +force-include = { "uploader/clients/gen" = "uploader/clients/gen" } + [dependency-groups] dev = [ "ruff~=0.15.0", From 6a5a47ce9fdda1d7db5acfd30e5bd5b47aa1c744 Mon Sep 17 00:00:00 2001 From: kraysent Date: Sat, 21 Mar 2026 18:02:21 +0000 Subject: [PATCH 9/9] simplify codegen --- .github/workflows/build-wheel.yaml | 2 +- .github/workflows/build.yaml | 3 --- .github/workflows/release.yaml | 3 --- .github/workflows/tests.yaml | 3 --- makefile | 5 ++++- 5 files changed, 5 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-wheel.yaml b/.github/workflows/build-wheel.yaml index 137db7f..3d4558c 100644 --- a/.github/workflows/build-wheel.yaml +++ b/.github/workflows/build-wheel.yaml @@ -21,7 +21,7 @@ jobs: run: make gen - name: Build wheel - run: uv build --wheel + run: make build-wheel - name: Upload wheel artifact uses: actions/upload-artifact@v4 diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index a520f02..80377b0 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -17,9 +17,6 @@ jobs: - name: Install deps run: make install-dev - - name: Run codegen - run: make gen - - name: Set up Docker runtime uses: docker/setup-buildx-action@v3 diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 076d80d..72a84d6 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -20,9 +20,6 @@ jobs: - name: Install deps run: make install-dev - - name: Run codegen - run: make gen - - name: Set up Docker runtime uses: docker/setup-buildx-action@v3 diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index ac6270f..b8607ab 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -17,8 +17,5 @@ jobs: - name: Install deps run: make install-dev - - name: Run codegen - run: make gen - - name: Run checks run: make check diff --git a/makefile b/makefile index 108f748..9bf4cff 100644 --- a/makefile +++ b/makefile @@ -4,7 +4,7 @@ install: install-frontend: cd frontend && yarn install --frozen-lockfile -install-dev: +install-dev: gen uv sync --all-extras install-dev-frontend: @@ -68,6 +68,9 @@ fix-frontend: @output=$$(cd frontend && yarn run --silent prettier --write src 2>&1) || { echo "$$output"; exit 1; } @output=$$(cd frontend && yarn run --silent eslint --fix src 2>&1) || { echo "$$output"; exit 1; } +build-wheel: gen + uv build --wheel + # only for mac as this is faster build: docker build . \