The Flower team is excited to announce the release of Flower 1.26 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, Flippchen, Heng Pan, Iason Ofeidis, Javier, Jun S, Soumik Sarker, Taner Topal, Yan Gao, nihonge
What's new?
-
Introduce centralized flwr CLI configuration (#6240, #6338, #6343, #6349, #6354, #6356, #6357, #6359, #6362, #6364, #6365, #6366, #6367, #6372, #6376, #6381, #6382, #6385, #6386, #6390, #6400, #6422, #6423, #6435, #6439, #6440, #6441, #6446, #6481, #6492, #6502, #6509, #6513, #6519)
Changes Flower CLI (flwr) configuration to introduce a new way to manage SuperLink connections and simulation settings in a central place (instead of Flower app's pyproject.toml). This enables flwr commands to be executed from any directory and allow reuse of named connections across different Flower apps. This change also removes the now obsolete enable-account-auth option. The central Flower CLI config fully replaces the legacy federation configuration in pyproject.toml, which is automatically migrated to the new Flower configuration format when running flwr commands. For usage details, see the Flower CLI reference and the Flower configuration documentation.
-
Enable automated database migrations on Flower version upgrades (#6345, #6355, #6370, #6371, #6378, #6379, #6380, #6383, #6384, #6387, #6388, #6389, #6396, #6398, #6402, #6403, #6404, #6406, #6407, #6408, #6410, #6411, #6424, #6425, #6426, #6433, #6436, #6448, #6450, #6457, #6459, #6460, #6469, #6477, #6478, #6521)
Refactors Flower's internal states implementations to introduce Alembic-based schema migrations with automatic upgrades. This ensures database compatibility across Flower versions and lays the groundwork for supporting more types of databases. See the database migration guide for details.
-
Improve CLI error handling and usability (#6432, #6437, #6444, #6462, #6467, #6505)
Updates flwr CLI to provide clearer and more consistent error formatting, improves CLI error messages and logging, and shows command aliases.
-
Improve reliability of network stack, ServerApp shutdown and Windows support (#6342, #6430, #6447, #6456, #6490, #6504)
Improves the reliability of message transmission and capacity tracking under unstable network conditions and high concurrency, improves Windows process handling and address resolution, and ensures graceful shutdown of flwr-serverapp.
-
Fix and improve framework documentation (#6312, #6336, #6351, #6397, #6401, #6434, #6455, #6470, #6485, #6506, #6508, #6511, #6512, #6516)
Fixes an incorrect learning rate key in the tutorial series, updates the clientappio address in the auth example, and improves the documentation UI by making the versioning sidebar scrollable to show all versions.
-
Update and maintain examples (#6331, #6334, #6369, #6395, #6419, #6474, #6488)
Updates the JAX quickstart, bumps example dependencies, makes the certificate generation script cross-platform, normalizes training loss in the PyTorch quickstart, and marks the legacy quickstart-pytorch example as deprecated.
-
Refine flwr federation CLI (#6340, #6461, #6463, #6468, #6476, #6479, #6480)
Removes flwr federation show in favor of flwr federation list. This makes the command more consistent with how flwr list works. The aligned command now supports detailed inspection via flwr federation list --federation <federation> and displays account names instead of account IDs.
-
Update CI/CD workflows and tests (#6301, #6321, #6330, #6346, #6347, #6348, #6352, #6373, #6375, #6394, #6445, #6449)
-
General improvements (#6320, #6323, #6324, #6325, #6326, #6327, #6335, #6337, #6339, #6344, #6350, #6353, #6358, #6360, #6361, #6377, #6409, #6412, #6414, #6415, #6416, #6417, #6418, #6421, #6431, #6452, #6458, #6465, #6471, #6472, #6475, #6482, #6484, #6487, #6491, #6495, #6496, #6497, #6498, #6500, #6503, #6507, #6510, #6515, #6518, #6522, #6524)
As always, many parts of the Flower framework and quality infrastructure were improved and updated.
Incompatible changes
-
Deprecate legacy flwr CLI configuration via pyproject.toml (#6374, #6393, #6399, #6405)
Deprecates the now-legacy flwr CLI configuration usage (where configuration lives in pyproject.toml) following the introduction of the (central, project-independent) Flower configuration. Refer to the Flower CLI reference or run flwr <command> --help for updated usage.
