Skip to content

Commit ecaf985

Browse files
committed
Merge remote-tracking branch 'origin/main' into owen/control-docs
2 parents de16795 + f05d5f4 commit ecaf985

470 files changed

Lines changed: 24173 additions & 438 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.fvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"flutter": "3.35.1"
2+
"flutter": "3.35.5"
33
}

.github/scripts/patch_toml_versions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# ///
44

55
"""
6-
Patchs a TOML file (e.g. pyproject.toml) to:
6+
Patches a TOML file (e.g. pyproject.toml) to:
77
- Set `[project].version` to a given value.
88
- Update selected dependencies in `[project].dependencies` to the same version.
99

.github/workflows/ci.yml

Lines changed: 105 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
strategy:
4949
fail-fast: false
5050
matrix:
51-
python-version: [ "3.10", "3.11", "3.12", "3.13" ]
51+
python-version: [ "3.10", "3.11", "3.12", "3.13", "3.14" ]
5252
steps:
5353
- name: Checkout repository
5454
uses: actions/checkout@v4
@@ -547,6 +547,90 @@ jobs:
547547
sdk/python/dist/*.whl
548548
sdk/python/dist/*.tar.gz
549549
550+
# ============================================
551+
# Build Flet extension Python packages
552+
# ============================================
553+
build_flet_extensions:
554+
name: Build ${{ matrix.package }} extension
555+
runs-on: ubuntu-latest
556+
needs:
557+
- python_tests
558+
- build_flet_package
559+
env:
560+
PYPI_VER: ${{ needs.build_flet_package.outputs.PYPI_VER }}
561+
strategy:
562+
fail-fast: false
563+
matrix:
564+
package:
565+
- flet-ads
566+
- flet-audio
567+
- flet-audio-recorder
568+
- flet-charts
569+
- flet-datatable2
570+
- flet-flashlight
571+
- flet-geolocator
572+
- flet-lottie
573+
- flet-map
574+
- flet-permission-handler
575+
- flet-rive
576+
- flet-video
577+
- flet-webview
578+
steps:
579+
- name: Checkout repository
580+
uses: actions/checkout@v4
581+
582+
- name: Setup uv
583+
uses: astral-sh/setup-uv@v6
584+
585+
- name: Setup Flutter
586+
uses: kuhnroyal/flutter-fvm-config-action/setup@v3
587+
with:
588+
path: '.fvmrc'
589+
cache: true
590+
591+
- name: Analyze Flutter package with dart analyze
592+
shell: bash
593+
run: |
594+
set -euo pipefail
595+
PACKAGE="${{ matrix.package }}"
596+
FLUTTER_PACKAGE="${PACKAGE//-/_}"
597+
FLUTTER_DIR="${SDK_PYTHON}/packages/${PACKAGE}/src/flutter/${FLUTTER_PACKAGE}"
598+
599+
if [[ ! -d "$FLUTTER_DIR" ]]; then
600+
echo "Flutter directory $FLUTTER_DIR not found"
601+
exit 1
602+
fi
603+
604+
pushd "$FLUTTER_DIR"
605+
flutter pub get
606+
dart analyze
607+
rm -f pubspec.lock
608+
popd
609+
610+
- name: Build Python package
611+
shell: bash
612+
working-directory: ${{ env.SDK_PYTHON }}
613+
run: |
614+
set -euo pipefail
615+
PACKAGE="${{ matrix.package }}"
616+
PYPROJECT="packages/${PACKAGE}/pyproject.toml"
617+
618+
source "$SCRIPTS/common.sh"
619+
patch_toml_versions "$PYPROJECT" "$PYPI_VER"
620+
621+
rm -rf dist
622+
uv build --package "$PACKAGE" --wheel
623+
uv build --package "$PACKAGE" --sdist
624+
625+
- name: Upload artifacts
626+
uses: actions/upload-artifact@v4
627+
with:
628+
name: python-extension-${{ matrix.package }}
629+
if-no-files-found: error
630+
path: |
631+
sdk/python/dist/*.whl
632+
sdk/python/dist/*.tar.gz
633+
550634
# =====================================
551635
# Build flet, flet-cli and flet-desktop
552636
# =====================================
@@ -598,6 +682,7 @@ jobs:
598682
- build_macos
599683
- build_linux
600684
- build_web
685+
- build_flet_extensions
601686
steps:
602687
- name: Setup uv
603688
uses: astral-sh/setup-uv@v6
@@ -613,7 +698,25 @@ jobs:
613698
# remove client to avoid glob conflicts with its contents
614699
rm -rf dist/client
615700
616-
for pkg in flet flet_cli flet_desktop flet_desktop_light flet_web; do
701+
for pkg in \
702+
flet \
703+
flet_cli \
704+
flet_desktop \
705+
flet_desktop_light \
706+
flet_web \
707+
flet_ads \
708+
flet_audio \
709+
flet_audio_recorder \
710+
flet_charts \
711+
flet_datatable2 \
712+
flet_flashlight \
713+
flet_geolocator \
714+
flet_lottie \
715+
flet_map \
716+
flet_permission_handler \
717+
flet_rive \
718+
flet_video \
719+
flet_webview; do
617720
uv publish dist/**/${pkg}-*
618721
done
619722

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
<a href="https://pypi.org/project/flet" target="_blank">
2020
<img src="https://img.shields.io/pypi/pyversions/flet.svg?color=%2334D058" alt="Supported Python versions">
2121
</a>
22-
<a href="https://ci.appveyor.com/project/flet-dev/flet/branch/main" target="_blank">
23-
<img src="https://ci.appveyor.com/api/projects/status/xwablctxslvey576/branch/main?svg=true" alt="Build status">
22+
<a href="https://github.com/flet-dev/flet/actions/workflows/ci.yml" target="_blank">
23+
<img src="https://github.com/flet-dev/flet/actions/workflows/ci.yml/badge.svg" alt="Build status">
2424
</a>
2525
</p>
2626

@@ -51,7 +51,7 @@ with assets hosting and desktop clients.
5151

5252
Flet UI is built with [Flutter](https://flutter.dev/), so your app looks professional and could be delivered to any platform.
5353
Flet simplifies the Flutter model by combining smaller "widgets" to ready-to-use "controls"
54-
with an imperative programming model.
54+
with an imperative programming model.
5555

5656
### 📱 Deliver to any device or platform
5757

client/ios/Podfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ post_install do |installer|
4040

4141
target.build_configurations.each do |config|
4242
# You can remove unused permissions here
43-
# for more infomation: https://github.com/Baseflow/flutter-permission-handler/blob/main/permission_handler_apple/ios/Classes/PermissionHandlerEnums.h
43+
# for more information: https://github.com/Baseflow/flutter-permission-handler/blob/main/permission_handler_apple/ios/Classes/PermissionHandlerEnums.h
4444
# e.g. when you don't need camera permission, just add 'PERMISSION_CAMERA=0'
4545
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
4646
'$(inherited)',

0 commit comments

Comments
 (0)