From 13d852e718a0a8a9c7da18882ab7c15f888d42dd Mon Sep 17 00:00:00 2001 From: Satwik Bankapur Date: Tue, 3 Nov 2026 19:08:32 +0000 Subject: [PATCH] fix(proxy): add tzdata to the proxy extra so a legacy TZ doesn't stop startup --- pyproject.toml | 3 +++ tests/unit/test_package_metadata.py | 6 ++++++ uv.lock | 2 ++ 3 files changed, 11 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 7a653b28f81..5df88dd8887 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -72,6 +72,9 @@ proxy = [ "hiredis>=3.0.0,<4.0; python_version < '3.15'", "hiredis>=3.5.0,<4.0; python_version >= '3.15'", "apscheduler>=3.11.2,<4.0", + # apscheduler resolves the local zone through tzlocal and zoneinfo; tzdata lets that work for + # TZ values the OS zone database lacks, such as Asia/Calcutta on Ubuntu 24.04+. + "tzdata>=2024.1", "fastapi-sso>=0.19.0,<1.0", "PyJWT>=2.13.0,<3.0", "python-multipart>=0.0.27,<1.0", diff --git a/tests/unit/test_package_metadata.py b/tests/unit/test_package_metadata.py index dc6e3dca64e..4d4eae9a647 100644 --- a/tests/unit/test_package_metadata.py +++ b/tests/unit/test_package_metadata.py @@ -79,6 +79,12 @@ def test_cli_extra_is_a_thin_client_install() -> None: assert cli & PROXY_SERVER_ONLY_DEPENDENCIES == frozenset() +def test_proxy_extra_ships_tzdata_for_its_scheduler() -> None: + proxy: Final = _requirement_names(OPTIONAL_DEPENDENCIES["proxy"]) + assert canonicalize_name("apscheduler") in proxy + assert canonicalize_name("tzdata") in proxy + + def test_declared_aiohttp_floor_excludes_pool_poisoning_releases() -> None: declared: Final = tuple( Requirement(requirement) diff --git a/uv.lock b/uv.lock index e5948530f17..1f6e1c8e3f1 100644 --- a/uv.lock +++ b/uv.lock @@ -5057,6 +5057,7 @@ proxy = [ { name = "soundfile" }, { name = "starlette" }, { name = "tomlkit" }, + { name = "tzdata" }, { name = "uvicorn" }, { name = "uvloop", marker = "sys_platform != 'win32'" }, { name = "websockets" }, @@ -5328,6 +5329,7 @@ requires-dist = [ { name = "tomlkit", marker = "extra == 'cli'", specifier = ">=0.13.3,<1.0" }, { name = "tomlkit", marker = "extra == 'proxy'", specifier = ">=0.13.3,<1.0" }, { name = "typing-extensions", specifier = ">=4.13.0,<5.0" }, + { name = "tzdata", marker = "extra == 'proxy'", specifier = ">=2024.1" }, { name = "uvicorn", marker = "extra == 'proxy'", specifier = ">=0.33.0,<1.0" }, { name = "uvloop", marker = "sys_platform != 'win32' and extra == 'proxy'", specifier = ">=0.22.1,<1.0" }, { name = "websockets", marker = "extra == 'proxy'", specifier = ">=15.0.1,<16.0" },