|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -## Unreleased |
| 3 | +## v1.24.0 (2025-11-30) |
| 4 | + |
| 5 | +### Thanks to our contributors |
| 6 | + |
| 7 | +We would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order): |
| 8 | + |
| 9 | +`Charles Beauville`, `Chong Shen Ng`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Heng Pan`, `Javier`, `Patrick Foley`, `Robert Steiner`, `Yan Gao` <!---TOKEN_v1.24.0--> |
| 10 | + |
| 11 | +### What's new? |
| 12 | + |
| 13 | +- **Add Python 3.13 support** ([#6116](https://github.com/adap/flower/pull/6116), [#6119](https://github.com/adap/flower/pull/6119), [#6132](https://github.com/adap/flower/pull/6132)) |
| 14 | + |
| 15 | + `flwr` now supports Python 3.13, with CI and dataset tests updated accordingly and `ray` bumped to ensure compatibility. |
| 16 | + |
| 17 | +- **Improve the `flwr list` view** ([#6117](https://github.com/adap/flower/pull/6117)) |
| 18 | + |
| 19 | + `flwr list` now shows fewer details by default, while providing expanded information when using the `--run-id` flag. |
| 20 | + |
| 21 | +- **Extend federation commands and internal APIs** ([#6067](https://github.com/adap/flower/pull/6067), [#6068](https://github.com/adap/flower/pull/6068), [#6078](https://github.com/adap/flower/pull/6078), [#6082](https://github.com/adap/flower/pull/6082), [#6086](https://github.com/adap/flower/pull/6086), [#6087](https://github.com/adap/flower/pull/6087), [#6088](https://github.com/adap/flower/pull/6088), [#6090](https://github.com/adap/flower/pull/6090), [#6091](https://github.com/adap/flower/pull/6091), [#6092](https://github.com/adap/flower/pull/6092), [#6093](https://github.com/adap/flower/pull/6093), [#6094](https://github.com/adap/flower/pull/6094), [#6098](https://github.com/adap/flower/pull/6098), [#6103](https://github.com/adap/flower/pull/6103), [#6105](https://github.com/adap/flower/pull/6105), [#6121](https://github.com/adap/flower/pull/6121), [#6122](https://github.com/adap/flower/pull/6122), [#6143](https://github.com/adap/flower/pull/6143), [#6152](https://github.com/adap/flower/pull/6152), [#6153](https://github.com/adap/flower/pull/6153), [#6154](https://github.com/adap/flower/pull/6154), [#6158](https://github.com/adap/flower/pull/6158), [#6165](https://github.com/adap/flower/pull/6165), [#6167](https://github.com/adap/flower/pull/6167)) |
| 22 | + |
| 23 | + These updates refine and extend the existing federation concept. `flwr federation show` and `flwr federation list` now provide clearer visibility into SuperNodes and runs in the default federation. |
| 24 | + |
| 25 | +- **Introduce unified app heartbeat mechanism** ([#6204](https://github.com/adap/flower/pull/6204), [#6206](https://github.com/adap/flower/pull/6206), [#6209](https://github.com/adap/flower/pull/6209), [#6210](https://github.com/adap/flower/pull/6210), [#6212](https://github.com/adap/flower/pull/6212), [#6213](https://github.com/adap/flower/pull/6213), [#6214](https://github.com/adap/flower/pull/6214), [#6215](https://github.com/adap/flower/pull/6215), [#6218](https://github.com/adap/flower/pull/6218), [#6219](https://github.com/adap/flower/pull/6219), [#6221](https://github.com/adap/flower/pull/6221), [#6224](https://github.com/adap/flower/pull/6224), [#6225](https://github.com/adap/flower/pull/6225), [#6226](https://github.com/adap/flower/pull/6226), [#6227](https://github.com/adap/flower/pull/6227)) |
| 26 | + |
| 27 | + Introduces a unified heartbeat mechanism for app processes, preventing hangs when an app process crashes without responding. The new system enables `flwr-serverapp` and `flwr-simulation` processes to exit more quickly when a run is stopped by the `flwr stop` command. |
| 28 | + |
| 29 | +- **Fix bugs** ([#6188](https://github.com/adap/flower/pull/6188), [#6171](https://github.com/adap/flower/pull/6171), [#6175](https://github.com/adap/flower/pull/6175), [#6207](https://github.com/adap/flower/pull/6207)) |
| 30 | + |
| 31 | + Resolves issues causing occasional missing or unregistered object IDs on lower-powered machines, prevent the `flwr-serverapp` process from hanging after being stopped via the CLI, and correct the `finished_at` timestamp and initial heartbeat interval for runs. |
| 32 | + |
| 33 | +- **Improve import performance** ([#6102](https://github.com/adap/flower/pull/6102)) |
| 34 | + |
| 35 | +- **Improve internal SQLite database performance** ([#6178](https://github.com/adap/flower/pull/6178), [#6195](https://github.com/adap/flower/pull/6195)) |
| 36 | + |
| 37 | +- **Update CI workflows and development tooling** ([#5242](https://github.com/adap/flower/pull/5242), [#6053](https://github.com/adap/flower/pull/6053), [#6080](https://github.com/adap/flower/pull/6080), [#6089](https://github.com/adap/flower/pull/6089), [#6108](https://github.com/adap/flower/pull/6108), [#6129](https://github.com/adap/flower/pull/6129), [#6130](https://github.com/adap/flower/pull/6130), [#6131](https://github.com/adap/flower/pull/6131), [#6135](https://github.com/adap/flower/pull/6135), [#6138](https://github.com/adap/flower/pull/6138), [#6142](https://github.com/adap/flower/pull/6142), [#6144](https://github.com/adap/flower/pull/6144), [#6156](https://github.com/adap/flower/pull/6156), [#6181](https://github.com/adap/flower/pull/6181), [#6187](https://github.com/adap/flower/pull/6187), [#6189](https://github.com/adap/flower/pull/6189)) |
| 38 | + |
| 39 | +- **Update documentation** ([#6115](https://github.com/adap/flower/pull/6115), [#6081](https://github.com/adap/flower/pull/6081), [#6110](https://github.com/adap/flower/pull/6110), [#6137](https://github.com/adap/flower/pull/6137), [#6146](https://github.com/adap/flower/pull/6146), [#6169](https://github.com/adap/flower/pull/6169), [#6179](https://github.com/adap/flower/pull/6179), [#6228](https://github.com/adap/flower/pull/6228)) |
| 40 | + |
| 41 | +- **General improvements** ([#6077](https://github.com/adap/flower/pull/6077), [#6083](https://github.com/adap/flower/pull/6083), [#6084](https://github.com/adap/flower/pull/6084), [#6095](https://github.com/adap/flower/pull/6095), [#6097](https://github.com/adap/flower/pull/6097), [#6100](https://github.com/adap/flower/pull/6100), [#6101](https://github.com/adap/flower/pull/6101), [#6109](https://github.com/adap/flower/pull/6109), [#6114](https://github.com/adap/flower/pull/6114), [#6123](https://github.com/adap/flower/pull/6123), [#6127](https://github.com/adap/flower/pull/6127), [#6139](https://github.com/adap/flower/pull/6139), [#6140](https://github.com/adap/flower/pull/6140), [#6150](https://github.com/adap/flower/pull/6150), [#6151](https://github.com/adap/flower/pull/6151), [#6157](https://github.com/adap/flower/pull/6157), [#6159](https://github.com/adap/flower/pull/6159), [#6160](https://github.com/adap/flower/pull/6160), [#6162](https://github.com/adap/flower/pull/6162), [#6164](https://github.com/adap/flower/pull/6164), [#6172](https://github.com/adap/flower/pull/6172), [#6173](https://github.com/adap/flower/pull/6173), [#6174](https://github.com/adap/flower/pull/6174), [#6180](https://github.com/adap/flower/pull/6180), [#6190](https://github.com/adap/flower/pull/6190), [#6191](https://github.com/adap/flower/pull/6191), [#6192](https://github.com/adap/flower/pull/6192), [#6193](https://github.com/adap/flower/pull/6193), [#6196](https://github.com/adap/flower/pull/6196), [#6197](https://github.com/adap/flower/pull/6197), [#6198](https://github.com/adap/flower/pull/6198), [#6199](https://github.com/adap/flower/pull/6199), [#6200](https://github.com/adap/flower/pull/6200), [#6202](https://github.com/adap/flower/pull/6202), [#6203](https://github.com/adap/flower/pull/6203), [#6205](https://github.com/adap/flower/pull/6205), [#6208](https://github.com/adap/flower/pull/6208), [#6211](https://github.com/adap/flower/pull/6211), [#6222](https://github.com/adap/flower/pull/6222), [#6223](https://github.com/adap/flower/pull/6223)) |
| 42 | + |
| 43 | + As always, many parts of the Flower framework and quality infrastructure were improved and updated. |
| 44 | + |
| 45 | +### Incompatible changes |
| 46 | + |
| 47 | +- **Drop Python 3.9 support** ([#6118](https://github.com/adap/flower/pull/6118), [#6136](https://github.com/adap/flower/pull/6136), [#6147](https://github.com/adap/flower/pull/6147)) |
| 48 | + |
| 49 | + `flwr` now requires Python 3.10 as the minimum supported version, with baselines and development scripts updated accordingly. |
| 50 | + |
| 51 | +- **Bump protobuf to 5.x** ([#6104](https://github.com/adap/flower/pull/6104)) |
| 52 | + |
| 53 | + Upgrades `protobuf` to `>=5.29.0`, ensuring `flwr` uses the latest gRPC stack and remains compatible with TensorFlow 2.20+. Note that this version is incompatible with TensorFlow versions earlier than 2.18. |
| 54 | + |
| 55 | +- **Deprecate `flwr.server.utils.tensorboard`** ([#6113](https://github.com/adap/flower/pull/6113)) |
| 56 | + |
| 57 | + The `flwr.server.utils.tensorboard` function is now deprecated, and a slow import issue occurring when `tensorflow` is installed has been resolved. |
4 | 58 |
|
5 | 59 | ## v1.23.0 (2025-11-03) |
6 | 60 |
|
|
0 commit comments