From fedce941216714510394638e7336f4c5e87acd0a Mon Sep 17 00:00:00 2001 From: macbucheron1 Date: Thu, 26 Feb 2026 21:34:52 +0100 Subject: [PATCH 1/7] python3Packages.postgrest: 1.1.1 -> 2.28.0 --- .../python-modules/postgrest/default.nix | 65 ++++++++++--------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/pkgs/development/python-modules/postgrest/default.nix b/pkgs/development/python-modules/postgrest/default.nix index ad563d84d50e..89a92b980ce5 100644 --- a/pkgs/development/python-modules/postgrest/default.nix +++ b/pkgs/development/python-modules/postgrest/default.nix @@ -1,61 +1,68 @@ { - lib, buildPythonPackage, fetchFromGitHub, - deprecation, - h2, + lib, + uv-build, httpx, - poetry-core, pydantic, + yarl, + strenum, + deprecation, + pytest-asyncio, + pytest-cov-stub, pytestCheckHook, - pythonPackages, + unasync, }: buildPythonPackage rec { pname = "postgrest"; - version = "1.1.1"; + version = "2.28.0"; pyproject = true; src = fetchFromGitHub { owner = "supabase"; - repo = "postgrest-py"; + repo = "supabase-py"; tag = "v${version}"; - hash = "sha256-WTS8J8XhHPSe6N1reY3j2QYHaRY1goiVoqQCUKSgbVY="; + hash = "sha256-nK+IZRrKjNy84EC8krBvAZll5E0+jV3bLJh8qIVRElI="; }; - build-system = [ poetry-core ]; + sourceRoot = "${src.name}/src/postgrest"; + + build-system = [ uv-build ]; dependencies = [ - deprecation httpx + deprecation pydantic - ]; + strenum + yarl + ] + ++ httpx.optional-dependencies.http2; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail 'uv_build>=0.8.3,<0.9.0' 'uv_build>=0.8.3' + ''; nativeCheckInputs = [ pytestCheckHook - h2 - ]; - - # Lots of tests fail without network access - disabledTestPaths = [ - "tests/_async/test_client.py" - "tests/_async/test_filter_request_builder.py" - "tests/_async/test_filter_request_builder_integration.py" - "tests/_async/test_query_request_builder.py" - "tests/_async/test_request_builder.py" - "tests/_sync/test_filter_request_builder_integration.py" - ]; - disabledTests = [ - "test_params_purged_after_execute" + pytest-asyncio + pytest-cov-stub + unasync ]; pythonImportsCheck = [ "postgrest" ]; + disabledTestPaths = [ + "tests/_sync/" + "tests/_async/" + ]; + meta = { - description = "PostgREST client for Python, provides an ORM interface to PostgREST"; - homepage = "https://github.com/supabase/postgrest-py"; - changelog = "https://github.com/supabase/postgrest-py/releases/tag/v${version}"; + description = "Client library for Supabase Functions"; + homepage = "https://github.com/supabase/supabase-py"; + changelog = "https://github.com/supabase/supabase-py/blob/v${src.tag}/CHANGELOG.md"; + maintainers = with lib.maintainers; [ macbucheron ]; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ jherland ]; }; } From f22e9b1e7590455a6159267dca2fe987fae7a9d8 Mon Sep 17 00:00:00 2001 From: macbucheron1 Date: Thu, 26 Feb 2026 21:49:41 +0100 Subject: [PATCH 2/7] maintainers: add macbucheron --- maintainers/maintainer-list.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 7b0a07a7654a..5cd9751b133b 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -15974,6 +15974,11 @@ githubId = 401263; keys = [ { fingerprint = "1147 43F1 E707 6F3E 6F4B 2C96 B9A8 B592 F126 F8E8"; } ]; }; + macbucheron = { + name = "Nathan Deprat"; + github = "Macbucheron1"; + githubId = 95475157; + }; macronova = { name = "Sicheng Pan"; email = "trivial@invariantspace.com"; From 7f64a2f923cd45eecc9edc81e247696c0e38ce76 Mon Sep 17 00:00:00 2001 From: macbucheron1 Date: Thu, 26 Feb 2026 21:51:36 +0100 Subject: [PATCH 3/7] python3Packages.supabase-functions: init at 2.28.0 --- .../supabase-functions/default.nix | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 pkgs/development/python-modules/supabase-functions/default.nix diff --git a/pkgs/development/python-modules/supabase-functions/default.nix b/pkgs/development/python-modules/supabase-functions/default.nix new file mode 100644 index 000000000000..b80b56c3fd65 --- /dev/null +++ b/pkgs/development/python-modules/supabase-functions/default.nix @@ -0,0 +1,60 @@ +{ + buildPythonPackage, + fetchFromGitHub, + httpx, + lib, + pyjwt, + pytest-asyncio, + pytestCheckHook, + strenum, + uv-build, + yarl, +}: + +buildPythonPackage rec { + pname = "supabase-functions"; + version = "2.28.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "supabase"; + repo = "supabase-py"; + tag = "v${version}"; + hash = "sha256-nK+IZRrKjNy84EC8krBvAZll5E0+jV3bLJh8qIVRElI="; + }; + + sourceRoot = "${src.name}/src/functions"; + + build-system = [ uv-build ]; + + dependencies = [ + strenum + yarl + httpx + ] + ++ httpx.optional-dependencies.http2; + + # Upstream pins `uv_build>=0.8.3,<0.9.0`, but nixpkgs ships `uv-build` 0.9.x. + # Relax the upper bound to accept the 0.9 series, consistent with uv’s documentation examples: + # https://docs.astral.sh/uv/concepts/build-backend/#using-the-uv-build-backend + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail 'uv_build>=0.8.3,<0.9.0' 'uv_build>=0.8.3' + ''; + + nativeCheckInputs = [ + pytestCheckHook + pyjwt + pytest-asyncio + ]; + + pythonImportsCheck = [ "supabase_functions" ]; + + meta = { + description = "Client library for Supabase Functions"; + homepage = "https://github.com/supabase/supabase-py"; + changelog = "https://github.com/supabase/supabase-py/blob/v${src.tag}/CHANGELOG.md"; + maintainers = with lib.maintainers; [ macbucheron ]; + license = lib.licenses.mit; + }; +} From b7e27aa8844c6e613c9ffbd61dfcf53b781bd9d0 Mon Sep 17 00:00:00 2001 From: macbucheron1 Date: Thu, 26 Feb 2026 21:52:58 +0100 Subject: [PATCH 4/7] python3Packages.supabase-auth: init at 2.28.0 --- .../python-modules/supabase-auth/default.nix | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 pkgs/development/python-modules/supabase-auth/default.nix diff --git a/pkgs/development/python-modules/supabase-auth/default.nix b/pkgs/development/python-modules/supabase-auth/default.nix new file mode 100644 index 000000000000..013e4711eecb --- /dev/null +++ b/pkgs/development/python-modules/supabase-auth/default.nix @@ -0,0 +1,66 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + uv-build, + httpx, + pydantic, + pyjwt, + pytestCheckHook, + faker, + respx, + pytest-mock, + pytest-asyncio, +}: +buildPythonPackage rec { + pname = "supabase-auth"; + version = "2.28.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "supabase"; + repo = "supabase-py"; + tag = "v${version}"; + hash = "sha256-nK+IZRrKjNy84EC8krBvAZll5E0+jV3bLJh8qIVRElI="; + }; + + sourceRoot = "${src.name}/src/auth"; + + build-system = [ uv-build ]; + + dependencies = [ + httpx + pydantic + pyjwt + ] + ++ httpx.optional-dependencies.http2 + ++ pyjwt.optional-dependencies.crypto; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail 'uv_build>=0.8.3,<0.9.0' 'uv_build>=0.8.3' + ''; + + nativeCheckInputs = [ + pytestCheckHook + faker + respx + pytest-mock + pytest-asyncio + ]; + + disabledTestPaths = [ + "tests/_sync/" + "tests/_async/" + ]; + + pythonImportsCheck = [ "supabase_auth" ]; + + meta = { + description = "Client library for Supabase Auth"; + homepage = "https://github.com/supabase/supabase-py/"; + changelog = "https://github.com/supabase/supabase-py/blob/v${src.tag}/CHANGELOG.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ macbucheron ]; + }; +} From b205372699b80c62ed6545fe1367bea52a917887 Mon Sep 17 00:00:00 2001 From: macbucheron1 Date: Thu, 26 Feb 2026 21:56:02 +0100 Subject: [PATCH 5/7] python3Packages.storage3: 0.12.2 -> 2.28.0 --- .../python-modules/storage3/default.nix | 61 +++++++++++++------ 1 file changed, 43 insertions(+), 18 deletions(-) diff --git a/pkgs/development/python-modules/storage3/default.nix b/pkgs/development/python-modules/storage3/default.nix index c5d0dc277fd6..caf58fab05d3 100644 --- a/pkgs/development/python-modules/storage3/default.nix +++ b/pkgs/development/python-modules/storage3/default.nix @@ -1,43 +1,68 @@ { - lib, buildPythonPackage, fetchFromGitHub, - poetry-core, - python-dateutil, + lib, + uv-build, httpx, - h2, + pydantic, + yarl, + pyiceberg, deprecation, + pytest-asyncio, + pytest-cov-stub, + python-dotenv, + pytestCheckHook, }: buildPythonPackage rec { pname = "storage3"; - version = "0.12.2"; + version = "2.28.0"; pyproject = true; src = fetchFromGitHub { owner = "supabase"; - repo = "storage-py"; + repo = "supabase-py"; tag = "v${version}"; - hash = "sha256-ACilbwSCNEsXyr2lUTkhOgfw/SiTnwj+rA07tnuFy5A="; + hash = "sha256-nK+IZRrKjNy84EC8krBvAZll5E0+jV3bLJh8qIVRElI="; }; - dependencies = [ - python-dateutil - httpx - h2 - deprecation - ]; + sourceRoot = "${src.name}/src/storage"; - build-system = [ poetry-core ]; + build-system = [ uv-build ]; + + dependencies = [ + httpx + pydantic + yarl + pyiceberg + deprecation + ] + ++ httpx.optional-dependencies.http2; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail 'uv_build>=0.8.3,<0.9.0' 'uv_build>=0.8.3' + ''; + + nativeCheckInputs = [ + pytestCheckHook + pytest-asyncio + pytest-cov-stub + python-dotenv + ]; pythonImportsCheck = [ "storage3" ]; - # tests fail due to mock server not starting + disabledTestPaths = [ + "tests/_sync/" + "tests/_async/" + ]; meta = { - homepage = "https://github.com/supabase/storage-py"; - license = lib.licenses.mit; - description = "Supabase Storage client for Python."; + description = "Client library for Supabase Functions"; + homepage = "https://github.com/supabase/supabase-py"; + changelog = "https://github.com/supabase/supabase-py/blob/v${src.tag}/CHANGELOG.md"; maintainers = with lib.maintainers; [ siegema ]; + license = lib.licenses.mit; }; } From 9e740a0a4f3c7403e1b1e7f20d62208e48fdd105 Mon Sep 17 00:00:00 2001 From: macbucheron1 Date: Thu, 26 Feb 2026 21:57:10 +0100 Subject: [PATCH 6/7] python3Packages.realtime: 2.7.0 -> 2.28.0 --- .../python-modules/realtime/default.nix | 53 +++++++++++-------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/pkgs/development/python-modules/realtime/default.nix b/pkgs/development/python-modules/realtime/default.nix index 66ee2e1fb5c2..ab3354b2f0d5 100644 --- a/pkgs/development/python-modules/realtime/default.nix +++ b/pkgs/development/python-modules/realtime/default.nix @@ -1,58 +1,65 @@ { - lib, buildPythonPackage, fetchFromGitHub, + lib, poetry-core, - pydantic, - typing-extensions, - websockets, aiohttp, + websockets, + typing-extensions, + pydantic, pytest-asyncio, - pytestCheckHook, + pytest-cov-stub, python-dotenv, + pytestCheckHook, + pythonRelaxDepsHook, }: buildPythonPackage rec { - pname = "realtime-py"; - version = "2.7.0"; + pname = "realtime"; + version = "2.28.0"; pyproject = true; src = fetchFromGitHub { owner = "supabase"; - repo = "realtime-py"; + repo = "supabase-py"; tag = "v${version}"; - hash = "sha256-cWWgVs+ZNRvBje3kuDQS5L5utkY3z7MluGFNmjf9LFc="; + hash = "sha256-nK+IZRrKjNy84EC8krBvAZll5E0+jV3bLJh8qIVRElI="; }; + sourceRoot = "${src.name}/src/realtime"; + + build-system = [ poetry-core ]; + dependencies = [ - pydantic - typing-extensions websockets + typing-extensions + pydantic ]; - pythonRelaxDeps = [ - "websockets" - ]; + nativeBuildInputs = [ pythonRelaxDepsHook ]; + + pythonRelaxDeps = [ "websockets" ]; nativeCheckInputs = [ aiohttp - pytest-asyncio pytestCheckHook + pytest-cov-stub python-dotenv + pytest-asyncio ]; pythonImportsCheck = [ "realtime" ]; - build-system = [ poetry-core ]; - - # requires running Supabase - doCheck = false; + disabledTestPaths = [ + "tests/test_connection.py" + "tests/test_presence.py" + ]; meta = { - changelog = "https://github.com/supabase/realtime-py/blob/${src.tag}/CHANGELOG.md"; - homepage = "https://github.com/supabase/realtime-py"; - license = lib.licenses.mit; - description = "Python Realtime Client for Supabase"; + description = "Client library for Supabase Functions"; + homepage = "https://github.com/supabase/supabase-py"; + changelog = "https://github.com/supabase/supabase-py/blob/v${src.tag}/CHANGELOG.md"; maintainers = with lib.maintainers; [ siegema ]; + license = lib.licenses.mit; }; } From 89f6b2876cefae1ccee1f852ca54f3e9b43cd7f3 Mon Sep 17 00:00:00 2001 From: macbucheron1 Date: Thu, 26 Feb 2026 22:20:17 +0100 Subject: [PATCH 7/7] python3Packages.supabase: 2.27.2 -> 2.28.0 --- .../python-modules/supabase/default.nix | 36 ++++++++++++------- pkgs/top-level/python-packages.nix | 4 ++- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/pkgs/development/python-modules/supabase/default.nix b/pkgs/development/python-modules/supabase/default.nix index e0daa7a83294..685a72ccbb20 100644 --- a/pkgs/development/python-modules/supabase/default.nix +++ b/pkgs/development/python-modules/supabase/default.nix @@ -2,50 +2,60 @@ lib, buildPythonPackage, fetchFromGitHub, - poetry-core, - gotrue, - postgrest, + uv-build, realtime, - storage3, - supafunc, + supabase-functions, + supabase-auth, + postgrest, httpx, + yarl, + storage3, pytestCheckHook, python-dotenv, pytest-asyncio, + pytest-cov-stub, }: buildPythonPackage rec { pname = "supabase"; - version = "2.27.2"; + version = "2.28.0"; pyproject = true; src = fetchFromGitHub { owner = "supabase"; repo = "supabase-py"; tag = "v${version}"; - hash = "sha256-TRATa+lDRm2MDuARXfBRWnWYUak8i1fW7rr5ujWN8TY="; + hash = "sha256-nK+IZRrKjNy84EC8krBvAZll5E0+jV3bLJh8qIVRElI="; }; - build-system = [ poetry-core ]; + sourceRoot = "${src.name}/src/supabase"; - # FIXME remove for supabase >= 2.18.0 - pythonRelaxDeps = true; + build-system = [ uv-build ]; + + doCheck = true; dependencies = [ - postgrest realtime - gotrue + supabase-auth + supabase-functions + postgrest httpx + yarl storage3 - supafunc ]; nativeBuildInputs = [ pytestCheckHook python-dotenv pytest-asyncio + pytest-cov-stub ]; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail 'uv_build>=0.8.3,<0.9.0' 'uv_build>=0.8.3' + ''; + pythonImportsCheck = [ "supabase" ]; meta = { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index dd19136a6ac9..dd593c2bc094 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -18529,7 +18529,9 @@ self: super: with self; { supabase = callPackage ../development/python-modules/supabase { }; - supabase-functions = self.supafunc; + supabase-auth = callPackage ../development/python-modules/supabase-auth { }; + + supabase-functions = callPackage ../development/python-modules/supabase-functions { }; supafunc = callPackage ../development/python-modules/supafunc { };