Skip to content

Conversation

@FeodorFitsner
Copy link
Contributor

@FeodorFitsner FeodorFitsner commented Jan 19, 2026

Summary by Sourcery

Expand Linux client build and packaging to support multiple Debian and Ubuntu distributions and align desktop client resolution with distribution-specific packaging.

New Features:

  • Add per-distribution Linux build matrix entries for Debian 10/12 and Ubuntu 20.04/22.04/24.04 across amd64 and arm64 architectures.
  • Introduce distribution-aware storage paths for unpacked desktop clients based on the installed flet-desktop package variant.

Enhancements:

  • Update Linux build artifacts and wheel tagging to be distro- and manylinux-tag aware, including renamed tarball and artifact outputs.
  • Gate Rive client inclusion behind an explicit configuration flag rather than architecture alone.
  • Improve git safety configuration within CI containers and normalize version patching scripts to only touch uninitialized version fields.
  • Require desktop client archives to be present in the package installation instead of downloading them at runtime.

Build:

  • Run Linux builds inside distro-specific container images with additional required system packages and more robust apt handling, including support for archived Debian 10 repositories.

CI:

  • Refine Linux CI job definitions with distribution identifiers, manylinux tags, and updated artifact naming for clearer matrix runs and outputs.

The Linux build job now runs inside an ubuntu:20.04 container and installs required base packages before checking out the repository. Dependency installation steps have been updated to use apt-get and conditionally use sudo, with additional build tools and libraries included.
The CI workflow now installs jq alongside other required packages. This enables JSON processing in subsequent CI steps.
Added DEBIAN_FRONTEND=noninteractive and TZ=Etc/UTC environment variables to the base package installation step in the CI workflow. Also included tzdata in the list of installed packages to avoid interactive prompts and ensure consistent timezone settings.
Configures git to recognize /__w/flet/flet and /__t/flutter as safe directories in the CI workflow. This helps prevent git safety errors during automated builds.
Updated sed expressions in patch_python_package_versions to only match version assignment lines at the beginning of the line. This prevents accidental replacements elsewhere in the file.
Introduces a step in the CI workflow to mark the workspace and FLUTTER_ROOT as safe git directories. This helps prevent git safety errors in environments where the repository or dependencies are checked out in different locations.
Uncommented and activated the 'build_flet_package' job in the GitHub Actions CI workflow, allowing the Flet Flutter package to be built and published as part of the pipeline. Also updated client/pubspec.yaml to remove the build number from the version field.
Appends the -v flag to the 'flutter build linux' command in the CI workflow to enable verbose output, aiding in debugging build issues.
Added support for multiple Linux distributions and architectures in the CI build matrix, including Debian 10/12 and Ubuntu 20.04/22.04/24.04 for both amd64 and arm64. Updated environment variables, artifact naming, and packaging logic to reflect distribution and architecture, and improved Rive client handling with a new matrix flag.
Updates the APT sources and disables validity checks for Debian 10 in the CI workflow to ensure package installation works with archived repositories.
Replaces in-place sed commands with a direct overwrite of /etc/apt/sources.list for Debian 10 jobs, ensuring correct archive URLs are used for package installation in CI.
Replaces the use of a heredoc with printf for writing the Debian 10 sources.list in the CI workflow. This change improves readability and consistency in the script.
Added a conditional to ensure /etc/apt/sources.list exists before running sed to comment out PostgreSQL sources. This prevents errors in environments where the file may be missing.
Set rive_enabled to false for the Debian 12 AMD64 job in the CI workflow. This may be to temporarily bypass issues or incompatibilities with Rive on this platform.
Uncommented and activated previously disabled jobs in the GitHub Actions CI workflow, including Python tests, Windows, macOS, Web, extension builds, package publishing, and release steps. This change restores full CI/CD coverage for all platforms and package types.
Introduced __get_client_storage_dir() to centralize and improve the logic for determining the client storage directory, using the actual distribution name when available. Updated all relevant code paths to use this new function, enhancing maintainability and correctness.
Removed redundant temp_flet_dir checks and related code in __locate_and_unpack_flet_view. Now raises FileNotFoundError directly if the Flet executable is not found in the expected bin directory.
Copy link
Contributor

@sourcery-ai sourcery-ai bot left a 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

Eliminates conditional sudo logic in the CI workflow and runs apt-get and related commands directly. This simplifies the script and assumes the runner has sufficient privileges.
@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Jan 19, 2026

Deploying flet-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: eadb09e
Status: ✅  Deploy successful!
Preview URL: https://dccf07f1.flet-docs.pages.dev
Branch Preview URL: https://ubuntu-20-04.flet-docs.pages.dev

View logs

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Jan 19, 2026

Deploying flet-examples with  Cloudflare Pages  Cloudflare Pages

Latest commit: eadb09e
Status: ✅  Deploy successful!
Preview URL: https://e30684a1.flet-examples.pages.dev
Branch Preview URL: https://ubuntu-20-04.flet-examples.pages.dev

View logs

Replaces BUILD_VER with BUILD_NUM in CI scripts and workflows for clearer build number handling. Updates copyright years to 2023-2026 in macOS and Windows client files. Also updates the Flutter client version to include a build number in pubspec.yaml.
Removed win32 wheel repackaging and updated macOS x86_64 target from macosx_10_14 to macosx_12_0 in the CI workflow to align with current platform support.
The CI workflow now builds Flet Client for both x64 and ARM64 architectures on Windows using a matrix strategy. Artifact names, environment variables, and build paths have been updated to support multiple architectures.
The build jobs for Flet Client on macOS, Linux, and Web, as well as related extension and packaging jobs, have been commented out in the GitHub Actions workflow. This disables these jobs from running in CI, likely for maintenance, troubleshooting, or temporary deactivation.
Uncommented and activated build jobs for macOS, Linux, and Web clients in the GitHub Actions workflow. This change allows CI to build and upload artifacts for all major platforms, improving release automation and cross-platform support.
@FeodorFitsner FeodorFitsner merged commit 9d21f5b into main Jan 19, 2026
27 of 51 checks passed
@FeodorFitsner FeodorFitsner deleted the ubuntu-20-04 branch January 19, 2026 23:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants