Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
7367050
fix(controls): preserve concrete value type when constructing ValueKey
FeodorFitsner Jun 11, 2026
7c38007
feat(transport): add dart_bridge in-process transport (alongside socket)
FeodorFitsner Jun 11, 2026
33b3b97
feat(transport): export FletBackendChannel + msgpack helpers from fle…
FeodorFitsner Jun 11, 2026
53bd7dd
fix(transport): park embedded dart_bridge run loop until host shutdown
FeodorFitsner Jun 11, 2026
99434e5
templates(build): migrate from sockets to PythonBridge FFI transport
FeodorFitsner Jun 11, 2026
702bd7d
Add path for serious-python git dependency
FeodorFitsner Jun 11, 2026
743b324
Merge branch 'flet-0.86' into dart-bridge
FeodorFitsner Jun 11, 2026
62799c4
Bump 3.13.14 / 3.14.6 / Pyodide 314.0.0; thread date-based python-bui…
FeodorFitsner Jun 12, 2026
6ed8029
feat(transport): DataChannel API for high-throughput widget byte streams
FeodorFitsner Jun 13, 2026
4e98dab
feat(flet-charts): migrate MatplotlibChartCanvas to DataChannel
FeodorFitsner Jun 13, 2026
ef0c1fc
refactor(build): split native FFI runtime out of main.dart for web co…
FeodorFitsner Jun 13, 2026
eb00f4c
fix(web): switch Pyodide worker to module type + pyodide.mjs
FeodorFitsner Jun 13, 2026
d44225d
docs(0.86.0): DataChannel + protocol framing breaking-change guide
FeodorFitsner Jun 13, 2026
98d8a2a
perf(web): transfer Pyodide-worker bytes to main via Transferable Arr…
FeodorFitsner Jun 13, 2026
68e98e3
fix(flet-charts): restore await-based backpressure for matplotlib frames
FeodorFitsner Jun 13, 2026
b185f06
ci: fix web client build after flet.version.pyodide_version removal
FeodorFitsner Jun 13, 2026
d05ca0a
docs(breaking-changes): drop dead /docs/extending-flet/data-channels …
FeodorFitsner Jun 13, 2026
b051cd9
ci: bump Node 20 actions to Node 24 versions
FeodorFitsner Jun 13, 2026
25c96c8
fix(tester): preserve ValueKey value type in find_by_key
FeodorFitsner Jun 13, 2026
09338db
fix(tests): update example imports after folder rename in #6545
FeodorFitsner Jun 13, 2026
27a01da
Docusaurus 3.10.1 and Node.js 24
FeodorFitsner Jun 13, 2026
e63a4b4
feat(cli): add 'flet --version --json' and source CI version/dep read…
FeodorFitsner Jun 13, 2026
fa0a27b
ci: pin Windows runners to windows-2025-vs2026
FeodorFitsner Jun 13, 2026
f738809
Allow flutter_secure_storage updates (^10.0.0)
FeodorFitsner Jun 13, 2026
394e19e
Resolve Python/Pyodide versions from python-build's manifest
FeodorFitsner Jun 14, 2026
ea7cf3d
Pin screen_brightness_macos to 2.1.2 (SPM macOS deployment-target reg…
FeodorFitsner Jun 14, 2026
2459240
flet build: clean build dir when the bundled Python version changes
FeodorFitsner Jun 15, 2026
68d98e4
Correct 0.86.0 changelog for the manifest-backed version model
FeodorFitsner Jun 15, 2026
95c8e5a
Bump Flutter to 3.44.2
FeodorFitsner Jun 15, 2026
5c057ad
Refresh date-picker locale goldens for Flutter 3.44.2
FeodorFitsner Jun 16, 2026
1c3537b
feat(app): dart_bridge session-restart loop (Android process reuse)
FeodorFitsner Jun 16, 2026
70a96e7
feat(build): wire process-reuse signal + skip-on-reuse in build template
FeodorFitsner Jun 16, 2026
fc0771b
feat(build): mutable _exit_port + native-log tee in python.dart boots…
FeodorFitsner Jun 16, 2026
04ef5bc
fix(build): line-buffer the native-log side of python.dart's TeeWriter
FeodorFitsner Jun 16, 2026
ecb53e2
Bump screen_brightness to 2.1.11
FeodorFitsner Jun 16, 2026
d33506b
fix(build/web): add pythonAlreadyRunning getter to native_runtime_stub
FeodorFitsner Jun 16, 2026
17ad995
build(android): consume serious_python native-mmap packaging + --andr…
FeodorFitsner Jun 17, 2026
6afd14e
Move Android extract packages to android.md
FeodorFitsner Jun 17, 2026
a873858
Update serious_python git ref to dart-bridge
FeodorFitsner Jun 17, 2026
81892b5
build: compile app + packages to .pyc by default (with --no-compile-*…
FeodorFitsner Jun 17, 2026
45d6912
perf(flet): lazy public-API imports + defer eager subsystem clusters …
FeodorFitsner Jun 17, 2026
9578a72
docs: version-prefix the 0.86.0 breaking-changes guides (#6599)
FeodorFitsner Jun 17, 2026
d73d12e
docs(changelog): add missing 0.86.0 items
FeodorFitsner Jun 18, 2026
e1c6657
docs(extend): add DataChannel section to user-extensions guide
FeodorFitsner Jun 18, 2026
47be7ff
fix(build): only package requested --arch ABIs in Android APK/AAB
FeodorFitsner Jun 18, 2026
0783e52
Merge branch 'flet-0.86' into dart-bridge
FeodorFitsner Jun 18, 2026
d2d53c1
docs(sidebar): list 0.86.0 breaking-change pages under v0.86.0
FeodorFitsner Jun 18, 2026
b2a49ee
Add blog post STUB: Flet v0.86.0 release announcement
FeodorFitsner Jun 18, 2026
706e452
Pin serious_python to 3.0.0
FeodorFitsner Jun 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .fvmrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"flutter": "3.41.7"
"flutter": "3.44.2"
}
88 changes: 40 additions & 48 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,10 @@ jobs:
python-version: [ "3.10", "3.11", "3.12", "3.13", "3.14" ]
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Setup uv
uses: astral-sh/setup-uv@v6
uses: astral-sh/setup-uv@v8.2.0
with:
python-version: ${{ matrix.python-version }}

Expand Down Expand Up @@ -85,7 +85,7 @@ jobs:

- name: Upload docs-coverage logs
if: matrix.python-version == '3.12'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: docs-coverage
path: sdk/python/docstr_coverage.log
Expand All @@ -98,18 +98,18 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 20
node-version: 24

- name: Enable Corepack
run: corepack enable

- name: Setup uv
uses: astral-sh/setup-uv@v6
uses: astral-sh/setup-uv@v8.2.0

- name: Build website
run: |
Expand All @@ -131,20 +131,20 @@ jobs:
PYPI_VER: ${{ steps.versions.outputs.PYPI_VER }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0 # fetch all history
fetch-tags: true # ensure tags are available

- name: Setup uv
uses: astral-sh/setup-uv@v6
uses: astral-sh/setup-uv@v8.2.0

- name: Compute versions
id: versions
run: source "${SCRIPTS}/update_build_version.sh"

- name: Setup Dart (OIDC for pub.dev)
uses: dart-lang/setup-dart@e630b99d28a3b71860378cafdc2a067c71107f94
uses: dart-lang/setup-dart@v1.7.2

- name: Setup Flutter
uses: kuhnroyal/flutter-fvm-config-action/setup@v3
Expand Down Expand Up @@ -179,10 +179,10 @@ jobs:
PKG_VER: ${{ needs.build_flet_package.outputs.PKG_VER }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Setup uv
uses: astral-sh/setup-uv@v6
uses: astral-sh/setup-uv@v8.2.0

- name: Patch build template flet version
shell: bash
Expand All @@ -207,7 +207,7 @@ jobs:
zip -r "$GITHUB_WORKSPACE/flet-app-templates.zip" app/

- name: Upload artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: template-artifacts
path: |
Expand All @@ -219,7 +219,7 @@ jobs:
# =============================
build_windows:
name: Build Flet Client for Windows
runs-on: windows-latest
runs-on: windows-2025-vs2026
needs:
- python_tests
- build_flet_package
Expand All @@ -229,10 +229,10 @@ jobs:
PYPI_VER: ${{ needs.build_flet_package.outputs.PYPI_VER }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Setup uv
uses: astral-sh/setup-uv@v6
uses: astral-sh/setup-uv@v8.2.0

- name: Setup Flutter
uses: kuhnroyal/flutter-fvm-config-action/setup@v3
Expand Down Expand Up @@ -262,7 +262,7 @@ jobs:
7z a "${ROOT}/client/flet-windows.zip" "flet"

- name: Upload artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: windows-artifacts
if-no-files-found: error
Expand All @@ -284,10 +284,10 @@ jobs:
PYPI_VER: ${{ needs.build_flet_package.outputs.PYPI_VER }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Setup uv
uses: astral-sh/setup-uv@v6
uses: astral-sh/setup-uv@v8.2.0

- name: Setup Flutter
uses: kuhnroyal/flutter-fvm-config-action/setup@v3
Expand All @@ -303,7 +303,7 @@ jobs:
tar -czvf flet-macos.tar.gz -C build/macos/Build/Products/Release Flet.app

- name: Upload artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: macos-artifacts
if-no-files-found: error
Expand Down Expand Up @@ -442,10 +442,10 @@ jobs:
apt-get install -y git curl unzip xz-utils zip ca-certificates jq tzdata

- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Setup uv
uses: astral-sh/setup-uv@v6
uses: astral-sh/setup-uv@v8.2.0

- name: Get Flutter version from ".fvmrc"
uses: kuhnroyal/flutter-fvm-config-action/config@v3
Expand Down Expand Up @@ -475,7 +475,7 @@ jobs:
sed -i.bak '/apt.postgresql.org/s/^/# /' /etc/apt/sources.list
fi
apt-get update --allow-releaseinfo-change
LINUX_DEPS="$(uv run --project sdk/python/packages/flet python -c 'from flet.utils.linux_deps import linux_dependencies; print(" ".join(linux_dependencies))')"
LINUX_DEPS="$(uv run --project sdk/python/packages/flet-cli flet --version --json | jq -r '.linux_dependencies | join(" ")')"
apt-get install -y $LINUX_DEPS

- name: Build Flutter Linux clients
Expand Down Expand Up @@ -536,7 +536,7 @@ jobs:
build_flutter "flet-desktop"

- name: Upload artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: linux-${{ matrix.distro_id }}-${{ matrix.arch }}-artifacts
if-no-files-found: error
Expand All @@ -556,10 +556,10 @@ jobs:
PYPI_VER: ${{ needs.build_flet_package.outputs.PYPI_VER }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Setup uv
uses: astral-sh/setup-uv@v6
uses: astral-sh/setup-uv@v8.2.0

- name: Setup Flutter
uses: kuhnroyal/flutter-fvm-config-action/setup@v3
Expand All @@ -578,18 +578,14 @@ jobs:
shell: bash
working-directory: ${{ env.SDK_PYTHON }}
run: |
PYODIDE_VERSION="$( uv run python -c 'import flet.version; print(flet.version.pyodide_version)' )"
PYODIDE_VERSION="$( uv run python -c "from flet_cli.utils.python_versions import resolve_python_version; print(resolve_python_version(None).pyodide)" )"
echo "PYODIDE_VERSION=$PYODIDE_VERSION" >> "$GITHUB_ENV"
echo "Pyodide version: $PYODIDE_VERSION"

- name: Build Web client
shell: bash
working-directory: client
run: |
# Compute Pyodide URLs
PYODIDE_URL="https://github.com/pyodide/pyodide/releases/download/${PYODIDE_VERSION}/pyodide-core-${PYODIDE_VERSION}.tar.bz2"
PYODIDE_CDN_URL="https://cdn.jsdelivr.net/pyodide/v${PYODIDE_VERSION}/full"

FLET_WEB="${SDK_PYTHON}/packages/flet-web/src/flet_web"

flutter build web --wasm
Expand All @@ -600,13 +596,9 @@ jobs:
FLUTTER_JS_DIR="$(dirname "$(command -v flutter)")/cache/flutter_web_sdk/flutter_js"
cp "$FLUTTER_JS_DIR/flutter.js.map" "${FLET_WEB}/web"

# Download the Pyodide tarball and extract its contents into the web build folder
curl -L "$PYODIDE_URL" | tar -xj -C "${FLET_WEB}/web"

# Download the prebuilt pyodide wheels
for wheel in "packaging-24.2-py3-none-any.whl" "micropip-0.8.0-py3-none-any.whl"; do
curl -L "${PYODIDE_CDN_URL}/${wheel}" -o "${FLET_WEB}/web/pyodide/${wheel}"
done
# Download the Pyodide runtime (plus the micropip/packaging wheels
# resolved from pyodide-lock.json) into the web build folder
uv run --project "${SDK_PYTHON}" python -c "from pathlib import Path; from flet_cli.utils.pyodide import ensure_pyodide; ensure_pyodide('${PYODIDE_VERSION}', Path('${FLET_WEB}/web/pyodide'))"

# Archive the web client into a gzipped tarball
tar -czvf "flet-web.tar.gz" -C "build/web" .
Expand All @@ -621,7 +613,7 @@ jobs:
uv build --package flet-web --sdist

- name: Upload artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: web-artifacts
if-no-files-found: error
Expand All @@ -644,13 +636,13 @@ jobs:
PKG_VER: ${{ needs.build_flet_package.outputs.PKG_VER }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0
fetch-tags: true

- name: Setup uv
uses: astral-sh/setup-uv@v6
uses: astral-sh/setup-uv@v8.2.0

- name: Setup Flutter
uses: kuhnroyal/flutter-fvm-config-action/setup@v3
Expand Down Expand Up @@ -702,7 +694,7 @@ jobs:
done

- name: Upload artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: flet-python-extensions
if-no-files-found: error
Expand All @@ -723,10 +715,10 @@ jobs:
- build_flet_package
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Setup uv
uses: astral-sh/setup-uv@v6
uses: astral-sh/setup-uv@v8.2.0

- name: Build Python packages
shell: bash
Expand All @@ -739,7 +731,7 @@ jobs:
uv build --package flet-desktop

- name: Upload artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: flet-cli-desktop-python-distribution
path: |
Expand Down Expand Up @@ -775,7 +767,7 @@ jobs:
fi

- name: Download artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
path: dist
merge-multiple: true
Expand Down Expand Up @@ -808,13 +800,13 @@ jobs:
- release
steps:
- name: Setup uv
uses: astral-sh/setup-uv@v6
uses: astral-sh/setup-uv@v8.2.0
with:
ignore-empty-workdir: true
cache-dependency-glob: ""

- name: Download artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
path: dist
merge-multiple: true
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,18 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 20
node-version: 24

- name: Enable Corepack
run: corepack enable

- name: Setup uv
uses: astral-sh/setup-uv@v6
uses: astral-sh/setup-uv@v8.2.0

- name: Build website
run: |
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/flet-build-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
flutter_version: ${{ steps.v.outputs.value }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Resolve version
id: v
Expand Down Expand Up @@ -55,7 +55,7 @@ jobs:
FLUTTER_VERSION: ${{ needs.resolve_version.outputs.flutter_version }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Compute platform pair
id: pair
Expand Down Expand Up @@ -94,7 +94,7 @@ jobs:
touch "/tmp/digests/${digest#sha256:}"

- name: Upload digest
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: flet-build-digests-${{ steps.pair.outputs.value }}
path: /tmp/digests/*
Expand All @@ -111,7 +111,7 @@ jobs:
FLUTTER_VERSION: ${{ needs.resolve_version.outputs.flutter_version }}
steps:
- name: Download digests
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
path: /tmp/digests
pattern: flet-build-digests-*
Expand Down
Loading
Loading