From d2155bc06579ba05cdb81f66b7bf44d326a280ae Mon Sep 17 00:00:00 2001 From: Jonas Braathen Date: Sun, 27 Sep 2026 17:25:09 +0200 Subject: [PATCH] chore(deps): drop mysqlclient and move django-auth-ldap to a prod group --- README.md | 2 +- pyproject.toml | 10 ++++++++-- uv.lock | 18 ++++-------------- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 4d90e9c..2bd560f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ A Django app for managing computer equipment. Install system dependencies: - sudo apt install libmysqlclient-dev python-dev libldap2-dev libsasl2-dev bind9-utils + sudo apt install python-dev libldap2-dev libsasl2-dev bind9-utils Use [mise](https://mise.jdx.dev/) to manage Python and uv: diff --git a/pyproject.toml b/pyproject.toml index 8702faa..e29df09 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,25 +9,31 @@ requires-python = ">=3.14" license = "GPL-2.0-or-later" dependencies = [ "django>=6.0.3", - "django-auth-ldap>=5.3.0", "django-extensions>=4.1", "djangorestframework>=3.17.0", "fabric>=3.2.2", "freezegun>=1.5.5", "gunicorn>=25.1.0", "ipaddress>=1.0.23,<2.0.0", - "mysqlclient>=2.2.8,<3.0.0", "requests>=2.32.5", "sentry-sdk>=2.55.0", ] [dependency-groups] +# Only needed on the server (LDAP is configured in local_settings.py). +# Kept separate so CI can skip building python-ldap from source. +prod = [ + "django-auth-ldap>=5.3.0", +] dev = [ "pytest>=9.0.2", "pytest-django>=4.12.0", "ruff>=0.15.6,<1.0.0", ] +[tool.uv] +default-groups = ["dev", "prod"] + [tool.ruff] exclude = ["mdb/migrations/**"] diff --git a/uv.lock b/uv.lock index c41a945..eb731ca 100644 --- a/uv.lock +++ b/uv.lock @@ -303,14 +303,12 @@ version = "0.1.0" source = { editable = "." } dependencies = [ { name = "django" }, - { name = "django-auth-ldap" }, { name = "django-extensions" }, { name = "djangorestframework" }, { name = "fabric" }, { name = "freezegun" }, { name = "gunicorn" }, { name = "ipaddress" }, - { name = "mysqlclient" }, { name = "requests" }, { name = "sentry-sdk" }, ] @@ -321,18 +319,19 @@ dev = [ { name = "pytest-django" }, { name = "ruff" }, ] +prod = [ + { name = "django-auth-ldap" }, +] [package.metadata] requires-dist = [ { name = "django", specifier = ">=6.0.3" }, - { name = "django-auth-ldap", specifier = ">=5.3.0" }, { name = "django-extensions", specifier = ">=4.1" }, { name = "djangorestframework", specifier = ">=3.17.0" }, { name = "fabric", specifier = ">=3.2.2" }, { name = "freezegun", specifier = ">=1.5.5" }, { name = "gunicorn", specifier = ">=25.1.0" }, { name = "ipaddress", specifier = ">=1.0.23,<2.0.0" }, - { name = "mysqlclient", specifier = ">=2.2.8,<3.0.0" }, { name = "requests", specifier = ">=2.32.5" }, { name = "sentry-sdk", specifier = ">=2.55.0" }, ] @@ -343,16 +342,7 @@ dev = [ { name = "pytest-django", specifier = ">=4.12.0" }, { name = "ruff", specifier = ">=0.15.6,<1.0.0" }, ] - -[[package]] -name = "mysqlclient" -version = "2.2.8" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/eb/b0/9df076488cb2e536d40ce6dbd4273c1f20a386e31ffe6e7cb613902b3c2a/mysqlclient-2.2.8.tar.gz", hash = "sha256:8ed20c5615a915da451bb308c7d0306648a4fd9a2809ba95c992690006306199", size = 92287, upload-time = "2026-02-10T10:58:37.405Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/42/44/6ae21b4e8490eb5167d04fa7452c462ffd72a502b96bf531477ef044a380/mysqlclient-2.2.8-cp314-cp314-win_amd64.whl", hash = "sha256:9bed7c8d3b629bdc09e17fb628d5b3b0a5fd1f12b09432b464b9126c727bedc0", size = 211644, upload-time = "2026-02-10T10:58:45.022Z" }, - { url = "https://files.pythonhosted.org/packages/66/e5/037d55623be9f681236e04abe12e1290847c06bd48270c3f19ac33493cbf/mysqlclient-2.2.8-cp314-cp314t-win_amd64.whl", hash = "sha256:260cce0e81446c83bf0a389e0fae38d68547d9f8fc0833bc733014e10ce28a99", size = 213067, upload-time = "2026-02-10T10:58:43.389Z" }, -] +prod = [{ name = "django-auth-ldap", specifier = ">=5.3.0" }] [[package]] name = "packaging"