# Announcing Flower 1.21.0

**URL:** <https://discuss.flower.ai/t/announcing-flower-1-21-0/1097>\
**Category:** General\
**Tags:** flower, release\
**Created:** [September 10, 2025, 1:04pm UTC](https://discuss.flower.ai/t/announcing-flower-1-21-0/1097 "2025-09-10T13:04:37Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![pan-h](https://dub1.discourse-cdn.com/flex013/user_avatar/discuss.flower.ai/pan-h/32/67_2.png) [@pan-h](https://discuss.flower.ai/u/pan-h)\
**Post date:** [September 10, 2025, 1:04pm UTC](https://discuss.flower.ai/t/announcing-flower-1-21-0/1097/1 "2025-09-10T13:04:37Z")

</div>

![flwr1220-1](https://europe1.discourse-cdn.com/flex013/uploads/flower/original/1X/d44c96203c6394c1f0c489d7f483e0d3d2901f6c.jpeg)

With just a little over two weeks until [Flower AI Day](https://flower.ai/events/flower-ai-day-2025/) in San Francisco (Sep 25) and the [Flower Decentralized AI Hackathon](https://flower.ai/events/decentralized-ai-hackathon-2025/) at Stanford (Sep 26), the Flower team is excited to announce the release of Flower 1.21 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`, `Dimitris Stripelis`, `Evram`, `Heng Pan`, `Javier`, `Robert Steiner`, `Yan Gao`

### What’s new?

- **Introduce Message API strategies** ([#5710](https://github.com/adap/flower/pull/5710), [#5766](https://github.com/adap/flower/pull/5766), [#5770](https://github.com/adap/flower/pull/5770), [#5771](https://github.com/adap/flower/pull/5771), [#5774](https://github.com/adap/flower/pull/5774), [#5779](https://github.com/adap/flower/pull/5779), [#5787](https://github.com/adap/flower/pull/5787), [#5794](https://github.com/adap/flower/pull/5794), [#5798](https://github.com/adap/flower/pull/5798), [#5804](https://github.com/adap/flower/pull/5804), [#5807](https://github.com/adap/flower/pull/5807), [#5813](https://github.com/adap/flower/pull/5813), [#5824](https://github.com/adap/flower/pull/5824), [#5831](https://github.com/adap/flower/pull/5831), [#5838](https://github.com/adap/flower/pull/5838))

- **Introduce Flower SuperExec** ([#5659](https://github.com/adap/flower/pull/5659), [#5674](https://github.com/adap/flower/pull/5674), [#5678](https://github.com/adap/flower/pull/5678), [#5680](https://github.com/adap/flower/pull/5680), [#5682](https://github.com/adap/flower/pull/5682), [#5683](https://github.com/adap/flower/pull/5683), [#5685](https://github.com/adap/flower/pull/5685), [#5696](https://github.com/adap/flower/pull/5696), [#5699](https://github.com/adap/flower/pull/5699), [#5700](https://github.com/adap/flower/pull/5700), [#5701](https://github.com/adap/flower/pull/5701), [#5702](https://github.com/adap/flower/pull/5702), [#5703](https://github.com/adap/flower/pull/5703), [#5706](https://github.com/adap/flower/pull/5706), [#5713](https://github.com/adap/flower/pull/5713), [#5726](https://github.com/adap/flower/pull/5726), [#5731](https://github.com/adap/flower/pull/5731), [#5734](https://github.com/adap/flower/pull/5734), [#5735](https://github.com/adap/flower/pull/5735), [#5737](https://github.com/adap/flower/pull/5737), [#5751](https://github.com/adap/flower/pull/5751), [#5759](https://github.com/adap/flower/pull/5759), [#5811](https://github.com/adap/flower/pull/5811), [#5828](https://github.com/adap/flower/pull/5828))

- **Update quickstart-pytorch to use Message API** ([#5785](https://github.com/adap/flower/pull/5785), [#5786](https://github.com/adap/flower/pull/5786), [#5802](https://github.com/adap/flower/pull/5802))

- **New PyTorch template with Message API** ([#5784](https://github.com/adap/flower/pull/5784))

- **Add OpenShift deployment guide for Flower** ([#5781](https://github.com/adap/flower/pull/5781))

- **Improve Helm documentation** ([#5711](https://github.com/adap/flower/pull/5711), [#5733](https://github.com/adap/flower/pull/5733), [#5748](https://github.com/adap/flower/pull/5748), [#5758](https://github.com/adap/flower/pull/5758), [#5765](https://github.com/adap/flower/pull/5765), [#5816](https://github.com/adap/flower/pull/5816))

- **Improve documentation** ([#5159](https://github.com/adap/flower/pull/5159), [#5655](https://github.com/adap/flower/pull/5655), [#5668](https://github.com/adap/flower/pull/5668), [#5692](https://github.com/adap/flower/pull/5692), [#5723](https://github.com/adap/flower/pull/5723), [#5738](https://github.com/adap/flower/pull/5738), [#5739](https://github.com/adap/flower/pull/5739), [#5740](https://github.com/adap/flower/pull/5740), [#5753](https://github.com/adap/flower/pull/5753), [#5764](https://github.com/adap/flower/pull/5764), [#5769](https://github.com/adap/flower/pull/5769), [#5775](https://github.com/adap/flower/pull/5775), [#5782](https://github.com/adap/flower/pull/5782), [#5788](https://github.com/adap/flower/pull/5788), [#5795](https://github.com/adap/flower/pull/5795), [#5809](https://github.com/adap/flower/pull/5809), [#5812](https://github.com/adap/flower/pull/5812), [#5817](https://github.com/adap/flower/pull/5817), [#5819](https://github.com/adap/flower/pull/5819), [#5825](https://github.com/adap/flower/pull/5825), [#5836](https://github.com/adap/flower/pull/5836))

- **Re-export user-facing API from `flwr.*app`** ([#5814](https://github.com/adap/flower/pull/5814), [#5821](https://github.com/adap/flower/pull/5821), [#5832](https://github.com/adap/flower/pull/5832), [#5835](https://github.com/adap/flower/pull/5835))

- **Add `--health-server-address` flag to Flower SuperLink/SuperNode/SuperExec** ([#5792](https://github.com/adap/flower/pull/5792))

- **Update CI/CD workflows and dependencies** ([#5647](https://github.com/adap/flower/pull/5647), [#5650](https://github.com/adap/flower/pull/5650), [#5651](https://github.com/adap/flower/pull/5651), [#5656](https://github.com/adap/flower/pull/5656), [#5712](https://github.com/adap/flower/pull/5712), [#5714](https://github.com/adap/flower/pull/5714), [#5747](https://github.com/adap/flower/pull/5747), [#5754](https://github.com/adap/flower/pull/5754), [#5755](https://github.com/adap/flower/pull/5755), [#5796](https://github.com/adap/flower/pull/5796), [#5806](https://github.com/adap/flower/pull/5806), [#5808](https://github.com/adap/flower/pull/5808), [#5829](https://github.com/adap/flower/pull/5829))

- **General improvements** ([#5622](https://github.com/adap/flower/pull/5622), [#5660](https://github.com/adap/flower/pull/5660), [#5673](https://github.com/adap/flower/pull/5673), [#5675](https://github.com/adap/flower/pull/5675), [#5676](https://github.com/adap/flower/pull/5676), [#5686](https://github.com/adap/flower/pull/5686), [#5697](https://github.com/adap/flower/pull/5697), [#5708](https://github.com/adap/flower/pull/5708), [#5719](https://github.com/adap/flower/pull/5719), [#5720](https://github.com/adap/flower/pull/5720), [#5722](https://github.com/adap/flower/pull/5722), [#5736](https://github.com/adap/flower/pull/5736), [#5746](https://github.com/adap/flower/pull/5746), [#5750](https://github.com/adap/flower/pull/5750), [#5757](https://github.com/adap/flower/pull/5757), [#5776](https://github.com/adap/flower/pull/5776), [#5777](https://github.com/adap/flower/pull/5777), [#5789](https://github.com/adap/flower/pull/5789), [#5805](https://github.com/adap/flower/pull/5805), [#5797](https://github.com/adap/flower/pull/5797), [#5820](https://github.com/adap/flower/pull/5820))

### Incompatible changes

- **Rename Exec API to Control API** ([#5663](https://github.com/adap/flower/pull/5663), [#5665](https://github.com/adap/flower/pull/5665), [#5667](https://github.com/adap/flower/pull/5667), [#5671](https://github.com/adap/flower/pull/5671))

- **Deprecate `flwr-*` commands** ([#5707](https://github.com/adap/flower/pull/5707), [#5725](https://github.com/adap/flower/pull/5725), [#5727](https://github.com/adap/flower/pull/5727), [#5760](https://github.com/adap/flower/pull/5760))

- **Remove `--executor*` flags** ([#5657](https://github.com/adap/flower/pull/5657), [#5745](https://github.com/adap/flower/pull/5745), [#5749](https://github.com/adap/flower/pull/5749))
