From 123ad3bfcce48e7088d282d5ccd81e025bd93821 Mon Sep 17 00:00:00 2001 From: ndonkoHenri Date: Wed, 7 Oct 2026 18:25:24 +0200 Subject: [PATCH 1/5] fix(flet-web): depend on uvicorn and websockets, make uvicorn[standard] optional `uvicorn[standard]` pulls in httptools, which has no wheels for Windows on ARM (and some other platforms), so `pip install "flet[all]"` there needs a C++ compiler. Flet uses none of the extra's speedups: the server pins `ws="websockets-sansio"`, uvicorn falls back to h11 without httptools, and Flet never imports uvloop, watchfiles or python-dotenv. Depend on `uvicorn` and `websockets` directly, and keep `uvicorn[standard]` available as the `flet-web[standard]` extra. --- CHANGELOG.md | 1 + sdk/python/packages/flet-web/pyproject.toml | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a840f38e4..7febe9bff3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### Bug fixes * Fix a web app built with `flet build web` getting its project name, e.g. `my_app`, as its label when installed as a PWA on iOS instead of its product name. The manifest's `short_name`, which iOS shows on the Home Screen, was set to the project name; it now defaults to the product name, like the page title. Product names containing quotes no longer break `manifest.json` ([#6911](https://github.com/flet-dev/flet/pull/6911)) by @FeodorFitsner. +* Fix `pip install "flet[all]"` failing without a C++ compiler on Windows on ARM: `flet-web` now depends on `uvicorn` and `websockets` instead of `uvicorn[standard]`, whose `httptools` has no wheels there; the speedups stay available as `flet-web[standard]` by @ndonkoHenri. ## 1.0.3 diff --git a/sdk/python/packages/flet-web/pyproject.toml b/sdk/python/packages/flet-web/pyproject.toml index 0340024e58..ef27a4c7a5 100644 --- a/sdk/python/packages/flet-web/pyproject.toml +++ b/sdk/python/packages/flet-web/pyproject.toml @@ -9,9 +9,16 @@ requires-python = ">=3.10" dependencies = [ "flet", "fastapi >=0.115.12", - "uvicorn[standard] >=0.35.0" + "uvicorn >=0.35.0", + "websockets >=13.0" ] +[project.optional-dependencies] +# uvloop/httptools speedups. Not required: Flet serves with `ws="websockets-sansio"`, +# and httptools has no wheels for some platforms, such as Windows on ARM, where +# installing it needs a C++ compiler. +standard = ["uvicorn[standard] >=0.35.0"] + [project.urls] Homepage = "https://flet.dev" Repository = "https://github.com/flet-dev/flet" @@ -22,4 +29,4 @@ Documentation = "https://flet.dev/docs" [build-system] requires = ["setuptools"] -build-backend = "setuptools.build_meta" \ No newline at end of file +build-backend = "setuptools.build_meta" From a53e7198524ecee8940478814f19f1e2260e92e9 Mon Sep 17 00:00:00 2001 From: ndonkoHenri Date: Wed, 7 Oct 2026 18:44:46 +0200 Subject: [PATCH 2/5] Explain the flet-web standard extra accurately --- sdk/python/packages/flet-web/pyproject.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sdk/python/packages/flet-web/pyproject.toml b/sdk/python/packages/flet-web/pyproject.toml index ef27a4c7a5..5009353947 100644 --- a/sdk/python/packages/flet-web/pyproject.toml +++ b/sdk/python/packages/flet-web/pyproject.toml @@ -14,9 +14,9 @@ dependencies = [ ] [project.optional-dependencies] -# uvloop/httptools speedups. Not required: Flet serves with `ws="websockets-sansio"`, -# and httptools has no wheels for some platforms, such as Windows on ARM, where -# installing it needs a C++ compiler. +# uvicorn's optional extras (httptools, uvloop, watchfiles, ...). uvicorn falls back +# to h11 and asyncio without them. httptools has no wheels for some platforms, such +# as Windows on ARM, where installing it needs a C++ compiler. standard = ["uvicorn[standard] >=0.35.0"] [project.urls] From 1313ffad46cd1de62ca18ccd93825a8e1adb5e8d Mon Sep 17 00:00:00 2001 From: ndonkoHenri Date: Wed, 7 Oct 2026 20:06:59 +0200 Subject: [PATCH 3/5] Link #6927 in the 1.0.4 changelog entry --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7febe9bff3..3571eb9e48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ ### Bug fixes * Fix a web app built with `flet build web` getting its project name, e.g. `my_app`, as its label when installed as a PWA on iOS instead of its product name. The manifest's `short_name`, which iOS shows on the Home Screen, was set to the project name; it now defaults to the product name, like the page title. Product names containing quotes no longer break `manifest.json` ([#6911](https://github.com/flet-dev/flet/pull/6911)) by @FeodorFitsner. -* Fix `pip install "flet[all]"` failing without a C++ compiler on Windows on ARM: `flet-web` now depends on `uvicorn` and `websockets` instead of `uvicorn[standard]`, whose `httptools` has no wheels there; the speedups stay available as `flet-web[standard]` by @ndonkoHenri. +* Fix `pip install "flet[all]"` failing without a C++ compiler on Windows on ARM: `flet-web` now depends on `uvicorn` and `websockets` instead of `uvicorn[standard]`, whose `httptools` has no wheels there; the speedups stay available as `flet-web[standard]` ([#6927](https://github.com/flet-dev/flet/pull/6927)) by @ndonkoHenri. ## 1.0.3 From a583a7bf3c289cd0647ea0d09b8b24563084148e Mon Sep 17 00:00:00 2001 From: ndonkoHenri Date: Wed, 7 Oct 2026 20:34:12 +0200 Subject: [PATCH 4/5] Keep uvicorn[standard] everywhere except Windows on ARM Only Windows on ARM lacks httptools wheels, so limit the change there with a platform marker instead of dropping uvicorn[standard], and the uvloop and httptools speedups, on every platform. Drop the flet-web standard extra. --- CHANGELOG.md | 2 +- sdk/python/packages/flet-web/pyproject.toml | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3571eb9e48..449365c722 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ ### Bug fixes * Fix a web app built with `flet build web` getting its project name, e.g. `my_app`, as its label when installed as a PWA on iOS instead of its product name. The manifest's `short_name`, which iOS shows on the Home Screen, was set to the project name; it now defaults to the product name, like the page title. Product names containing quotes no longer break `manifest.json` ([#6911](https://github.com/flet-dev/flet/pull/6911)) by @FeodorFitsner. -* Fix `pip install "flet[all]"` failing without a C++ compiler on Windows on ARM: `flet-web` now depends on `uvicorn` and `websockets` instead of `uvicorn[standard]`, whose `httptools` has no wheels there; the speedups stay available as `flet-web[standard]` ([#6927](https://github.com/flet-dev/flet/pull/6927)) by @ndonkoHenri. +* Fix `pip install "flet[all]"` failing without a C++ compiler on Windows on ARM: `flet-web` no longer installs `uvicorn[standard]` there, whose `httptools` has no wheels for it ([#6927](https://github.com/flet-dev/flet/pull/6927)) by @ndonkoHenri. ## 1.0.3 diff --git a/sdk/python/packages/flet-web/pyproject.toml b/sdk/python/packages/flet-web/pyproject.toml index 5009353947..57062eafe2 100644 --- a/sdk/python/packages/flet-web/pyproject.toml +++ b/sdk/python/packages/flet-web/pyproject.toml @@ -10,15 +10,12 @@ dependencies = [ "flet", "fastapi >=0.115.12", "uvicorn >=0.35.0", - "websockets >=13.0" + "websockets >=13.0", + # httptools, one of uvicorn's standard extras, has no wheels for Windows on ARM, + # where installing it needs a C++ compiler. uvicorn falls back to h11 without it. + "uvicorn[standard] >=0.35.0; sys_platform != 'win32' or platform_machine != 'ARM64'" ] -[project.optional-dependencies] -# uvicorn's optional extras (httptools, uvloop, watchfiles, ...). uvicorn falls back -# to h11 and asyncio without them. httptools has no wheels for some platforms, such -# as Windows on ARM, where installing it needs a C++ compiler. -standard = ["uvicorn[standard] >=0.35.0"] - [project.urls] Homepage = "https://flet.dev" Repository = "https://github.com/flet-dev/flet" From 559c11caee467cf843ce121abd081a99c4ad81d7 Mon Sep 17 00:00:00 2001 From: ndonkoHenri Date: Wed, 7 Oct 2026 20:46:39 +0200 Subject: [PATCH 5/5] update --- sdk/python/packages/flet-web/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/python/packages/flet-web/pyproject.toml b/sdk/python/packages/flet-web/pyproject.toml index 57062eafe2..143eb59310 100644 --- a/sdk/python/packages/flet-web/pyproject.toml +++ b/sdk/python/packages/flet-web/pyproject.toml @@ -9,8 +9,8 @@ requires-python = ">=3.10" dependencies = [ "flet", "fastapi >=0.115.12", - "uvicorn >=0.35.0", "websockets >=13.0", + "uvicorn >=0.35.0", # httptools, one of uvicorn's standard extras, has no wheels for Windows on ARM, # where installing it needs a C++ compiler. uvicorn falls back to h11 without it. "uvicorn[standard] >=0.35.0; sys_platform != 'win32' or platform_machine != 'ARM64'"