-
Notifications
You must be signed in to change notification settings - Fork 611
Rive 0.14.0 #6025
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rive 0.14.0 #6025
Conversation
Migrates plugin references from rive_common to rive_native across all platforms and updates the Rive package to version 0.14.x. Refactors flet-rive extension and control implementation to use new Rive APIs, ensuring compatibility with the latest plugin changes.
Changelog files for multiple Flet Python packages updated to reflect the 0.80.0 release. Unreleased sections replaced with 0.80.0, and redundant version links and dates removed for consistency.
Added a step to run 'dart run rive_native:setup' with verbose and clean options for the macOS platform before building the Flutter macOS app. This ensures rive_native is properly configured during CI builds.
Appends the -v flag to the Flutter build command for Linux in the CI workflow to enable verbose output, aiding in debugging build issues.
Introduces conditional inclusion of the flet_rive package and related imports/extensions for ARM64 builds in CI, using marker comments for easy removal. Adds a Rive Native Setup shell script build phase to the macOS Xcode project to automate platform-specific setup. Updates pubspec.yaml and main.dart to wrap flet_rive references with marker comments for CI script processing.
The '-v' verbose flag was removed from the Flutter build command in the CI workflow for Linux. Also updated flet-rive changelog for version 0.80.3, noting migration to rive 0.14.0.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We've reviewed this pull request using the Sourcery rules engine
Deploying flet-examples with
|
| Latest commit: |
3ce0922
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://b1792b21.flet-examples.pages.dev |
| Branch Preview URL: | https://rive-0-14-0.flet-examples.pages.dev |
Deploying flet-docs with
|
| Latest commit: |
3ce0922
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://1e853707.flet-docs.pages.dev |
| Branch Preview URL: | https://rive-0-14-0.flet-docs.pages.dev |
Adds logic to the post_install hook to set the PROJECT_ROOT environment variable and change directory for rive_native shell script build phases. This ensures the build script runs in the correct project root directory.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR upgrades the Rive library from version 0.13.x to 0.14.0, primarily motivated by Google Play's requirement to support 16kb page sizes. As a consequence, Rive 0.14.x is no longer supported on Linux ARM64, requiring conditional compilation in the build system.
Changes:
- Migrated from rive 0.13.20 to rive ^0.14.0 with complete refactoring of the Flutter control to use the new native API
- Updated platform plugin registrations from rive_common to rive_native across Windows, macOS, and Linux
- Implemented conditional compilation to exclude Rive from Linux ARM64 builds via CI workflow and build markers
- Cleaned up CHANGELOGs across multiple extension packages, promoting unreleased 0.2.0 entries to versioned 0.80.0 releases
Reviewed changes
Copilot reviewed 27 out of 28 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| sdk/python/packages/flet-rive/src/flutter/flet_rive/pubspec.yaml | Updated Rive dependency from 0.13.20 to ^0.14.0 |
| sdk/python/packages/flet-rive/src/flutter/flet_rive/lib/src/rive.dart | Complete refactoring to use rive.File API with FutureBuilder, custom painter with pointer interaction, and proper resource lifecycle management |
| sdk/python/packages/flet-rive/src/flutter/flet_rive/lib/src/extension.dart | Added RiveNative.init() call in ensureInitialized() |
| sdk/python/packages/flet-rive/CHANGELOG.md | Added 0.80.3 entry for Rive 0.14.0 migration |
| client/pubspec.yaml | Added conditional compilation markers around flet_rive dependency |
| client/lib/main.dart | Added conditional compilation markers around flet_rive import and extension |
| client/pubspec.lock | Updated rive (0.13.20 → 0.14.1) and rive_common → rive_native (0.4.15 → 0.1.1) |
| client/windows/flutter/generated_plugins.cmake | Updated from rive_common to rive_native |
| client/windows/flutter/generated_plugin_registrant.cc | Updated plugin registration from RivePlugin to RiveNativePlugin |
| client/macos/Flutter/GeneratedPluginRegistrant.swift | Updated from rive_common to rive_native |
| client/macos/Runner.xcodeproj/project.pbxproj | Added Rive Native Setup build phase |
| client/macos/Podfile | Added post_install hook to patch rive_native setup script with PROJECT_ROOT |
| client/linux/flutter/generated_plugins.cmake | Updated from rive_common to rive_native |
| client/linux/flutter/generated_plugin_registrant.cc | Updated plugin registration from RivePlugin to RiveNativePlugin |
| client/android/app/build.gradle.kts | Changed minSdk from hardcoded 23 to flutter.minSdkVersion |
| .github/workflows/ci.yml | Added Linux ARM64 build logic to strip Rive client package and extension references |
| sdk/python/packages/flet-webview/CHANGELOG.md | Cleaned up version entries, removed future dates and comparison links |
| sdk/python/packages/flet-video/CHANGELOG.md | Cleaned up version entries, removed future dates and comparison links |
| sdk/python/packages/flet-permission-handler/CHANGELOG.md | Cleaned up version entries, removed future dates and comparison links |
| sdk/python/packages/flet-map/CHANGELOG.md | Cleaned up version entries |
| sdk/python/packages/flet-lottie/CHANGELOG.md | Cleaned up version entries, removed future dates and comparison links |
| sdk/python/packages/flet-geolocator/CHANGELOG.md | Cleaned up version entries |
| sdk/python/packages/flet-flashlight/CHANGELOG.md | Cleaned up version entries, removed future dates and comparison links |
| sdk/python/packages/flet-datatable2/CHANGELOG.md | Cleaned up version entries, removed future date (2025-03-16) and comparison links |
| sdk/python/packages/flet-charts/CHANGELOG.md | Cleaned up version entries, removed comparison links |
| sdk/python/packages/flet-audio/CHANGELOG.md | Cleaned up version entries, removed future dates and comparison links |
| sdk/python/packages/flet-audio-recorder/CHANGELOG.md | Cleaned up version entries, removed future dates and comparison links |
| sdk/python/packages/flet-ads/CHANGELOG.md | Cleaned up version entries, removed future dates and comparison links |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| fi | ||
| if [[ "$ARCH" == "arm64" ]]; then | ||
| # flet_rive is excluded for Linux ARM64 builds |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mention the reason or point to gh issue/pr?
Added a comment to clarify that rive_native's setup script should run from the project root to ensure pubspec.yaml is found in CI environments.
Clarified that Linux support for Rive animations is limited to x64 architecture in the documentation table.
Introduces a step to run 'dart run rive_native:setup' with verbose and clean options for the macOS platform before executing integration tests. This ensures the environment is properly configured for the tests.
The rive_native setup command is now run in a separate step before integration tests in the macOS workflow. This improves clarity and ensures the environment is prepared before tests execute.
Several test suites in the matrix have been commented out, reducing the number of integration tests run on macOS. The pytest log level was changed from INFO to DEBUG for more detailed output during test execution.
Runs 'flutter doctor' before setting up rive_native in the macOS integration tests workflow to ensure Flutter environment is properly configured.
Changed the GitHub Actions workflow to run macOS integration tests on macos-15 instead of macos-14 to ensure compatibility with the latest macOS environment.
The rive_native setup step in the CI workflow has been commented out, and the pytest log level for integration tests has been changed from DEBUG to INFO. This may help reduce log verbosity and address issues related to rive_native setup during macOS integration tests.
Changed the build_macos job to run on macos-15 instead of macos-latest in ci.yml. Enabled additional integration test suites in macos-integration-tests.yml by uncommenting them.
|
Can we replace rive animation or Lottie files in flet bootscreen instead of flutter loading ring |
…l on Linux (#6027) * Add flet-desktop-light package and update platform dependencies Introduces the flet-desktop-light Python package for Linux, updates dependency logic in flet/pyproject.toml to use platform-specific desktop packages, and adjusts pip utility to install the correct desktop package based on OS. Removes obsolete scripts and related workflow steps for patching package names and wheel dependencies. * Add flet-desktop-light to dependencies Included 'flet-desktop-light' in the dependencies list and updated the patch script to handle this new dependency. This ensures that version patching and dependency management now cover 'flet-desktop-light' alongside other Flet packages.
Replaced space with non-breaking space in the Linux support cell to improve table formatting and readability.
rive0.13.x is not allowed in Google Play (because of 16kb page size).Summary by Sourcery
Migrate the Rive integration to the new rive 0.14.0/native API while aligning client and plugin wiring, and finalize several Dart/Flutter extension packages for their 0.80.x releases.
New Features:
Enhancements:
Documentation: