Skip to content

Commit a958a63

Browse files
panh99danieljanes
andauthored
feat(framework) Update CHANGELOG for v1.15.0 (#4873)
Co-authored-by: Daniel J. Beutel <[email protected]>
1 parent 723dc21 commit a958a63

File tree

1 file changed

+89
-1
lines changed

1 file changed

+89
-1
lines changed

framework/docs/source/ref-changelog.md

Lines changed: 89 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,94 @@
11
# Changelog
22

3-
## Unreleased
3+
## v1.15.0 (2025-01-31)
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`, `Haoran Jie`, `Heng Pan`, `Ivelin Ivanov`, `Javier`, `Kevin Patel`, `Mohammad Naseri`, `Pavlos Bouzinis`, `Robert Steiner` <!---TOKEN_v1.15.0-->
10+
11+
### What's new?
12+
13+
- **Enhance SuperNode authentication** ([#4767](https://github.com/adap/flower/pull/4767), [#4791](https://github.com/adap/flower/pull/4791), [#4765](https://github.com/adap/flower/pull/4765), [#4857](https://github.com/adap/flower/pull/4857), [#4867](https://github.com/adap/flower/pull/4867))
14+
15+
Enhances the SuperNode authentication system, making it more efficient and resilient against replay attacks. There's no longer a need to pass `--auth-superlink-private-key` and `--auth-superlink-public-key` when running the SuperLink. Additionally, Flower now enables automatic node authentication by default, preventing impersonation even when node authentication is not explicitly used. For more details, see the [documentation](https://flower.ai/docs/framework/how-to-authenticate-supernodes.html).
16+
17+
- **Add guide for running Flower with Deployment Engine** ([#4811](https://github.com/adap/flower/pull/4811), [#4733](https://github.com/adap/flower/pull/4733))
18+
19+
Introduces the [How to run Flower with Deployment Engine](https://flower.ai/docs/framework/how-to-run-flower-with-deployment-engine.html) guide, providing detailed instructions on deploying Federated Learning in production environments using the Flower Deployment Engine.
20+
21+
- **Add Flower Network Communication reference documentation** ([#4805](https://github.com/adap/flower/pull/4805))
22+
23+
Introduces the [*Flower Network Communication*](https://flower.ai/docs/framework/ref-flower-network-communication.html) documentation, which details the network connections used in a deployed Flower federated AI system.
24+
25+
- **Add LeRobot quickstart example** ([#4607](https://github.com/adap/flower/pull/4607), [#4816](https://github.com/adap/flower/pull/4816))
26+
27+
Introduces an example demonstrating federated training of a Diffusion policy on the PushT dataset using LeRobot and Flower. The dataset is partitioned with Flower Datasets, and the example runs best with a GPU. More details: [Flower LeRobot Example](https://flower.ai/docs/examples/quickstart-lerobot.html).
28+
29+
- **Add video tutorial to simulation documentation** ([#4768](https://github.com/adap/flower/pull/4768))
30+
31+
The *Flower AI Simulation 2025* tutorial series is now available on YouTube. You can watch all the videos [here](https://www.youtube.com/playlist?list=PLNG4feLHqCWkdlSrEL2xbCtGa6QBxlUZb) or via the embedded previews in the [documentation](https://flower.ai/docs/framework/how-to-run-simulations.html). The accompanying code for the tutorial can be found in the [Flower GitHub repository](https://github.com/adap/flower/tree/main/examples/flower-simulation-step-by-step-pytorch).
32+
33+
- **Introduce StatAvg baseline** ([#3921](https://github.com/adap/flower/pull/3921))
34+
35+
StatAvg mitigates non-IID feature distributions in federated learning by sharing and aggregating data statistics before training. It is compatible with any FL aggregation strategy. More details: [StatAvg baseline](https://flower.ai/docs/baselines/statavg.html).
36+
37+
- **Allow setting log level via environment variable** ([#4860](https://github.com/adap/flower/pull/4860), [#4880](https://github.com/adap/flower/pull/4880), [#4886](https://github.com/adap/flower/pull/4886))
38+
39+
Log level can now be configured using the `FLWR_LOG_LEVEL` environment variable. For example, running `FLWR_LOG_LEVEL=DEBUG flower-superlink --insecure` will set the log level to DEBUG. For more details, see the [guide](https://flower.ai/docs/framework/how-to-configure-logging.html).
40+
41+
- **Enable dynamic overrides for federation configuration in CLI** ([#4841](https://github.com/adap/flower/pull/4841), [#4843](https://github.com/adap/flower/pull/4843), [#4838](https://github.com/adap/flower/pull/4838))
42+
43+
Similar to how the `--run-config` flag allows overriding the run configuration in `flwr run`, the new `--federation-config` flag enables dynamic overrides for federation configurations. This flag is supported in all `flwr` CLI commands except `flwr build`, `flwr install`, and `flwr new`.
44+
45+
- **Migrate TaskIns/TaskRes to Message-based communication** ([#4311](https://github.com/adap/flower/pull/4311), [#4310](https://github.com/adap/flower/pull/4310), [#4849](https://github.com/adap/flower/pull/4849), [#4308](https://github.com/adap/flower/pull/4308), [#4307](https://github.com/adap/flower/pull/4307), [#4800](https://github.com/adap/flower/pull/4800), [#4309](https://github.com/adap/flower/pull/4309), [#4875](https://github.com/adap/flower/pull/4875), [#4874](https://github.com/adap/flower/pull/4874), [#4877](https://github.com/adap/flower/pull/4877), [#4876](https://github.com/adap/flower/pull/4876))
46+
47+
The Fleet API and the ServerAppIO API (formerly known as the Driver API) now use message-based communication instead of TaskIns/TaskRes, making interactions more intuitive and better aligned with their Python counterparts. This migration introduces new RPCs, such as `PullMessages`, `PushMessages`, and other message-based operations in the gRPC stack.
48+
49+
- **Introduce exit codes** ([#4801](https://github.com/adap/flower/pull/4801), [#4845](https://github.com/adap/flower/pull/4845))
50+
51+
Improves system error and help messages by introducing a dedicated `flwr_exit` function with standardized exit codes.
52+
53+
- **Update gRPC-related dependencies** ([#4833](https://github.com/adap/flower/pull/4833), [#4836](https://github.com/adap/flower/pull/4836), [#4887](https://github.com/adap/flower/pull/4887))
54+
55+
Increases the version numbers of gRPC-related dependencies. In rare cases, if you encounter pip warnings about unresolved gRPC dependencies, it may be due to residual dependencies from older Flower versions.
56+
57+
- **Update** `app-pytorch` **example** ([#4842](https://github.com/adap/flower/pull/4842))
58+
59+
The [app-pytorch example](https://flower.ai/docs/examples/app-pytorch.html) is revamped to use the low-level API.
60+
61+
- **Improve CLI-side user authentication** ([#4862](https://github.com/adap/flower/pull/4862), [#4861](https://github.com/adap/flower/pull/4861), [#4832](https://github.com/adap/flower/pull/4832), [#4850](https://github.com/adap/flower/pull/4850), [#4703](https://github.com/adap/flower/pull/4703), [#4885](https://github.com/adap/flower/pull/4885))
62+
63+
User authentication in the CLI is enhanced with better handling, configuration options, and security enforcement.
64+
65+
- **Ensure graceful exit for SuperLink and SuperNode** ([#4829](https://github.com/adap/flower/pull/4829), [#4846](https://github.com/adap/flower/pull/4846), [#4798](https://github.com/adap/flower/pull/4798), [#4826](https://github.com/adap/flower/pull/4826), [#4881](https://github.com/adap/flower/pull/4881), [#4797](https://github.com/adap/flower/pull/4797))
66+
67+
Ensures proper resource cleanup and prevents zombie subprocesses during SuperLink and SuperNode shutdown.
68+
69+
- **Improve documentation** ([#4380](https://github.com/adap/flower/pull/4380), [#4853](https://github.com/adap/flower/pull/4853), [#4214](https://github.com/adap/flower/pull/4214), [#4215](https://github.com/adap/flower/pull/4215), [#4863](https://github.com/adap/flower/pull/4863), [#4825](https://github.com/adap/flower/pull/4825), [#4759](https://github.com/adap/flower/pull/4759), [#4851](https://github.com/adap/flower/pull/4851), [#4779](https://github.com/adap/flower/pull/4779), [#4813](https://github.com/adap/flower/pull/4813), [#4812](https://github.com/adap/flower/pull/4812), [#4761](https://github.com/adap/flower/pull/4761), [#4859](https://github.com/adap/flower/pull/4859), [#4754](https://github.com/adap/flower/pull/4754), [#4839](https://github.com/adap/flower/pull/4839), [#4216](https://github.com/adap/flower/pull/4216), [#4852](https://github.com/adap/flower/pull/4852), [#4869](https://github.com/adap/flower/pull/4869))
70+
71+
Updates PyTorch device selection in the tutorial series notebook and adds two molecular datasets to the `recommended-fl-datasets` table. Additional improvements include metadata updates, translation updates, and refinements to various documentation sections.
72+
73+
- **Update Docker dependencies and documentation** ([#4763](https://github.com/adap/flower/pull/4763), [#4804](https://github.com/adap/flower/pull/4804), [#4762](https://github.com/adap/flower/pull/4762), [#4803](https://github.com/adap/flower/pull/4803), [#4753](https://github.com/adap/flower/pull/4753))
74+
75+
- **Update CI/CD** ([#4756](https://github.com/adap/flower/pull/4756), [#4834](https://github.com/adap/flower/pull/4834), [#4824](https://github.com/adap/flower/pull/4824), [#3493](https://github.com/adap/flower/pull/3493), [#4096](https://github.com/adap/flower/pull/4096), [#4807](https://github.com/adap/flower/pull/4807), [#3956](https://github.com/adap/flower/pull/3956), [#3168](https://github.com/adap/flower/pull/3168), [#4835](https://github.com/adap/flower/pull/4835), [#4884](https://github.com/adap/flower/pull/4884))
76+
77+
- **Bugfixes** ([#4766](https://github.com/adap/flower/pull/4766), [#4764](https://github.com/adap/flower/pull/4764), [#4795](https://github.com/adap/flower/pull/4795), [#4840](https://github.com/adap/flower/pull/4840), [#4868](https://github.com/adap/flower/pull/4868), [#4872](https://github.com/adap/flower/pull/4872), [#4890](https://github.com/adap/flower/pull/4890))
78+
79+
- **General improvements** ([#4748](https://github.com/adap/flower/pull/4748), [#4799](https://github.com/adap/flower/pull/4799), [#4645](https://github.com/adap/flower/pull/4645), [#4819](https://github.com/adap/flower/pull/4819), [#4755](https://github.com/adap/flower/pull/4755), [#4789](https://github.com/adap/flower/pull/4789), [#4771](https://github.com/adap/flower/pull/4771), [#4854](https://github.com/adap/flower/pull/4854), [#4796](https://github.com/adap/flower/pull/4796), [#4865](https://github.com/adap/flower/pull/4865), [#4820](https://github.com/adap/flower/pull/4820), [#4790](https://github.com/adap/flower/pull/4790), [#4821](https://github.com/adap/flower/pull/4821), [#4822](https://github.com/adap/flower/pull/4822), [#4751](https://github.com/adap/flower/pull/4751), [#4793](https://github.com/adap/flower/pull/4793), [#4871](https://github.com/adap/flower/pull/4871), [#4785](https://github.com/adap/flower/pull/4785), [#4787](https://github.com/adap/flower/pull/4787), [#4775](https://github.com/adap/flower/pull/4775), [#4783](https://github.com/adap/flower/pull/4783), [#4818](https://github.com/adap/flower/pull/4818), [#4786](https://github.com/adap/flower/pull/4786), [#4773](https://github.com/adap/flower/pull/4773), [#4772](https://github.com/adap/flower/pull/4772), [#4784](https://github.com/adap/flower/pull/4784), [#4810](https://github.com/adap/flower/pull/4810), [#4770](https://github.com/adap/flower/pull/4770), [#4870](https://github.com/adap/flower/pull/4870), [#4878](https://github.com/adap/flower/pull/4878), [#4889](https://github.com/adap/flower/pull/4889), [#4893](https://github.com/adap/flower/pull/4893))
80+
81+
As always, many parts of the Flower framework and quality infrastructure were improved and updated.
82+
83+
### Incompatible changes
84+
85+
- **Remove deprecated `app`/`--server` arguments from `flower-supernode`** ([#4864](https://github.com/adap/flower/pull/4864), [#4891](https://github.com/adap/flower/pull/4891))
86+
87+
The deprecated `app` and `--server` arguments in `flower-supernode` has been removed. Please use `--superlink` instead of `--server`.
88+
89+
- **Deprecate `--auth-superlink-private-key`/`--auth-superlink-public-key` arguments from `flower-superlink`** ([#4848](https://github.com/adap/flower/pull/4848))
90+
91+
The two arguments are no longer necessary for SuperNode authentication following the recent improvement mentioned above.
492

593
## v1.14.0 (2024-12-20)
694

0 commit comments

Comments
 (0)