From 2d8d326baf276a28573ee733de4bc138dc5fad06 Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Mon, 1 Jun 2026 14:49:32 -0700 Subject: [PATCH 1/3] ENG-9664: pin workspace dependency resolution with uv exclude-newer Add exclude-newer = "7 days" to the root [tool.uv] table so dependency resolution only considers package versions uploaded more than 7 days ago, for more reproducible resolutions across the workspace. Bump required-version to >=0.10 (relative exclude-newer requires a recent uv). uv.lock gains an [options] block recording exclude-newer-span = P7D (no version changes). --- pyproject.toml | 3 ++- uv.lock | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 310109907e0..12ba0d40e39 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -367,7 +367,8 @@ name = "Miscellaneous" showcontent = true [tool.uv] -required-version = ">=0.7.0" +required-version = ">=0.10" +exclude-newer = "7 days" [tool.uv.sources] hatch-reflex-pyi.workspace = true diff --git a/uv.lock b/uv.lock index 40e7756ac8b..b1dedb07437 100644 --- a/uv.lock +++ b/uv.lock @@ -11,6 +11,10 @@ resolution-markers = [ "python_full_version < '3.11'", ] +[options] +exclude-newer = "0001-01-01T00:00:00Z" # This has no effect and is included for backwards compatibility when using relative exclude-newer values. +exclude-newer-span = "P7D" + [manifest] members = [ "hatch-reflex-pyi", From bd70f7b1326cf795e628ed561a9637ad9a7a164f Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Thu, 4 Jun 2026 12:09:02 -0700 Subject: [PATCH 2/3] ENG-9664: lower required-version to >=0.9.17 (relative exclude-newer floor) The relative-duration form of exclude-newer landed in uv 0.9.17, not 0.10. 0.9.17 parses "7 days", applies the correct cutoff, and accepts the sentinel-span lock via --check without churn; 0.9.16 fails on both. Also update the stated minimum uv version in CONTRIBUTING.md to match. --- CONTRIBUTING.md | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 613d16f752d..41c27a4f0e9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,7 +6,7 @@ Here is a quick guide on how to run Reflex repo locally so you can start contrib **Prerequisites:** -- uv version >= 0.6.0 and add it to your path (see [UV Docs](https://docs.astral.sh/uv/getting-started/installation/) for more info). +- uv version >= 0.9.17 and add it to your path (see [UV Docs](https://docs.astral.sh/uv/getting-started/installation/) for more info). **1. Fork this repository:** Fork this repository by clicking on the `Fork` button on the top right. diff --git a/pyproject.toml b/pyproject.toml index 12ba0d40e39..f37fbf1a710 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -367,7 +367,7 @@ name = "Miscellaneous" showcontent = true [tool.uv] -required-version = ">=0.10" +required-version = ">=0.9.17" exclude-newer = "7 days" [tool.uv.sources] From 902260c438acab513cfee00323119c5b01f77ef9 Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Thu, 4 Jun 2026 12:58:45 -0700 Subject: [PATCH 3/3] ENG-9664: exempt internal packages from exclude-newer floor The relative exclude-newer floor was inherited by check_min_deps.py's isolated --no-sources installs, which resolve sibling packages from PyPI. With internal packages pinned at >= a version published within the window (e.g. reflex-base>=0.9.4), resolution became unsatisfiable. Disable the floor for internal lockstep-released packages via [tool.uv.exclude-newer-package]; the floor still applies to third-party deps. --- pyproject.toml | 24 ++++++++++++++++++++++++ uv.lock | 19 +++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index cab0de8f75e..525ef5332f5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -370,6 +370,30 @@ showcontent = true required-version = ">=0.9.17" exclude-newer = "7 days" +# Internal Reflex packages release in lockstep and are routinely pinned (>=) at a version +# published within the exclude-newer window; disable the floor for them so resolution +# always sees their latest release. The floor still applies to third-party dependencies. +# Add any new internal package that is published and pinned as a (build or runtime) +# dependency here. +[tool.uv.exclude-newer-package] +hatch-reflex-pyi = false +reflex = false +reflex-base = false +reflex-components-code = false +reflex-components-core = false +reflex-components-dataeditor = false +reflex-components-gridjs = false +reflex-components-internal = false +reflex-components-lucide = false +reflex-components-markdown = false +reflex-components-moment = false +reflex-components-plotly = false +reflex-components-radix = false +reflex-components-react-player = false +reflex-components-recharts = false +reflex-components-sonner = false +reflex-hosting-cli = false + [tool.uv.sources] hatch-reflex-pyi.workspace = true reflex-base.workspace = true diff --git a/uv.lock b/uv.lock index b1dedb07437..1980545ad95 100644 --- a/uv.lock +++ b/uv.lock @@ -15,6 +15,25 @@ resolution-markers = [ exclude-newer = "0001-01-01T00:00:00Z" # This has no effect and is included for backwards compatibility when using relative exclude-newer values. exclude-newer-span = "P7D" +[options.exclude-newer-package] +reflex-components-plotly = false +reflex-components-radix = false +reflex-components-moment = false +reflex-components-sonner = false +hatch-reflex-pyi = false +reflex-components-gridjs = false +reflex = false +reflex-components-code = false +reflex-components-recharts = false +reflex-components-core = false +reflex-components-dataeditor = false +reflex-base = false +reflex-components-markdown = false +reflex-components-internal = false +reflex-components-lucide = false +reflex-components-react-player = false +reflex-hosting-cli = false + [manifest] members = [ "hatch-reflex-pyi",