|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## v1.26.0 (2026-02-05) |
| 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`, `Flippchen`, `Heng Pan`, `Iason Ofeidis`, `Javier`, `Jun S`, `Soumik Sarker`, `Taner Topal`, `Yan Gao`, `nihonge` <!---TOKEN_v1.26.0--> |
| 10 | + |
| 11 | +### What's new? |
| 12 | + |
| 13 | +- **Introduce centralized `flwr` CLI configuration** ([#6240](https://github.com/adap/flower/pull/6240), [#6338](https://github.com/adap/flower/pull/6338), [#6343](https://github.com/adap/flower/pull/6343), [#6349](https://github.com/adap/flower/pull/6349), [#6354](https://github.com/adap/flower/pull/6354), [#6356](https://github.com/adap/flower/pull/6356), [#6357](https://github.com/adap/flower/pull/6357), [#6359](https://github.com/adap/flower/pull/6359), [#6362](https://github.com/adap/flower/pull/6362), [#6364](https://github.com/adap/flower/pull/6364), [#6365](https://github.com/adap/flower/pull/6365), [#6366](https://github.com/adap/flower/pull/6366), [#6367](https://github.com/adap/flower/pull/6367), [#6372](https://github.com/adap/flower/pull/6372), [#6376](https://github.com/adap/flower/pull/6376), [#6381](https://github.com/adap/flower/pull/6381), [#6382](https://github.com/adap/flower/pull/6382), [#6385](https://github.com/adap/flower/pull/6385), [#6386](https://github.com/adap/flower/pull/6386), [#6390](https://github.com/adap/flower/pull/6390), [#6400](https://github.com/adap/flower/pull/6400), [#6422](https://github.com/adap/flower/pull/6422), [#6423](https://github.com/adap/flower/pull/6423), [#6435](https://github.com/adap/flower/pull/6435), [#6439](https://github.com/adap/flower/pull/6439), [#6440](https://github.com/adap/flower/pull/6440), [#6441](https://github.com/adap/flower/pull/6441), [#6446](https://github.com/adap/flower/pull/6446), [#6481](https://github.com/adap/flower/pull/6481), [#6492](https://github.com/adap/flower/pull/6492), [#6502](https://github.com/adap/flower/pull/6502), [#6509](https://github.com/adap/flower/pull/6509), [#6513](https://github.com/adap/flower/pull/6513), [#6519](https://github.com/adap/flower/pull/6519)) |
| 14 | + |
| 15 | + 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](https://flower.ai/docs/framework/main/en/ref-api-cli.html) and the [Flower configuration documentation](https://flower.ai/docs/framework/main/en/ref-flower-configuration.html). |
| 16 | + |
| 17 | +- **Enable automated database migrations on Flower version upgrades** ([#6345](https://github.com/adap/flower/pull/6345), [#6355](https://github.com/adap/flower/pull/6355), [#6370](https://github.com/adap/flower/pull/6370), [#6371](https://github.com/adap/flower/pull/6371), [#6378](https://github.com/adap/flower/pull/6378), [#6379](https://github.com/adap/flower/pull/6379), [#6380](https://github.com/adap/flower/pull/6380), [#6383](https://github.com/adap/flower/pull/6383), [#6384](https://github.com/adap/flower/pull/6384), [#6387](https://github.com/adap/flower/pull/6387), [#6388](https://github.com/adap/flower/pull/6388), [#6389](https://github.com/adap/flower/pull/6389), [#6396](https://github.com/adap/flower/pull/6396), [#6398](https://github.com/adap/flower/pull/6398), [#6402](https://github.com/adap/flower/pull/6402), [#6403](https://github.com/adap/flower/pull/6403), [#6404](https://github.com/adap/flower/pull/6404), [#6406](https://github.com/adap/flower/pull/6406), [#6407](https://github.com/adap/flower/pull/6407), [#6408](https://github.com/adap/flower/pull/6408), [#6410](https://github.com/adap/flower/pull/6410), [#6411](https://github.com/adap/flower/pull/6411), [#6424](https://github.com/adap/flower/pull/6424), [#6425](https://github.com/adap/flower/pull/6425), [#6426](https://github.com/adap/flower/pull/6426), [#6433](https://github.com/adap/flower/pull/6433), [#6436](https://github.com/adap/flower/pull/6436), [#6448](https://github.com/adap/flower/pull/6448), [#6450](https://github.com/adap/flower/pull/6450), [#6457](https://github.com/adap/flower/pull/6457), [#6459](https://github.com/adap/flower/pull/6459), [#6460](https://github.com/adap/flower/pull/6460), [#6469](https://github.com/adap/flower/pull/6469), [#6477](https://github.com/adap/flower/pull/6477), [#6478](https://github.com/adap/flower/pull/6478), [#6521](https://github.com/adap/flower/pull/6521)) |
| 18 | + |
| 19 | + 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](https://flower.ai/docs/framework/contributor-how-to-migrate-database.html) for details. |
| 20 | + |
| 21 | +- **Improve CLI error handling and usability** ([#6432](https://github.com/adap/flower/pull/6432), [#6437](https://github.com/adap/flower/pull/6437), [#6444](https://github.com/adap/flower/pull/6444), [#6462](https://github.com/adap/flower/pull/6462), [#6467](https://github.com/adap/flower/pull/6467), [#6505](https://github.com/adap/flower/pull/6505)) |
| 22 | + |
| 23 | + Updates `flwr` CLI to provide clearer and more consistent error formatting, improves CLI error messages and logging, and shows command aliases. |
| 24 | + |
| 25 | +- **Improve reliability of network stack, `ServerApp` shutdown and Windows support** ([#6342](https://github.com/adap/flower/pull/6342), [#6430](https://github.com/adap/flower/pull/6430), [#6447](https://github.com/adap/flower/pull/6447), [#6456](https://github.com/adap/flower/pull/6456), [#6490](https://github.com/adap/flower/pull/6490), [#6504](https://github.com/adap/flower/pull/6504)) |
| 26 | + |
| 27 | + 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`. |
| 28 | + |
| 29 | +- **Fix and improve framework documentation** ([#6312](https://github.com/adap/flower/pull/6312), [#6336](https://github.com/adap/flower/pull/6336), [#6351](https://github.com/adap/flower/pull/6351), [#6397](https://github.com/adap/flower/pull/6397), [#6401](https://github.com/adap/flower/pull/6401), [#6434](https://github.com/adap/flower/pull/6434), [#6455](https://github.com/adap/flower/pull/6455), [#6470](https://github.com/adap/flower/pull/6470), [#6485](https://github.com/adap/flower/pull/6485), [#6506](https://github.com/adap/flower/pull/6506), [#6508](https://github.com/adap/flower/pull/6508), [#6511](https://github.com/adap/flower/pull/6511), [#6512](https://github.com/adap/flower/pull/6512), [#6516](https://github.com/adap/flower/pull/6516)) |
| 30 | + |
| 31 | + 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. |
| 32 | + |
| 33 | +- **Update and maintain examples** ([#6331](https://github.com/adap/flower/pull/6331), [#6334](https://github.com/adap/flower/pull/6334), [#6369](https://github.com/adap/flower/pull/6369), [#6395](https://github.com/adap/flower/pull/6395), [#6419](https://github.com/adap/flower/pull/6419), [#6474](https://github.com/adap/flower/pull/6474), [#6488](https://github.com/adap/flower/pull/6488)) |
| 34 | + |
| 35 | + 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. |
| 36 | + |
| 37 | +- **Refine `flwr federation` CLI** ([#6340](https://github.com/adap/flower/pull/6340), [#6461](https://github.com/adap/flower/pull/6461), [#6463](https://github.com/adap/flower/pull/6463), [#6468](https://github.com/adap/flower/pull/6468), [#6476](https://github.com/adap/flower/pull/6476), [#6479](https://github.com/adap/flower/pull/6479), [#6480](https://github.com/adap/flower/pull/6480)) |
| 38 | + |
| 39 | + 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. |
| 40 | + |
| 41 | +- **Update CI/CD workflows and tests** ([#6301](https://github.com/adap/flower/pull/6301), [#6321](https://github.com/adap/flower/pull/6321), [#6330](https://github.com/adap/flower/pull/6330), [#6346](https://github.com/adap/flower/pull/6346), [#6347](https://github.com/adap/flower/pull/6347), [#6348](https://github.com/adap/flower/pull/6348), [#6352](https://github.com/adap/flower/pull/6352), [#6373](https://github.com/adap/flower/pull/6373), [#6375](https://github.com/adap/flower/pull/6375), [#6394](https://github.com/adap/flower/pull/6394), [#6445](https://github.com/adap/flower/pull/6445), [#6449](https://github.com/adap/flower/pull/6449)) |
| 42 | + |
| 43 | +- **General improvements** ([#6320](https://github.com/adap/flower/pull/6320), [#6323](https://github.com/adap/flower/pull/6323), [#6324](https://github.com/adap/flower/pull/6324), [#6325](https://github.com/adap/flower/pull/6325), [#6326](https://github.com/adap/flower/pull/6326), [#6327](https://github.com/adap/flower/pull/6327), [#6335](https://github.com/adap/flower/pull/6335), [#6337](https://github.com/adap/flower/pull/6337), [#6339](https://github.com/adap/flower/pull/6339), [#6344](https://github.com/adap/flower/pull/6344), [#6350](https://github.com/adap/flower/pull/6350), [#6353](https://github.com/adap/flower/pull/6353), [#6358](https://github.com/adap/flower/pull/6358), [#6360](https://github.com/adap/flower/pull/6360), [#6361](https://github.com/adap/flower/pull/6361), [#6377](https://github.com/adap/flower/pull/6377), [#6409](https://github.com/adap/flower/pull/6409), [#6412](https://github.com/adap/flower/pull/6412), [#6414](https://github.com/adap/flower/pull/6414), [#6415](https://github.com/adap/flower/pull/6415), [#6416](https://github.com/adap/flower/pull/6416), [#6417](https://github.com/adap/flower/pull/6417), [#6418](https://github.com/adap/flower/pull/6418), [#6421](https://github.com/adap/flower/pull/6421), [#6431](https://github.com/adap/flower/pull/6431), [#6452](https://github.com/adap/flower/pull/6452), [#6458](https://github.com/adap/flower/pull/6458), [#6465](https://github.com/adap/flower/pull/6465), [#6471](https://github.com/adap/flower/pull/6471), [#6472](https://github.com/adap/flower/pull/6472), [#6475](https://github.com/adap/flower/pull/6475), [#6482](https://github.com/adap/flower/pull/6482), [#6484](https://github.com/adap/flower/pull/6484), [#6487](https://github.com/adap/flower/pull/6487), [#6491](https://github.com/adap/flower/pull/6491), [#6495](https://github.com/adap/flower/pull/6495), [#6496](https://github.com/adap/flower/pull/6496), [#6497](https://github.com/adap/flower/pull/6497), [#6498](https://github.com/adap/flower/pull/6498), [#6500](https://github.com/adap/flower/pull/6500), [#6503](https://github.com/adap/flower/pull/6503), [#6507](https://github.com/adap/flower/pull/6507), [#6510](https://github.com/adap/flower/pull/6510), [#6515](https://github.com/adap/flower/pull/6515), [#6518](https://github.com/adap/flower/pull/6518), [#6522](https://github.com/adap/flower/pull/6522), [#6524](https://github.com/adap/flower/pull/6524)) |
| 44 | + |
| 45 | + As always, many parts of the Flower framework and quality infrastructure were improved and updated. |
| 46 | + |
| 47 | +### Incompatible changes |
| 48 | + |
| 49 | +- **Deprecate legacy `flwr` CLI configuration via `pyproject.toml`** ([#6374](https://github.com/adap/flower/pull/6374), [#6393](https://github.com/adap/flower/pull/6393), [#6399](https://github.com/adap/flower/pull/6399), [#6405](https://github.com/adap/flower/pull/6405)) |
| 50 | + |
| 51 | + 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](https://flower.ai/docs/framework/main/en/ref-api-cli.html) or run `flwr <command> --help` for updated usage. |
| 52 | + |
3 | 53 | ## v1.25.0 (2025-12-16) |
4 | 54 |
|
5 | 55 | ### Thanks to our contributors |
|
0 commit comments