From 08b53632a288cf48a8d8553fc10570a0fbd524b0 Mon Sep 17 00:00:00 2001
From: Paul Andrey <paul.andrey@inria.fr>
Date: Fri, 1 Mar 2024 15:19:15 +0100
Subject: [PATCH] Update release notes for '2.4.0'.

---
 docs/release-notes/v2.4.0.md | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/docs/release-notes/v2.4.0.md b/docs/release-notes/v2.4.0.md
index af8b7633..43ce1197 100644
--- a/docs/release-notes/v2.4.0.md
+++ b/docs/release-notes/v2.4.0.md
@@ -249,3 +249,23 @@ can be specified in various ways. Previously, they could only be passed as
 `(func, args)` tuples. Now, they can either be passed as `(func, args)`,
 `(func, kwargs)` or `(func, args, kwargs)`, where `args` is still a tuple
 of positional arguments, and `kwargs` is a dict of keyword ones.
+
+## Other changes
+
+### Fix redundant sharing of model weights with clients
+
+`FederatedServer` now keeps track of clients having received the latest global
+model weights, and avoids sending them redundantly with future training (or
+evaluation) requests. To achieve this, `TrainRequest` and `EvaluationRequest`
+now support setting their `weights` field to `None`.
+
+### Update TensorFlow supported versions
+
+Older TensorFlow versions (v2.5 to 2.10 included) were improperly marked as
+supported in spite of `TensorflowOptiModule` requiring at least version 2.11
+to work (due to changes of the Keras Optimizer API). This has been corrected.
+
+Upcoming TensorFlow versions (v2.16 and onwards) introduce backward-breaking
+changes, which are probably due to the backend swap from Keras 2 to Keras 3.
+To keep safe, these versions are currently marked as unsupported, awaiting
+further investigation once version 2.16 is finalized.
-- 
GitLab