Skip to content
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
2a520a6
Update links and metadata for flet-ads package
FeodorFitsner Oct 6, 2025
0b2ac57
Add flet-audio extension package and docs
FeodorFitsner Oct 6, 2025
0d9760a
Add flet-audio-recorder package and example
FeodorFitsner Oct 6, 2025
bbb4b16
Add flet-charts package and chart examples
FeodorFitsner Oct 7, 2025
50f9b89
Add example image to scatter chart documentation
FeodorFitsner Oct 7, 2025
cc1995c
Add flet-video package and update video dependencies
FeodorFitsner Oct 7, 2025
83e9c96
Fix Video example
FeodorFitsner Oct 7, 2025
760abb7
Add flet-lottie package and update dependencies
FeodorFitsner Oct 7, 2025
ac7a058
Add flet-map package and example integration
FeodorFitsner Oct 7, 2025
453849c
Add flet-rive extension for Rive animation support
FeodorFitsner Oct 7, 2025
66ccd43
Add flet-permission-handler extension and docs
FeodorFitsner Oct 7, 2025
9768b04
Add flet-geolocator package and example
FeodorFitsner Oct 7, 2025
62a7fcf
Refactor text style and value handling in DropdownM2
FeodorFitsner Oct 8, 2025
154f6e6
Add flet-datatable2, flet-flashlight, flet-webview packages
FeodorFitsner Oct 8, 2025
ca216d5
Add CI workflow for building Flet extension packages
FeodorFitsner Oct 8, 2025
76d56d3
Remove pubspec.lock after Flutter analysis
FeodorFitsner Oct 8, 2025
c0ef717
Add manual notify method to Observable and task status callback
FeodorFitsner Oct 8, 2025
89dd02a
Improve alt text generation in image macro
FeodorFitsner Oct 9, 2025
c9aacc2
Update CI workflow and README build badge
FeodorFitsner Oct 9, 2025
5826b89
Expand supported Python versions to <3.15
FeodorFitsner Oct 9, 2025
2c23b9b
Update Flutter version and dependencies
FeodorFitsner Oct 9, 2025
8a01e82
Make chart axis properties optional in chart classes
FeodorFitsner Oct 9, 2025
6a57aed
Add CandlestickChart control and documentation
FeodorFitsner Oct 9, 2025
63b5089
Remove timeout parameters from service methods
FeodorFitsner Oct 9, 2025
5b2fdf3
Add and improve docstrings for map and video modules
FeodorFitsner Oct 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
105 changes: 104 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -547,6 +547,90 @@ jobs:
sdk/python/dist/*.whl
sdk/python/dist/*.tar.gz

# ============================================
# Build Flet extension Python packages
# ============================================
build_flet_extensions:
name: Build ${{ matrix.package }} extension
runs-on: ubuntu-latest
needs:
- python_tests
- build_flet_package
env:
PYPI_VER: ${{ needs.build_flet_package.outputs.PYPI_VER }}
strategy:
fail-fast: false
matrix:
package:
- flet-ads
- flet-audio
- flet-audio-recorder
- flet-charts
- flet-datatable2
- flet-flashlight
- flet-geolocator
- flet-lottie
- flet-map
- flet-permission-handler
- flet-rive
- flet-video
- flet-webview
steps:
- name: Checkout repository
uses: actions/checkout@v4

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

- name: Setup Flutter
uses: kuhnroyal/flutter-fvm-config-action/setup@v3
with:
path: '.fvmrc'
cache: true

- name: Analyze Flutter package with dart analyze
shell: bash
run: |
set -euo pipefail
PACKAGE="${{ matrix.package }}"
FLUTTER_PACKAGE="${PACKAGE//-/_}"
FLUTTER_DIR="${SDK_PYTHON}/packages/${PACKAGE}/src/flutter/${FLUTTER_PACKAGE}"

if [[ ! -d "$FLUTTER_DIR" ]]; then
echo "Flutter directory $FLUTTER_DIR not found"
exit 1
fi

pushd "$FLUTTER_DIR"
flutter pub get
dart analyze
rm -f pubspec.lock
popd

- name: Build Python package
shell: bash
working-directory: ${{ env.SDK_PYTHON }}
run: |
set -euo pipefail
PACKAGE="${{ matrix.package }}"
PYPROJECT="packages/${PACKAGE}/pyproject.toml"

source "$SCRIPTS/common.sh"
patch_toml_versions "$PYPROJECT" "$PYPI_VER"

rm -rf dist
uv build --package "$PACKAGE" --wheel
uv build --package "$PACKAGE" --sdist

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: python-extension-${{ matrix.package }}
if-no-files-found: error
path: |
sdk/python/dist/*.whl
sdk/python/dist/*.tar.gz

# =====================================
# Build flet, flet-cli and flet-desktop
# =====================================
Expand Down Expand Up @@ -598,6 +682,7 @@ jobs:
- build_macos
- build_linux
- build_web
- build_flet_extensions
steps:
- name: Setup uv
uses: astral-sh/setup-uv@v6
Expand All @@ -613,7 +698,25 @@ jobs:
# remove client to avoid glob conflicts with its contents
rm -rf dist/client

for pkg in flet flet_cli flet_desktop flet_desktop_light flet_web; do
for pkg in \
flet \
flet_cli \
flet_desktop \
flet_desktop_light \
flet_web \
flet_ads \
flet_audio \
flet_audio_recorder \
flet_charts \
flet_datatable2 \
flet_flashlight \
flet_geolocator \
flet_lottie \
flet_map \
flet_permission_handler \
flet_rive \
flet_video \
flet_webview; do
uv publish dist/**/${pkg}-*
done

