From f3deaa74144cf0214ce26602e78553af56c2f4b0 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Sun, 5 Jul 2026 18:49:43 +0100 Subject: [PATCH 01/11] CI: Set least-privilege permissions in workflows. --- .github/workflows/build.yml | 3 +++ .github/workflows/install.yml | 3 +++ .github/workflows/qa.yml | 3 +++ .github/workflows/test.yml | 3 +++ 4 files changed, 12 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5365571..5dd09e1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,6 +6,9 @@ on: branches: - main +permissions: + contents: read + jobs: test: name: Build (Python ${{ matrix.python }}) diff --git a/.github/workflows/install.yml b/.github/workflows/install.yml index f3c1a2d..0b374bf 100644 --- a/.github/workflows/install.yml +++ b/.github/workflows/install.yml @@ -6,6 +6,9 @@ on: branches: - main +permissions: + contents: read + jobs: test: name: Install (Python ${{ matrix.python }}) diff --git a/.github/workflows/qa.yml b/.github/workflows/qa.yml index 2e166c0..43d70ea 100644 --- a/.github/workflows/qa.yml +++ b/.github/workflows/qa.yml @@ -6,6 +6,9 @@ on: branches: - main +permissions: + contents: read + jobs: test: name: Linting & Spelling diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9e29cb9..81705ba 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -6,6 +6,9 @@ on: branches: - main +permissions: + contents: read + jobs: test: name: Test (Python ${{ matrix.python }}) From b99c1e946190b55442417b7cab9f81c79ce92f19 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Sun, 5 Jul 2026 18:50:07 +0100 Subject: [PATCH 02/11] Remove defunct Stickler CI flake8 config. --- .stickler.yml | 5 ----- pyproject.toml | 1 - 2 files changed, 6 deletions(-) delete mode 100644 .stickler.yml diff --git a/.stickler.yml b/.stickler.yml deleted file mode 100644 index 2466815..0000000 --- a/.stickler.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -linters: - flake8: - python: 3 - max-line-length: 160 diff --git a/pyproject.toml b/pyproject.toml index b477b15..846c804 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -98,7 +98,6 @@ line_length = 200 [tool.check-manifest] ignore = [ - '.stickler.yml', 'boilerplate.md', 'check.sh', 'install.sh', From 321e6a023ab2c03cda2b8e934f210a72bb51631c Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Sun, 5 Jul 2026 18:50:53 +0100 Subject: [PATCH 03/11] Bump supported Python to 3.9-3.13. --- .github/workflows/build.yml | 2 +- .github/workflows/install.yml | 2 +- .github/workflows/test.yml | 2 +- README.md | 2 +- pyproject.toml | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5dd09e1..1d6f008 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python: ['3.9', '3.10', '3.11'] + python: ['3.9', '3.10', '3.11', '3.12', '3.13'] env: TERM: xterm-256color diff --git a/.github/workflows/install.yml b/.github/workflows/install.yml index 0b374bf..b8e5da8 100644 --- a/.github/workflows/install.yml +++ b/.github/workflows/install.yml @@ -17,7 +17,7 @@ jobs: TERM: xterm-256color strategy: matrix: - python: ['3.9', '3.10', '3.11'] + python: ['3.9', '3.10', '3.11', '3.12', '3.13'] steps: - name: Checkout Code diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 81705ba..512609d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,7 +17,7 @@ jobs: TERM: xterm-256color strategy: matrix: - python: ['3.9', '3.10', '3.11'] + python: ['3.9', '3.10', '3.11', '3.12', '3.13'] steps: - name: Checkout Code diff --git a/README.md b/README.md index 4652f1b..b457c12 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ product description goes here # Installing -We'd recommend using this library with Raspberry Pi OS Bookworm or later. It requires Python ≥3.7. +We'd recommend using this library with Raspberry Pi OS Bookworm or later. It requires Python ≥3.9. ## Full install (recommended): diff --git a/pyproject.toml b/pyproject.toml index 846c804..a983d00 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ name = "PROJECT_NAME" dynamic = ["version", "readme", "optional-dependencies"] description = "__DESCRIPTION__" license = {file = "LICENSE"} -requires-python = ">= 3.7" +requires-python = ">= 3.9" authors = [ { name = "Philip Howard", email = "phil@pimoroni.com" }, ] @@ -24,11 +24,11 @@ classifiers = [ "License :: OSI Approved :: MIT License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development", "Topic :: Software Development :: Libraries", From 3de0ff2be762a67f201cafa50d01b59566f0b3ca Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Sun, 5 Jul 2026 18:51:04 +0100 Subject: [PATCH 04/11] CI: Add Dependabot for actions and pip. --- .github/dependabot.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..cbd920f --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,10 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + - package-ecosystem: "pip" + directory: "/" + schedule: + interval: "weekly" From 8dd1e69f02889aa2be897ff360d128f80a9ae406 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Sun, 5 Jul 2026 19:07:15 +0100 Subject: [PATCH 05/11] Fold isort into ruff's import rules. --- pyproject.toml | 6 +++--- requirements-dev.txt | 1 - tox.ini | 1 - 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index a983d00..a57d1aa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -83,6 +83,9 @@ exclude = [ ] line-length = 200 +[tool.ruff.lint] +extend-select = ["I"] + [tool.codespell] skip = """ ./.tox,\ @@ -93,9 +96,6 @@ skip = """ ./dist.\ """ -[tool.isort] -line_length = 200 - [tool.check-manifest] ignore = [ 'boilerplate.md', diff --git a/requirements-dev.txt b/requirements-dev.txt index d392e8f..1e80d2f 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,7 +1,6 @@ check-manifest ruff codespell -isort twine hatch hatch-fancy-pypi-readme diff --git a/tox.ini b/tox.ini index 2b6d87b..d516999 100644 --- a/tox.ini +++ b/tox.ini @@ -19,7 +19,6 @@ commands = check-manifest python -m build --no-isolation python -m twine check dist/* - isort --check . ruff check . codespell . deps = From 98ae5eb85011542b2b645ecf1d6d948cd06ddb38 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Sun, 5 Jul 2026 19:09:42 +0100 Subject: [PATCH 06/11] Adopt PEP 735 dependency-groups for dev deps. --- Makefile | 2 +- pyproject.toml | 16 ++++++++++++++-- requirements-dev.txt | 9 --------- tox.ini | 4 ++-- 4 files changed, 17 insertions(+), 14 deletions(-) delete mode 100644 requirements-dev.txt diff --git a/Makefile b/Makefile index 56cf0df..af31762 100644 --- a/Makefile +++ b/Makefile @@ -32,7 +32,7 @@ uninstall: ./uninstall.sh dev-deps: - python3 -m pip install -r requirements-dev.txt + python3 -m pip install --group dev sudo apt install dos2unix shellcheck check: diff --git a/pyproject.toml b/pyproject.toml index a57d1aa..48b0c15 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,6 +43,19 @@ example-depends = ["requirements-examples.txt"] GitHub = "https://www.github.com/pimoroni/PROJECT_NAME-python" Homepage = "https://www.pimoroni.com" +[dependency-groups] +dev = [ + "check-manifest", + "ruff", + "codespell", + "twine", + "hatch", + "hatch-fancy-pypi-readme", + "hatch-requirements-txt", + "tox", + "pdoc", +] + [tool.hatch.version] path = "PROJECT_NAME/__init__.py" @@ -106,8 +119,7 @@ ignore = [ 'tox.ini', 'tests/*', 'examples/*', - '.coveragerc', - 'requirements-dev.txt' + '.coveragerc' ] [tool.pimoroni] diff --git a/requirements-dev.txt b/requirements-dev.txt deleted file mode 100644 index 1e80d2f..0000000 --- a/requirements-dev.txt +++ /dev/null @@ -1,9 +0,0 @@ -check-manifest -ruff -codespell -twine -hatch -hatch-fancy-pypi-readme -hatch-requirements-txt -tox -pdoc diff --git a/tox.ini b/tox.ini index d516999..11a49a1 100644 --- a/tox.ini +++ b/tox.ini @@ -21,6 +21,6 @@ commands = python -m twine check dist/* ruff check . codespell . -deps = - -r{toxinidir}/requirements-dev.txt +dependency_groups = + dev From ebabba2b11b86598811bc77f1c8942fc7e87ad44 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Sun, 5 Jul 2026 19:13:50 +0100 Subject: [PATCH 07/11] CI: Use uv to install and run dev tooling. --- .github/workflows/build.yml | 11 ++++------- .github/workflows/qa.yml | 13 +++++-------- .github/workflows/test.yml | 14 +++++--------- .gitignore | 2 ++ pyproject.toml | 3 ++- 5 files changed, 18 insertions(+), 25 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1d6f008..1b1d4ea 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,18 +25,15 @@ jobs: - name: Checkout Code uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python }} - uses: actions/setup-python@v5 + - name: Set up uv + uses: astral-sh/setup-uv@v6 with: + enable-cache: true python-version: ${{ matrix.python }} - - name: Install Dependencies - run: | - make dev-deps - - name: Build Packages run: | - make build + uv run make build - name: Upload Packages uses: actions/upload-artifact@v4 diff --git a/.github/workflows/qa.yml b/.github/workflows/qa.yml index 43d70ea..4b6aec5 100644 --- a/.github/workflows/qa.yml +++ b/.github/workflows/qa.yml @@ -20,22 +20,19 @@ jobs: - name: Checkout Code uses: actions/checkout@v4 - - name: Set up Python '3,11' - uses: actions/setup-python@v5 + - name: Set up uv + uses: astral-sh/setup-uv@v6 with: + enable-cache: true python-version: '3.11' - - name: Install Dependencies - run: | - make dev-deps - - name: Run Quality Assurance run: | - make qa + uv run make qa - name: Run Code Checks run: | - make check + uv run make check - name: Run Bash Code Checks run: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 512609d..4b32ac2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,24 +23,20 @@ jobs: - name: Checkout Code uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python }} - uses: actions/setup-python@v5 + - name: Set up uv + uses: astral-sh/setup-uv@v6 with: + enable-cache: true python-version: ${{ matrix.python }} - - name: Install Dependencies - run: | - make dev-deps - - name: Run Tests run: | - make pytest + uv run make pytest - name: Coverage if: ${{ matrix.python == '3.9' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - python -m pip install coveralls - coveralls --service=github + uvx coveralls --service=github diff --git a/.gitignore b/.gitignore index fa45562..c673bb6 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,5 @@ library/debian/ .coverage .pytest_cache .tox +.venv +uv.lock diff --git a/pyproject.toml b/pyproject.toml index 48b0c15..3765c04 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -74,7 +74,8 @@ include = [ ] exclude = [ ".*", - "dist" + "dist", + "uv.lock" ] [tool.hatch.metadata.hooks.fancy-pypi-readme] From 9dec7aa787b62828a5866fa551b95933cfc50a87 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Sun, 5 Jul 2026 19:36:32 +0100 Subject: [PATCH 08/11] Add pre-commit hooks and .editorconfig. --- .editorconfig | 14 ++++++++++++++ .github/dependabot.yml | 4 ++++ .github/workflows/test.yml | 1 - .pre-commit-config.yaml | 22 ++++++++++++++++++++++ pyproject.toml | 4 +++- tox.ini | 1 - 6 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 .editorconfig create mode 100644 .pre-commit-config.yaml diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..3537c50 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,14 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +charset = utf-8 + +[Makefile] +indent_style = tab + +[*.{py,cfg,ini,toml,yaml,yml,md,sh}] +indent_style = space +indent_size = 4 diff --git a/.github/dependabot.yml b/.github/dependabot.yml index cbd920f..4f8a87a 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -8,3 +8,7 @@ updates: directory: "/" schedule: interval: "weekly" + - package-ecosystem: "pre-commit" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4b32ac2..8e4fb06 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -39,4 +39,3 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | uvx coveralls --service=github - diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..53210a8 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,22 @@ +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: mixed-line-ending + args: ['--fix=lf'] + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.15.20 + hooks: + - id: ruff-check + args: ['--fix'] + - repo: https://github.com/codespell-project/codespell + rev: v2.3.0 + hooks: + - id: codespell + additional_dependencies: ['tomli'] + - repo: https://github.com/shellcheck-py/shellcheck-py + rev: v0.10.0.1 + hooks: + - id: shellcheck diff --git a/pyproject.toml b/pyproject.toml index 3765c04..61cb0f0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,6 +48,7 @@ dev = [ "check-manifest", "ruff", "codespell", + "pre-commit", "twine", "hatch", "hatch-fancy-pypi-readme", @@ -103,11 +104,12 @@ extend-select = ["I"] [tool.codespell] skip = """ ./.tox,\ +./.venv,\ ./.egg,\ ./.git,\ ./__pycache__,\ ./build,\ -./dist.\ +./dist\ """ [tool.check-manifest] diff --git a/tox.ini b/tox.ini index 11a49a1..6ad3c71 100644 --- a/tox.ini +++ b/tox.ini @@ -23,4 +23,3 @@ commands = codespell . dependency_groups = dev - From 34c90bb72ad395a662ad2d3eca4f3c4574efbe31 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Sun, 5 Jul 2026 19:39:21 +0100 Subject: [PATCH 09/11] Replace check.sh with pre-commit and inline release checks. --- .github/workflows/qa.yml | 4 +- Makefile | 27 +++++++++---- check.sh | 84 ---------------------------------------- pyproject.toml | 5 ++- tox.ini | 2 - 5 files changed, 24 insertions(+), 98 deletions(-) delete mode 100755 check.sh diff --git a/.github/workflows/qa.yml b/.github/workflows/qa.yml index 4b6aec5..903a649 100644 --- a/.github/workflows/qa.yml +++ b/.github/workflows/qa.yml @@ -34,6 +34,6 @@ jobs: run: | uv run make check - - name: Run Bash Code Checks + - name: Run Pre-Commit run: | - make shellcheck + uv run pre-commit run --all-files diff --git a/Makefile b/Makefile index af31762..221efd0 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ LIBRARY_NAME := $(shell hatch project metadata name 2> /dev/null) LIBRARY_VERSION := $(shell hatch version 2> /dev/null) -.PHONY: usage install uninstall check pytest qa build-deps check tag wheel sdist clean dist testdeploy deploy +.PHONY: usage version install uninstall dev-deps check pre-commit qa pytest nopost tag build clean testdeploy deploy usage: ifdef LIBRARY_NAME @echo "Library: ${LIBRARY_NAME}" @@ -13,8 +13,9 @@ endif @echo "install: install the library locally from source" @echo "uninstall: uninstall the local library" @echo "dev-deps: install Python dev dependencies" - @echo "check: perform basic integrity checks on the codebase" - @echo "qa: run linting and package QA" + @echo "check: verify CHANGELOG.md has an entry for the current version" + @echo "qa: run package QA (check-manifest, build, twine)" + @echo "pre-commit: run pre-commit hooks (lint, whitespace) on all files" @echo "pytest: run Python test fixtures" @echo "clean: clean Python build and dist directories" @echo "build: build Python distribution files" @@ -33,13 +34,19 @@ uninstall: dev-deps: python3 -m pip install --group dev - sudo apt install dos2unix shellcheck + pre-commit install check: - @bash check.sh + @LIBRARY_VERSION=`hatch version | awk -F '.' '{print $$1"."$$2"."$$3}'`; \ + if grep -q "^$$LIBRARY_VERSION" CHANGELOG.md; then \ + echo "Changes found for version $$LIBRARY_VERSION."; \ + else \ + echo "Changes missing for version $$LIBRARY_VERSION! Please update CHANGELOG.md."; \ + exit 1; \ + fi -shellcheck: - shellcheck *.sh +pre-commit: + pre-commit run --all-files qa: tox -e qa @@ -48,7 +55,11 @@ pytest: tox -e py nopost: - @bash check.sh --nopost + @POST_VERSION=`hatch version | awk -F '.' '{print $$4}'`; \ + if [ -n "$$POST_VERSION" ]; then \ + echo "Found .$$POST_VERSION on library version; only use these for testpypi releases."; \ + exit 1; \ + fi tag: version git tag -a "v${LIBRARY_VERSION}" -m "Version ${LIBRARY_VERSION}" diff --git a/check.sh b/check.sh deleted file mode 100755 index 3dfe6f1..0000000 --- a/check.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/bash - -# This script handles some basic QA checks on the source - -NOPOST=$1 -LIBRARY_NAME=$(hatch project metadata name) -LIBRARY_VERSION=$(hatch version | awk -F "." '{print $1"."$2"."$3}') -POST_VERSION=$(hatch version | awk -F "." '{print substr($4,0,length($4))}') -TERM=${TERM:="xterm-256color"} - -success() { - echo -e "$(tput setaf 2)$1$(tput sgr0)" -} - -inform() { - echo -e "$(tput setaf 6)$1$(tput sgr0)" -} - -warning() { - echo -e "$(tput setaf 1)$1$(tput sgr0)" -} - -while [[ $# -gt 0 ]]; do - K="$1" - case $K in - -p|--nopost) - NOPOST=true - shift - ;; - *) - if [[ $1 == -* ]]; then - printf "Unrecognised option: %s\n" "$1"; - exit 1 - fi - POSITIONAL_ARGS+=("$1") - shift - esac -done - -inform "Checking $LIBRARY_NAME $LIBRARY_VERSION\n" - -inform "Checking for trailing whitespace..." -if grep -IUrn --color "[[:blank:]]$" --exclude-dir=dist -exclude-dir=.venv --exclude-dir=.tox --exclude-dir=.git --exclude=PKG-INFO; then - warning "Trailing whitespace found!" - exit 1 -else - success "No trailing whitespace found." -fi -printf "\n" - -inform "Checking for DOS line-endings..." -if grep -lIUrn --color $'\r' --exclude-dir=dist --exclude-dir=.tox -exclude-dir=.venv --exclude-dir=.git --exclude=Makefile; then - warning "DOS line-endings found!" - exit 1 -else - success "No DOS line-endings found." -fi -printf "\n" - -inform "Checking CHANGELOG.md..." -if ! grep "^${LIBRARY_VERSION}" CHANGELOG.md > /dev/null 2>&1; then - warning "Changes missing for version ${LIBRARY_VERSION}! Please update CHANGELOG.md." - exit 1 -else - success "Changes found for version ${LIBRARY_VERSION}." -fi -printf "\n" - -inform "Checking for git tag ${LIBRARY_VERSION}..." -if ! git tag -l | grep -E "${LIBRARY_VERSION}$"; then - warning "Missing git tag for version ${LIBRARY_VERSION}" -fi -printf "\n" - -if [[ $NOPOST ]]; then - inform "Checking for .postN on library version..." - if [[ "$POST_VERSION" != "" ]]; then - warning "Found .$POST_VERSION on library version." - inform "Please only use these for testpypi releases." - exit 1 - else - success "OK" - fi -fi diff --git a/pyproject.toml b/pyproject.toml index 61cb0f0..55e5485 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -115,14 +115,15 @@ skip = """ [tool.check-manifest] ignore = [ 'boilerplate.md', - 'check.sh', 'install.sh', 'uninstall.sh', 'Makefile', 'tox.ini', 'tests/*', 'examples/*', - '.coveragerc' + '.coveragerc', + '.editorconfig', + '.pre-commit-config.yaml' ] [tool.pimoroni] diff --git a/tox.ini b/tox.ini index 6ad3c71..e9042d6 100644 --- a/tox.ini +++ b/tox.ini @@ -19,7 +19,5 @@ commands = check-manifest python -m build --no-isolation python -m twine check dist/* - ruff check . - codespell . dependency_groups = dev From bd6ad4f356ad3deeb7d657b55c407cc7869cd621 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Sun, 5 Jul 2026 20:01:10 +0100 Subject: [PATCH 10/11] Build with uv build to sidestep hatch/virtualenv skew. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 221efd0..29700a2 100644 --- a/Makefile +++ b/Makefile @@ -65,7 +65,7 @@ tag: version git tag -a "v${LIBRARY_VERSION}" -m "Version ${LIBRARY_VERSION}" build: check - @hatch build + uv build clean: -rm -r dist From 1eb13e54b1aeea25f3f879ba57d2ece38f4407d6 Mon Sep 17 00:00:00 2001 From: ninousf <33543637+ninousf@users.noreply.github.com> Date: Mon, 6 Jul 2026 09:02:14 +0100 Subject: [PATCH 11/11] Trim wheel include to the package only README/CHANGELOG/LICENSE do not belong in the wheel; they install loose into site-packages. The sdist still ships them via include=["*"], and the license is retained in .dist-info. Extends automation-hat/#64 to the boilerplate. Co-authored-by: Phil Howard --- pyproject.toml | 3 --- 1 file changed, 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 55e5485..f23de4b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -63,9 +63,6 @@ path = "PROJECT_NAME/__init__.py" [tool.hatch.build] include = [ "PROJECT_NAME", - "README.md", - "CHANGELOG.md", - "LICENSE", "requirements-examples.txt" ]