From ffb3691c60c559767d4c0012afbec1dd9e30b73f Mon Sep 17 00:00:00 2001 From: tsmorz Date: Mon, 24 Nov 2025 12:31:30 +0100 Subject: [PATCH 1/3] misc uv updates --- .pre-commit-config.yaml | 52 +++++++++++------------ CONTRIBUTING.md | 7 ++- Dockerfile | 25 +++++------ Makefile | 12 +++--- README.md | 25 +++++------ src/change_me/__main__.py | 4 +- src/change_me/{config => }/definitions.py | 0 src/change_me/utils.py | 2 +- tests/utils_test.py | 2 +- 9 files changed, 65 insertions(+), 64 deletions(-) rename src/change_me/{config => }/definitions.py (100%) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 14d23a8..80e9cde 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,36 +2,34 @@ ci: skip: [pytest] default_language_version: - python: python3.13 + python: python3.12 repos: -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v5.0.0 - hooks: - - id: trailing-whitespace - args: [--markdown-linebreak-ext=md] - - id: end-of-file-fixer - - id: check-yaml - - id: debug-statements - - id: name-tests-test - - id: requirements-txt-fixer -- repo: https://github.com/PyCQA/flake8 - rev: 7.1.2 - hooks: - - id: flake8 - args: [--max-line-length=88, --ignore=E203] -- repo: https://github.com/pre-commit/mirrors-mypy - rev: v1.15.0 - hooks: - - id: mypy - additional_dependencies: [types-pyyaml] - exclude: ^testing/resources/ +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v6.0.0 + hooks: + - id: trailing-whitespace + args: [--markdown-linebreak-ext=md] + - id: end-of-file-fixer + - id: check-yaml + - id: debug-statements + - id: name-tests-test + - id: requirements-txt-fixer + +- repo: https://github.com/pre-commit/mirrors-mypy + rev: v1.18.2 + hooks: + - id: mypy + args: ["--ignore-missing-imports"] + additional_dependencies: [] + exclude: ^testing/resources/ + - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.9.10 + rev: v0.14.6 hooks: - id: ruff - types_or: [ python, pyi ] - args: [ --fix] + types_or: [python, pyi] + args: ["--fix"] + - id: ruff-format - types_or: [ python, pyi ] - args: [ --line-length=88] + types_or: [python, pyi] diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 18991f0..d3a6032 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,5 @@ # Contributing to This Project -First of all, thank you for considering contributing! ๐ŸŽ‰ We welcome issues, bug reports, feature requests, and pull requests. --- @@ -13,12 +12,18 @@ We welcome issues, bug reports, feature requests, and pull requests. * Include steps to reproduce, expected behavior, and screenshots/logs if relevant. ### Making Changes +0. Pull recent changes from main: + ```bash + git switch main + git pull + ``` 1. Create a new branch for your changes: ```bash git checkout -b my-new-feature ``` 2. Make your changes and commit with a clear message: ```bash + git add git commit -m "Add feature: my-new-feature" ``` 3. Push to your fork and open a Pull Request (PR). diff --git a/Dockerfile b/Dockerfile index aa87932..e8fc42d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,25 +1,26 @@ # syntax=docker/dockerfile:1.7-labs FROM python:3.12-slim -# Speed + deterministic behavior -ENV PIP_DISABLE_PIP_VERSION_CHECK=1 \ - PIP_NO_CACHE_DIR=1 \ - PYTHONDONTWRITEBYTECODE=1 \ +# Fast, deterministic behavior +ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 -# Select package + version at build-time +# Select the package and version at build time ARG PKG=change_me ARG VER=latest ENV PKG=${PKG} VER=${VER} -# Install package from PyPI with a cache mount (huge speedup on rebuilds) -# NOTE: --root-user-action needs a value; use =ignore to silence root warnings. -RUN --mount=type=cache,target=/root/.cache/pip \ - python -m pip install --upgrade pip && \ +# Install UV +RUN --mount=type=cache,target=/root/.cache \ + pip install uv + +# Install Python dependencies using UV instead of pip +# UV uses its own resolver + is ~10x faster + fully deterministic. +RUN --mount=type=cache,target=/root/.cache/uv \ if [ "$VER" = "latest" ]; then \ - pip install --root-user-action=ignore "$PKG"; \ + uv pip install --system "$PKG"; \ else \ - pip install --root-user-action=ignore "$PKG==$VER"; \ + uv pip install --system "$PKG==$VER"; \ fi # Simple smoke test script @@ -30,4 +31,4 @@ RUN printf '%s\n' \ "print('โœ… import ok:', getattr(m, '__version__', 'unknown'), 'on', sys.version)" \ > smoke.py -CMD ["python", "smoke.py"] +CMD ["uv", "run", "python", "smoke.py"] diff --git a/Makefile b/Makefile index f57709f..83b5c82 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ init: # ENV SETUP @echo "Environment initialized with uv." test: - uv run pytest --cov=src --cov-report=term-missing --no-cov-on-fail --cov-report=xml --cov-fail-under=10 + uv run pytest --cov=src --cov-report=term-missing --no-cov-on-fail --cov-report=xml --cov-fail-under=90 rm .coverage lint: @@ -29,14 +29,16 @@ clean: rm -rf junit-pytest.xml rm -rf logs/* find . -name ".coverage*" -delete + find . -name "coverage.xml" -delete find . -name "__pycache__" -exec rm -r {} + update: - uv update --all-groups + uv sync --upgrade --all-groups + uv run pre-commit autoupdate -deep-update: - uv cache clear pypi --all - uv update --all-groups +update-deep: + uv cache clean pypi + make update docker: docker build --no-cache -f Dockerfile -t change_me-smoke . diff --git a/README.md b/README.md index df3f751..aadca7f 100644 --- a/README.md +++ b/README.md @@ -8,27 +8,22 @@ Do ***NOT*** clone this repository. Please use it as a template instead. This re ## Install To install the library run: - ```bash -uv install +uv pip install change-me==latest ``` - OR - ```bash -uv install git+https://github.com/TUM-Aries-Lab/.git@ +uv add git+https://github.com/TUM-Aries-Lab/change-me.git@ # need credentials ``` ## Development -0. Install [uv](https://docs.astral.sh/uv/getting-started/installation/) -1. Install [pyenv](https://github.com/pyenv/pyenv?tab=readme-ov-file#installation) -2. ```pyenv install # install the required python version``` -3. ```pyenv global # set the required python version``` -4. ```git clone git@github.com:TUM-Aries-Lab/template-python.git``` -5. `make init` to create the virtual environment and install dependencies -6. `make format` to format the code and check for errors -7. `make test` to run the test suite -8. `make clean` to delete the temporary files and directories +0. Install [uv](https://docs.astral.sh/uv/getting-started/installation/) from Astral. +1. `git clone git@github.com:TUM-Aries-Lab/change-me.git` +2. `make init` to create the virtual environment and install dependencies +3. `make format` to format the code and check for errors +4. `make test` to run the test suite +5. `make clean` to delete the temporary files and directories + ## Publishing It's super easy to publish your own packages on PyPI. To build and publish this package run: @@ -45,7 +40,7 @@ The package can then be found at: https://pypi.org/project/change-me from loguru import logger -from change_me.config import definitions +from change_me import definitions def main() -> None: """Run a simple demonstration.""" diff --git a/src/change_me/__main__.py b/src/change_me/__main__.py index f69bb0d..35682d6 100644 --- a/src/change_me/__main__.py +++ b/src/change_me/__main__.py @@ -4,7 +4,7 @@ from loguru import logger -from change_me.config.definitions import DEFAULT_LOG_LEVEL, LogLevel +from change_me.definitions import DEFAULT_LOG_LEVEL, LogLevel from change_me.utils import setup_logger @@ -41,4 +41,4 @@ def main( ) args = parser.parse_args() - main(log_level=args.log_level) + main(log_level=args.log_level, stderr_level=args.stderr_level) diff --git a/src/change_me/config/definitions.py b/src/change_me/definitions.py similarity index 100% rename from src/change_me/config/definitions.py rename to src/change_me/definitions.py diff --git a/src/change_me/utils.py b/src/change_me/utils.py index cbe8d44..9fd9e27 100644 --- a/src/change_me/utils.py +++ b/src/change_me/utils.py @@ -6,7 +6,7 @@ from loguru import logger -from change_me.config.definitions import ( +from change_me.definitions import ( DATE_FORMAT, DEFAULT_LOG_FILENAME, DEFAULT_LOG_LEVEL, diff --git a/tests/utils_test.py b/tests/utils_test.py index 8908ae2..8da207f 100644 --- a/tests/utils_test.py +++ b/tests/utils_test.py @@ -3,7 +3,7 @@ from pathlib import Path from tempfile import TemporaryDirectory -from change_me.config.definitions import LogLevel +from change_me.definitions import LogLevel from change_me.utils import setup_logger From 45ce0d75372c8282e470c5b7ffd94598378da06c Mon Sep 17 00:00:00 2001 From: tsmorz Date: Mon, 24 Nov 2025 12:32:23 +0100 Subject: [PATCH 2/3] update lock file --- uv.lock | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/uv.lock b/uv.lock index 2a57d6e..b1fe782 100644 --- a/uv.lock +++ b/uv.lock @@ -412,7 +412,7 @@ wheels = [ [[package]] name = "pre-commit" -version = "4.4.0" +version = "4.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cfgv" }, @@ -421,9 +421,9 @@ dependencies = [ { name = "pyyaml" }, { name = "virtualenv" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a6/49/7845c2d7bf6474efd8e27905b51b11e6ce411708c91e829b93f324de9929/pre_commit-4.4.0.tar.gz", hash = "sha256:f0233ebab440e9f17cabbb558706eb173d19ace965c68cdce2c081042b4fab15", size = 197501, upload-time = "2025-11-08T21:12:11.607Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f4/9b/6a4ffb4ed980519da959e1cf3122fc6cb41211daa58dbae1c73c0e519a37/pre_commit-4.5.0.tar.gz", hash = "sha256:dc5a065e932b19fc1d4c653c6939068fe54325af8e741e74e88db4d28a4dd66b", size = 198428, upload-time = "2025-11-22T21:02:42.304Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/27/11/574fe7d13acf30bfd0a8dd7fa1647040f2b8064f13f43e8c963b1e65093b/pre_commit-4.4.0-py2.py3-none-any.whl", hash = "sha256:b35ea52957cbf83dcc5d8ee636cbead8624e3a15fbfa61a370e42158ac8a5813", size = 226049, upload-time = "2025-11-08T21:12:10.228Z" }, + { url = "https://files.pythonhosted.org/packages/5d/c4/b2d28e9d2edf4f1713eb3c29307f1a63f3d67cf09bdda29715a36a68921a/pre_commit-4.5.0-py2.py3-none-any.whl", hash = "sha256:25e2ce09595174d9c97860a95609f9f852c0614ba602de3561e267547f2335e1", size = 226429, upload-time = "2025-11-22T21:02:40.836Z" }, ] [[package]] @@ -519,28 +519,28 @@ wheels = [ [[package]] name = "ruff" -version = "0.14.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/82/fa/fbb67a5780ae0f704876cb8ac92d6d76da41da4dc72b7ed3565ab18f2f52/ruff-0.14.5.tar.gz", hash = "sha256:8d3b48d7d8aad423d3137af7ab6c8b1e38e4de104800f0d596990f6ada1a9fc1", size = 5615944, upload-time = "2025-11-13T19:58:51.155Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/68/31/c07e9c535248d10836a94e4f4e8c5a31a1beed6f169b31405b227872d4f4/ruff-0.14.5-py3-none-linux_armv6l.whl", hash = "sha256:f3b8248123b586de44a8018bcc9fefe31d23dda57a34e6f0e1e53bd51fd63594", size = 13171630, upload-time = "2025-11-13T19:57:54.894Z" }, - { url = "https://files.pythonhosted.org/packages/8e/5c/283c62516dca697cd604c2796d1487396b7a436b2f0ecc3fd412aca470e0/ruff-0.14.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:f7a75236570318c7a30edd7f5491945f0169de738d945ca8784500b517163a72", size = 13413925, upload-time = "2025-11-13T19:57:59.181Z" }, - { url = "https://files.pythonhosted.org/packages/b6/f3/aa319f4afc22cb6fcba2b9cdfc0f03bbf747e59ab7a8c5e90173857a1361/ruff-0.14.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:6d146132d1ee115f8802356a2dc9a634dbf58184c51bff21f313e8cd1c74899a", size = 12574040, upload-time = "2025-11-13T19:58:02.056Z" }, - { url = "https://files.pythonhosted.org/packages/f9/7f/cb5845fcc7c7e88ed57f58670189fc2ff517fe2134c3821e77e29fd3b0c8/ruff-0.14.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2380596653dcd20b057794d55681571a257a42327da8894b93bbd6111aa801f", size = 13009755, upload-time = "2025-11-13T19:58:05.172Z" }, - { url = "https://files.pythonhosted.org/packages/21/d2/bcbedbb6bcb9253085981730687ddc0cc7b2e18e8dc13cf4453de905d7a0/ruff-0.14.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2d1fa985a42b1f075a098fa1ab9d472b712bdb17ad87a8ec86e45e7fa6273e68", size = 12937641, upload-time = "2025-11-13T19:58:08.345Z" }, - { url = "https://files.pythonhosted.org/packages/a4/58/e25de28a572bdd60ffc6bb71fc7fd25a94ec6a076942e372437649cbb02a/ruff-0.14.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88f0770d42b7fa02bbefddde15d235ca3aa24e2f0137388cc15b2dcbb1f7c7a7", size = 13610854, upload-time = "2025-11-13T19:58:11.419Z" }, - { url = "https://files.pythonhosted.org/packages/7d/24/43bb3fd23ecee9861970978ea1a7a63e12a204d319248a7e8af539984280/ruff-0.14.5-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:3676cb02b9061fee7294661071c4709fa21419ea9176087cb77e64410926eb78", size = 15061088, upload-time = "2025-11-13T19:58:14.551Z" }, - { url = "https://files.pythonhosted.org/packages/23/44/a022f288d61c2f8c8645b24c364b719aee293ffc7d633a2ca4d116b9c716/ruff-0.14.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b595bedf6bc9cab647c4a173a61acf4f1ac5f2b545203ba82f30fcb10b0318fb", size = 14734717, upload-time = "2025-11-13T19:58:17.518Z" }, - { url = "https://files.pythonhosted.org/packages/58/81/5c6ba44de7e44c91f68073e0658109d8373b0590940efe5bd7753a2585a3/ruff-0.14.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f55382725ad0bdb2e8ee2babcbbfb16f124f5a59496a2f6a46f1d9d99d93e6e2", size = 14028812, upload-time = "2025-11-13T19:58:20.533Z" }, - { url = "https://files.pythonhosted.org/packages/ad/ef/41a8b60f8462cb320f68615b00299ebb12660097c952c600c762078420f8/ruff-0.14.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7497d19dce23976bdaca24345ae131a1d38dcfe1b0850ad8e9e6e4fa321a6e19", size = 13825656, upload-time = "2025-11-13T19:58:23.345Z" }, - { url = "https://files.pythonhosted.org/packages/7c/00/207e5de737fdb59b39eb1fac806904fe05681981b46d6a6db9468501062e/ruff-0.14.5-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:410e781f1122d6be4f446981dd479470af86537fb0b8857f27a6e872f65a38e4", size = 13959922, upload-time = "2025-11-13T19:58:26.537Z" }, - { url = "https://files.pythonhosted.org/packages/bc/7e/fa1f5c2776db4be405040293618846a2dece5c70b050874c2d1f10f24776/ruff-0.14.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c01be527ef4c91a6d55e53b337bfe2c0f82af024cc1a33c44792d6844e2331e1", size = 12932501, upload-time = "2025-11-13T19:58:29.822Z" }, - { url = "https://files.pythonhosted.org/packages/67/d8/d86bf784d693a764b59479a6bbdc9515ae42c340a5dc5ab1dabef847bfaa/ruff-0.14.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f66e9bb762e68d66e48550b59c74314168ebb46199886c5c5aa0b0fbcc81b151", size = 12927319, upload-time = "2025-11-13T19:58:32.923Z" }, - { url = "https://files.pythonhosted.org/packages/ac/de/ee0b304d450ae007ce0cb3e455fe24fbcaaedae4ebaad6c23831c6663651/ruff-0.14.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d93be8f1fa01022337f1f8f3bcaa7ffee2d0b03f00922c45c2207954f351f465", size = 13206209, upload-time = "2025-11-13T19:58:35.952Z" }, - { url = "https://files.pythonhosted.org/packages/33/aa/193ca7e3a92d74f17d9d5771a765965d2cf42c86e6f0fd95b13969115723/ruff-0.14.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:c135d4b681f7401fe0e7312017e41aba9b3160861105726b76cfa14bc25aa367", size = 13953709, upload-time = "2025-11-13T19:58:39.002Z" }, - { url = "https://files.pythonhosted.org/packages/cc/f1/7119e42aa1d3bf036ffc9478885c2e248812b7de9abea4eae89163d2929d/ruff-0.14.5-py3-none-win32.whl", hash = "sha256:c83642e6fccfb6dea8b785eb9f456800dcd6a63f362238af5fc0c83d027dd08b", size = 12925808, upload-time = "2025-11-13T19:58:42.779Z" }, - { url = "https://files.pythonhosted.org/packages/3b/9d/7c0a255d21e0912114784e4a96bf62af0618e2190cae468cd82b13625ad2/ruff-0.14.5-py3-none-win_amd64.whl", hash = "sha256:9d55d7af7166f143c94eae1db3312f9ea8f95a4defef1979ed516dbb38c27621", size = 14331546, upload-time = "2025-11-13T19:58:45.691Z" }, - { url = "https://files.pythonhosted.org/packages/e5/80/69756670caedcf3b9be597a6e12276a6cf6197076eb62aad0c608f8efce0/ruff-0.14.5-py3-none-win_arm64.whl", hash = "sha256:4b700459d4649e2594b31f20a9de33bc7c19976d4746d8d0798ad959621d64a4", size = 13433331, upload-time = "2025-11-13T19:58:48.434Z" }, +version = "0.14.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/52/f0/62b5a1a723fe183650109407fa56abb433b00aa1c0b9ba555f9c4efec2c6/ruff-0.14.6.tar.gz", hash = "sha256:6f0c742ca6a7783a736b867a263b9a7a80a45ce9bee391eeda296895f1b4e1cc", size = 5669501, upload-time = "2025-11-21T14:26:17.903Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/67/d2/7dd544116d107fffb24a0064d41a5d2ed1c9d6372d142f9ba108c8e39207/ruff-0.14.6-py3-none-linux_armv6l.whl", hash = "sha256:d724ac2f1c240dbd01a2ae98db5d1d9a5e1d9e96eba999d1c48e30062df578a3", size = 13326119, upload-time = "2025-11-21T14:25:24.2Z" }, + { url = "https://files.pythonhosted.org/packages/36/6a/ad66d0a3315d6327ed6b01f759d83df3c4d5f86c30462121024361137b6a/ruff-0.14.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9f7539ea257aa4d07b7ce87aed580e485c40143f2473ff2f2b75aee003186004", size = 13526007, upload-time = "2025-11-21T14:25:26.906Z" }, + { url = "https://files.pythonhosted.org/packages/a3/9d/dae6db96df28e0a15dea8e986ee393af70fc97fd57669808728080529c37/ruff-0.14.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7f6007e55b90a2a7e93083ba48a9f23c3158c433591c33ee2e99a49b889c6332", size = 12676572, upload-time = "2025-11-21T14:25:29.826Z" }, + { url = "https://files.pythonhosted.org/packages/76/a4/f319e87759949062cfee1b26245048e92e2acce900ad3a909285f9db1859/ruff-0.14.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a8e7b9d73d8728b68f632aa8e824ef041d068d231d8dbc7808532d3629a6bef", size = 13140745, upload-time = "2025-11-21T14:25:32.788Z" }, + { url = "https://files.pythonhosted.org/packages/95/d3/248c1efc71a0a8ed4e8e10b4b2266845d7dfc7a0ab64354afe049eaa1310/ruff-0.14.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d50d45d4553a3ebcbd33e7c5e0fe6ca4aafd9a9122492de357205c2c48f00775", size = 13076486, upload-time = "2025-11-21T14:25:35.601Z" }, + { url = "https://files.pythonhosted.org/packages/a5/19/b68d4563fe50eba4b8c92aa842149bb56dd24d198389c0ed12e7faff4f7d/ruff-0.14.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:118548dd121f8a21bfa8ab2c5b80e5b4aed67ead4b7567790962554f38e598ce", size = 13727563, upload-time = "2025-11-21T14:25:38.514Z" }, + { url = "https://files.pythonhosted.org/packages/47/ac/943169436832d4b0e867235abbdb57ce3a82367b47e0280fa7b4eabb7593/ruff-0.14.6-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:57256efafbfefcb8748df9d1d766062f62b20150691021f8ab79e2d919f7c11f", size = 15199755, upload-time = "2025-11-21T14:25:41.516Z" }, + { url = "https://files.pythonhosted.org/packages/c9/b9/288bb2399860a36d4bb0541cb66cce3c0f4156aaff009dc8499be0c24bf2/ruff-0.14.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ff18134841e5c68f8e5df1999a64429a02d5549036b394fafbe410f886e1989d", size = 14850608, upload-time = "2025-11-21T14:25:44.428Z" }, + { url = "https://files.pythonhosted.org/packages/ee/b1/a0d549dd4364e240f37e7d2907e97ee80587480d98c7799d2d8dc7a2f605/ruff-0.14.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:29c4b7ec1e66a105d5c27bd57fa93203637d66a26d10ca9809dc7fc18ec58440", size = 14118754, upload-time = "2025-11-21T14:25:47.214Z" }, + { url = "https://files.pythonhosted.org/packages/13/ac/9b9fe63716af8bdfddfacd0882bc1586f29985d3b988b3c62ddce2e202c3/ruff-0.14.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:167843a6f78680746d7e226f255d920aeed5e4ad9c03258094a2d49d3028b105", size = 13949214, upload-time = "2025-11-21T14:25:50.002Z" }, + { url = "https://files.pythonhosted.org/packages/12/27/4dad6c6a77fede9560b7df6802b1b697e97e49ceabe1f12baf3ea20862e9/ruff-0.14.6-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:16a33af621c9c523b1ae006b1b99b159bf5ac7e4b1f20b85b2572455018e0821", size = 14106112, upload-time = "2025-11-21T14:25:52.841Z" }, + { url = "https://files.pythonhosted.org/packages/6a/db/23e322d7177873eaedea59a7932ca5084ec5b7e20cb30f341ab594130a71/ruff-0.14.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:1432ab6e1ae2dc565a7eea707d3b03a0c234ef401482a6f1621bc1f427c2ff55", size = 13035010, upload-time = "2025-11-21T14:25:55.536Z" }, + { url = "https://files.pythonhosted.org/packages/a8/9c/20e21d4d69dbb35e6a1df7691e02f363423658a20a2afacf2a2c011800dc/ruff-0.14.6-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:4c55cfbbe7abb61eb914bfd20683d14cdfb38a6d56c6c66efa55ec6570ee4e71", size = 13054082, upload-time = "2025-11-21T14:25:58.625Z" }, + { url = "https://files.pythonhosted.org/packages/66/25/906ee6a0464c3125c8d673c589771a974965c2be1a1e28b5c3b96cb6ef88/ruff-0.14.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:efea3c0f21901a685fff4befda6d61a1bf4cb43de16da87e8226a281d614350b", size = 13303354, upload-time = "2025-11-21T14:26:01.816Z" }, + { url = "https://files.pythonhosted.org/packages/4c/58/60577569e198d56922b7ead07b465f559002b7b11d53f40937e95067ca1c/ruff-0.14.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:344d97172576d75dc6afc0e9243376dbe1668559c72de1864439c4fc95f78185", size = 14054487, upload-time = "2025-11-21T14:26:05.058Z" }, + { url = "https://files.pythonhosted.org/packages/67/0b/8e4e0639e4cc12547f41cb771b0b44ec8225b6b6a93393176d75fe6f7d40/ruff-0.14.6-py3-none-win32.whl", hash = "sha256:00169c0c8b85396516fdd9ce3446c7ca20c2a8f90a77aa945ba6b8f2bfe99e85", size = 13013361, upload-time = "2025-11-21T14:26:08.152Z" }, + { url = "https://files.pythonhosted.org/packages/fb/02/82240553b77fd1341f80ebb3eaae43ba011c7a91b4224a9f317d8e6591af/ruff-0.14.6-py3-none-win_amd64.whl", hash = "sha256:390e6480c5e3659f8a4c8d6a0373027820419ac14fa0d2713bd8e6c3e125b8b9", size = 14432087, upload-time = "2025-11-21T14:26:10.891Z" }, + { url = "https://files.pythonhosted.org/packages/a5/1f/93f9b0fad9470e4c829a5bb678da4012f0c710d09331b860ee555216f4ea/ruff-0.14.6-py3-none-win_arm64.whl", hash = "sha256:d43c81fbeae52cfa8728d8766bbf46ee4298c888072105815b392da70ca836b2", size = 13520930, upload-time = "2025-11-21T14:26:13.951Z" }, ] [[package]] From 60daa5367a5337b9d47b38b41004999a75a8ef58 Mon Sep 17 00:00:00 2001 From: tsmorz Date: Mon, 24 Nov 2025 12:35:02 +0100 Subject: [PATCH 3/3] update pr template --- .github/PULL_REQUEST_TEMPLATE.md | 38 +++++++++----------------------- 1 file changed, 11 insertions(+), 27 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index b075cc5..2afc867 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,16 +1,16 @@ -# ๐Ÿ“Œ Summary +# Summary Provide a brief description of the change and the reasoning behind it. --- -# ๐Ÿ‘ฅ Reviewers +# Reviewers -## โœ… Required Reviewers +## Required Reviewers - @username1 - @username2 -## ๐Ÿงฉ Optional Reviewers +## Optional Reviewers - @username3 - @username4 @@ -18,14 +18,7 @@ Provide a brief description of the change and the reasoning behind it. --- -# ๐Ÿ” Related Issue(s) - -- Closes # -- Related to # - ---- - -# ๐Ÿ› ๏ธ What Changed? +# What Changed? Describe the main changes in this PR: - @@ -34,7 +27,7 @@ Describe the main changes in this PR: --- -# ๐Ÿงช Testing +# Testing Describe how you verified functionality: @@ -49,13 +42,10 @@ Describe how you verified functionality: --- -# ๐Ÿ Python Code Quality Checklist +# Code Quality Checklist Before requesting review, ensure: - - [ ] I ran **`make format`** -- [ ] I ran **`make lint`** -- [ ] I ran **`make typecheck`** - [ ] I ran **`make test`** - [ ] All CI checks pass - [ ] Code follows project style & conventions @@ -64,20 +54,14 @@ Before requesting review, ensure: --- -# ๐Ÿ“š Documentation +# Documentation - [ ] Code comments updated - [ ] README updated (if needed) -- [ ] User-facing docs updated (if needed) - ---- - -# ๐Ÿ“ˆ Screenshots / Logs (optional) - -Attach outputs, plots, logs, or GIFs here. --- -# ๐Ÿ™ Additional Notes +# Additional Notes -Anything else reviewers should know? +- Anything else reviewers should know? +- Attach outputs, plots, logs, or GIFs here.