Flower 1.15.0
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
, Haoran Jie
, Heng Pan
, Ivelin Ivanov
, Javier
, Kevin Patel
, Mohammad Naseri
, Pavlos Bouzinis
, Robert Steiner
What's new?
-
Enhance SuperNode authentication (#4767, #4791, #4765, #4857, #4867)
Enhances the SuperNode authentication system, making it more efficient and resilient against replay attacks. There's no longer a need to pass
--auth-superlink-private-key
and--auth-superlink-public-key
when running the SuperLink. Additionally, Flower now enables automatic node authentication by default, preventing impersonation even when node authentication is not explicitly used. For more details, see the documentation. -
Add guide for running Flower with Deployment Engine (#4811, #4733)
Introduces the How to run Flower with Deployment Engine guide, providing detailed instructions on deploying Federated Learning in production environments using the Flower Deployment Engine.
-
Add Flower Network Communication reference documentation (#4805)
Introduces the Flower Network Communication documentation, which details the network connections used in a deployed Flower federated AI system.
-
Add LeRobot quickstart example (#4607, #4816)
Introduces an example demonstrating federated training of a Diffusion policy on the PushT dataset using LeRobot and Flower. The dataset is partitioned with Flower Datasets, and the example runs best with a GPU. More details: Flower LeRobot Example.
-
Add video tutorial to simulation documentation (#4768)
The Flower AI Simulation 2025 tutorial series is now available on YouTube. You can watch all the videos here or via the embedded previews in the documentation. The accompanying code for the tutorial can be found in the Flower GitHub repository.
-
Introduce StatAvg baseline (#3921)
StatAvg mitigates non-IID feature distributions in federated learning by sharing and aggregating data statistics before training. It is compatible with any FL aggregation strategy. More details: StatAvg baseline.
-
Allow setting log level via environment variable (#4860, #4880, #4886)
Log level can now be configured using the
FLWR_LOG_LEVEL
environment variable. For example, runningFLWR_LOG_LEVEL=DEBUG flower-superlink --insecure
will set the log level to DEBUG. For more details, see the guide. -
Enable dynamic overrides for federation configuration in CLI (#4841, #4843, #4838)
Similar to how the
--run-config
flag allows overriding the run configuration inflwr run
, the new--federation-config
flag enables dynamic overrides for federation configurations. This flag is supported in allflwr
CLI commands exceptflwr build
,flwr install
, andflwr new
. -
Migrate TaskIns/TaskRes to Message-based communication (#4311, #4310, #4849, #4308, #4307, #4800, #4309, #4875, #4874, #4877, #4876)
The Fleet API and the ServerAppIO API (formerly known as the Driver API) now use message-based communication instead of TaskIns/TaskRes, making interactions more intuitive and better aligned with their Python counterparts. This migration introduces new RPCs, such as
PullMessages
,PushMessages
, and other message-based operations in the gRPC stack. -
Introduce exit codes (#4801, #4845)
Improves system error and help messages by introducing a dedicated
flwr_exit
function with standardized exit codes. -
Update gRPC-related dependencies (#4833, #4836, #4887)
Increases the version numbers of gRPC-related dependencies. In rare cases, if you encounter pip warnings about unresolved gRPC dependencies, it may be due to residual dependencies from older Flower versions.
-
Update
app-pytorch
example (#4842)The app-pytorch example is revamped to use the low-level API.
-
Improve CLI-side user authentication (#4862, #4861, #4832, #4850, #4703, #4885)
User authentication in the CLI is enhanced with better handling, configuration options, and security enforcement.
-
Ensure graceful exit for SuperLink and SuperNode (#4829, #4846, #4798, #4826, #4881, #4797)
Ensures proper resource cleanup and prevents zombie subprocesses during SuperLink and SuperNode shutdown.
-
Improve documentation (#4380, #4853, #4214, #4215, #4863, #4825, #4759, #4851, #4779, #4813, #4812, #4761, #4859, #4754, #4839, #4216, #4852, #4869)
Updates PyTorch device selection in the tutorial series notebook and adds two molecular datasets to the
recommended-fl-datasets
table. Additional improvements include metadata updates, translation updates, and refinements to various documentation sections. -
Update Docker dependencies and documentation (#4763, #4804, #4762, #4803, #4753)
-
Update CI/CD (#4756, #4834, #4824, #3493, #4096, #4807, #3956, #3168, #4835, #4884)
-
General improvements (#4748, #4799, #4645, #4819, #4755, #4789, #4771, #4854, #4796, #4865, #4820, #4790, #4821, #4822, #4751, #4793, #4871, #4785, #4787, #4775, #4783, #4818, #4786, #4773, #4772, #4784, #4810, #4770, #4870, #4878, #4889, #4893)
As always, many parts of the Flower framework and quality infrastructure were improved and updated.
Incompatible changes
-
Remove deprecated
app
/--server
arguments fromflower-supernode
(#4864, #4891)The deprecated
app
and--server
arguments inflower-supernode
has been removed. Please use--superlink
instead of--server
. -
Deprecate
--auth-superlink-private-key
/--auth-superlink-public-key
arguments fromflower-superlink
(#4848)The two arguments are no longer necessary for SuperNode authentication following the recent improvement mentioned above.