The Flower team is excited to announce the release of Flower 1.30 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, Micah Sheller, Mohammad Naseri, Patrick Foley, Taner Topal, Yan Gao
What's new?
-
Introduce the task system for executor process lifecycle management (#7030, #7031, #7036, #7040, #7044, #7047, #7053, #7054, #7058, #7068, #7069, #7078, #7079, #7080, #7081, #7083, #7087, #7088, #7089, #7090, #7094, #7095, #7097, #7100, #7101, #7102, #7105, #7106, #7110, #7111, #7112, #7115, #7116, #7117, #7118, #7122, #7139, #7144, #7151, #7153, #7157, #7158, #7163, #7167, #7180, #7184, #7197)
Introduces the task system as the foundation for managing task process lifecycles across the framework. Tasks represent executable units such as flwr-serverapp and flwr-clientapp, enabling consistent creation, claiming, activation, heartbeat tracking, completion, and logging. The change also refactors existing run and executor workflows to operate on tasks and links a run status to its primary task for improved orchestration and lifecycle tracking.
-
Add initial runtime version compatibility checks across framework components (#7038, #7067, #7077, #7084, #7091, #7092, #7093, #7103, #7107, #7108, #7113, #7141, #7146, #7160, #7191)
Introduces runtime version compatibility metadata and checks across Flower runtime components. AppIo communication for flwr-serverapp, flwr-simulation, and flwr-clientapp now enforces matching major.minor Flower releases, which prevents incompatible app runtime combinations from proceeding. Control API and Fleet API also observe runtime version metadata to prepare these paths for stricter compatibility handling in future releases.
-
Add TLS support for AppIo APIs (#6986, #7046, #7175)
Introduces TLS support for the ServerAppIo and ClientAppIo APIs. Adds root certificate configuration for flwr- commands and flower-superexec. Find out more details in the TLS guide.
-
Support dynamic ClientAppIo ports in SuperNode (#7128)
Fixes support for localhost:0 in the SuperNode ClientAppIo API.
-
Improve framework CI and release workflows (#7007, #7034, #7041, #7055, #7072, #7073, #7086, #7138, #7145, #7152, #7154, #7159, #7166, #7170, #7176, #7187)
-
Improve framework documentation (#7006, #7011, #7022, #7050, #7150, #7186)
-
General improvements (#7013, #7021, #7024, #7025, #7027, #7028, #7037, #7043, #7051, #7056, #7057, #7061, #7063, #7104, #7109, #7123, #7124, #7125, #7134, #7136, #7140, #7143, #7148, #7149, #7161, #7162, #7165, #7172, #7183, #7192, #7195, #7196, #7200, #7204)
As always, many parts of the Flower framework and quality infrastructure were improved and updated.
Incompatible changes
-
Disallow manually running internal flwr-* commands (#7019)
Removes support for manually starting flwr-serverapp, flwr-simulation, and flwr-clientapp; these commands can only be launched by SuperExec.
