Flower AI Summit 2026·April 15–16·London
Published

Announcing Flower 1.28

Share blogpost

Just two weeks before Flower AI Summit 2026, the Flower team is excited to announce the release of Flower 1.28 stable, packed with new updates!

Flower is a friendly framework for collaborative AI and data science. It makes novel approaches such as federated learning, federated evaluation, federated analytics, and fleet learning accessible to a wide audience of researchers and engineers.

Thanks to our contributors

We would like to give our special thanks to all the contributors who made the new version of Flower possible (in git shortlog order):

Charles Beauville, Chong Shen Ng, Daniel J. Beutel, Daniel Nata Nugraha, Heng Pan, Javier, Julian Rußmeyer, Micah Sheller, Mohammad Naseri, Patrick Foley, Taner Topal, William Lindskog, Yan Gao, xiaoyanshen799

What's new?

  • Introduce federation-based simulation configuration and management (#6787, #6790, #6791, #6806, #6813, #6820, #6821, #6826, #6829, #6837, #6846, #6848, #6857, #6858, #6859, #6860, #6861, #6865, #6867, #6882, #6883, #6888, #6895, #6907, #6934)

    Introduces simulation-capable federations and a mechanism to configure the Simulation Runtime that these federations use in both a persistent manner and with per-run overrides. For the former, the flwr federation simulation-config command is introduced; for the latter --federation-config can be used to dynamically override values at when submitting a run via flwr run. Updates documentation and provides a migration guide here. Refer to the updated Simulation Runtime guide for more details about running simulations with Flower.

  • Improve local SuperLink stability and configuration handling (#6797, #6873, #6874, #6889)

    Improves local SuperLink stability by improving SQLite bootstrap robustness and validating Control API availability before executing CLI calls. Allows magic values (":local:", ":local-in-memory:") for address fields in Flower configuration, which will be translated to the local SuperLink address. Ensures backward compatibility for .options-only connection configurations. Using .options fields in the Flower configuration (config.toml) is now deprecated. See Flower configuration guide for more details.

  • Add configurable FAB inclusion and exclusion rules (#6803, #6804, #6805, #6822, #6823, #6872, #6885)

    Introduces support for user-defined include and exclude patterns in FAB builds via configuration, with validation of pattern lists and extended matching capabilities. Ensures publish filters are applied before FAB build filters, standardizes metadata keys in pyproject.toml, and refactors supporting utilities. Updates documentation with guide on configuring inclusion and exclusion rules.

  • Introduce FAB format v1 validation rules and requirements (#6782, #6825, #6843, #6851, #6887)

    Introduces validation rules for FAB format version 1, requiring flwr-version-target to be specified and enforcing a lower bound for the flwr dependency in pyproject.toml. Adds license file requirements during FAB build.

  • Add non-blocking version update checks across Flower components (#6786, #6788, #6833, #6938)

    Adds non-blocking startup checks in the Flower CLI to detect newer versions of flwr in CLI. Allows disabling by setting environment variable FLWR_DISABLE_UPDATE_CHECK=1.

  • Support port 0 for automatic OS-assigned ports (#6795)

  • Add --version flag to Flower CLI components (#6781)

  • Add dynamic data seed option to FlowerTune LLM examples (#6831)

  • Add flwr federation remove-account command for managing federation membership (#6757, #6759, #6764, #6772, #6777, #6778, #6789)

  • Improve availability and reliability of message delivery and state handling (#6773, #6785, #6877, #6915)

  • Fix handling of scalar (0D) NumPy arrays in strategies and mods (#6783)

  • Improve documentation (#6332, #6742, #6771, #6834, #6838, #6910, #6929, #6941)

  • Improve CI/CD workflows and developer tooling (#6701, #6732, #6738, #6739, #6743, #6744, #6753, #6768, #6769, #6770, #6775, #6793, #6816, #6835)

  • General improvements (#6578, #6627, #6734, #6740, #6748, #6749, #6751, #6755, #6763, #6774, #6776, #6779, #6800, #6801, #6802, #6811, #6815, #6827, #6828, #6839, #6840, #6841, #6842, #6868, #6869, #6893, #6900, #6901, #6906, #6908, #6909, #6918, #6919, #6920, #6921, #6922, #6923, #6930, #6932)

    As always, many parts of the Flower framework and quality infrastructure were improved and updated.

Incompatible changes

  • Remove deprecated run_simulation Python entrypoint (#6752)

    Removes the previously deprecated run_simulation entrypoint to run simulations. The recommended way for launching simulations is flwr run. Refer to the quickstart-turorials for a short guide on how to run your simulations.

Share Blogpost