Register or Log In
Published

Announcing Flower 1.14

Photo of Chong Shen Ng
Chong Shen Ng
Research Engineer at Flower Labs

Share this post

Just before the end of 2024, the Flower Team is excited to announce the release of Flower 1.14 stable and it's packed with 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. Happy holidays to all our users and contributors! 🎄🎉

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):

Adam Narozniak, Charles Beauville, Chong Shen Ng, Daniel Nata Nugraha, Dimitris Stripelis, Heng Pan, Javier, Meng Yan, Mohammad Naseri, Robert Steiner, Taner Topal, Vidit Khandelwal, Yan Gao

What's new?

  • Introduce flwr stop command (#4647, #4629, #4694, #4646, #4634, #4700, #4684, #4642, #4682, #4683, #4639, #4668, #4658, #4693, #4704, #4729)

    The flwr stop command is now available to stop a submitted run. You can use it as follows:

    • flwr stop <run-id>
    • flwr stop <run-id> [<app>] [<federation>]

    This command instructs the SuperLink to terminate the specified run. While the execution of ServerApp and ClientApp processes will not be interrupted instantly, they will be informed of the stopped run and will gracefully terminate when they next communicate with the SuperLink.

  • Add JSON format output for CLI commands (#4610, #4613, #4710, #4621, #4612, #4619, #4611, #4620, #4712, #4633, #4632, #4711, #4714, #4734, #4738)

    The flwr run, flwr ls, and flwr stop commands now support JSON-formatted output using the --format json flag. This makes it easier to parse and integrate CLI output with other tools. Feel free to check the "How to Use CLI JSON output" guide for details!

  • Document Microsoft Azure deployment (#4625)

    A new how-to guide shows a simple Flower deployment for federated learning on Microsoft Azure VM instances.

  • Introduce OIDC user authentication infrastructure (#4630, #4244, #4602, #4618, #4717, #4719, #4745)

    Flower has supported SuperNode authentication since Flower 1.9. This release adds initial extension points for user authentication via OpenID Connect (OIDC).

  • Update FedRep baseline (#4681)

    We have started the process of migrating some baselines from using start_simulation to be launched via flwr run. We chose FedRep as the first baseline to migrate due to its very impressive results. New baselines can be created following a flwr run-compatible format by starting from the flwr new template for baselines. We welcome contributions! Read more in the how to contribute a baseline documentation.

  • Revamp simulation series tutorial (#4663, #4696)

    We have updated the Step-by-step Tutorial Series for Simulations. It now shows how to create and run Flower Apps via flwr run. The videos walk you through the process of creating custom strategies, effectively make use of metrics between ClientApp and ServerApp, create global model checkpoints, log metrics to Weights & Biases, and more.

  • Improve connection reliability (#4649, #4636, #4637)

    Connections between ServerApp<>SuperLink, ClientApp<>SuperNode, and SuperLink<>Simulation are now more robust against network issues.

  • Fix flwr new issue on Windows (#4653)

    The flwr new command now works correctly on Windows by setting UTF-8 encoding, ensuring compatibility across all platforms when creating and transferring files.

  • Update examples and flwr new templates (#4725, #4724, #4589, #4690, #4708, #4689, #4740, #4741, #4744)

    Code examples and flwr new templates have been updated to improve compatibility and usability. Notable changes include removing unnecessary numpy dependencies, upgrading the mlx version, and enhancing the authentication example. A link to previous tutorial versions has also been added for reference.

  • Improve documentation (#4713, #4624, #4606, #4596, #4695, #4654, #4656, #4603, #4727, #4723, #4598, #4661, #4655, #4659)

    Documentation has been improved with updated docstrings, typo fixes, and new contributions guidance. Automated updates ensure source texts for translations stay current.

  • Update infrastructure and CI/CD (#4614, #4686, #4587, #4715, #4728, #4679, #4675, #4680, #4676)

  • Bugfixes (#4677, #4671, #4670, #4674, #4687, #4605, #4736)

  • General improvements (#4631, #4660, #4599, #4672, #4705, #4688, #4691, #4706, #4709, #4623, #4697, #4597, #4721, #4730, #4720, #4747, #4716, #4752)

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

Incompatible changes

  • Remove context property from Client and NumPyClient (#4652)

    Now that Context is available as an argument in client_fn and server_fn, the context property is removed from Client and NumPyClient. This feature has been deprecated for several releases and is now removed.


Share this post