Expand Down
126 changes: 51 additions & 75 deletions client/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -282,111 +282,87 @@ packages:
flet_audio:
dependency: "direct main"
description:
path: "src/flutter/flet_audio"
ref: main
resolved-ref: "1e629a501a87b0c2c0a9956cf49552dc01efcbe5"
url: "https://github.com/flet-dev/flet-audio.git"
source: git
version: "0.2.0"
path: "../sdk/python/packages/flet-audio/src/flutter/flet_audio"
relative: true
source: path
version: "0.1.0"
flet_audio_recorder:
dependency: "direct main"
description:
path: "src/flutter/flet_audio_recorder"
ref: main
resolved-ref: e29cd51dec917fdb8b9e03d7bf4a71cb2f75217b
url: "https://github.com/flet-dev/flet-audio-recorder.git"
source: git
version: "0.2.0"
path: "../sdk/python/packages/flet-audio-recorder/src/flutter/flet_audio_recorder"
relative: true
source: path
version: "0.1.0"
flet_charts:
dependency: "direct main"
description:
path: "src/flutter/flet_charts"
ref: main
resolved-ref: "6902aeb244d676cb85f14268126df9c4fe7af084"
url: "https://github.com/flet-dev/flet-charts.git"
source: git
version: "0.2.0"
path: "../sdk/python/packages/flet-charts/src/flutter/flet_charts"
relative: true
source: path
version: "0.1.0"
flet_datatable2:
dependency: "direct main"
description:
path: "src/flutter/flet_datatable2"
ref: main
resolved-ref: b53fba432acf42e01505acba5898bc47d7d25797
url: "https://github.com/flet-dev/flet-datatable2.git"
source: git
path: "../sdk/python/packages/flet-datatable2/src/flutter/flet_datatable2"
relative: true
source: path
version: "0.1.0"
flet_flashlight:
dependency: "direct main"
description:
path: "src/flutter/flet_flashlight"
ref: main
resolved-ref: "0862f0324f4a0c1a405b2c1dc23e3857175b36cc"
url: "https://github.com/flet-dev/flet-flashlight.git"
source: git
version: "0.2.0"
path: "../sdk/python/packages/flet-flashlight/src/flutter/flet_flashlight"
relative: true
source: path
version: "0.1.0"
flet_geolocator:
dependency: "direct main"
description:
path: "src/flutter/flet_geolocator"
ref: main
resolved-ref: "8381f3605b09eec6cbf02c44abb8216aaedf22b2"
url: "https://github.com/flet-dev/flet-geolocator.git"
source: git
version: "0.25.2"
path: "../sdk/python/packages/flet-geolocator/src/flutter/flet_geolocator"
relative: true
source: path
version: "0.1.0"
flet_lottie:
dependency: "direct main"
description:
path: "src/flutter/flet_lottie"
ref: main
resolved-ref: c9e8db9bab3ae0054de4e7b3fcb3fe282f6d8ee6
url: "https://github.com/flet-dev/flet-lottie.git"
source: git
version: "0.2.0"
path: "../sdk/python/packages/flet-lottie/src/flutter/flet_lottie"
relative: true
source: path
version: "0.1.0"
flet_map:
dependency: "direct main"
description:
path: "src/flutter/flet_map"
ref: main
resolved-ref: "3575ca7dc80251e6b0ac7648ff2620adb84db412"
url: "https://github.com/flet-dev/flet-map.git"
source: git
version: "0.2.0"
path: "../sdk/python/packages/flet-map/src/flutter/flet_map"
relative: true
source: path
version: "0.1.0"
flet_permission_handler:
dependency: "direct main"
description:
path: "src/flutter/flet_permission_handler"
ref: main
resolved-ref: "6c9ac6c2c5608e00603c542a13e545ffba637398"
url: "https://github.com/flet-dev/flet-permission-handler.git"
source: git
version: "0.2.0"
path: "../sdk/python/packages/flet-permission-handler/src/flutter/flet_permission_handler"
relative: true
source: path
version: "0.1.0"
flet_rive:
dependency: "direct main"
description:
path: "src/flutter/flet_rive"
ref: main
resolved-ref: "6c9164f842e2d2b7ef27f09ab3bec163b63f6ac8"
url: "https://github.com/flet-dev/flet-rive.git"
source: git
version: "0.2.0"
path: "../sdk/python/packages/flet-rive/src/flutter/flet_rive"
relative: true
source: path
version: "0.1.0"
flet_video:
dependency: "direct main"
description:
path: "src/flutter/flet_video"
ref: main
resolved-ref: "9292cab1b40ce5ef81e9012421c05ce03d910133"
url: "https://github.com/flet-dev/flet-video.git"
source: git
version: "0.2.0"
path: "../sdk/python/packages/flet-video/src/flutter/flet_video"
relative: true
source: path
version: "0.1.0"
flet_webview:
dependency: "direct main"
description:
path: "src/flutter/flet_webview"
ref: main
resolved-ref: "4ae806ad9019a9d3883d1c0c88e30ba61aacb696"
url: "https://github.com/flet-dev/flet-webview.git"
source: git
version: "0.2.0"
path: "../sdk/python/packages/flet-webview/src/flutter/flet_webview"
relative: true
source: path
version: "0.1.0"
flutter:
dependency: "direct main"
description: flutter
Expand Down Expand Up @@ -914,18 +890,18 @@ packages:
dependency: transitive
description:
name: permission_handler
sha256: bc917da36261b00137bbc8896bf1482169cd76f866282368948f032c8c1caae1
sha256: "18bf33f7fefbd812f37e72091a15575e72d5318854877e0e4035a24ac1113ecb"
url: "https://pub.dev"
source: hosted
version: "12.0.1"
version: "11.3.1"
permission_handler_android:
dependency: transitive
description:
name: permission_handler_android
sha256: "1e3bc410ca1bf84662104b100eb126e066cb55791b7451307f9708d4007350e6"
sha256: d3971dcdd76182a0c198c096b5db2f0884b0d4196723d21a866fc4cdea057ebc
url: "https://pub.dev"
source: hosted
version: "13.0.1"
version: "12.1.0"
permission_handler_apple:
dependency: transitive
description:
Expand Down
Loading
Loading