diff --git a/.github/workflows/update_translations.yml b/.github/workflows/update_translations.yml index 7685aecd5661..9a5391a40438 100644 --- a/.github/workflows/update_translations.yml +++ b/.github/workflows/update_translations.yml @@ -12,11 +12,17 @@ jobs: contents: write pull-requests: write env: - branch-name: auto-update-trans-text + base-branch: main # The base branch for the PR name: Update text steps: - uses: actions/checkout@v4 + - name: Generate unique branch name + id: generate_branch + run: | + export BRANCH_NAME="auto-update-trans-text-$(date +'%Y%m%d-%H%M%S')" + echo "branch-name=$BRANCH_NAME" >> $GITHUB_ENV + - name: Bootstrap uses: ./.github/actions/bootstrap with: @@ -65,15 +71,15 @@ jobs: uses: ad-m/github-push-action@master with: github_token: ${{ secrets.GITHUB_TOKEN }} - branch: '${{ env.branch-name }}' - force_with_lease: true + branch: ${{ env.branch-name }} - name: Create Pull Request if: steps.calculate_diff.outputs.additions > 228 && steps.calculate_diff.outputs.deletions > 60 uses: peter-evans/create-pull-request@v6 with: token: ${{ secrets.GITHUB_TOKEN }} - branch: '${{ env.branch-name }}' + branch: ${{ env.branch-name }} + base: ${{ env.base-branch }} delete-branch: true title: 'docs(framework:skip) Update source texts for translations (automated)' body: 'This PR is auto-generated to update text and language files.' diff --git a/doc/locales/fr/LC_MESSAGES/framework-docs.po b/doc/locales/fr/LC_MESSAGES/framework-docs.po index 119386879a7b..0895987d1d84 100644 --- a/doc/locales/fr/LC_MESSAGES/framework-docs.po +++ b/doc/locales/fr/LC_MESSAGES/framework-docs.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Flower Docs\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-20 09:07+0100\n" +"POT-Creation-Date: 2024-11-22 08:46+0000\n" "PO-Revision-Date: 2023-09-05 17:54+0000\n" "Last-Translator: Charles Beauville \n" "Language: fr\n" @@ -962,9 +962,9 @@ msgstr "" #: ../../source/contributor-how-to-release-flower.rst:13 msgid "" -"Run ``python3 src/py/flwr_tool/update_changelog.py `` in " -"order to add every new change to the changelog (feel free to make manual " -"changes to the changelog afterwards until it looks good)." +"Run ``python3 ./dev/update_changelog.py `` in order to add" +" every new change to the changelog (feel free to make manual changes to " +"the changelog afterwards until it looks good)." msgstr "" #: ../../source/contributor-how-to-release-flower.rst:16 @@ -2354,7 +2354,6 @@ msgid "Get started as a contributor" msgstr "Devenez un·e contributeur·ice" #: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:5 -#: ../../source/docker/run-as-subprocess.rst:11 #: ../../source/docker/run-quickstart-examples-docker-compose.rst:16 #: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:18 #: ../../source/docker/tutorial-quickstart-docker-compose.rst:13 @@ -2636,17 +2635,11 @@ msgstr "Collecte centralisée des données" #: ../../source/docker/enable-tls.rst:4 msgid "" "When operating in a production environment, it is strongly recommended to" -" enable Transport Layer Security (TLS) for each Flower Component to " +" enable Transport Layer Security (TLS) for each Flower component to " "ensure secure communication." msgstr "" -#: ../../source/docker/enable-tls.rst:7 -msgid "" -"To enable TLS, you will need a PEM-encoded root certificate, a PEM-" -"encoded private key and a PEM-encoded certificate chain." -msgstr "" - -#: ../../source/docker/enable-tls.rst:12 +#: ../../source/docker/enable-tls.rst:9 msgid "" "For testing purposes, you can generate your own self-signed certificates." " The `Enable SSL connections ``: The name of your SuperLink image to be run." msgstr "" #: ../../source/docker/enable-tls.rst @@ -2810,19 +2820,12 @@ msgstr "" msgid "the network." msgstr "" -#: ../../source/docker/enable-tls.rst:72 +#: ../../source/docker/enable-tls.rst:79 #, fuzzy -msgid "SuperNode" +msgid "**SuperNode**" msgstr "flower-superlink" -#: ../../source/docker/enable-tls.rst:74 -msgid "" -"Assuming that the ``ca.crt`` certificate already exists locally, we can " -"use the flag ``--volume`` to mount the local certificate into the " -"container's ``/app/`` directory." -msgstr "" - -#: ../../source/docker/enable-tls.rst:79 +#: ../../source/docker/enable-tls.rst:83 ../../source/docker/enable-tls.rst:189 msgid "" "If you're generating self-signed certificates and the ``ca.crt`` " "certificate doesn't exist on the SuperNode, you can copy it over after " @@ -2830,24 +2833,24 @@ msgid "" msgstr "" #: ../../source/docker/enable-tls.rst -msgid "``--volume ./ca.crt:/app/ca.crt/:ro``: Mount the ``ca.crt`` file from the" +msgid "" +"``--volume ./superlink-certificates/ca.crt:/app/ca.crt/:ro``: Mount the " +"``ca.crt``" msgstr "" #: ../../source/docker/enable-tls.rst msgid "" -"current working directory of the host machine as a read-only volume at " -"the ``/app/ca.crt``" +"file from the ``superlink-certificates`` directory of the host machine as" +" a read-only" msgstr "" #: ../../source/docker/enable-tls.rst #, fuzzy -msgid "directory inside the container." +msgid "volume at the ``/app/ca.crt`` directory inside the container." msgstr "Utiliser les conteneurs VS Code Remote" -#: ../../source/docker/enable-tls.rst -msgid "" -":substitution-code:`flwr/supernode:|stable_flwr_version|`: The name of " -"the image to be run and the specific" +#: ../../source/docker/enable-tls.rst:101 +msgid "````: The name of your SuperNode image to be run." msgstr "" #: ../../source/docker/enable-tls.rst @@ -2860,60 +2863,193 @@ msgstr "" msgid "The ``ca.crt`` file is used to verify the identity of the SuperLink." msgstr "" -#: ../../source/docker/enable-tls.rst:105 -msgid "SuperExec" +#: ../../source/docker/enable-tls.rst +msgid "Isolation Mode ``process``" +msgstr "" + +#: ../../source/docker/enable-tls.rst:109 +msgid "" +"In isolation mode ``process``, the ServerApp and ClientApp run in their " +"own processes. Unlike in isolation mode ``subprocess``, the SuperLink or " +"SuperNode does not attempt to create the respective processes; instead, " +"they must be created externally." msgstr "" -#: ../../source/docker/enable-tls.rst:107 +#: ../../source/docker/enable-tls.rst:113 msgid "" -"Assuming all files we need are in the local ``certificates`` directory " -"where the SuperExec will be executed from, we can use the flag " -"``--volume`` to mount the local directory into the ``/app/certificates/``" -" directory of the container:" +"It is possible to run only the SuperLink in isolation mode ``subprocess``" +" and the SuperNode in isolation mode ``process``, or vice versa, or even " +"both with isolation mode ``process``." +msgstr "" + +#: ../../source/docker/enable-tls.rst:117 +msgid "**SuperLink and ServerApp**" +msgstr "" + +#: ../../source/docker/enable-tls.rst:122 +msgid "" +"Assuming all files we need are in the local ``superlink-certificates`` " +"directory, we can use the flag ``--volume`` to mount the local directory " +"into the SuperLink container:" +msgstr "" + +#: ../../source/docker/enable-tls.rst +msgid "``--volume ./superlink-certificates/:/app/certificates/:ro``: Mount the" +msgstr "" + +#: ../../source/docker/enable-tls.rst +msgid "" +"``superlink-certificates`` directory in the current working directory of " +"the host" +msgstr "" + +#: ../../source/docker/enable-tls.rst +msgid "" +"machine as a read-only volume at the ``/app/certificates`` directory " +"inside the container." msgstr "" #: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -":substitution-code:`flwr/superexec:|stable_flwr_version|`: The name of " +":substitution-code:`flwr/superlink:|stable_flwr_version|`: The name of " "the image to be run and the specific" msgstr "" #: ../../source/docker/enable-tls.rst -msgid "SuperExec." +msgid "" +"tag of the image. The tag :substitution-code:`|stable_flwr_version|` " +"represents a specific version of the image." +msgstr "" + +#: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "" +"``--isolation process``: Tells the SuperLink that the ServerApp is " +"created by separate" +msgstr "" + +#: ../../source/docker/enable-tls.rst +msgid "independent process. The SuperLink does not attempt to create it." +msgstr "" + +#: ../../source/docker/enable-tls.rst:168 +#: ../../source/docker/tutorial-quickstart-docker.rst:207 +#, fuzzy +msgid "Start the ServerApp container:" +msgstr "Démarrer le serveur" + +#: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker-compose.rst +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "Understand the command" +msgstr "" + +#: ../../source/docker/enable-tls.rst:181 +msgid "````: The name of your ServerApp image to be run." msgstr "" #: ../../source/docker/enable-tls.rst msgid "" -"``--ssl-certfile certificates/server.pem``: Specify the location of the " -"SuperExec's" +"``--insecure``: This flag tells the container to operate in an insecure " +"mode, allowing" msgstr "" #: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"The ``certificates/server.pem`` file is used to identify the SuperExec " -"and to encrypt the" +"unencrypted communication. Secure connections will be added in future " +"releases." +msgstr "" + +#: ../../source/docker/enable-tls.rst:185 +msgid "**SuperNode and ClientApp**" msgstr "" +#: ../../source/docker/enable-tls.rst:192 +#, fuzzy +msgid "Start the SuperNode container:" +msgstr "Démarrer le serveur" + #: ../../source/docker/enable-tls.rst msgid "" -"``--ssl-keyfile certificates/server.key``: Specify the location of the " -"SuperExec's" +"``--volume ./superlink-certificates/ca.crt:/app/ca.crt/:ro``: Mount the " +"``ca.crt`` file from the" msgstr "" #: ../../source/docker/enable-tls.rst msgid "" -"``--executor-config root-" -"certificates=\\\"certificates/superlink_ca.crt\\\"``: Specify the" +"``superlink-certificates`` directory of the host machine as a read-only " +"volume at the ``/app/ca.crt``" msgstr "" +#: ../../source/docker/enable-tls.rst +#, fuzzy +msgid "directory inside the container." +msgstr "Utiliser les conteneurs VS Code Remote" + #: ../../source/docker/enable-tls.rst msgid "" -"location of the CA certificate file inside the container that the " -"SuperExec executor" +":substitution-code:`flwr/supernode:|stable_flwr_version|`: The name of " +"the image to be run and the specific" msgstr "" #: ../../source/docker/enable-tls.rst -msgid "should use to verify the SuperLink's identity." +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "" +"``--isolation process``: Tells the SuperNode that the ClientApp is " +"created by separate" +msgstr "" + +#: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "independent process. The SuperNode does not attempt to create it." +msgstr "" + +#: ../../source/docker/enable-tls.rst:220 +#, fuzzy +msgid "Start the ClientApp container:" +msgstr "Utilisation du moteur du client virtuel" + +#: ../../source/docker/enable-tls.rst:233 +msgid "````: The name of your ClientApp image to be run." +msgstr "" + +#: ../../source/docker/enable-tls.rst:237 +#: ../../source/docker/run-quickstart-examples-docker-compose.rst:54 +#, fuzzy +msgid "" +"Append the following lines to the end of the ``pyproject.toml`` file and " +"save it:" +msgstr "Augmente la version mineure de ``pyproject.toml`` d'une unité." + +#: ../../source/docker/enable-tls.rst:239 +#: ../../source/docker/run-quickstart-examples-docker-compose.rst:56 +#: ../../source/docker/tutorial-quickstart-docker.rst:330 +msgid "pyproject.toml" +msgstr "" + +#: ../../source/docker/enable-tls.rst:246 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:152 +msgid "" +"The path of the ``root-certificates`` should be relative to the location " +"of the ``pyproject.toml`` file." +msgstr "" + +#: ../../source/docker/enable-tls.rst:251 +#: ../../source/docker/run-quickstart-examples-docker-compose.rst:65 +msgid "" +"You can customize the string that follows ``tool.flwr.federations.`` to " +"fit your needs. However, please note that the string cannot contain a dot" +" (``.``)." +msgstr "" + +#: ../../source/docker/enable-tls.rst:254 +msgid "" +"In this example, ``local-deployment-tls`` has been used. Just remember to" +" replace ``local-deployment-tls`` with your chosen name in both the " +"``tool.flwr.federations.`` string and the corresponding ``flwr run .`` " +"command." msgstr "" #: ../../source/docker/index.rst:2 @@ -3082,45 +3218,131 @@ msgstr "Démarrer le serveur" #: ../../source/docker/run-as-subprocess.rst:2 #, fuzzy -msgid "Run ClientApp as a Subprocess" +msgid "Run ServerApp or ClientApp as a Subprocess" msgstr "Vérifier le format et tester le code" #: ../../source/docker/run-as-subprocess.rst:4 msgid "" -"In this mode, the ClientApp is executed as a subprocess within the " -"SuperNode Docker container, rather than running in a separate container. " -"This approach reduces the number of running containers, which can be " -"beneficial for environments with limited resources. However, it also " -"means that the ClientApp is no longer isolated from the SuperNode, which " -"may introduce additional security concerns." +"The SuperLink and SuperNode components support two distinct isolation " +"modes, allowing for flexible deployment and control:" msgstr "" -#: ../../source/docker/run-as-subprocess.rst:13 +#: ../../source/docker/run-as-subprocess.rst:7 msgid "" -"Before running the ClientApp as a subprocess, ensure that the FAB " -"dependencies have been installed in the SuperNode images. This can be " -"done by extending the SuperNode image:" +"Subprocess Mode: In this configuration (default), the SuperLink and " +"SuperNode take responsibility for launching the ServerApp and ClientApp " +"processes internally. This differs from the ``process`` isolation-mode " +"which uses separate containers, as demonstrated in the :doc:`tutorial-" +"quickstart-docker` guide." +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:12 +msgid "" +"Using the ``subprocess`` approach reduces the number of running " +"containers, which can be beneficial for environments with limited " +"resources. However, it also means that the applications are not isolated " +"from their parent containers, which may introduce additional security " +"concerns." msgstr "" #: ../../source/docker/run-as-subprocess.rst:17 +msgid "" +"Process Mode: In this mode, the ServerApp and ClientApps run in " +"completely separate processes. Unlike the alternative Subprocess mode, " +"the SuperLink or SuperNode does not attempt to create or manage these " +"processes. Instead, they must be started externally." +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:22 +msgid "" +"Both modes can be mixed for added flexibility. For instance, you can run " +"the SuperLink in ``subprocess`` mode while keeping the SuperNode in " +"``process`` mode, or vice versa." +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:25 +msgid "" +"To run the SuperLink and SuperNode in isolation mode ``process``, refer " +"to the :doc:`tutorial-quickstart-docker` guide. To run them in " +"``subprocess`` mode, follow the instructions below." +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst +#: ../../source/ref-api/flwr.server.ServerApp.rst:2 #, fuzzy -msgid "Dockerfile.supernode" -msgstr "Serveur de Flower" +msgid "ServerApp" +msgstr "serveur" + +#: ../../source/docker/run-as-subprocess.rst:33 +#: ../../source/docker/run-as-subprocess.rst:74 +#, fuzzy +msgid "**Prerequisites**" +msgstr "Prérequis" -#: ../../source/docker/run-as-subprocess.rst:31 +#: ../../source/docker/run-as-subprocess.rst:35 msgid "" -"Next, build the SuperNode Docker image by running the following command " -"in the directory where Dockerfile is located:" +"1. Before running the ServerApp as a subprocess, ensure that the FAB " +"dependencies have been installed in the SuperLink images. This can be " +"done by extending the SuperLink image:" msgstr "" -#: ../../source/docker/run-as-subprocess.rst:39 -msgid "Run the ClientApp as a Subprocess" +#: ../../source/docker/run-as-subprocess.rst:38 +#, fuzzy +msgid "superlink.Dockerfile" +msgstr "Démarrer le serveur" + +#: ../../source/docker/run-as-subprocess.rst:52 +msgid "" +"2. Next, build the SuperLink Docker image by running the following " +"command in the directory where Dockerfile is located:" msgstr "" -#: ../../source/docker/run-as-subprocess.rst:41 +#: ../../source/docker/run-as-subprocess.rst:59 +#, fuzzy +msgid "**Run the ServerApp as a Subprocess**" +msgstr "Vérifier le format et tester le code" + +#: ../../source/docker/run-as-subprocess.rst:61 +msgid "" +"Start the SuperLink and run the ServerApp as a subprocess (note that the " +"subprocess mode is the default, so you do not have to explicitly set the " +"``--isolation`` flag):" +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst +#: ../../source/ref-api/flwr.client.ClientApp.rst:2 +#, fuzzy +msgid "ClientApp" +msgstr "client" + +#: ../../source/docker/run-as-subprocess.rst:76 +msgid "" +"1. Before running the ClientApp as a subprocess, ensure that the FAB " +"dependencies have been installed in the SuperNode images. This can be " +"done by extending the SuperNode image:" +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:80 +#, fuzzy +msgid "supernode.Dockerfile" +msgstr "Démarrer le serveur" + +#: ../../source/docker/run-as-subprocess.rst:94 +msgid "" +"2. Next, build the SuperNode Docker image by running the following " +"command in the directory where Dockerfile is located:" +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:101 +#, fuzzy +msgid "**Run the ClientApp as a Subprocess**" +msgstr "Vérifier le format et tester le code" + +#: ../../source/docker/run-as-subprocess.rst:103 msgid "" -"Start the SuperNode with the flag ``--isolation subprocess``, which tells" -" the SuperNode to execute the ClientApp as a subprocess:" +"Start the SuperNode and run the ClientApp as a subprocess (note that the " +"subprocess mode is the default, so you do not have to explicitly set the " +"``--isolation`` flag):" msgstr "" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:2 @@ -3196,25 +3418,6 @@ msgid "" "start the services using the following command:" msgstr "Active la virtualenv en exécutant la commande suivante :" -#: ../../source/docker/run-quickstart-examples-docker-compose.rst:54 -#, fuzzy -msgid "" -"Append the following lines to the end of the ``pyproject.toml`` file and " -"save it:" -msgstr "Augmente la version mineure de ``pyproject.toml`` d'une unité." - -#: ../../source/docker/run-quickstart-examples-docker-compose.rst:56 -#: ../../source/docker/tutorial-quickstart-docker.rst:323 -msgid "pyproject.toml" -msgstr "" - -#: ../../source/docker/run-quickstart-examples-docker-compose.rst:65 -msgid "" -"You can customize the string that follows ``tool.flwr.federations.`` to " -"fit your needs. However, please note that the string cannot contain a dot" -" (``.``)." -msgstr "" - #: ../../source/docker/run-quickstart-examples-docker-compose.rst:68 msgid "" "In this example, ``local-deployment`` has been used. Just remember to " @@ -3224,13 +3427,13 @@ msgid "" msgstr "" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:72 -msgid "Run the example and follow the logs of the ServerApp:" +msgid "Run the example and follow the logs of the ``ServerApp`` :" msgstr "" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:78 msgid "" "That is all it takes! You can monitor the progress of the run through the" -" logs of the SuperExec." +" logs of the ``ServerApp``." msgstr "" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:82 @@ -3271,10 +3474,10 @@ msgstr "Démarrage rapide fastai" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:119 #: ../../source/docker/run-quickstart-examples-docker-compose.rst:121 #: ../../source/docker/run-quickstart-examples-docker-compose.rst:125 -#: ../../source/ref-changelog.md:103 ../../source/ref-changelog.md:469 -#: ../../source/ref-changelog.md:746 ../../source/ref-changelog.md:810 -#: ../../source/ref-changelog.md:868 ../../source/ref-changelog.md:937 -#: ../../source/ref-changelog.md:999 +#: ../../source/ref-changelog.md:214 ../../source/ref-changelog.md:580 +#: ../../source/ref-changelog.md:857 ../../source/ref-changelog.md:921 +#: ../../source/ref-changelog.md:979 ../../source/ref-changelog.md:1048 +#: ../../source/ref-changelog.md:1110 msgid "None" msgstr "Aucun" @@ -3383,8 +3586,8 @@ msgid "" "You will learn how to run the Flower client and server components on two " "separate machines, with Flower configured to use TLS encryption and " "persist SuperLink state across restarts. A server consists of a SuperLink" -" and ``SuperExec``. For more details about the Flower architecture, refer" -" to the :doc:`../explanation-flower-architecture` explainer page." +" and a ``ServerApp``. For more details about the Flower architecture, " +"refer to the :doc:`../explanation-flower-architecture` explainer page." msgstr "" #: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:13 @@ -3439,71 +3642,71 @@ msgstr "" msgid "Clone the Flower repository and change to the ``distributed`` directory:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:45 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:46 msgid "Get the IP address from the remote machine and save it for later." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:46 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:47 msgid "" "Use the ``certs.yml`` Compose file to generate your own self-signed " "certificates. If you have certificates, you can continue with Step 2." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:51 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:214 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:52 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:212 msgid "These certificates should be used only for development purposes." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:53 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:54 msgid "" "For production environments, you may have to use dedicated services to " "obtain your certificates." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:56 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:57 msgid "" -"First, set the environment variables ``SUPERLINK_IP`` and " -"``SUPEREXEC_IP`` with the IP address from the remote machine. For " -"example, if the IP is ``192.168.2.33``, execute:" +"First, set the environment variable ``SUPERLINK_IP`` with the IP address " +"from the remote machine. For example, if the IP is ``192.168.2.33``, " +"execute:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:65 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:64 msgid "Next, generate the self-signed certificates:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:72 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:71 msgid "Step 2: Copy the Server Compose Files" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:74 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:73 msgid "" "Use the method that works best for you to copy the ``server`` directory, " "the certificates, and the ``pyproject.toml`` file of your Flower project " "to the remote machine." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:78 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:77 msgid "For example, you can use ``scp`` to copy the directories:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:88 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:86 #, fuzzy msgid "Step 3: Start the Flower Server Components" msgstr "Démarrer le serveur" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:90 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:88 msgid "" "Log into the remote machine using ``ssh`` and run the following command " -"to start the SuperLink and SuperExec services:" +"to start the SuperLink and ``ServerApp`` services:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:104 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:102 msgid "" "The path to the ``PROJECT_DIR`` containing the ``pyproject.toml`` file " "should be relative to the location of the server ``compose.yml`` file." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:109 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:107 msgid "" "When working with Docker Compose on Linux, you may need to create the " "``state`` directory first and change its ownership to ensure proper " @@ -3511,78 +3714,72 @@ msgid "" "4), run the following commands:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:118 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:167 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:116 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:165 msgid "" "For more information, consult the following page: :doc:`persist-" "superlink-state`." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:120 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:118 msgid "Go back to your terminal on your local machine." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:123 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:121 #, fuzzy msgid "Step 4: Start the Flower Client Components" msgstr "Démarrer le serveur" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:125 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:123 msgid "" "On your local machine, run the following command to start the client " "components:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:135 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:133 msgid "" "The path to the ``PROJECT_DIR`` containing the ``pyproject.toml`` file " "should be relative to the location of the client ``compose.yml`` file." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:139 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:137 #, fuzzy msgid "Step 5: Run Your Flower Project" msgstr "Serveur de Flower" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:141 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:139 msgid "" -"Specify the remote SuperExec IP addresses and the path to the root " -"certificate in the ``[tool.flwr.federations.remote-superexec]`` table in " -"the ``pyproject.toml`` file. Here, we have named our remote federation " -"``remote-superexec``:" +"Specify the remote SuperLink IP addresses and the path to the root " +"certificate in the ``[tool.flwr.federations.remote-deployment]`` table in" +" the ``pyproject.toml`` file. Here, we have named our remote federation " +"``remote-deployment``:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:145 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:143 #, fuzzy msgid "examples/quickstart-sklearn-tabular/pyproject.toml" msgstr "Démarrage rapide de scikit-learn" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:154 -msgid "" -"The path of the ``root-certificates`` should be relative to the location " -"of the ``pyproject.toml`` file." -msgstr "" - -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:157 -msgid "Run the project and follow the ServerApp logs:" +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:155 +msgid "Run the project and follow the ``ServerApp`` logs:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:163 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:161 msgid "" "That's it! With these steps, you've set up Flower on two separate " "machines and are ready to start using it." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:167 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:165 msgid "Step 6: Clean Up" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:169 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:167 #, fuzzy msgid "Shut down the Flower client components:" msgstr "Client de Flower" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:176 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:174 msgid "Shut down the Flower server components and delete the SuperLink state:" msgstr "" @@ -3604,7 +3801,7 @@ msgid "" " understanding the basic workflow that uses the minimum configurations." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:32 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:33 #: ../../source/docker/tutorial-quickstart-docker.rst:21 msgid "Create a new Flower project (PyTorch):" msgstr "" @@ -3626,48 +3823,51 @@ msgstr "" msgid "Step 2: Start the SuperLink" msgstr "Démarrer le serveur" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:62 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:64 #: ../../source/docker/tutorial-quickstart-docker.rst:51 #, fuzzy msgid "Open your terminal and run:" msgstr "Ouvre un autre terminal et démarre le deuxième client :" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "Understand the command" +msgid "" +"``-p 9091:9091 -p 9092:9092 -p 9093:9093``: Map port ``9091``, ``9092`` " +"and ``9093`` of the" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``-p 9091:9091 -p 9092:9092``: Map port ``9091`` and ``9092`` of the " -"container to the same port of" +"container to the same port of the host machine, allowing other services " +"to access the" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "the host machine, allowing other services to access the Driver API on" +msgid "" +"ServerAppIO API on ``http://localhost:9091``, the Fleet API on " +"``http://localhost:9092`` and" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``http://localhost:9091`` and the Fleet API on ``http://localhost:9092``." +msgid "the Exec API on ``http://localhost:9093``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:70 -#: ../../source/docker/tutorial-quickstart-docker.rst:107 -#: ../../source/docker/tutorial-quickstart-docker.rst:218 -#: ../../source/docker/tutorial-quickstart-docker.rst:308 +#: ../../source/docker/tutorial-quickstart-docker.rst:74 +#: ../../source/docker/tutorial-quickstart-docker.rst:114 +#: ../../source/docker/tutorial-quickstart-docker.rst:223 +#: ../../source/docker/tutorial-quickstart-docker.rst:305 msgid "" "``--network flwr-network``: Make the container join the network named " "``flwr-network``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:71 +#: ../../source/docker/tutorial-quickstart-docker.rst:75 msgid "``--name superlink``: Assign the name ``superlink`` to the container." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:72 -#: ../../source/docker/tutorial-quickstart-docker.rst:109 -#: ../../source/docker/tutorial-quickstart-docker.rst:219 -#: ../../source/docker/tutorial-quickstart-docker.rst:310 +#: ../../source/docker/tutorial-quickstart-docker.rst:76 +#: ../../source/docker/tutorial-quickstart-docker.rst:116 +#: ../../source/docker/tutorial-quickstart-docker.rst:225 +#: ../../source/docker/tutorial-quickstart-docker.rst:306 msgid "" "``--detach``: Run the container in the background, freeing up the " "terminal." @@ -3689,16 +3889,26 @@ msgstr "" msgid "unencrypted communication." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:79 +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "" +"independent process. The SuperLink does not attempt to create it. You can" +" learn more about" +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "the different process modes here: :doc:`run-as-subprocess`." +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:86 #, fuzzy -msgid "Step 3: Start the SuperNode" +msgid "Step 3: Start the SuperNodes" msgstr "Démarrer le serveur" -#: ../../source/docker/tutorial-quickstart-docker.rst:81 +#: ../../source/docker/tutorial-quickstart-docker.rst:88 msgid "Start two SuperNode containers." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:83 +#: ../../source/docker/tutorial-quickstart-docker.rst:90 msgid "Start the first container:" msgstr "" @@ -3714,18 +3924,18 @@ msgstr "" msgid "``http://localhost:9094``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:108 +#: ../../source/docker/tutorial-quickstart-docker.rst:115 msgid "``--name supernode-1``: Assign the name ``supernode-1`` to the container." msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``flwr/supernode:|stable_flwr_version|``: This is the name of the image " -"to be run and the specific tag" +":substitution-code:`flwr/supernode:|stable_flwr_version|`: This is the " +"name of the" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "of the image." +msgid "image to be run and the specific tag of the image." msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst @@ -3750,51 +3960,54 @@ msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``--supernode-address 0.0.0.0:9094``: Set the address and port number " -"that the SuperNode" +"``--clientappio-api-address 0.0.0.0:9094``: Set the address and port " +"number that the" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "is listening on." +msgid "SuperNode is listening on to communicate with the ClientApp. If" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``--isolation process``: Tells the SuperNode that the ClientApp is " -"created by separate" +"two SuperNodes are started on the same machine, set two different port " +"numbers for each SuperNode." msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "independent process. The SuperNode does not attempt to create it." +msgid "" +"(E.g. In the next step, we set the second SuperNode container to listen " +"on port 9095)" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:123 +#: ../../source/docker/tutorial-quickstart-docker.rst:132 #, fuzzy msgid "Start the second container:" msgstr "Démarrer le serveur" -#: ../../source/docker/tutorial-quickstart-docker.rst:141 -msgid "Step 4: Start the ClientApp" -msgstr "" +#: ../../source/docker/tutorial-quickstart-docker.rst:150 +#, fuzzy +msgid "Step 4: Start a ServerApp" +msgstr "Démarrer le serveur" -#: ../../source/docker/tutorial-quickstart-docker.rst:143 +#: ../../source/docker/tutorial-quickstart-docker.rst:152 msgid "" -"The ClientApp Docker image comes with a pre-installed version of Flower " -"and serves as a base for building your own ClientApp image. In order to " +"The ServerApp Docker image comes with a pre-installed version of Flower " +"and serves as a base for building your own ServerApp image. In order to " "install the FAB dependencies, you will need to create a Dockerfile that " -"extends the ClientApp image and installs the required dependencies." +"extends the ServerApp image and installs the required dependencies." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:148 +#: ../../source/docker/tutorial-quickstart-docker.rst:157 msgid "" -"Create a ClientApp Dockerfile called ``Dockerfile.clientapp`` and paste " -"the following code into it:" +"Create a ServerApp Dockerfile called ``serverapp.Dockerfile`` and paste " +"the following code in:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:151 +#: ../../source/docker/tutorial-quickstart-docker.rst:160 #, fuzzy -msgid "Dockerfile.clientapp" -msgstr "Flower ClientApp." +msgid "serverapp.Dockerfile" +msgstr "Démarrer le serveur" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "Understand the Dockerfile" @@ -3802,13 +4015,13 @@ msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -":substitution-code:`FROM flwr/clientapp:|stable_flwr_version|`: This line" +":substitution-code:`FROM flwr/serverapp:|stable_flwr_version|`: This line" " specifies that the Docker image" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"to be built from is the ``flwr/clientapp image``, version :substitution-" +"to be built from is the ``flwr/serverapp`` image, version :substitution-" "code:`|stable_flwr_version|`." msgstr "" @@ -3866,7 +4079,7 @@ msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``ENTRYPOINT [\"flwr-clientapp\"]``: Set the command ``flwr-clientapp`` " +"``ENTRYPOINT [\"flwr-serverapp\"]``: Set the command ``flwr-serverapp`` " "to be" msgstr "" @@ -3874,7 +4087,7 @@ msgstr "" msgid "the default command run when the container is started." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:185 +#: ../../source/docker/tutorial-quickstart-docker.rst:194 msgid "" "Note that `flwr `__ is already installed " "in the ``flwr/clientapp`` base image, so only other package dependencies " @@ -3883,209 +4096,205 @@ msgid "" "after it has been copied into the Docker image (see line 5)." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:191 -msgid "" -"Next, build the ClientApp Docker image by running the following command " -"in the directory where the Dockerfile is located:" -msgstr "" - #: ../../source/docker/tutorial-quickstart-docker.rst:200 msgid "" -"The image name was set as ``flwr_clientapp`` with the tag ``0.0.1``. " -"Remember that these values are merely examples, and you can customize " -"them according to your requirements." +"Afterward, in the directory that holds the Dockerfile, execute this " +"Docker command to build the ServerApp image:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:204 -#, fuzzy -msgid "Start the first ClientApp container:" -msgstr "Utilisation du moteur du client virtuel" +#: ../../source/docker/tutorial-quickstart-docker.rst:224 +msgid "``--name serverapp``: Assign the name ``serverapp`` to the container." +msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``flwr_clientapp:0.0.1``: This is the name of the image to be run and the" +"``flwr_serverapp:0.0.1``: This is the name of the image to be run and the" " specific tag" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "" -"``--supernode supernode-1:9094``: Connect to the SuperNode's Fleet API at" -" the address" +msgid "of the image." msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``supernode-1:9094``." +msgid "" +"``--serverappio-api-address superlink:9091``: Connect to the SuperLink's " +"ServerAppIO API" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:225 -msgid "Start the second ClientApp container:" +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "at the address ``superlink:9091``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:236 +#: ../../source/docker/tutorial-quickstart-docker.rst:234 #, fuzzy -msgid "Step 5: Start the SuperExec" +msgid "Step 5: Start the ClientApp" msgstr "Démarrer le serveur" -#: ../../source/docker/tutorial-quickstart-docker.rst:238 +#: ../../source/docker/tutorial-quickstart-docker.rst:236 msgid "" -"The procedure for building and running a SuperExec image is almost " -"identical to the ClientApp image." +"The procedure for building and running a ClientApp image is almost " +"identical to the ServerApp image." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:241 +#: ../../source/docker/tutorial-quickstart-docker.rst:239 msgid "" -"Similar to the ClientApp image, you will need to create a Dockerfile that" -" extends the SuperExec image and installs the required FAB dependencies." +"Similar to the ServerApp image, you will need to create a Dockerfile that" +" extends the ClientApp image and installs the required FAB dependencies." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:244 +#: ../../source/docker/tutorial-quickstart-docker.rst:242 msgid "" -"Create a SuperExec Dockerfile called ``Dockerfile.superexec`` and paste " -"the following code in:" +"Create a ClientApp Dockerfile called ``clientapp.Dockerfile`` and paste " +"the following code into it:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:247 -msgid "Dockerfile.superexec" -msgstr "" +#: ../../source/docker/tutorial-quickstart-docker.rst:245 +#, fuzzy +msgid "clientapp.Dockerfile" +msgstr "client" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -":substitution-code:`FROM flwr/superexec:|stable_flwr_version|`: This line" +":substitution-code:`FROM flwr/clientapp:|stable_flwr_version|`: This line" " specifies that the Docker image" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"to be built from is the ``flwr/superexec image``, version :substitution-" +"to be built from is the ``flwr/clientapp`` image, version :substitution-" "code:`|stable_flwr_version|`." msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``ENTRYPOINT [\"flower-superexec\"``: Set the command ``flower-" -"superexec`` to be" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``\"--executor\", \"flwr.superexec.deployment:executor\"]`` Use the" +"``ENTRYPOINT [\"flwr-clientapp\"]``: Set the command ``flwr-clientapp`` " +"to be" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``flwr.superexec.deployment:executor`` executor to run the ServerApps." +#: ../../source/docker/tutorial-quickstart-docker.rst:277 +msgid "" +"Next, build the ClientApp Docker image by running the following command " +"in the directory where the Dockerfile is located:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:282 +#: ../../source/docker/tutorial-quickstart-docker.rst:286 msgid "" -"Afterward, in the directory that holds the Dockerfile, execute this " -"Docker command to build the SuperExec image:" +"The image name was set as ``flwr_clientapp`` with the tag ``0.0.1``. " +"Remember that these values are merely examples, and you can customize " +"them according to your requirements." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:289 +#: ../../source/docker/tutorial-quickstart-docker.rst:290 #, fuzzy -msgid "Start the SuperExec container:" -msgstr "Démarrer le serveur" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``-p 9093:9093``: Map port ``9093`` of the container to the same port of" -msgstr "" +msgid "Start the first ClientApp container:" +msgstr "Utilisation du moteur du client virtuel" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"the host machine, allowing you to access the SuperExec API on " -"``http://localhost:9093``." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst:309 -msgid "``--name superexec``: Assign the name ``superexec`` to the container." +"``flwr_clientapp:0.0.1``: This is the name of the image to be run and the" +" specific tag" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``flwr_superexec:0.0.1``: This is the name of the image to be run and the" -" specific tag" +"``--clientappio-api-address supernode-1:9094``: Connect to the " +"SuperNode's ClientAppIO" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "" -"``--executor-config superlink=\\\"superlink:9091\\\"``: Configure the " -"SuperExec executor to" +msgid "API at the address ``supernode-1:9094``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "connect to the SuperLink running on port ``9091``." +#: ../../source/docker/tutorial-quickstart-docker.rst:314 +msgid "Start the second ClientApp container:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:319 +#: ../../source/docker/tutorial-quickstart-docker.rst:326 msgid "Step 6: Run the Quickstart Project" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:321 +#: ../../source/docker/tutorial-quickstart-docker.rst:328 #, fuzzy msgid "Add the following lines to the ``pyproject.toml``:" msgstr "Augmente la version mineure de ``pyproject.toml`` d'une unité." -#: ../../source/docker/tutorial-quickstart-docker.rst:330 +#: ../../source/docker/tutorial-quickstart-docker.rst:337 msgid "" "Run the ``quickstart-docker`` project and follow the ServerApp logs to " "track the execution of the run:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:338 +#: ../../source/docker/tutorial-quickstart-docker.rst:345 #, fuzzy msgid "Step 7: Update the Application" msgstr "Étape 3 : Sérialisation personnalisée" -#: ../../source/docker/tutorial-quickstart-docker.rst:340 +#: ../../source/docker/tutorial-quickstart-docker.rst:347 msgid "" "Change the application code. For example, change the ``seed`` in " "``quickstart_docker/task.py`` to ``43`` and save it:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:343 +#: ../../source/docker/tutorial-quickstart-docker.rst:350 #, fuzzy msgid "quickstart_docker/task.py" msgstr "Démarrage rapide des Pandas" -#: ../../source/docker/tutorial-quickstart-docker.rst:350 -msgid "Stop the current ClientApp containers:" +#: ../../source/docker/tutorial-quickstart-docker.rst:357 +#, fuzzy +msgid "Stop the current ServerApp and ClientApp containers:" +msgstr "Utilisation du moteur du client virtuel" + +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:125 +#: ../../source/docker/tutorial-quickstart-docker.rst:361 +msgid "" +"If you have modified the dependencies listed in your ``pyproject.toml`` " +"file, it is essential to rebuild images." +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:364 +msgid "If you haven’t made any changes, you can skip steps 2 through 4." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:356 +#: ../../source/docker/tutorial-quickstart-docker.rst:370 #, fuzzy -msgid "Rebuild the FAB and ClientApp image:" +msgid "Rebuild ServerApp and ClientApp images:" msgstr "Chargement des données" -#: ../../source/docker/tutorial-quickstart-docker.rst:362 -msgid "Launch two new ClientApp containers based on the newly built image:" +#: ../../source/docker/tutorial-quickstart-docker.rst:377 +msgid "" +"Launch one new ServerApp and two new ClientApp containers based on the " +"newly built image:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:377 +#: ../../source/docker/tutorial-quickstart-docker.rst:402 msgid "Run the updated project:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:384 +#: ../../source/docker/tutorial-quickstart-docker.rst:409 msgid "Step 8: Clean Up" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:386 +#: ../../source/docker/tutorial-quickstart-docker.rst:411 msgid "Remove the containers and the bridge network:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:398 -#: ../../source/docker/tutorial-quickstart-docker.rst:398 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:400 +#: ../../source/docker/tutorial-quickstart-docker.rst:423 #, fuzzy msgid "Where to Go Next" msgstr "Par où commencer" -#: ../../source/docker/tutorial-quickstart-docker.rst:400 +#: ../../source/docker/tutorial-quickstart-docker.rst:425 msgid ":doc:`enable-tls`" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:401 +#: ../../source/docker/tutorial-quickstart-docker.rst:426 msgid ":doc:`persist-superlink-state`" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:402 +#: ../../source/docker/tutorial-quickstart-docker.rst:427 msgid ":doc:`tutorial-quickstart-docker-compose`" msgstr "" @@ -4112,164 +4321,158 @@ msgstr "" msgid "Clone the Docker Compose ``complete`` directory:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:38 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:39 msgid "" "Export the path of the newly created project. The path should be relative" " to the location of the Docker Compose files:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:45 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:46 msgid "" "Setting the ``PROJECT_DIR`` helps Docker Compose locate the " "``pyproject.toml`` file, allowing it to install dependencies in the " -"SuperExec and SuperNode images correctly." +"``ServerApp`` and ``ClientApp`` images correctly." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:49 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:51 #, fuzzy msgid "Step 2: Run Flower in Insecure Mode" msgstr "Serveur de Flower" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:51 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:53 msgid "" "To begin, start Flower with the most basic configuration. In this setup, " "Flower will run without TLS and without persisting the state." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:56 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:58 msgid "" "Without TLS, the data sent between the services remains **unencrypted**. " "Use it only for development purposes." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:59 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:61 msgid "" "For production-oriented use cases, :ref:`enable TLS` for secure data" " transmission." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:70 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:177 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:72 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:175 msgid "``docker compose``: The Docker command to run the Docker Compose tool." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:71 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:183 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:73 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:181 msgid "" "``--build``: Rebuild the images for each service if they don't already " "exist." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:72 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:184 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:74 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:182 msgid "" "``-d``: Detach the containers from the terminal and run them in the " "background." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:75 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:77 msgid "Step 3: Run the Quickstart Project" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:77 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:79 msgid "" "Now that the Flower services have been started via Docker Compose, it is " "time to run the quickstart example." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:80 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:82 msgid "" -"To ensure the ``flwr`` CLI connects to the SuperExec, you need to specify" -" the SuperExec addresses in the ``pyproject.toml`` file." +"To ensure the ``flwr`` CLI connects to the SuperLink, you need to specify" +" the SuperLink addresses in the ``pyproject.toml`` file." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:83 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:225 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:85 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:223 msgid "Add the following lines to the ``quickstart-compose/pyproject.toml``:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:85 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:227 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:87 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:225 msgid "quickstart-compose/pyproject.toml" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:92 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:94 msgid "" -"Run the quickstart example, monitor the ServerApp logs and wait for the " -"summary to appear:" +"Run the quickstart example, monitor the ``ServerApp`` logs and wait for " +"the summary to appear:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:100 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:102 #, fuzzy msgid "Step 4: Update the Application" msgstr "Étape 3 : Sérialisation personnalisée" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:102 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:104 msgid "In the next step, change the application code." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:104 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:106 msgid "" "For example, go to the ``task.py`` file in the ``quickstart-" "compose/quickstart_compose/`` directory and add a ``print`` call in the " "``get_weights`` function:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:108 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:110 msgid "quickstart-compose/quickstart_compose/task.py" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:119 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:121 #, fuzzy msgid "Rebuild and restart the services." msgstr "Nous pouvons déjà démarrer le *serveur* :" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:123 -msgid "" -"If you have modified the dependencies listed in your ``pyproject.toml`` " -"file, it is essential to rebuild images." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:126 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:128 msgid "If you haven't made any changes, you can skip this step." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:128 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:130 msgid "Run the following command to rebuild and restart the services:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:134 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:136 msgid "Run the updated quickstart example:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:140 -msgid "In the SuperExec logs, you should find the ``Get weights`` line:" +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:142 +msgid "In the ``ServerApp`` logs, you should find the ``Get weights`` line:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:157 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:155 msgid "Step 5: Persisting the SuperLink State" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:159 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:157 msgid "" "In this step, Flower services are configured to persist the state of the " "SuperLink service, ensuring that it maintains its state even after a " "restart." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:164 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:162 msgid "" "When working with Docker Compose on Linux, you may need to create the " "``state`` directory first and change its ownership to ensure proper " "access and permissions." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:169 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:219 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:167 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:217 msgid "Run the command:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:178 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:176 msgid "" "``-f compose.yml``: Specify the YAML file that contains the basic Flower " "service definitions." @@ -4292,17 +4495,17 @@ msgid "" "rules>`_." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:186 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:240 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:367 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:184 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:238 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:369 msgid "Rerun the ``quickstart-compose`` project:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:192 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:190 msgid "Check the content of the ``state`` directory:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:199 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:197 msgid "" "You should see a ``state.db`` file in the ``state`` directory. If you " "restart the service, the state file will be used to restore the state " @@ -4310,120 +4513,105 @@ msgid "" "if the containers are stopped and started again." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:207 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:205 msgid "Step 6: Run Flower with TLS" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:209 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:207 msgid "" "To demonstrate how to enable TLS, generate self-signed certificates using" " the ``certs.yml`` Compose file." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:216 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:214 msgid "" "For production environments, use a service like `Let's Encrypt " "`_ to obtain your certificates." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:234 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:232 msgid "Restart the services with TLS enabled:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:247 -msgid "Step 7: Add another SuperNode" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:249 -msgid "" -"You can add more SuperNodes and ClientApps by duplicating their " -"definitions in the ``compose.yml`` file." -msgstr "" +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:245 +#, fuzzy +msgid "Step 7: Add another SuperNode and ClientApp" +msgstr "Démarrer le serveur" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:252 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:247 msgid "" -"Just give each new SuperNode and ClientApp service a unique service name " -"like ``supernode-3``, ``clientapp-3``, etc." +"You can add more SuperNodes and ClientApps by uncommenting their " +"definitions in the ``compose.yml`` file:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:255 -msgid "In ``compose.yml``, add the following:" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:257 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:250 msgid "compose.yml" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:308 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:302 msgid "" -"If you also want to enable TLS for the new SuperNodes, duplicate the " -"SuperNode definition for each new SuperNode service in the ``with-" -"tls.yml`` file." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:311 -msgid "" -"Make sure that the names of the services match with the one in the " -"``compose.yml`` file." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:313 -msgid "In ``with-tls.yml``, add the following:" +"If you also want to enable TLS for the new SuperNode, uncomment the " +"definition in the ``with-tls.yml`` file:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:315 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:305 msgid "with-tls.yml" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:337 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:326 +#, fuzzy +msgid "Restart the services with:" +msgstr "Démarrer le serveur" + +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:335 msgid "Step 8: Persisting the SuperLink State and Enabling TLS" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:339 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:337 msgid "" "To run Flower with persisted SuperLink state and enabled TLS, a slight " "change in the ``with-state.yml`` file is required:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:342 -msgid "Comment out the lines 2-4 and uncomment the lines 5-9:" +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:340 +msgid "Comment out the lines 2-6 and uncomment the lines 7-13:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:344 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:342 msgid "with-state.yml" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:361 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:363 #, fuzzy msgid "Restart the services:" msgstr "Démarrer le serveur" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:374 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:376 msgid "Step 9: Merge Multiple Compose Files" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:376 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:378 msgid "" "You can merge multiple Compose files into a single file. For instance, if" " you wish to combine the basic configuration with the TLS configuration, " "execute the following command:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:385 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:387 msgid "" "This will merge the contents of ``compose.yml`` and ``with-tls.yml`` into" " a new file called ``my_compose.yml``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:389 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:391 msgid "Step 10: Clean Up" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:391 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:393 msgid "Remove all services and volumes:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:400 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:402 #, fuzzy msgid ":doc:`run-quickstart-examples-docker-compose`" msgstr "Démarrage rapide XGBoost" @@ -5320,7 +5508,7 @@ msgid "" msgstr "" #: ../../source/how-to-authenticate-supernodes.rst:100 -#: ../../source/how-to-enable-ssl-connections.rst:71 +#: ../../source/how-to-enable-tls-connections.rst:108 #: ../../source/how-to-use-built-in-mods.rst:95 #: ../../source/tutorial-series-what-is-federated-learning.ipynb:287 msgid "Conclusion" @@ -5757,22 +5945,22 @@ msgid "" " to apply the new parameters to a model." msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:2 +#: ../../source/how-to-enable-tls-connections.rst:2 #, fuzzy -msgid "Enable SSL connections" +msgid "Enable TLS connections" msgstr "Collecte centralisée des données" -#: ../../source/how-to-enable-ssl-connections.rst:4 +#: ../../source/how-to-enable-tls-connections.rst:4 #, fuzzy msgid "" -"This guide describes how to a SSL-enabled secure Flower server " +"This guide describes how to a TLS-enabled secure Flower server " "(``SuperLink``) can be started and how a Flower client (``SuperNode``) " "can establish a secure connections to it." msgstr "" "Ce guide décrit comment démarrer un serveur Flower sécurisé par SSL et " "comment un client Flower peut établir une connexion sécurisée avec lui." -#: ../../source/how-to-enable-ssl-connections.rst:8 +#: ../../source/how-to-enable-tls-connections.rst:8 #, fuzzy msgid "" "A complete code example demonstrating a secure connection can be found " @@ -5783,11 +5971,11 @@ msgstr "" "trouvé ici `_." -#: ../../source/how-to-enable-ssl-connections.rst:11 +#: ../../source/how-to-enable-tls-connections.rst:11 #, fuzzy msgid "" "The code example comes with a ``README.md`` file which explains how to " -"start it. Although it is already SSL-enabled, it might be less " +"start it. Although it is already TLS-enabled, it might be less " "descriptive on how it does so. Stick to this guide for a deeper " "introduction to the topic." msgstr "" @@ -5796,14 +5984,14 @@ msgstr "" "moins descriptif sur la façon de procéder. Tiens-toi en à ce guide pour " "une introduction plus approfondie sur le sujet." -#: ../../source/how-to-enable-ssl-connections.rst:16 +#: ../../source/how-to-enable-tls-connections.rst:16 msgid "Certificates" msgstr "Certificats" -#: ../../source/how-to-enable-ssl-connections.rst:18 +#: ../../source/how-to-enable-tls-connections.rst:18 #, fuzzy msgid "" -"Using SSL-enabled connections requires certificates to be passed to the " +"Using TLS-enabled connections requires certificates to be passed to the " "server and client. For the purpose of this guide we are going to generate" " self-signed certificates. As this can become quite complex we are going " "to ask you to run the script in ``examples/advanced-" @@ -5817,7 +6005,7 @@ msgstr "" "d'exécuter le script dans :code:`examples/advanced-" "tensorflow/certificates/generate.sh`" -#: ../../source/how-to-enable-ssl-connections.rst:29 +#: ../../source/how-to-enable-tls-connections.rst:29 #, fuzzy msgid "" "This will generate the certificates in ``examples/advanced-" @@ -5826,10 +6014,10 @@ msgstr "" "Cela générera les certificats dans :code:`examples/advanced-" "tensorflow/.cache/certificates`." -#: ../../source/how-to-enable-ssl-connections.rst:32 +#: ../../source/how-to-enable-tls-connections.rst:32 #, fuzzy msgid "" -"The approach for generating SSL certificates in the context of this " +"The approach for generating TLS certificates in the context of this " "example can serve as an inspiration and starting point, but it should not" " be used as a reference for production environments. Please refer to " "other sources regarding the issue of correctly generating certificates " @@ -5841,33 +6029,35 @@ msgstr "" "servir d'inspiration et de point de départ, mais ne doit pas être " "considérée comme complète pour les environnements de production." -#: ../../source/how-to-enable-ssl-connections.rst:40 +#: ../../source/how-to-enable-tls-connections.rst:40 #, fuzzy msgid "Server (SuperLink)" msgstr "flower-superlink" -#: ../../source/how-to-enable-ssl-connections.rst:42 +#: ../../source/how-to-enable-tls-connections.rst:42 #, fuzzy msgid "" -"Use the following terminal command to start a sever (SuperLink) that uses" -" the previously generated certificates:" +"Navigate to the ``examples/advanced-tensorflow`` folder (`here " +"`_) and use the following terminal command to start a server " +"(SuperLink) that uses the previously generated certificates:" msgstr "" "Nous allons maintenant montrer comment écrire un client qui utilise les " "scripts générés précédemment :" -#: ../../source/how-to-enable-ssl-connections.rst:52 +#: ../../source/how-to-enable-tls-connections.rst:54 msgid "" "When providing certificates, the server expects a tuple of three " "certificates paths: CA certificate, server certificate and server private" " key." msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:56 +#: ../../source/how-to-enable-tls-connections.rst:58 #, fuzzy -msgid "Client (SuperNode)" +msgid "Clients (SuperNode)" msgstr "Codes d'état du client." -#: ../../source/how-to-enable-ssl-connections.rst:58 +#: ../../source/how-to-enable-tls-connections.rst:60 #, fuzzy msgid "" "Use the following terminal command to start a client (SuperNode) that " @@ -5876,7 +6066,7 @@ msgstr "" "Nous allons maintenant montrer comment écrire un client qui utilise les " "scripts générés précédemment :" -#: ../../source/how-to-enable-ssl-connections.rst:67 +#: ../../source/how-to-enable-tls-connections.rst:71 #, fuzzy msgid "" "When setting ``root_certificates``, the client expects a file path to " @@ -5887,23 +6077,62 @@ msgstr "" "utilisons à nouveau :code:`Path` pour simplifier la lecture de ces " "certificats sous forme de chaînes d'octets." -#: ../../source/how-to-enable-ssl-connections.rst:73 +#: ../../source/how-to-enable-tls-connections.rst:74 +#, fuzzy +msgid "" +"In another terminal, start a second SuperNode that uses the same " +"certificates:" +msgstr "" +"Nous allons maintenant montrer comment écrire un client qui utilise les " +"scripts générés précédemment :" + +#: ../../source/how-to-enable-tls-connections.rst:84 +msgid "" +"Note that in the second SuperNode, if you run both on the same machine, " +"you must specify a different port for the ``ClientAppIO`` API address to " +"avoid clashing with the first SuperNode." +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:89 +msgid "Executing ``flwr run`` with TLS" +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:91 +msgid "" +"The root certificates used for executing ``flwr run`` is specified in the" +" ``pyproject.toml`` of your app." +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:100 +msgid "" +"Note that the path to the ``root-certificates`` is relative to the root " +"of the project. Now, you can run the example by executing the following:" +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:110 #, fuzzy msgid "" "You should now have learned how to generate self-signed certificates " -"using the given script, start an SSL-enabled server and have a client " -"establish a secure connection to it." +"using the given script, start an TLS-enabled server and have two clients " +"establish secure connections to it. You should also have learned how to " +"run your Flower project using ``flwr run`` with TLS enabled." msgstr "" "Tu devrais maintenant avoir appris à générer des certificats auto-signés " "à l'aide du script donné, à démarrer un serveur compatible SSL et à " "demander à un client d'établir une connexion sécurisée avec lui." -#: ../../source/how-to-enable-ssl-connections.rst:78 +#: ../../source/how-to-enable-tls-connections.rst:117 +msgid "" +"For running a Docker setup with TLS enabled, please refer to :doc:`docker" +"/enable-tls`." +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:121 #, fuzzy msgid "Additional resources" msgstr "Ressources supplémentaires" -#: ../../source/how-to-enable-ssl-connections.rst:80 +#: ../../source/how-to-enable-tls-connections.rst:123 msgid "" "These additional sources might be relevant if you would like to dive " "deeper into the topic of certificates:" @@ -5911,11 +6140,11 @@ msgstr "" "Ces sources supplémentaires peuvent être pertinentes si tu souhaites " "approfondir le sujet des certificats :" -#: ../../source/how-to-enable-ssl-connections.rst:83 +#: ../../source/how-to-enable-tls-connections.rst:126 msgid "`Let's Encrypt `_" msgstr "`Let's Encrypt `_" -#: ../../source/how-to-enable-ssl-connections.rst:84 +#: ../../source/how-to-enable-tls-connections.rst:127 msgid "`certbot `_" msgstr "`certbot `_" @@ -6448,7 +6677,6 @@ msgid "Install stable release" msgstr "Installe la version stable" #: ../../source/how-to-install-flower.rst:14 -#: ../../source/how-to-upgrade-to-flower-next.rst:66 msgid "Using pip" msgstr "" @@ -7285,10 +7513,10 @@ msgstr "Passe à Flower 1.0" #: ../../source/how-to-upgrade-to-flower-1.0.rst:6 msgid "" "This guide is for users who have already worked with Flower 0.x and want " -"to upgrade to Flower 1.0. Newer versions of Flower (1.12+) are based on a" -" new architecture (previously called Flower Next) and not covered in this" -" guide. After upgrading Flower 0.x projects to Flower 1.0, please refer " -"to :doc:`Upgrade to Flower Next ` to make " +"to upgrade to Flower 1.0. Newer versions of Flower (1.13 and later) are " +"based on a new architecture and not covered in this guide. After " +"upgrading Flower 0.x projects to Flower 1.0, please refer to " +":doc:`Upgrade to Flower 1.13 ` to make " "your project compatible with the lastest version of Flower." msgstr "" @@ -7306,7 +7534,7 @@ msgstr "" "0.x existants." #: ../../source/how-to-upgrade-to-flower-1.0.rst:19 -#: ../../source/how-to-upgrade-to-flower-next.rst:63 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:49 msgid "Install update" msgstr "Installer la mise à jour" @@ -7363,7 +7591,7 @@ msgstr "" "l'utilisation de ``start_simulation``)" #: ../../source/how-to-upgrade-to-flower-1.0.rst:37 -#: ../../source/how-to-upgrade-to-flower-next.rst:121 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:88 msgid "Required changes" msgstr "Changements nécessaires" @@ -7628,7 +7856,7 @@ msgstr "" "round_timeout=600.0), ...)``" #: ../../source/how-to-upgrade-to-flower-1.0.rst:130 -#: ../../source/how-to-upgrade-to-flower-next.rst:349 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:451 msgid "Further help" msgstr "Aide supplémentaire" @@ -7647,186 +7875,241 @@ msgstr "" "Flower `_ et utilise le canal " "``#questions``." -#: ../../source/how-to-upgrade-to-flower-next.rst:2 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:2 #, fuzzy -msgid "Upgrade to Flower Next" +msgid "Upgrade to Flower 1.13" msgstr "Passe à Flower 1.0" -#: ../../source/how-to-upgrade-to-flower-next.rst:4 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:4 msgid "" -"Welcome to the migration guide for updating Flower to Flower Next! " +"Welcome to the migration guide for updating Flower to Flower 1.13! " "Whether you're a seasoned user or just getting started, this guide will " "help you smoothly transition your existing setup to take advantage of the" -" latest features and improvements in Flower Next, starting from version " -"1.8." +" latest features and improvements in Flower 1.13." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:11 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:10 msgid "" -"This guide shows how to reuse pre-``1.8`` Flower code with minimum code " -"changes by using the *compatibility layer* in Flower Next. In another " -"guide, we will show how to run Flower Next end-to-end with pure Flower " -"Next APIs." +"This guide shows how to make pre-``1.13`` Flower code compatible with " +"Flower 1.13 (and later) with only minimal code changes." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:15 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:13 msgid "Let's dive in!" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:68 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:51 #, fuzzy msgid "" -"Here's how to update an existing installation of Flower to Flower Next " +"Here's how to update an existing installation of Flower to Flower 1.13 " "with ``pip``:" msgstr "" "Voici comment mettre à jour une installation existante vers Flower 1.0 en" " utilisant soit pip soit Poetry :" -#: ../../source/how-to-upgrade-to-flower-next.rst:74 -msgid "or if you need Flower Next with simulation:" +#: ../../source/how-to-upgrade-to-flower-1.13.rst:57 +msgid "or if you need Flower 1.13 with simulation:" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:80 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:63 msgid "" "Ensure you set the following version constraint in your " "``requirements.txt``" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:90 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:73 msgid "or ``pyproject.toml``:" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:101 -#, fuzzy -msgid "Using Poetry" -msgstr "Utiliser la poésie (recommandé)" +#: ../../source/how-to-upgrade-to-flower-1.13.rst:90 +msgid "" +"Starting with Flower 1.8, the *infrastructure* and *application layers* " +"have been decoupled. Flower 1.13 enforces this separation further. Among " +"other things, this allows you to run the exact same code in a simulation " +"as in a real deployment." +msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:103 -#, fuzzy +#: ../../source/how-to-upgrade-to-flower-1.13.rst:94 msgid "" -"Update the ``flwr`` dependency in ``pyproject.toml`` and then reinstall " -"(don't forget to delete ``poetry.lock`` via ``rm poetry.lock`` before " -"running ``poetry install``)." +"Instead of starting a client in code via ``start_client()``, you create a" +" |clientapp_link|_. Instead of starting a server in code via " +"``start_server()``, you create a |serverapp_link|_. Both ``ClientApp`` " +"and ``ServerApp`` are started by the long-running components of the " +"server and client: the `SuperLink` and `SuperNode`, respectively." msgstr "" -"Poetry : mettez à jour la dépendance ``flwr`` dans ``pyproject.toml`` " -"puis réinstallez (n'oubliez pas de supprimer ``poetry.lock`` via ``rm " -"poetry.lock`` avant d'exécuter ``poetry install``)." -#: ../../source/how-to-upgrade-to-flower-next.rst:106 -#, fuzzy +#: ../../source/how-to-upgrade-to-flower-1.13.rst:102 msgid "" -"Ensure you set the following version constraint in your " -"``pyproject.toml``:" -msgstr "Augmente la version mineure de ``pyproject.toml`` d'une unité." +"For more details on SuperLink and SuperNode, please see the " +"|flower_architecture_link|_ ." +msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:123 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:105 msgid "" -"In Flower Next, the *infrastructure* and *application layers* have been " -"decoupled. Instead of starting a client in code via ``start_client()``, " -"you create a |clientapp_link|_ and start it via the command line. Instead" -" of starting a server in code via ``start_server()``, you create a " -"|serverapp_link|_ and start it via the command line. The long-running " -"components of server and client are called SuperLink and SuperNode. The " -"following non-breaking changes that require manual updates and allow you " -"to run your project both in the traditional way and in the Flower Next " -"way:" +"The following non-breaking changes require manual updates and allow you " +"to run your project both in the traditional (now deprecated) way and in " +"the new (recommended) Flower 1.13 way:" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:132 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:110 #, fuzzy msgid "|clientapp_link|_" msgstr "client" -#: ../../source/how-to-upgrade-to-flower-next.rst:134 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:112 msgid "" "Wrap your existing client with |clientapp_link|_ instead of launching it " -"via |startclient_link|_. Here's an example:" +"via ``start_client()``. Here's an example:" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:157 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:146 #, fuzzy msgid "|serverapp_link|_" msgstr "serveur" -#: ../../source/how-to-upgrade-to-flower-next.rst:159 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:148 msgid "" "Wrap your existing strategy with |serverapp_link|_ instead of starting " -"the server via |startserver_link|_. Here's an example:" +"the server via ``start_server()``. Here's an example:" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:180 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:185 msgid "Deployment" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:182 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:187 +msgid "" +"In a terminal window, start the SuperLink using |flower_superlink_link|_." +" Then, in two additional terminal windows, start two SuperNodes using " +"|flower_supernode_link|_ (2x). There is no need to directly run " +"``client.py`` and ``server.py`` as Python scripts." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:190 msgid "" -"Run the ``SuperLink`` using |flowernext_superlink_link|_ before running, " -"in sequence, |flowernext_clientapp_link|_ (2x) and " -"|flowernext_serverapp_link|_. There is no need to execute `client.py` and" -" `server.py` as Python scripts." +"Here's an example to start the server without HTTPS (insecure mode, only " +"for prototyping):" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:185 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:195 msgid "" -"Here's an example to start the server without HTTPS (only for " -"prototyping):" +"For a comprehensive walk-through on how to deploy Flower using Docker, " +"please refer to the :doc:`docker/index` guide." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:201 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:218 msgid "" -"Here's another example to start with HTTPS. Use the ``--ssl-ca-" -"certfile``, ``--ssl-certfile``, and ``--ssl-keyfile`` command line " -"options to pass paths to (CA certificate, server certificate, and server " -"private key)." +"Here's another example to start both SuperLink and SuperNodes with HTTPS." +" Use the ``--ssl-ca-certfile``, ``--ssl-certfile``, and ``--ssl-keyfile``" +" command line options to pass paths to (CA certificate, server " +"certificate, and server private key)." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:229 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:246 #, fuzzy -msgid "Simulation in CLI" +msgid "Simulation (CLI)" msgstr "Simulation de moniteur" -#: ../../source/how-to-upgrade-to-flower-next.rst:231 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:248 msgid "" "Wrap your existing client and strategy with |clientapp_link|_ and " -"|serverapp_link|_, respectively. There is no need to use |startsim_link|_" -" anymore. Here's an example:" +"|serverapp_link|_, respectively. There is no need to use " +"``start_simulation()`` anymore. Here's an example:" +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:253 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:389 +msgid "" +"For a comprehensive guide on how to setup and run Flower simulations " +"please read the |flower_how_to_run_simulations_link|_ guide." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:310 +msgid "Depending on your Flower version, you can run your simulation as follows:" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:264 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:312 msgid "" -"Run |flower_simulation_link|_ in CLI and point to the ``server_app`` / " +"For Flower 1.11 and later, run ``flwr run`` in the terminal. This is the " +"recommended way to start simulations, other ways are deprecated and no " +"longer recommended." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:314 +msgid "" +"DEPRECATED For Flower versions between 1.8 and 1.10, run ``flower-" +"simulation`` in the terminal and point to the ``server_app`` / " "``client_app`` object in the code instead of executing the Python script." -" Here's an example (assuming the ``server_app`` and ``client_app`` " -"objects are in a ``sim.py`` module):" +" In the code snippet below, there is an example (assuming the " +"``server_app`` and ``client_app`` objects are in a ``sim.py`` module)." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:281 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:318 +msgid "DEPRECATED For Flower versions before 1.8, run the Python script directly." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:337 msgid "" -"Set default resources for each |clientapp_link|_ using the ``--backend-" -"config`` command line argument instead of setting the " -"``client_resources`` argument in |startsim_link|_. Here's an example:" +"Depending on your Flower version, you can also define the default " +"resources as follows:" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:305 -msgid "Simulation in a Notebook" +#: ../../source/how-to-upgrade-to-flower-1.13.rst:339 +msgid "" +"For Flower 1.11 and later, you can edit your ``pyproject.toml`` file and " +"then run ``flwr run`` in the terminal as shown in the example below." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:341 +msgid "" +"DEPRECATED For Flower versions between 1.8 and 1.10, you can adjust the " +"resources for each |clientapp_link|_ using the ``--backend-config`` " +"command line argument instead of setting the ``client_resources`` " +"argument in ``start_simulation()``." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:307 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:344 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:384 msgid "" -"Run |runsim_link|_ in your notebook instead of |startsim_link|_. Here's " -"an example:" +"DEPRECATED For Flower versions before 1.8, you need to run " +"``start_simulation()`` and pass a dictionary of the required resources to" +" the ``client_resources`` argument." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:351 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:375 #, fuzzy +msgid "Simulation (Notebook)" +msgstr "Simulation de moniteur" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:377 +msgid "" +"To run your simulation from within a notebook, please consider the " +"following examples depending on your Flower version:" +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:380 msgid "" -"Some official `Flower code examples `_ " -"are already updated to Flower Next so they can serve as a reference for " -"using the Flower Next API. If there are further questions, `join the " -"Flower Slack `_ and use the channel " -"``#questions``. You can also `participate in Flower Discuss " -"`_ where you can find us answering questions," -" or share and learn from others about migrating to Flower Next." +"For Flower 1.11 and later, you need to run |runsim_link|_ in your " +"notebook instead of ``start_simulation()``." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:382 +msgid "" +"DEPRECATED For Flower versions between 1.8 and 1.10, you need to run " +"|runsim_link|_ in your notebook instead of ``start_simulation()`` and " +"configure the resources." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:453 +#, fuzzy +msgid "" +"Most official `Flower code examples `_ " +"are already updated to Flower 1.13 so they can serve as a reference for " +"using the Flower 1.13 API. If there are further questions, `join the " +"Flower Slack `_ (and use the channel " +"``#questions``) or post them on `Flower Discuss " +"`_ where you can find the community posting " +"and answering questions." msgstr "" "La plupart des `exemples de code Flower officiels " "`_ sont déjà mis à " @@ -7835,19 +8118,18 @@ msgstr "" "Flower `_ et utilise le canal " "``#questions``." -#: ../../source/how-to-upgrade-to-flower-next.rst:358 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:460 #, fuzzy msgid "Important" msgstr "Changements importants :" -#: ../../source/how-to-upgrade-to-flower-next.rst:360 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:462 msgid "" -"As we continuously enhance Flower Next at a rapid pace, we'll be " -"periodically updating this guide. Please feel free to share any feedback " -"with us!" +"As we continuously enhance Flower at a rapid pace, we'll be periodically " +"updating this guide. Please feel free to share any feedback with us!" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:366 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:465 msgid "Happy migrating! 🚀" msgstr "" @@ -8481,6 +8763,228 @@ msgstr "Exemples de PyTorch" msgid "``flwr`` CLI" msgstr "Client de Flower" +#: ../../flwr:1 +#, fuzzy +msgid "flwr is the Flower command line interface." +msgstr "Client de Flower" + +#: ../../source/ref-api-cli.rst +#, fuzzy +msgid "Options" +msgstr "Solution" + +#: ../../flwr:1 +msgid "Install completion for the current shell." +msgstr "" + +#: ../../flwr:1 +msgid "" +"Show completion for the current shell, to copy it or customize the " +"installation." +msgstr "" + +#: ../../flwr build:1 +msgid "Build a Flower App into a Flower App Bundle (FAB)." +msgstr "" + +#: ../../flwr build:1 +msgid "" +"You can run ``flwr build`` without any arguments to bundle the app " +"located in the current directory. Alternatively, you can you can specify " +"a path using the ``--app`` option to bundle an app located at the " +"provided path. For example:" +msgstr "" + +#: ../../flwr build:1 +msgid "``flwr build --app ./apps/flower-hello-world``." +msgstr "" + +#: ../../flwr build:1 +msgid "Path of the Flower App to bundle into a FAB" +msgstr "" + +#: ../../flwr install:1 +#, fuzzy +msgid "Install a Flower App Bundle." +msgstr "Installer Flower" + +#: ../../flwr install:1 +msgid "It can be ran with a single FAB file argument:" +msgstr "" + +#: ../../flwr install:1 +msgid "``flwr install ./target_project.fab``" +msgstr "" + +#: ../../flwr install:1 +msgid "The target install directory can be specified with ``--flwr-dir``:" +msgstr "" + +#: ../../flwr install:1 +msgid "``flwr install ./target_project.fab --flwr-dir ./docs/flwr``" +msgstr "" + +#: ../../flwr install:1 +msgid "" +"This will install ``target_project`` to ``./docs/flwr/``. By default, " +"``flwr-dir`` is equal to:" +msgstr "" + +#: ../../flwr install:1 +msgid "``$FLWR_HOME/`` if ``$FLWR_HOME`` is defined" +msgstr "" + +#: ../../flwr install:1 +msgid "``$XDG_DATA_HOME/.flwr/`` if ``$XDG_DATA_HOME`` is defined" +msgstr "" + +#: ../../flwr install:1 +msgid "``$HOME/.flwr/`` in all other cases" +msgstr "" + +#: ../../flwr install:1 +msgid "The desired install path." +msgstr "" + +#: ../../source/ref-api-cli.rst +#, fuzzy +msgid "Arguments" +msgstr "Amélioration de la documentation" + +#: ../../flwr install:1 log:1 ls:1 new:1 run:1 +#, fuzzy +msgid "Optional argument" +msgstr "Améliorations facultatives" + +#: ../../flwr install:1 +msgid "The source FAB file to install." +msgstr "" + +#: ../../flwr log:1 +msgid "Get logs from a Flower project run." +msgstr "" + +#: ../../flwr log:1 +msgid "Flag to stream or print logs from the Flower run" +msgstr "" + +#: ../../flwr log ls run +#, fuzzy +msgid "default" +msgstr "Flux de travail" + +#: ../../flwr log:1 +msgid "``True``" +msgstr "" + +#: ../../flwr log:1 +#, fuzzy +msgid "Required argument" +msgstr "Amélioration de la documentation" + +#: ../../flwr log:1 +#, fuzzy +msgid "The Flower run ID to query" +msgstr "Rejoignez la communauté de Flower" + +#: ../../flwr log:1 +msgid "Path of the Flower project to run" +msgstr "" + +#: ../../flwr log:1 +msgid "Name of the federation to run the app on" +msgstr "" + +#: ../../flwr ls:1 +msgid "List runs." +msgstr "" + +#: ../../flwr ls:1 +msgid "List all runs" +msgstr "" + +#: ../../flwr ls:1 run:1 +msgid "``False``" +msgstr "" + +#: ../../flwr ls:1 +msgid "Specific run ID to display" +msgstr "" + +#: ../../flwr ls:1 +#, fuzzy +msgid "Path of the Flower project" +msgstr "Chargement des données" + +#: ../../flwr ls:1 +msgid "Name of the federation" +msgstr "" + +#: ../../flwr new:1 +#, fuzzy +msgid "Create new Flower App." +msgstr "Créer une nouvelle page" + +#: ../../flwr new:1 +msgid "The ML framework to use" +msgstr "" + +#: ../../flwr new +#, fuzzy +msgid "options" +msgstr "Solution" + +#: ../../flwr new:1 +msgid "" +"PyTorch | TensorFlow | sklearn | HuggingFace | JAX | MLX | NumPy | " +"FlowerTune | Flower Baseline" +msgstr "" + +#: ../../flwr new:1 +msgid "The Flower username of the author" +msgstr "" + +#: ../../flwr new:1 +#, fuzzy +msgid "The name of the Flower App" +msgstr "Chargement des données" + +#: ../../flwr run:1 +#, fuzzy +msgid "Run Flower App." +msgstr "Serveur de Flower" + +#: ../../flwr run:1 +msgid "Override configuration key-value pairs, should be of the format:" +msgstr "" + +#: ../../flwr run:1 +msgid "" +"`--run-config 'key1=\"value1\" key2=\"value2\"' --run-config " +"'key3=\"value3\"'`" +msgstr "" + +#: ../../flwr run:1 +msgid "" +"Note that `key1`, `key2`, and `key3` in this example need to exist inside" +" the `pyproject.toml` in order to be properly overriden." +msgstr "" + +#: ../../flwr run:1 +msgid "" +"Use `--stream` with `flwr run` to display logs; logs are not streamed by " +"default." +msgstr "" + +#: ../../flwr run:1 +#, fuzzy +msgid "Path of the Flower App to run." +msgstr "Chargement des données" + +#: ../../flwr run:1 +msgid "Name of the federation to run the app on." +msgstr "" + #: ../../source/ref-api-cli.rst:19 #, fuzzy msgid "``flower-superlink``" @@ -8555,7 +9059,7 @@ msgstr "" #: ../../source/ref-api/flwr.rst:35::1 #, fuzzy -msgid ":py:obj:`client `\\" +msgid ":py:obj:`flwr.client `\\" msgstr "serveur.stratégie.Stratégie" #: ../../source/ref-api/flwr.rst:35::1 flwr.client:1 of @@ -8565,7 +9069,7 @@ msgstr "Client de Flower" #: ../../source/ref-api/flwr.rst:35::1 #, fuzzy -msgid ":py:obj:`common `\\" +msgid ":py:obj:`flwr.common `\\" msgstr "serveur.stratégie.Stratégie" #: ../../source/ref-api/flwr.rst:35::1 flwr.common:1 of @@ -8574,7 +9078,7 @@ msgstr "Composants communs partagés entre le serveur et le client." #: ../../source/ref-api/flwr.rst:35::1 #, fuzzy -msgid ":py:obj:`server `\\" +msgid ":py:obj:`flwr.server `\\" msgstr "serveur.stratégie.Stratégie" #: ../../source/ref-api/flwr.rst:35::1 @@ -8586,7 +9090,7 @@ msgstr "Serveur de Flower" #: ../../source/ref-api/flwr.rst:35::1 #, fuzzy -msgid ":py:obj:`simulation `\\" +msgid ":py:obj:`flwr.simulation `\\" msgstr "serveur.stratégie.Stratégie" #: ../../source/ref-api/flwr.rst:35::1 flwr.simulation:1 of @@ -8671,7 +9175,7 @@ msgstr "" #: ../../source/ref-api/flwr.client.rst:50::1 #, fuzzy -msgid ":py:obj:`mod `\\" +msgid ":py:obj:`flwr.client.mod `\\" msgstr "serveur.stratégie.Stratégie" #: ../../source/ref-api/flwr.client.rst:50::1 flwr.client.mod:1 of @@ -8873,49 +9377,59 @@ msgstr "" msgid "Getter for `Context` client attribute." msgstr "" -#: ../../source/ref-api/flwr.client.Client.rst -#: ../../source/ref-api/flwr.client.NumPyClient.rst -#: ../../source/ref-api/flwr.client.mod.LocalDpMod.rst -#: ../../source/ref-api/flwr.common.Array.rst -#: ../../source/ref-api/flwr.common.ConfigsRecord.rst -#: ../../source/ref-api/flwr.common.Context.rst -#: ../../source/ref-api/flwr.common.Error.rst -#: ../../source/ref-api/flwr.common.Message.rst -#: ../../source/ref-api/flwr.common.Metadata.rst -#: ../../source/ref-api/flwr.common.MetricsRecord.rst #: ../../source/ref-api/flwr.common.Parameters.rst:2 -#: ../../source/ref-api/flwr.common.ParametersRecord.rst -#: ../../source/ref-api/flwr.common.RecordSet.rst -#: ../../source/ref-api/flwr.server.ClientManager.rst -#: ../../source/ref-api/flwr.server.Driver.rst -#: ../../source/ref-api/flwr.server.ServerAppComponents.rst -#: ../../source/ref-api/flwr.server.SimpleClientManager.rst -#: ../../source/ref-api/flwr.server.strategy.Bulyan.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgAdaptive.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgFixed.rst -#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyClientSideAdaptiveClipping.rst -#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyClientSideFixedClipping.rst -#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyServerSideAdaptiveClipping.rst -#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyServerSideFixedClipping.rst -#: ../../source/ref-api/flwr.server.strategy.FedAdagrad.rst -#: ../../source/ref-api/flwr.server.strategy.FedAdam.rst -#: ../../source/ref-api/flwr.server.strategy.FedAvg.rst -#: ../../source/ref-api/flwr.server.strategy.FedAvgAndroid.rst -#: ../../source/ref-api/flwr.server.strategy.FedAvgM.rst -#: ../../source/ref-api/flwr.server.strategy.FedOpt.rst -#: ../../source/ref-api/flwr.server.strategy.FedProx.rst -#: ../../source/ref-api/flwr.server.strategy.FedTrimmedAvg.rst -#: ../../source/ref-api/flwr.server.strategy.FedYogi.rst -#: ../../source/ref-api/flwr.server.strategy.Krum.rst -#: ../../source/ref-api/flwr.server.strategy.Strategy.rst -#: ../../source/ref-api/flwr.server.workflow.SecAggPlusWorkflow.rst -#: ../../source/ref-api/flwr.server.workflow.SecAggWorkflow.rst -#: ../../source/ref-api/flwr.simulation.SimulationIoConnection.rst -#: ../../source/ref-api/flwr.simulation.run_simulation.rst -#: ../../source/ref-api/flwr.simulation.start_simulation.rst #: flwr.client.app.start_client flwr.client.app.start_numpy_client -#: flwr.server.app.start_server -#: flwr.server.driver.driver.Driver.send_and_receive of +#: flwr.client.client.Client.evaluate flwr.client.client.Client.fit +#: flwr.client.client.Client.get_parameters +#: flwr.client.client.Client.get_properties +#: flwr.client.mod.localdp_mod.LocalDpMod +#: flwr.client.numpy_client.NumPyClient.evaluate +#: flwr.client.numpy_client.NumPyClient.fit +#: flwr.client.numpy_client.NumPyClient.get_parameters +#: flwr.client.numpy_client.NumPyClient.get_properties +#: flwr.common.context.Context flwr.common.message.Error +#: flwr.common.message.Message flwr.common.message.Message.create_error_reply +#: flwr.common.message.Message.create_reply flwr.common.message.Metadata +#: flwr.common.record.configsrecord.ConfigsRecord +#: flwr.common.record.metricsrecord.MetricsRecord +#: flwr.common.record.parametersrecord.Array +#: flwr.common.record.parametersrecord.ParametersRecord +#: flwr.common.record.recordset.RecordSet flwr.server.app.start_server +#: flwr.server.client_manager.ClientManager.register +#: flwr.server.client_manager.ClientManager.unregister +#: flwr.server.client_manager.SimpleClientManager.register +#: flwr.server.client_manager.SimpleClientManager.unregister +#: flwr.server.client_manager.SimpleClientManager.wait_for +#: flwr.server.driver.driver.Driver.create_message +#: flwr.server.driver.driver.Driver.pull_messages +#: flwr.server.driver.driver.Driver.push_messages +#: flwr.server.driver.driver.Driver.send_and_receive +#: flwr.server.driver.driver.Driver.set_run +#: flwr.server.serverapp_components.ServerAppComponents +#: flwr.server.strategy.bulyan.Bulyan +#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping +#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping +#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping +#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit +#: flwr.server.strategy.fedadagrad.FedAdagrad +#: flwr.server.strategy.fedadam.FedAdam flwr.server.strategy.fedavg.FedAvg +#: flwr.server.strategy.fedavg_android.FedAvgAndroid +#: flwr.server.strategy.fedavgm.FedAvgM flwr.server.strategy.fedopt.FedOpt +#: flwr.server.strategy.fedprox.FedProx +#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg +#: flwr.server.strategy.fedyogi.FedYogi flwr.server.strategy.krum.Krum +#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate +#: flwr.server.strategy.strategy.Strategy.aggregate_fit +#: flwr.server.strategy.strategy.Strategy.configure_evaluate +#: flwr.server.strategy.strategy.Strategy.configure_fit +#: flwr.server.strategy.strategy.Strategy.evaluate +#: flwr.server.strategy.strategy.Strategy.initialize_parameters +#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow +#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow +#: flwr.simulation.run_simulation.run_simulation +#: flwr.simulation.simulationio_connection.SimulationIoConnection of #, fuzzy msgid "Parameters" msgstr "Paramètres du modèle." @@ -8927,21 +9441,32 @@ msgid "" "customize the local evaluation process." msgstr "" -#: ../../source/ref-api/flwr.client.Client.rst -#: ../../source/ref-api/flwr.client.NumPyClient.rst -#: ../../source/ref-api/flwr.common.ConfigsRecord.rst -#: ../../source/ref-api/flwr.common.Message.rst -#: ../../source/ref-api/flwr.common.MetricsRecord.rst -#: ../../source/ref-api/flwr.common.ParametersRecord.rst -#: ../../source/ref-api/flwr.server.ClientManager.rst -#: ../../source/ref-api/flwr.server.Driver.rst -#: ../../source/ref-api/flwr.server.SimpleClientManager.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgAdaptive.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgFixed.rst -#: ../../source/ref-api/flwr.server.strategy.Strategy.rst -#: ../../source/ref-api/flwr.simulation.start_simulation.rst -#: flwr.server.app.start_server -#: flwr.server.driver.driver.Driver.send_and_receive of +#: flwr.client.client.Client.evaluate flwr.client.client.Client.fit +#: flwr.client.client.Client.get_parameters +#: flwr.client.client.Client.get_properties +#: flwr.client.numpy_client.NumPyClient.evaluate +#: flwr.client.numpy_client.NumPyClient.fit +#: flwr.client.numpy_client.NumPyClient.get_parameters +#: flwr.client.numpy_client.NumPyClient.get_properties +#: flwr.common.message.Message.create_error_reply +#: flwr.common.message.Message.create_reply flwr.server.app.start_server +#: flwr.server.client_manager.ClientManager.num_available +#: flwr.server.client_manager.ClientManager.register +#: flwr.server.client_manager.SimpleClientManager.num_available +#: flwr.server.client_manager.SimpleClientManager.register +#: flwr.server.client_manager.SimpleClientManager.wait_for +#: flwr.server.driver.driver.Driver.create_message +#: flwr.server.driver.driver.Driver.pull_messages +#: flwr.server.driver.driver.Driver.push_messages +#: flwr.server.driver.driver.Driver.send_and_receive +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit +#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate +#: flwr.server.strategy.strategy.Strategy.aggregate_fit +#: flwr.server.strategy.strategy.Strategy.configure_evaluate +#: flwr.server.strategy.strategy.Strategy.configure_fit +#: flwr.server.strategy.strategy.Strategy.evaluate +#: flwr.server.strategy.strategy.Strategy.initialize_parameters of #, fuzzy msgid "Returns" msgstr "Ressources" @@ -8952,18 +9477,30 @@ msgid "" "details such as the number of local data examples used for evaluation." msgstr "" -#: ../../source/ref-api/flwr.client.Client.rst -#: ../../source/ref-api/flwr.client.NumPyClient.rst -#: ../../source/ref-api/flwr.common.Message.rst -#: ../../source/ref-api/flwr.server.ClientManager.rst -#: ../../source/ref-api/flwr.server.Driver.rst -#: ../../source/ref-api/flwr.server.SimpleClientManager.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgAdaptive.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgFixed.rst -#: ../../source/ref-api/flwr.server.strategy.Strategy.rst -#: ../../source/ref-api/flwr.simulation.start_simulation.rst -#: flwr.server.app.start_server -#: flwr.server.driver.driver.Driver.send_and_receive of +#: flwr.client.client.Client.evaluate flwr.client.client.Client.fit +#: flwr.client.client.Client.get_parameters +#: flwr.client.client.Client.get_properties +#: flwr.client.numpy_client.NumPyClient.get_parameters +#: flwr.client.numpy_client.NumPyClient.get_properties +#: flwr.common.message.Message.create_error_reply +#: flwr.common.message.Message.create_reply flwr.server.app.start_server +#: flwr.server.client_manager.ClientManager.num_available +#: flwr.server.client_manager.ClientManager.register +#: flwr.server.client_manager.SimpleClientManager.num_available +#: flwr.server.client_manager.SimpleClientManager.register +#: flwr.server.client_manager.SimpleClientManager.wait_for +#: flwr.server.driver.driver.Driver.create_message +#: flwr.server.driver.driver.Driver.pull_messages +#: flwr.server.driver.driver.Driver.push_messages +#: flwr.server.driver.driver.Driver.send_and_receive +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit +#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate +#: flwr.server.strategy.strategy.Strategy.aggregate_fit +#: flwr.server.strategy.strategy.Strategy.configure_evaluate +#: flwr.server.strategy.strategy.Strategy.configure_fit +#: flwr.server.strategy.strategy.Strategy.evaluate +#: flwr.server.strategy.strategy.Strategy.initialize_parameters of msgid "Return type" msgstr "" @@ -9001,11 +9538,6 @@ msgstr "" msgid "The current client properties." msgstr "" -#: ../../source/ref-api/flwr.client.ClientApp.rst:2 -#, fuzzy -msgid "ClientApp" -msgstr "client" - #: flwr.client.client_app.ClientApp:1 flwr.client.mod.localdp_mod.LocalDpMod:1 #: flwr.common.constant.MessageType:1 flwr.common.constant.MessageTypeLegacy:1 #: flwr.common.context.Context:1 flwr.common.message.Error:1 @@ -9294,6 +9826,11 @@ msgstr "Logique côté client" msgid ":py:obj:`make_ffn `\\ \\(ffn\\, mods\\)" msgstr "serveur.stratégie.Stratégie" +#: ../../source/ref-api/flwr.client.mod.rst:28::1 +#: flwr.client.mod.utils.make_ffn:1 of +msgid "." +msgstr "" + #: ../../source/ref-api/flwr.client.mod.rst:28::1 msgid "" ":py:obj:`message_size_mod `\\ \\(msg\\," @@ -9461,10 +9998,6 @@ msgstr "" msgid "make\\_ffn" msgstr "" -#: flwr.client.mod.utils.make_ffn:1 of -msgid "." -msgstr "" - #: ../../source/ref-api/flwr.client.mod.message_size_mod.rst:2 msgid "message\\_size\\_mod" msgstr "" @@ -9493,16 +10026,6 @@ msgstr "" msgid "secaggplus\\_mod" msgstr "Flux de travail" -#: ../../source/ref-api/flwr.client.run_client_app.rst:2 -#, fuzzy -msgid "run\\_client\\_app" -msgstr "client" - -#: ../../source/ref-api/flwr.client.run_supernode.rst:2 -#, fuzzy -msgid "run\\_supernode" -msgstr "flower-superlink" - #: ../../source/ref-api/flwr.client.start_client.rst:2 #, fuzzy msgid "start\\_client" @@ -10253,17 +10776,12 @@ msgstr "" #: collections.abc.MutableMapping.clear:1::1 of #, fuzzy -msgid ":py:obj:`get `\\ \\(key\\[\\, default\\]\\)" +msgid ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" msgstr "" "Flower 1.0 : ``start_server(..., " "config=flwr.server.ServerConfig(num_rounds=3, round_timeout=600.0), " "...)``" -#: collections.abc.Mapping.get:1 -#: collections.abc.MutableMapping.clear:1::1 of -msgid "Retrieve the corresponding layout by the string key." -msgstr "" - #: collections.abc.MutableMapping.clear:1::1 of msgid ":py:obj:`items `\\ \\(\\)" msgstr "" @@ -10320,22 +10838,6 @@ msgstr "" msgid "This function counts booleans as occupying 1 Byte." msgstr "" -#: collections.abc.Mapping.get:3 of -msgid "" -"When there isn't an exact match, all the existing keys in the layout map " -"will be treated as a regex and map against the input key again. The first" -" match will be returned, based on the key insertion order. Return None if" -" there isn't any match found." -msgstr "" - -#: collections.abc.Mapping.get:8 of -msgid "the string key as the query for the layout." -msgstr "" - -#: collections.abc.Mapping.get:10 of -msgid "Corresponding layout based on the query." -msgstr "" - #: ../../source/ref-api/flwr.common.Context.rst:2 msgid "Context" msgstr "" @@ -11788,7 +12290,7 @@ msgstr "" #: collections.abc.MutableMapping.clear:1::1 of #, fuzzy -msgid ":py:obj:`get `\\ \\(key\\[\\, default\\]\\)" +msgid ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" msgstr "serveur.stratégie.Stratégie" #: collections.abc.MutableMapping.clear:1::1 of @@ -11924,9 +12426,7 @@ msgstr "" #: collections.abc.MutableMapping.clear:1::1 of #, fuzzy -msgid "" -":py:obj:`get `\\ \\(key\\[\\, " -"default\\]\\)" +msgid ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" msgstr "serveur.stratégie.Stratégie" #: collections.abc.MutableMapping.clear:1::1 of @@ -12273,7 +12773,7 @@ msgstr "" #: ../../source/ref-api/flwr.server.rst:56::1 #, fuzzy -msgid ":py:obj:`strategy `\\" +msgid ":py:obj:`flwr.server.strategy `\\" msgstr "serveur.stratégie.Stratégie" #: ../../source/ref-api/flwr.server.rst:56::1 @@ -12283,7 +12783,7 @@ msgstr "" #: ../../source/ref-api/flwr.server.rst:56::1 #, fuzzy -msgid ":py:obj:`workflow `\\" +msgid ":py:obj:`flwr.server.workflow `\\" msgstr "serveur.stratégie.Stratégie" #: ../../source/ref-api/flwr.server.rst:56::1 @@ -12785,11 +13285,6 @@ msgstr "" msgid "Replace server strategy." msgstr "stratégie.du.serveur" -#: ../../source/ref-api/flwr.server.ServerApp.rst:2 -#, fuzzy -msgid "ServerApp" -msgstr "serveur" - #: flwr.server.server_app.ServerApp:5 of #, fuzzy msgid "Use the `ServerApp` with an existing `Strategy`:" @@ -12821,8 +13316,7 @@ msgid "" msgstr "" #: flwr.server.app.start_server:14 -#: flwr.server.serverapp_components.ServerAppComponents:6 -#: flwr.simulation.legacy_app.start_simulation:34 of +#: flwr.server.serverapp_components.ServerAppComponents:6 of msgid "" "Currently supported values are `num_rounds` (int, default: 1) and " "`round_timeout` in seconds (float, default: None)." @@ -12946,16 +13440,6 @@ msgstr "" msgid "**success**" msgstr "" -#: ../../source/ref-api/flwr.server.run_server_app.rst:2 -#, fuzzy -msgid "run\\_server\\_app" -msgstr "serveur" - -#: ../../source/ref-api/flwr.server.run_superlink.rst:2 -#, fuzzy -msgid "run\\_superlink" -msgstr "flower-superlink" - #: ../../source/ref-api/flwr.server.start_server.rst:2 #, fuzzy msgid "start\\_server" @@ -14352,7 +14836,7 @@ msgid "" msgstr "" #: ../../source/ref-api/flwr.server.strategy.FedAdagrad.rst:2 -#: ../../source/ref-changelog.md:1301 +#: ../../source/ref-changelog.md:1412 msgid "FedAdagrad" msgstr "FedAdagrad" @@ -16058,15 +16542,14 @@ msgstr "Simulation de moniteur" #: ../../source/ref-api/flwr.simulation.rst:24::1 #, fuzzy msgid "" -":py:obj:`start_simulation `\\ \\(\\*\\," -" client\\_fn\\, num\\_clients\\)" +":py:obj:`start_simulation `\\ " +"\\(\\*args\\, \\*\\*kwargs\\)" msgstr "serveur.stratégie.Stratégie" #: ../../source/ref-api/flwr.simulation.rst:24::1 -#: flwr.simulation.legacy_app.start_simulation:1 of -#, fuzzy -msgid "Start a Ray-based Flower simulation server." -msgstr "Simulation de moniteur" +#: flwr.simulation.start_simulation:1 of +msgid "Log error stating that module `ray` could not be imported." +msgstr "" #: ../../source/ref-api/flwr.simulation.rst:31::1 #, fuzzy @@ -16161,169 +16644,661 @@ msgstr "Simulation de moniteur" msgid "start\\_simulation" msgstr "démarrer_simulation" -#: flwr.simulation.legacy_app.start_simulation:5 of +#: ../../source/ref-changelog.md:1 +msgid "Changelog" +msgstr "Changelog" + +#: ../../source/ref-changelog.md:3 +#, fuzzy +msgid "Unreleased" +msgstr "Inédit" + +#: ../../source/ref-changelog.md:5 ../../source/ref-changelog.md:21 +#: ../../source/ref-changelog.md:122 ../../source/ref-changelog.md:224 +#: ../../source/ref-changelog.md:328 ../../source/ref-changelog.md:426 +#: ../../source/ref-changelog.md:526 ../../source/ref-changelog.md:590 +#: ../../source/ref-changelog.md:683 ../../source/ref-changelog.md:783 +#: ../../source/ref-changelog.md:867 ../../source/ref-changelog.md:931 +#: ../../source/ref-changelog.md:989 ../../source/ref-changelog.md:1058 +#: ../../source/ref-changelog.md:1187 ../../source/ref-changelog.md:1229 +#: ../../source/ref-changelog.md:1296 ../../source/ref-changelog.md:1362 +#: ../../source/ref-changelog.md:1407 ../../source/ref-changelog.md:1446 +#: ../../source/ref-changelog.md:1479 ../../source/ref-changelog.md:1529 +msgid "What's new?" +msgstr "Quoi de neuf ?" + +#: ../../source/ref-changelog.md:7 +#, fuzzy +msgid "Other changes" +msgstr "Changements incompatibles" + +#: ../../source/ref-changelog.md:9 ../../source/ref-changelog.md:388 +#, fuzzy +msgid "Documentation improvements" +msgstr "Améliorations facultatives" + +#: ../../source/ref-changelog.md:11 ../../source/ref-changelog.md:88 +#: ../../source/ref-changelog.md:178 ../../source/ref-changelog.md:212 +#: ../../source/ref-changelog.md:292 ../../source/ref-changelog.md:408 +#: ../../source/ref-changelog.md:504 ../../source/ref-changelog.md:578 +#: ../../source/ref-changelog.md:653 ../../source/ref-changelog.md:765 +#: ../../source/ref-changelog.md:855 ../../source/ref-changelog.md:919 +#: ../../source/ref-changelog.md:977 ../../source/ref-changelog.md:1046 +#: ../../source/ref-changelog.md:1108 ../../source/ref-changelog.md:1127 +#: ../../source/ref-changelog.md:1283 ../../source/ref-changelog.md:1354 +#: ../../source/ref-changelog.md:1391 ../../source/ref-changelog.md:1434 +msgid "Incompatible changes" +msgstr "Changements incompatibles" + +#: ../../source/ref-changelog.md:13 +#, fuzzy +msgid "v1.13.0 (2024-11-20)" +msgstr "v1.4.0 (2023-04-21)" + +#: ../../source/ref-changelog.md:15 ../../source/ref-changelog.md:116 +#: ../../source/ref-changelog.md:186 ../../source/ref-changelog.md:218 +#: ../../source/ref-changelog.md:322 ../../source/ref-changelog.md:420 +#: ../../source/ref-changelog.md:520 ../../source/ref-changelog.md:584 +#: ../../source/ref-changelog.md:677 ../../source/ref-changelog.md:777 +#: ../../source/ref-changelog.md:861 ../../source/ref-changelog.md:925 +#: ../../source/ref-changelog.md:983 ../../source/ref-changelog.md:1052 +#: ../../source/ref-changelog.md:1121 +msgid "Thanks to our contributors" +msgstr "Merci à nos contributeurs" + +#: ../../source/ref-changelog.md:17 ../../source/ref-changelog.md:118 +#: ../../source/ref-changelog.md:188 ../../source/ref-changelog.md:220 +#: ../../source/ref-changelog.md:324 ../../source/ref-changelog.md:422 +#: ../../source/ref-changelog.md:522 ../../source/ref-changelog.md:586 +#: ../../source/ref-changelog.md:679 ../../source/ref-changelog.md:779 +#: ../../source/ref-changelog.md:863 ../../source/ref-changelog.md:927 +#: ../../source/ref-changelog.md:985 msgid "" -"This function is deprecated since 1.13.0. Use :code: `flwr run` to start " -"a Flower simulation." +"We would like to give our special thanks to all the contributors who made" +" the new version of Flower possible (in `git shortlog` order):" msgstr "" +"Nous tenons à remercier tout particulièrement tous les contributeurs qui " +"ont rendu possible la nouvelle version de Flower (dans l'ordre `git " +"shortlog`) :" -#: flwr.simulation.legacy_app.start_simulation:8 of +#: ../../source/ref-changelog.md:19 msgid "" -"A function creating `Client` instances. The function must have the " -"signature `client_fn(context: Context). It should return a single client " -"instance of type `Client`. Note that the created client instances are " -"ephemeral and will often be destroyed after a single method invocation. " -"Since client instances are not long-lived, they should not attempt to " -"carry state over method invocations. Any state required by the instance " -"(model, dataset, hyperparameters, ...) should be (re-)created in either " -"the call to `client_fn` or the call to any of the client methods (e.g., " -"load evaluation data in the `evaluate` method itself)." +"`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. " +"Beutel`, `Daniel Nata Nugraha`, `Dimitris Stripelis`, `Heng Pan`, " +"`Javier`, `Mohammad Naseri`, `Robert Steiner`, `Waris Gill`, `William " +"Lindskog`, `Yan Gao`, `Yao Xu`, `wwjang` " msgstr "" -#: flwr.simulation.legacy_app.start_simulation:18 of -msgid "The total number of clients in this simulation." +#: ../../source/ref-changelog.md:23 +#, fuzzy +msgid "" +"**Introduce `flwr ls` command** " +"([#4460](https://github.com/adap/flower/pull/4460), " +"[#4459](https://github.com/adap/flower/pull/4459), " +"[#4477](https://github.com/adap/flower/pull/4477))" msgstr "" +"**Introduire la télémétrie optionnelle** " +"([#1533](https://github.com/adap/flower/pull/1533), " +"[#1544](https://github.com/adap/flower/pull/1544), " +"[#1584](https://github.com/adap/flower/pull/1584))" -#: flwr.simulation.legacy_app.start_simulation:20 of +#: ../../source/ref-changelog.md:25 msgid "" -"UNSUPPORTED, WILL BE REMOVED. USE `num_clients` INSTEAD. List " -"`client_id`s for each client. This is only required if `num_clients` is " -"not set. Setting both `num_clients` and `clients_ids` with " -"`len(clients_ids)` not equal to `num_clients` generates an error. Using " -"this argument will raise an error." +"The `flwr ls` command is now available to display details about all runs " +"(or one specific run). It supports the following usage options:" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:26 of +#: ../../source/ref-changelog.md:27 +msgid "`flwr ls --runs [] []`: Lists all runs." +msgstr "" + +#: ../../source/ref-changelog.md:28 msgid "" -"CPU and GPU resources for a single client. Supported keys are `num_cpus` " -"and `num_gpus`. To understand the GPU utilization caused by `num_gpus`, " -"as well as using custom resources, please consult the Ray documentation." +"`flwr ls --run-id [] []`: Displays details for " +"a specific run." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:31 of +#: ../../source/ref-changelog.md:30 +msgid "" +"This command provides information including the run ID, FAB ID and " +"version, run status, elapsed time, and timestamps for when the run was " +"created, started running, and finished." +msgstr "" + +#: ../../source/ref-changelog.md:32 #, fuzzy msgid "" -"An implementation of the abstract base class `flwr.server.Server`. If no " -"instance is provided, then `start_server` will create one." +"**Fuse SuperLink and SuperExec** " +"([#4358](https://github.com/adap/flower/pull/4358), " +"[#4403](https://github.com/adap/flower/pull/4403), " +"[#4406](https://github.com/adap/flower/pull/4406), " +"[#4357](https://github.com/adap/flower/pull/4357), " +"[#4359](https://github.com/adap/flower/pull/4359), " +"[#4354](https://github.com/adap/flower/pull/4354), " +"[#4229](https://github.com/adap/flower/pull/4229), " +"[#4283](https://github.com/adap/flower/pull/4283), " +"[#4352](https://github.com/adap/flower/pull/4352))" +msgstr "" +"**Nouvel exemple de code MLCube** " +"([#779](https://github.com/adap/flower/pull/779), " +"[#1034](https://github.com/adap/flower/pull/1034), " +"[#1065](https://github.com/adap/flower/pull/1065), " +"[#1090](https://github.com/adap/flower/pull/1090))" + +#: ../../source/ref-changelog.md:34 +msgid "" +"SuperExec has been integrated into SuperLink, enabling SuperLink to " +"directly manage ServerApp processes (`flwr-serverapp`). The `flwr` CLI " +"now targets SuperLink's Exec API. Additionally, SuperLink introduces two " +"isolation modes for running ServerApps: `subprocess` (default) and " +"`process`, which can be specified using the `--isolation " +"{subprocess,process}` flag." msgstr "" -"Déclasser `flwr.server.strategy.DefaultStrategy` (migrer vers " -"`flwr.server.strategy.FedAvg`, qui est équivalent)" -#: flwr.simulation.legacy_app.start_simulation:37 of +#: ../../source/ref-changelog.md:36 #, fuzzy msgid "" -"An implementation of the abstract base class `flwr.server.Strategy`. If " -"no strategy is provided, then `start_server` will use " -"`flwr.server.strategy.FedAvg`." +"**Introduce `flwr-serverapp` command** " +"([#4394](https://github.com/adap/flower/pull/4394), " +"[#4370](https://github.com/adap/flower/pull/4370), " +"[#4367](https://github.com/adap/flower/pull/4367), " +"[#4350](https://github.com/adap/flower/pull/4350), " +"[#4364](https://github.com/adap/flower/pull/4364), " +"[#4400](https://github.com/adap/flower/pull/4400), " +"[#4363](https://github.com/adap/flower/pull/4363), " +"[#4401](https://github.com/adap/flower/pull/4401), " +"[#4388](https://github.com/adap/flower/pull/4388), " +"[#4402](https://github.com/adap/flower/pull/4402))" +msgstr "" +"**Tutoriel amélioré** ([#1468](https://github.com/adap/flower/pull/1468)," +" [#1470](https://github.com/adap/flower/pull/1470), " +"[#1472](https://github.com/adap/flower/pull/1472), " +"[#1473](https://github.com/adap/flower/pull/1473), " +"[#1474](https://github.com/adap/flower/pull/1474), " +"[#1475](https://github.com/adap/flower/pull/1475))" + +#: ../../source/ref-changelog.md:38 +msgid "" +"The `flwr-serverapp` command has been introduced as a CLI entry point " +"that runs a `ServerApp` process. This process communicates with SuperLink" +" to load and execute the `ServerApp` object, enabling isolated execution " +"and more flexible deployment." msgstr "" -"Déclasser `flwr.server.strategy.DefaultStrategy` (migrer vers " -"`flwr.server.strategy.FedAvg`, qui est équivalent)" -#: flwr.simulation.legacy_app.start_simulation:41 of +#: ../../source/ref-changelog.md:40 #, fuzzy msgid "" -"An implementation of the abstract base class `flwr.server.ClientManager`." -" If no implementation is provided, then `start_simulation` will use " -"`flwr.server.client_manager.SimpleClientManager`." +"**Improve simulation engine and introduce `flwr-simulation` command** " +"([#4433](https://github.com/adap/flower/pull/4433), " +"[#4486](https://github.com/adap/flower/pull/4486), " +"[#4448](https://github.com/adap/flower/pull/4448), " +"[#4427](https://github.com/adap/flower/pull/4427), " +"[#4438](https://github.com/adap/flower/pull/4438), " +"[#4421](https://github.com/adap/flower/pull/4421), " +"[#4430](https://github.com/adap/flower/pull/4430), " +"[#4462](https://github.com/adap/flower/pull/4462))" msgstr "" -"Déclasser `flwr.server.strategy.DefaultStrategy` (migrer vers " -"`flwr.server.strategy.FedAvg`, qui est équivalent)" +"**Nouvel exemple de code MLCube** " +"([#779](https://github.com/adap/flower/pull/779), " +"[#1034](https://github.com/adap/flower/pull/1034), " +"[#1065](https://github.com/adap/flower/pull/1065), " +"[#1090](https://github.com/adap/flower/pull/1090))" -#: flwr.simulation.legacy_app.start_simulation:45 of +#: ../../source/ref-changelog.md:42 msgid "" -"Optional dictionary containing arguments for the call to `ray.init`. If " -"ray_init_args is None (the default), Ray will be initialized with the " -"following default args: { \"ignore_reinit_error\": True, " -"\"include_dashboard\": False } An empty dictionary can be used " -"(ray_init_args={}) to prevent any arguments from being passed to " -"ray.init." +"The simulation engine has been significantly improved, resulting in " +"dramatically faster simulations. Additionally, the `flwr-simulation` " +"command has been introduced to enhance maintainability and provide a " +"dedicated entry point for running simulations." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:45 of +#: ../../source/ref-changelog.md:44 +#, fuzzy msgid "" -"Optional dictionary containing arguments for the call to `ray.init`. If " -"ray_init_args is None (the default), Ray will be initialized with the " -"following default args:" +"**Improve SuperLink message management** " +"([#4378](https://github.com/adap/flower/pull/4378), " +"[#4369](https://github.com/adap/flower/pull/4369))" msgstr "" +"**Exemple de code mis à jour** " +"([#1344](https://github.com/adap/flower/pull/1344), " +"[#1347](https://github.com/adap/flower/pull/1347))" -#: flwr.simulation.legacy_app.start_simulation:49 of -msgid "{ \"ignore_reinit_error\": True, \"include_dashboard\": False }" +#: ../../source/ref-changelog.md:46 +msgid "" +"SuperLink now validates the destination node ID of instruction messages " +"and checks the TTL (time-to-live) for reply messages. When pulling reply " +"messages, an error reply will be generated and returned if the " +"corresponding instruction message does not exist, has expired, or if the " +"reply message exists but has expired." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:51 of +#: ../../source/ref-changelog.md:48 +#, fuzzy msgid "" -"An empty dictionary can be used (ray_init_args={}) to prevent any " -"arguments from being passed to ray.init." +"**Introduce FedDebug baseline** " +"([#3783](https://github.com/adap/flower/pull/3783))" msgstr "" +"**Ajouter une nouvelle stratégie `FedProx`** " +"([#1619](https://github.com/adap/flower/pull/1619))" -#: flwr.simulation.legacy_app.start_simulation:54 of +#: ../../source/ref-changelog.md:50 msgid "" -"Set to True to prevent `ray.shutdown()` in case " -"`ray.is_initialized()=True`." +"FedDebug is a framework that enhances debugging in Federated Learning by " +"enabling interactive inspection of the training process and automatically" +" identifying clients responsible for degrading the global model's " +"performance—all without requiring testing data or labels. Learn more in " +"the [FedDebug baseline " +"documentation](https://flower.ai/docs/baselines/feddebug.html)." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:56 of +#: ../../source/ref-changelog.md:52 msgid "" -"Optionally specify the type of actor to use. The actor object, which " -"persists throughout the simulation, will be the process in charge of " -"executing a ClientApp wrapping input argument `client_fn`." +"**Update documentation** " +"([#4511](https://github.com/adap/flower/pull/4511), " +"[#4010](https://github.com/adap/flower/pull/4010), " +"[#4396](https://github.com/adap/flower/pull/4396), " +"[#4499](https://github.com/adap/flower/pull/4499), " +"[#4269](https://github.com/adap/flower/pull/4269), " +"[#3340](https://github.com/adap/flower/pull/3340), " +"[#4482](https://github.com/adap/flower/pull/4482), " +"[#4387](https://github.com/adap/flower/pull/4387), " +"[#4342](https://github.com/adap/flower/pull/4342), " +"[#4492](https://github.com/adap/flower/pull/4492), " +"[#4474](https://github.com/adap/flower/pull/4474), " +"[#4500](https://github.com/adap/flower/pull/4500), " +"[#4514](https://github.com/adap/flower/pull/4514), " +"[#4236](https://github.com/adap/flower/pull/4236), " +"[#4112](https://github.com/adap/flower/pull/4112), " +"[#3367](https://github.com/adap/flower/pull/3367), " +"[#4501](https://github.com/adap/flower/pull/4501), " +"[#4373](https://github.com/adap/flower/pull/4373), " +"[#4409](https://github.com/adap/flower/pull/4409), " +"[#4356](https://github.com/adap/flower/pull/4356), " +"[#4520](https://github.com/adap/flower/pull/4520), " +"[#4524](https://github.com/adap/flower/pull/4524), " +"[#4525](https://github.com/adap/flower/pull/4525), " +"[#4526](https://github.com/adap/flower/pull/4526), " +"[#4527](https://github.com/adap/flower/pull/4527), " +"[#4528](https://github.com/adap/flower/pull/4528), " +"[#4545](https://github.com/adap/flower/pull/4545), " +"[#4522](https://github.com/adap/flower/pull/4522), " +"[#4534](https://github.com/adap/flower/pull/4534), " +"[#4513](https://github.com/adap/flower/pull/4513), " +"[#4529](https://github.com/adap/flower/pull/4529), " +"[#4441](https://github.com/adap/flower/pull/4441), " +"[#4530](https://github.com/adap/flower/pull/4530), " +"[#4470](https://github.com/adap/flower/pull/4470), " +"[#4553](https://github.com/adap/flower/pull/4553), " +"[#4531](https://github.com/adap/flower/pull/4531), " +"[#4554](https://github.com/adap/flower/pull/4554), " +"[#4555](https://github.com/adap/flower/pull/4555), " +"[#4552](https://github.com/adap/flower/pull/4552), " +"[#4533](https://github.com/adap/flower/pull/4533))" +msgstr "" + +#: ../../source/ref-changelog.md:54 +msgid "" +"Many documentation pages and tutorials have been updated to improve " +"clarity, fix typos, incorporate user feedback, and stay aligned with the " +"latest features in the framework. Key updates include adding a guide for " +"designing stateful `ClientApp` objects, updating the comprehensive guide " +"for setting up and running Flower's `Simulation Engine`, updating the " +"XGBoost, scikit-learn, and JAX quickstart tutorials to use `flwr run`, " +"updating DP guide, removing outdated pages, updating Docker docs, and " +"marking legacy functions as deprecated. The [Secure Aggregation " +"Protocols](https://flower.ai/docs/framework/contributor-ref-secure-" +"aggregation-protocols.html) page has also been updated." +msgstr "" + +#: ../../source/ref-changelog.md:56 +#, fuzzy +msgid "" +"**Update examples and templates** " +"([#4510](https://github.com/adap/flower/pull/4510), " +"[#4368](https://github.com/adap/flower/pull/4368), " +"[#4121](https://github.com/adap/flower/pull/4121), " +"[#4329](https://github.com/adap/flower/pull/4329), " +"[#4382](https://github.com/adap/flower/pull/4382), " +"[#4248](https://github.com/adap/flower/pull/4248), " +"[#4395](https://github.com/adap/flower/pull/4395), " +"[#4386](https://github.com/adap/flower/pull/4386), " +"[#4408](https://github.com/adap/flower/pull/4408))" msgstr "" +"**Introduire l'API REST (expérimentale)** " +"([#1594](https://github.com/adap/flower/pull/1594), " +"[#1690](https://github.com/adap/flower/pull/1690), " +"[#1695](https://github.com/adap/flower/pull/1695), " +"[#1712](https://github.com/adap/flower/pull/1712), " +"[#1802](https://github.com/adap/flower/pull/1802), " +"[#1770](https://github.com/adap/flower/pull/1770), " +"[#1733](https://github.com/adap/flower/pull/1733))" -#: flwr.simulation.legacy_app.start_simulation:60 of +#: ../../source/ref-changelog.md:58 msgid "" -"If you want to create your own Actor classes, you might need to pass some" -" input argument. You can use this dictionary for such purpose." +"Multiple examples and templates have been updated to enhance usability " +"and correctness. The updates include the `30-minute-tutorial`, " +"`quickstart-jax`, `quickstart-pytorch`, `advanced-tensorflow` examples, " +"and the FlowerTune template." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:63 of +#: ../../source/ref-changelog.md:60 +#, fuzzy msgid "" -"(default: \"DEFAULT\") Optional string (\"DEFAULT\" or \"SPREAD\") for " -"the VCE to choose in which node the actor is placed. If you are an " -"advanced user needed more control you can use lower-level scheduling " -"strategies to pin actors to specific compute nodes (e.g. via " -"NodeAffinitySchedulingStrategy). Please note this is an advanced feature." -" For all details, please refer to the Ray documentation: " -"https://docs.ray.io/en/latest/ray-core/scheduling/index.html" +"**Improve Docker support** " +"([#4506](https://github.com/adap/flower/pull/4506), " +"[#4424](https://github.com/adap/flower/pull/4424), " +"[#4224](https://github.com/adap/flower/pull/4224), " +"[#4413](https://github.com/adap/flower/pull/4413), " +"[#4414](https://github.com/adap/flower/pull/4414), " +"[#4336](https://github.com/adap/flower/pull/4336), " +"[#4420](https://github.com/adap/flower/pull/4420), " +"[#4407](https://github.com/adap/flower/pull/4407), " +"[#4422](https://github.com/adap/flower/pull/4422), " +"[#4532](https://github.com/adap/flower/pull/4532), " +"[#4540](https://github.com/adap/flower/pull/4540))" msgstr "" +"**Mise à jour de la documentation** " +"([#1629](https://github.com/adap/flower/pull/1629), " +"[#1628](https://github.com/adap/flower/pull/1628), " +"[#1620](https://github.com/adap/flower/pull/1620), " +"[#1618](https://github.com/adap/flower/pull/1618), " +"[#1617](https://github.com/adap/flower/pull/1617), " +"[#1613](https://github.com/adap/flower/pull/1613), " +"[#1614](https://github.com/adap/flower/pull/1614))" -#: flwr.simulation.legacy_app.start_simulation:72 of -msgid "**hist** -- Object containing metrics from training." +#: ../../source/ref-changelog.md:62 +msgid "" +"Docker images and configurations have been updated, including updating " +"Docker Compose files to version 1.13.0, refactoring the Docker build " +"matrix for better maintainability, updating `docker/build-push-action` to" +" 6.9.0, and improving Docker documentation." msgstr "" -#: ../../source/ref-changelog.md:1 -msgid "Changelog" -msgstr "Changelog" +#: ../../source/ref-changelog.md:64 +#, fuzzy +msgid "" +"**Allow app installation without internet access** " +"([#4479](https://github.com/adap/flower/pull/4479), " +"[#4475](https://github.com/adap/flower/pull/4475))" +msgstr "" +"**Exemple de code mis à jour** " +"([#1344](https://github.com/adap/flower/pull/1344), " +"[#1347](https://github.com/adap/flower/pull/1347))" -#: ../../source/ref-changelog.md:3 +#: ../../source/ref-changelog.md:66 +msgid "" +"The `flwr build` command now includes a wheel file in the FAB, enabling " +"Flower app installation in environments without internet access via `flwr" +" install`." +msgstr "" + +#: ../../source/ref-changelog.md:68 #, fuzzy -msgid "v1.12.0 (2024-10-14)" -msgstr "v1.1.0 (2022-10-31)" +msgid "" +"**Improve `flwr log` command** " +"([#4391](https://github.com/adap/flower/pull/4391), " +"[#4411](https://github.com/adap/flower/pull/4411), " +"[#4390](https://github.com/adap/flower/pull/4390), " +"[#4397](https://github.com/adap/flower/pull/4397))" +msgstr "" +"Mettre à jour les outils de développement " +"([#1231](https://github.com/adap/flower/pull/1231), " +"[#1276](https://github.com/adap/flower/pull/1276), " +"[#1301](https://github.com/adap/flower/pull/1301), " +"[#1310](https://github.com/adap/flower/pull/1310))" -#: ../../source/ref-changelog.md:5 ../../source/ref-changelog.md:75 -#: ../../source/ref-changelog.md:107 ../../source/ref-changelog.md:211 -#: ../../source/ref-changelog.md:309 ../../source/ref-changelog.md:409 -#: ../../source/ref-changelog.md:473 ../../source/ref-changelog.md:566 -#: ../../source/ref-changelog.md:666 ../../source/ref-changelog.md:750 -#: ../../source/ref-changelog.md:814 ../../source/ref-changelog.md:872 -#: ../../source/ref-changelog.md:941 ../../source/ref-changelog.md:1010 -msgid "Thanks to our contributors" -msgstr "Merci à nos contributeurs" +#: ../../source/ref-changelog.md:70 +#, fuzzy +msgid "" +"**Refactor SuperNode for better maintainability and efficiency** " +"([#4439](https://github.com/adap/flower/pull/4439), " +"[#4348](https://github.com/adap/flower/pull/4348), " +"[#4512](https://github.com/adap/flower/pull/4512), " +"[#4485](https://github.com/adap/flower/pull/4485))" +msgstr "" +"Mettre à jour les outils de développement " +"([#1231](https://github.com/adap/flower/pull/1231), " +"[#1276](https://github.com/adap/flower/pull/1276), " +"[#1301](https://github.com/adap/flower/pull/1301), " +"[#1310](https://github.com/adap/flower/pull/1310))" -#: ../../source/ref-changelog.md:7 ../../source/ref-changelog.md:77 -#: ../../source/ref-changelog.md:109 ../../source/ref-changelog.md:213 -#: ../../source/ref-changelog.md:311 ../../source/ref-changelog.md:411 -#: ../../source/ref-changelog.md:475 ../../source/ref-changelog.md:568 -#: ../../source/ref-changelog.md:668 ../../source/ref-changelog.md:752 -#: ../../source/ref-changelog.md:816 ../../source/ref-changelog.md:874 +#: ../../source/ref-changelog.md:72 +#, fuzzy msgid "" -"We would like to give our special thanks to all the contributors who made" -" the new version of Flower possible (in `git shortlog` order):" +"**Support NumPy `2.0`** " +"([#4440](https://github.com/adap/flower/pull/4440))" msgstr "" -"Nous tenons à remercier tout particulièrement tous les contributeurs qui " -"ont rendu possible la nouvelle version de Flower (dans l'ordre `git " -"shortlog`) :" +"**Support Python 3.10** " +"([#1320](https://github.com/adap/flower/pull/1320))" -#: ../../source/ref-changelog.md:9 +#: ../../source/ref-changelog.md:74 +#, fuzzy +msgid "" +"**Update infrastructure and CI/CD** " +"([#4466](https://github.com/adap/flower/pull/4466), " +"[#4419](https://github.com/adap/flower/pull/4419), " +"[#4338](https://github.com/adap/flower/pull/4338), " +"[#4334](https://github.com/adap/flower/pull/4334), " +"[#4456](https://github.com/adap/flower/pull/4456), " +"[#4446](https://github.com/adap/flower/pull/4446), " +"[#4415](https://github.com/adap/flower/pull/4415))" +msgstr "" +"**Mise à jour de la documentation** " +"([#1629](https://github.com/adap/flower/pull/1629), " +"[#1628](https://github.com/adap/flower/pull/1628), " +"[#1620](https://github.com/adap/flower/pull/1620), " +"[#1618](https://github.com/adap/flower/pull/1618), " +"[#1617](https://github.com/adap/flower/pull/1617), " +"[#1613](https://github.com/adap/flower/pull/1613), " +"[#1614](https://github.com/adap/flower/pull/1614))" + +#: ../../source/ref-changelog.md:76 +#, fuzzy +msgid "" +"**Bugfixes** ([#4404](https://github.com/adap/flower/pull/4404), " +"[#4518](https://github.com/adap/flower/pull/4518), " +"[#4452](https://github.com/adap/flower/pull/4452), " +"[#4376](https://github.com/adap/flower/pull/4376), " +"[#4493](https://github.com/adap/flower/pull/4493), " +"[#4436](https://github.com/adap/flower/pull/4436), " +"[#4410](https://github.com/adap/flower/pull/4410), " +"[#4442](https://github.com/adap/flower/pull/4442), " +"[#4375](https://github.com/adap/flower/pull/4375), " +"[#4515](https://github.com/adap/flower/pull/4515))" +msgstr "" +"**Mise à jour de la documentation** " +"([#1629](https://github.com/adap/flower/pull/1629), " +"[#1628](https://github.com/adap/flower/pull/1628), " +"[#1620](https://github.com/adap/flower/pull/1620), " +"[#1618](https://github.com/adap/flower/pull/1618), " +"[#1617](https://github.com/adap/flower/pull/1617), " +"[#1613](https://github.com/adap/flower/pull/1613), " +"[#1614](https://github.com/adap/flower/pull/1614))" + +#: ../../source/ref-changelog.md:78 +msgid "" +"**General improvements** " +"([#4454](https://github.com/adap/flower/pull/4454), " +"[#4365](https://github.com/adap/flower/pull/4365), " +"[#4423](https://github.com/adap/flower/pull/4423), " +"[#4516](https://github.com/adap/flower/pull/4516), " +"[#4509](https://github.com/adap/flower/pull/4509), " +"[#4498](https://github.com/adap/flower/pull/4498), " +"[#4371](https://github.com/adap/flower/pull/4371), " +"[#4449](https://github.com/adap/flower/pull/4449), " +"[#4488](https://github.com/adap/flower/pull/4488), " +"[#4478](https://github.com/adap/flower/pull/4478), " +"[#4392](https://github.com/adap/flower/pull/4392), " +"[#4483](https://github.com/adap/flower/pull/4483), " +"[#4517](https://github.com/adap/flower/pull/4517), " +"[#4330](https://github.com/adap/flower/pull/4330), " +"[#4458](https://github.com/adap/flower/pull/4458), " +"[#4347](https://github.com/adap/flower/pull/4347), " +"[#4429](https://github.com/adap/flower/pull/4429), " +"[#4463](https://github.com/adap/flower/pull/4463), " +"[#4496](https://github.com/adap/flower/pull/4496), " +"[#4508](https://github.com/adap/flower/pull/4508), " +"[#4444](https://github.com/adap/flower/pull/4444), " +"[#4417](https://github.com/adap/flower/pull/4417), " +"[#4504](https://github.com/adap/flower/pull/4504), " +"[#4418](https://github.com/adap/flower/pull/4418), " +"[#4480](https://github.com/adap/flower/pull/4480), " +"[#4455](https://github.com/adap/flower/pull/4455), " +"[#4468](https://github.com/adap/flower/pull/4468), " +"[#4385](https://github.com/adap/flower/pull/4385), " +"[#4487](https://github.com/adap/flower/pull/4487), " +"[#4393](https://github.com/adap/flower/pull/4393), " +"[#4489](https://github.com/adap/flower/pull/4489), " +"[#4389](https://github.com/adap/flower/pull/4389), " +"[#4507](https://github.com/adap/flower/pull/4507), " +"[#4469](https://github.com/adap/flower/pull/4469), " +"[#4340](https://github.com/adap/flower/pull/4340), " +"[#4353](https://github.com/adap/flower/pull/4353), " +"[#4494](https://github.com/adap/flower/pull/4494), " +"[#4461](https://github.com/adap/flower/pull/4461), " +"[#4362](https://github.com/adap/flower/pull/4362), " +"[#4473](https://github.com/adap/flower/pull/4473), " +"[#4405](https://github.com/adap/flower/pull/4405), " +"[#4416](https://github.com/adap/flower/pull/4416), " +"[#4453](https://github.com/adap/flower/pull/4453), " +"[#4491](https://github.com/adap/flower/pull/4491), " +"[#4539](https://github.com/adap/flower/pull/4539), " +"[#4542](https://github.com/adap/flower/pull/4542), " +"[#4538](https://github.com/adap/flower/pull/4538), " +"[#4543](https://github.com/adap/flower/pull/4543), " +"[#4541](https://github.com/adap/flower/pull/4541), " +"[#4550](https://github.com/adap/flower/pull/4550), " +"[#4481](https://github.com/adap/flower/pull/4481))" +msgstr "" + +#: ../../source/ref-changelog.md:80 ../../source/ref-changelog.md:176 +#: ../../source/ref-changelog.md:279 ../../source/ref-changelog.md:386 +msgid "" +"As always, many parts of the Flower framework and quality infrastructure " +"were improved and updated." +msgstr "" + +#: ../../source/ref-changelog.md:82 ../../source/ref-changelog.md:281 +#: ../../source/ref-changelog.md:398 ../../source/ref-changelog.md:490 +#: ../../source/ref-changelog.md:1473 +msgid "Deprecations" +msgstr "Dépréciations" + +#: ../../source/ref-changelog.md:84 +#, fuzzy +msgid "**Deprecate Python 3.9**" +msgstr "**Créer le PR**" + +#: ../../source/ref-changelog.md:86 +msgid "" +"Flower is deprecating support for Python 3.9 as several of its " +"dependencies are phasing out compatibility with this version. While no " +"immediate changes have been made, users are encouraged to plan for " +"upgrading to a supported Python version." +msgstr "" + +#: ../../source/ref-changelog.md:90 +#, fuzzy +msgid "" +"**Remove `flower-superexec` command** " +"([#4351](https://github.com/adap/flower/pull/4351))" +msgstr "" +"**Supprimez KerasClient** " +"([#857](https://github.com/adap/flower/pull/857))" + +#: ../../source/ref-changelog.md:92 +msgid "" +"The `flower-superexec` command, previously used to launch SuperExec, is " +"no longer functional as SuperExec has been merged into SuperLink. " +"Starting an additional SuperExec is no longer necessary when SuperLink is" +" initiated." +msgstr "" + +#: ../../source/ref-changelog.md:94 +#, fuzzy +msgid "" +"**Remove `flower-server-app` command** " +"([#4490](https://github.com/adap/flower/pull/4490))" +msgstr "" +"**Supprimez KerasClient** " +"([#857](https://github.com/adap/flower/pull/857))" + +#: ../../source/ref-changelog.md:96 +msgid "" +"The `flower-server-app` command has been removed. To start a Flower app, " +"please use the `flwr run` command instead." +msgstr "" + +#: ../../source/ref-changelog.md:98 +#, fuzzy +msgid "" +"**Remove `app` argument from `flower-supernode` command** " +"([#4497](https://github.com/adap/flower/pull/4497))" +msgstr "" +"**Supprimez KerasClient** " +"([#857](https://github.com/adap/flower/pull/857))" + +#: ../../source/ref-changelog.md:100 +msgid "" +"The usage of `flower-supernode ` has been removed. SuperNode " +"will now load the FAB delivered by SuperLink, and it is no longer " +"possible to directly specify an app directory." +msgstr "" + +#: ../../source/ref-changelog.md:102 +#, fuzzy +msgid "" +"**Remove support for non-app simulations** " +"([#4431](https://github.com/adap/flower/pull/4431))" +msgstr "" +"**Améliorer la prise en charge des GPU dans les simulations** " +"([#1555](https://github.com/adap/flower/pull/1555))" + +#: ../../source/ref-changelog.md:104 +msgid "" +"The simulation engine (via `flower-simulation`) now exclusively supports " +"passing an app." +msgstr "" + +#: ../../source/ref-changelog.md:106 +#, fuzzy +msgid "" +"**Rename CLI arguments for `flower-superlink` command** " +"([#4412](https://github.com/adap/flower/pull/4412))" +msgstr "" +"**Supprimez KerasClient** " +"([#857](https://github.com/adap/flower/pull/857))" + +#: ../../source/ref-changelog.md:108 +msgid "" +"The `--driver-api-address` argument has been renamed to `--serverappio-" +"api-address` in the `flower-superlink` command to reflect the renaming of" +" the `Driver` service to the `ServerAppIo` service." +msgstr "" + +#: ../../source/ref-changelog.md:110 +#, fuzzy +msgid "" +"**Rename CLI arguments for `flwr-serverapp` and `flwr-clientapp` " +"commands** ([#4495](https://github.com/adap/flower/pull/4495))" +msgstr "" +"**Supprimez KerasClient** " +"([#857](https://github.com/adap/flower/pull/857))" + +#: ../../source/ref-changelog.md:112 +msgid "" +"The CLI arguments have been renamed for clarity and consistency. " +"Specifically, `--superlink` for `flwr-serverapp` is now `--serverappio-" +"api-address`, and `--supernode` for `flwr-clientapp` is now " +"`--clientappio-api-address`." +msgstr "" + +#: ../../source/ref-changelog.md:114 +#, fuzzy +msgid "v1.12.0 (2024-10-14)" +msgstr "v1.1.0 (2022-10-31)" + +#: ../../source/ref-changelog.md:120 msgid "" "`Adam Narozniak`, `Audris`, `Charles Beauville`, `Chong Shen Ng`, `Daniel" " J. Beutel`, `Daniel Nata Nugraha`, `Heng Pan`, `Javier`, `Jiahao Tan`, " @@ -16331,20 +17306,7 @@ msgid "" "Gao`, `xiliguguagua` " msgstr "" -#: ../../source/ref-changelog.md:11 ../../source/ref-changelog.md:113 -#: ../../source/ref-changelog.md:217 ../../source/ref-changelog.md:315 -#: ../../source/ref-changelog.md:415 ../../source/ref-changelog.md:479 -#: ../../source/ref-changelog.md:572 ../../source/ref-changelog.md:672 -#: ../../source/ref-changelog.md:756 ../../source/ref-changelog.md:820 -#: ../../source/ref-changelog.md:878 ../../source/ref-changelog.md:947 -#: ../../source/ref-changelog.md:1076 ../../source/ref-changelog.md:1118 -#: ../../source/ref-changelog.md:1185 ../../source/ref-changelog.md:1251 -#: ../../source/ref-changelog.md:1296 ../../source/ref-changelog.md:1335 -#: ../../source/ref-changelog.md:1368 ../../source/ref-changelog.md:1418 -msgid "What's new?" -msgstr "Quoi de neuf ?" - -#: ../../source/ref-changelog.md:13 +#: ../../source/ref-changelog.md:124 #, fuzzy msgid "" "**Introduce SuperExec log streaming** " @@ -16360,7 +17322,7 @@ msgstr "" "[#1065](https://github.com/adap/flower/pull/1065), " "[#1090](https://github.com/adap/flower/pull/1090))" -#: ../../source/ref-changelog.md:15 +#: ../../source/ref-changelog.md:126 msgid "" "Flower now supports log streaming from a remote SuperExec using the `flwr" " log` command. This new feature allows you to monitor logs from SuperExec" @@ -16368,7 +17330,7 @@ msgid "" "`)." msgstr "" -#: ../../source/ref-changelog.md:17 +#: ../../source/ref-changelog.md:128 #, fuzzy msgid "" "**Improve `flwr new` templates** " @@ -16385,14 +17347,14 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475))" -#: ../../source/ref-changelog.md:19 +#: ../../source/ref-changelog.md:130 msgid "" "The `flwr new` command templates for MLX, NumPy, sklearn, JAX, and " "PyTorch have been updated to improve usability and consistency across " "frameworks." msgstr "" -#: ../../source/ref-changelog.md:21 +#: ../../source/ref-changelog.md:132 #, fuzzy msgid "" "**Migrate ID handling to use unsigned 64-bit integers** " @@ -16405,7 +17367,7 @@ msgstr "" "[#1286](https://github.com/adap/flower/pull/1286), " "[#1282](https://github.com/adap/flower/pull/1282))" -#: ../../source/ref-changelog.md:23 +#: ../../source/ref-changelog.md:134 msgid "" "Node IDs, run IDs, and related fields have been migrated from signed " "64-bit integers (`sint64`) to unsigned 64-bit integers (`uint64`). To " @@ -16416,7 +17378,7 @@ msgid "" "`uint64`." msgstr "" -#: ../../source/ref-changelog.md:25 +#: ../../source/ref-changelog.md:136 #, fuzzy msgid "" "**Add Flower architecture explanation** " @@ -16425,7 +17387,7 @@ msgstr "" "**Documentation restructurée** " "([#1387](https://github.com/adap/flower/pull/1387))" -#: ../../source/ref-changelog.md:27 +#: ../../source/ref-changelog.md:138 msgid "" "A new [Flower architecture explainer](https://flower.ai/docs/framework" "/explanation-flower-architecture.html) page introduces Flower components " @@ -16433,7 +17395,7 @@ msgid "" "documentation if you're interested." msgstr "" -#: ../../source/ref-changelog.md:29 +#: ../../source/ref-changelog.md:140 #, fuzzy msgid "" "**Introduce FedRep baseline** " @@ -16442,7 +17404,7 @@ msgstr "" "**Ajouter une nouvelle stratégie `FedProx`** " "([#1619](https://github.com/adap/flower/pull/1619))" -#: ../../source/ref-changelog.md:31 +#: ../../source/ref-changelog.md:142 msgid "" "FedRep is a federated learning algorithm that learns shared data " "representations across clients while allowing each to maintain " @@ -16452,7 +17414,7 @@ msgid "" "([arxiv](https://arxiv.org/abs/2102.07078))" msgstr "" -#: ../../source/ref-changelog.md:33 +#: ../../source/ref-changelog.md:144 #, fuzzy msgid "" "**Improve FlowerTune template and LLM evaluation pipelines** " @@ -16485,7 +17447,7 @@ msgstr "" "[#1305](https://github.com/adap/flower/pull/1305), " "[#1307](https://github.com/adap/flower/pull/1307))" -#: ../../source/ref-changelog.md:35 +#: ../../source/ref-changelog.md:146 msgid "" "Refined evaluation pipelines, metrics, and documentation for the upcoming" " FlowerTune LLM Leaderboard across multiple domains including Finance, " @@ -16494,7 +17456,7 @@ msgid "" "exciting challenge!" msgstr "" -#: ../../source/ref-changelog.md:37 +#: ../../source/ref-changelog.md:148 #, fuzzy msgid "" "**Enhance Docker Support and Documentation** " @@ -16520,7 +17482,7 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475))" -#: ../../source/ref-changelog.md:39 +#: ../../source/ref-changelog.md:150 msgid "" "Upgraded Ubuntu base image to 24.04, added SBOM and gcc to Docker images," " and comprehensively updated [Docker " @@ -16528,7 +17490,7 @@ msgid "" "including quickstart guides and distributed Docker Compose instructions." msgstr "" -#: ../../source/ref-changelog.md:41 +#: ../../source/ref-changelog.md:152 #, fuzzy msgid "" "**Introduce Flower glossary** " @@ -16539,7 +17501,7 @@ msgstr "" "([#1621](https://github.com/adap/flower/pull/1621), " "[#1764](https://github.com/adap/flower/pull/1764))" -#: ../../source/ref-changelog.md:43 +#: ../../source/ref-changelog.md:154 msgid "" "Added the [Federated Learning glossary](https://flower.ai/glossary/) to " "the Flower repository, located under the `flower/glossary/` directory. " @@ -16549,7 +17511,7 @@ msgid "" "become a Flower contributor!" msgstr "" -#: ../../source/ref-changelog.md:45 +#: ../../source/ref-changelog.md:156 #, fuzzy msgid "" "**Implement Message Time-to-Live (TTL)** " @@ -16568,7 +17530,7 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614))" -#: ../../source/ref-changelog.md:47 +#: ../../source/ref-changelog.md:158 msgid "" "Added comprehensive TTL support for messages in Flower's SuperLink. " "Messages are now automatically expired and cleaned up based on " @@ -16576,7 +17538,7 @@ msgid "" " default in the high-level API)." msgstr "" -#: ../../source/ref-changelog.md:49 +#: ../../source/ref-changelog.md:160 #, fuzzy msgid "" "**Improve FAB handling** " @@ -16591,14 +17553,14 @@ msgstr "" "[#1301](https://github.com/adap/flower/pull/1301), " "[#1310](https://github.com/adap/flower/pull/1310))" -#: ../../source/ref-changelog.md:51 +#: ../../source/ref-changelog.md:162 msgid "" "An 8-character hash is now appended to the FAB file name. The `flwr " "install` command installs FABs with a more flattened folder structure, " "reducing it from 3 levels to 1." msgstr "" -#: ../../source/ref-changelog.md:53 +#: ../../source/ref-changelog.md:164 #, fuzzy msgid "" "**Update documentation** " @@ -16615,7 +17577,7 @@ msgstr "" "[#1065](https://github.com/adap/flower/pull/1065), " "[#1090](https://github.com/adap/flower/pull/1090))" -#: ../../source/ref-changelog.md:55 +#: ../../source/ref-changelog.md:166 msgid "" "Updated quickstart tutorials (PyTorch Lightning, TensorFlow, Hugging " "Face, Fastai) to use the new `flwr run` command and removed default title" @@ -16623,7 +17585,7 @@ msgid "" "added to FAQ." msgstr "" -#: ../../source/ref-changelog.md:57 +#: ../../source/ref-changelog.md:168 #, fuzzy msgid "" "**Update example projects** " @@ -16645,7 +17607,7 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614))" -#: ../../source/ref-changelog.md:59 +#: ../../source/ref-changelog.md:170 msgid "" "Refreshed multiple example projects including vertical FL, PyTorch " "(advanced), Pandas, Secure Aggregation, and XGBoost examples. Optimized " @@ -16653,7 +17615,7 @@ msgid "" "simulation examples." msgstr "" -#: ../../source/ref-changelog.md:61 +#: ../../source/ref-changelog.md:172 #, fuzzy msgid "" "**Update translations** " @@ -16674,7 +17636,7 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614))" -#: ../../source/ref-changelog.md:63 +#: ../../source/ref-changelog.md:174 msgid "" "**General improvements** " "([#4239](https://github.com/adap/flower/pull/4239), " @@ -16721,26 +17683,7 @@ msgid "" "[#4333](https://github.com/adap/flower/pull/4333))" msgstr "" -#: ../../source/ref-changelog.md:65 ../../source/ref-changelog.md:168 -#: ../../source/ref-changelog.md:275 -msgid "" -"As always, many parts of the Flower framework and quality infrastructure " -"were improved and updated." -msgstr "" - -#: ../../source/ref-changelog.md:67 ../../source/ref-changelog.md:101 -#: ../../source/ref-changelog.md:181 ../../source/ref-changelog.md:297 -#: ../../source/ref-changelog.md:393 ../../source/ref-changelog.md:467 -#: ../../source/ref-changelog.md:542 ../../source/ref-changelog.md:654 -#: ../../source/ref-changelog.md:744 ../../source/ref-changelog.md:808 -#: ../../source/ref-changelog.md:866 ../../source/ref-changelog.md:935 -#: ../../source/ref-changelog.md:997 ../../source/ref-changelog.md:1016 -#: ../../source/ref-changelog.md:1172 ../../source/ref-changelog.md:1243 -#: ../../source/ref-changelog.md:1280 ../../source/ref-changelog.md:1323 -msgid "Incompatible changes" -msgstr "Changements incompatibles" - -#: ../../source/ref-changelog.md:69 +#: ../../source/ref-changelog.md:180 #, fuzzy msgid "" "**Drop Python 3.8 support and update minimum version to 3.9** " @@ -16762,7 +17705,7 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614))" -#: ../../source/ref-changelog.md:71 +#: ../../source/ref-changelog.md:182 msgid "" "Python 3.8 support was deprecated in Flower 1.9, and this release removes" " support. Flower now requires Python 3.9 or later (Python 3.11 is " @@ -16770,23 +17713,23 @@ msgid "" "minimum supported version. Flower now supports Python 3.9 to 3.12." msgstr "" -#: ../../source/ref-changelog.md:73 +#: ../../source/ref-changelog.md:184 #, fuzzy msgid "v1.11.1 (2024-09-11)" msgstr "v1.3.0 (2023-02-06)" -#: ../../source/ref-changelog.md:79 +#: ../../source/ref-changelog.md:190 msgid "" "`Charles Beauville`, `Chong Shen Ng`, `Daniel J. Beutel`, `Heng Pan`, " "`Javier`, `Robert Steiner`, `Yan Gao` " msgstr "" -#: ../../source/ref-changelog.md:81 +#: ../../source/ref-changelog.md:192 #, fuzzy msgid "Improvements" msgstr "Améliorations facultatives" -#: ../../source/ref-changelog.md:83 +#: ../../source/ref-changelog.md:194 #, fuzzy msgid "" "**Implement** `keys/values/items` **methods for** `TypedDict` " @@ -16795,7 +17738,7 @@ msgstr "" "**Make** `get_parameters` **configurable** " "([#1242](https://github.com/adap/flower/pull/1242))" -#: ../../source/ref-changelog.md:85 +#: ../../source/ref-changelog.md:196 #, fuzzy msgid "" "**Fix parsing of** `--executor-config` **if present** " @@ -16804,7 +17747,7 @@ msgstr "" "**Ajouter une nouvelle stratégie `FedProx`** " "([#1619](https://github.com/adap/flower/pull/1619))" -#: ../../source/ref-changelog.md:87 +#: ../../source/ref-changelog.md:198 #, fuzzy msgid "" "**Adjust framework name in templates docstrings** " @@ -16813,7 +17756,7 @@ msgstr "" "**Nouvel exemple de code scikit-learn** " "([#748](https://github.com/adap/flower/pull/748))" -#: ../../source/ref-changelog.md:89 +#: ../../source/ref-changelog.md:200 #, fuzzy msgid "" "**Update** `flwr new` **Hugging Face template** " @@ -16822,7 +17765,7 @@ msgstr "" "**Nouvel exemple de code pour les Transformers à visage embrassant** " "([#863](https://github.com/adap/flower/pull/863))" -#: ../../source/ref-changelog.md:91 +#: ../../source/ref-changelog.md:202 #, fuzzy msgid "" "**Fix** `flwr new` **FlowerTune template** " @@ -16831,7 +17774,7 @@ msgstr "" "**Nouvel exemple de code CoreML pour iOS** " "([#1289](https://github.com/adap/flower/pull/1289))" -#: ../../source/ref-changelog.md:93 +#: ../../source/ref-changelog.md:204 #, fuzzy msgid "" "**Add buffer time after** `ServerApp` **thread initialization** " @@ -16840,7 +17783,7 @@ msgstr "" "**Ajouter des mesures de formation à** `History` **objet pendant les " "simulations** ([#1696](https://github.com/adap/flower/pull/1696))" -#: ../../source/ref-changelog.md:95 +#: ../../source/ref-changelog.md:206 #, fuzzy msgid "" "**Handle unsuitable resources for simulation** " @@ -16849,7 +17792,7 @@ msgstr "" "**Ajouter un nouveau guide pratique pour le suivi des simulations** " "([#1649](https://github.com/adap/flower/pull/1649))" -#: ../../source/ref-changelog.md:97 +#: ../../source/ref-changelog.md:208 #, fuzzy msgid "" "**Update example READMEs** " @@ -16858,7 +17801,7 @@ msgstr "" "**Introduire une nouvelle ligne de base pour les fleurs : FedAvg " "FEMNIST** ([#1655](https://github.com/adap/flower/pull/1655))" -#: ../../source/ref-changelog.md:99 +#: ../../source/ref-changelog.md:210 #, fuzzy msgid "" "**Update SuperNode authentication docs** " @@ -16867,12 +17810,12 @@ msgstr "" "**Ajouter une nouvelle stratégie `FedProx`** " "([#1619](https://github.com/adap/flower/pull/1619))" -#: ../../source/ref-changelog.md:105 +#: ../../source/ref-changelog.md:216 #, fuzzy msgid "v1.11.0 (2024-08-30)" msgstr "v1.3.0 (2023-02-06)" -#: ../../source/ref-changelog.md:111 +#: ../../source/ref-changelog.md:222 msgid "" "`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. " "Beutel`, `Daniel Nata Nugraha`, `Danny`, `Edoardo Gabrielli`, `Heng Pan`," @@ -16881,7 +17824,7 @@ msgid "" "TOKEN_v1.11.0-->" msgstr "" -#: ../../source/ref-changelog.md:115 +#: ../../source/ref-changelog.md:226 msgid "" "**Deliver Flower App Bundle (FAB) to SuperLink and SuperNodes** " "([#4006](https://github.com/adap/flower/pull/4006), " @@ -16908,14 +17851,14 @@ msgid "" "[#3619](https://github.com/adap/flower/pull/3619))" msgstr "" -#: ../../source/ref-changelog.md:117 +#: ../../source/ref-changelog.md:228 msgid "" "Dynamic code updates are here! `flwr run` can now ship and install the " "latest version of your `ServerApp` and `ClientApp` to an already-running " "federation (SuperLink and SuperNodes)." msgstr "" -#: ../../source/ref-changelog.md:119 +#: ../../source/ref-changelog.md:230 msgid "" "How does it work? `flwr run` bundles your Flower app into a single FAB " "(Flower App Bundle) file. It then ships this FAB file, via the SuperExec," @@ -16925,11 +17868,11 @@ msgid "" "projects!) dynamically." msgstr "" -#: ../../source/ref-changelog.md:121 +#: ../../source/ref-changelog.md:232 msgid "`flwr run` is all you need." msgstr "" -#: ../../source/ref-changelog.md:123 +#: ../../source/ref-changelog.md:234 #, fuzzy msgid "" "**Introduce isolated** `ClientApp` **execution** " @@ -16964,30 +17907,30 @@ msgstr "" "[#1564](https://github.com/adap/flower/pull/1564), " "[#1566](https://github.com/adap/flower/pull/1566))" -#: ../../source/ref-changelog.md:125 +#: ../../source/ref-changelog.md:236 msgid "" "The SuperNode can now run your `ClientApp` in a fully isolated way. In an" " enterprise deployment, this allows you to set strict limits on what the " "`ClientApp` can and cannot do." msgstr "" -#: ../../source/ref-changelog.md:127 +#: ../../source/ref-changelog.md:238 msgid "`flower-supernode` supports three `--isolation` modes:" msgstr "" -#: ../../source/ref-changelog.md:129 +#: ../../source/ref-changelog.md:240 msgid "" "Unset: The SuperNode runs the `ClientApp` in the same process (as in " "previous versions of Flower). This is the default mode." msgstr "" -#: ../../source/ref-changelog.md:130 +#: ../../source/ref-changelog.md:241 msgid "" "`--isolation=subprocess`: The SuperNode starts a subprocess to run the " "`ClientApp`." msgstr "" -#: ../../source/ref-changelog.md:131 +#: ../../source/ref-changelog.md:242 msgid "" "`--isolation=process`: The SuperNode expects an externally-managed " "process to run the `ClientApp`. This external process is not managed by " @@ -16996,7 +17939,7 @@ msgid "" "`flwr/clientapp` Docker image." msgstr "" -#: ../../source/ref-changelog.md:133 +#: ../../source/ref-changelog.md:244 #, fuzzy msgid "" "**Improve Docker support for enterprise deployments** " @@ -17013,17 +17956,17 @@ msgstr "" "[#1065](https://github.com/adap/flower/pull/1065), " "[#1090](https://github.com/adap/flower/pull/1090))" -#: ../../source/ref-changelog.md:135 +#: ../../source/ref-changelog.md:246 msgid "" "Flower 1.11 ships many Docker improvements that are especially useful for" " enterprise deployments:" msgstr "" -#: ../../source/ref-changelog.md:137 +#: ../../source/ref-changelog.md:248 msgid "`flwr/supernode` comes with a new Alpine Docker image." msgstr "" -#: ../../source/ref-changelog.md:138 +#: ../../source/ref-changelog.md:249 msgid "" "`flwr/clientapp` is a new image to be used with the `--isolation=process`" " option. In this mode, SuperNode and `ClientApp` run in two different " @@ -17033,19 +17976,19 @@ msgid "" "enterprise settings." msgstr "" -#: ../../source/ref-changelog.md:139 +#: ../../source/ref-changelog.md:250 msgid "" "New all-in-one Docker Compose enables you to easily start a full Flower " "Deployment Engine on a single machine." msgstr "" -#: ../../source/ref-changelog.md:140 +#: ../../source/ref-changelog.md:251 msgid "" "Completely new Docker documentation: " "https://flower.ai/docs/framework/docker/index.html" msgstr "" -#: ../../source/ref-changelog.md:142 +#: ../../source/ref-changelog.md:253 #, fuzzy msgid "" "**Improve SuperNode authentication** " @@ -17058,13 +18001,13 @@ msgstr "" "[#1286](https://github.com/adap/flower/pull/1286), " "[#1282](https://github.com/adap/flower/pull/1282))" -#: ../../source/ref-changelog.md:144 +#: ../../source/ref-changelog.md:255 msgid "" "SuperNode auth has been improved in several ways, including improved " "logging, improved testing, and improved error handling." msgstr "" -#: ../../source/ref-changelog.md:146 +#: ../../source/ref-changelog.md:257 #, fuzzy msgid "" "**Update** `flwr new` **templates** " @@ -17087,13 +18030,13 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614))" -#: ../../source/ref-changelog.md:148 +#: ../../source/ref-changelog.md:259 msgid "" "All `flwr new` templates have been updated to show the latest recommended" " use of Flower APIs." msgstr "" -#: ../../source/ref-changelog.md:150 +#: ../../source/ref-changelog.md:261 #, fuzzy msgid "" "**Improve Simulation Engine** " @@ -17111,14 +18054,14 @@ msgstr "" "[#1065](https://github.com/adap/flower/pull/1065), " "[#1090](https://github.com/adap/flower/pull/1090))" -#: ../../source/ref-changelog.md:152 +#: ../../source/ref-changelog.md:263 msgid "" "The Flower Simulation Engine comes with several updates, including " "improved run config support, verbose logging, simulation backend " "configuration via `flwr run`, and more." msgstr "" -#: ../../source/ref-changelog.md:154 +#: ../../source/ref-changelog.md:265 #, fuzzy msgid "" "**Improve** `RecordSet` " @@ -17131,7 +18074,7 @@ msgstr "" "[#1286](https://github.com/adap/flower/pull/1286), " "[#1282](https://github.com/adap/flower/pull/1282))" -#: ../../source/ref-changelog.md:156 +#: ../../source/ref-changelog.md:267 msgid "" "`RecordSet` is the core object to exchange model parameters, " "configuration values and metrics between `ClientApp` and `ServerApp`. " @@ -17139,7 +18082,7 @@ msgid "" "related `*Record` types." msgstr "" -#: ../../source/ref-changelog.md:158 +#: ../../source/ref-changelog.md:269 #, fuzzy msgid "" "**Update documentation** " @@ -17170,14 +18113,14 @@ msgstr "" "[#1305](https://github.com/adap/flower/pull/1305), " "[#1307](https://github.com/adap/flower/pull/1307))" -#: ../../source/ref-changelog.md:160 +#: ../../source/ref-changelog.md:271 msgid "" "Many parts of the documentation, including the main tutorial, have been " "migrated to show new Flower APIs and other new Flower features like the " "improved Docker support." msgstr "" -#: ../../source/ref-changelog.md:162 +#: ../../source/ref-changelog.md:273 msgid "" "**Migrate code example to use new Flower APIs** " "([#3758](https://github.com/adap/flower/pull/3758), " @@ -17203,11 +18146,11 @@ msgid "" "[#3313](https://github.com/adap/flower/pull/3313))" msgstr "" -#: ../../source/ref-changelog.md:164 +#: ../../source/ref-changelog.md:275 msgid "Many code examples have been migrated to use new Flower APIs." msgstr "" -#: ../../source/ref-changelog.md:166 +#: ../../source/ref-changelog.md:277 msgid "" "**Update Flower framework, framework internals and quality " "infrastructure** ([#4018](https://github.com/adap/flower/pull/4018), " @@ -17249,12 +18192,7 @@ msgid "" "[#4038](https://github.com/adap/flower/pull/4038))" msgstr "" -#: ../../source/ref-changelog.md:170 ../../source/ref-changelog.md:287 -#: ../../source/ref-changelog.md:379 ../../source/ref-changelog.md:1362 -msgid "Deprecations" -msgstr "Dépréciations" - -#: ../../source/ref-changelog.md:172 +#: ../../source/ref-changelog.md:283 #, fuzzy msgid "" "**Deprecate accessing `Context` via `Client.context`** " @@ -17263,7 +18201,7 @@ msgstr "" "**Supprimer les installations supplémentaires no-op dépréciées** " "([#973](https://github.com/adap/flower/pull/973))" -#: ../../source/ref-changelog.md:174 +#: ../../source/ref-changelog.md:285 msgid "" "Now that both `client_fn` and `server_fn` receive a `Context` object, " "accessing `Context` via `Client.context` is deprecated. `Client.context` " @@ -17272,7 +18210,7 @@ msgid "" " instance in `client_fn`:" msgstr "" -#: ../../source/ref-changelog.md:183 +#: ../../source/ref-changelog.md:294 #, fuzzy msgid "" "**Update CLIs to accept an app directory instead of** `ClientApp` **and**" @@ -17285,7 +18223,7 @@ msgstr "" "[#1544](https://github.com/adap/flower/pull/1544), " "[#1584](https://github.com/adap/flower/pull/1584))" -#: ../../source/ref-changelog.md:185 +#: ../../source/ref-changelog.md:296 msgid "" "The CLI commands `flower-supernode` and `flower-server-app` now accept an" " app directory as argument (instead of references to a `ClientApp` or " @@ -17295,7 +18233,7 @@ msgid "" "`flwr new`." msgstr "" -#: ../../source/ref-changelog.md:187 +#: ../../source/ref-changelog.md:298 #, fuzzy msgid "" "**Disable** `flower-client-app` **CLI command** " @@ -17304,11 +18242,11 @@ msgstr "" "**Introduire une nouvelle ligne de base pour les fleurs : FedAvg " "FEMNIST** ([#1655](https://github.com/adap/flower/pull/1655))" -#: ../../source/ref-changelog.md:189 +#: ../../source/ref-changelog.md:300 msgid "`flower-client-app` has been disabled. Use `flower-supernode` instead." msgstr "" -#: ../../source/ref-changelog.md:191 +#: ../../source/ref-changelog.md:302 #, fuzzy msgid "" "**Use spaces instead of commas for separating config args** " @@ -17317,17 +18255,17 @@ msgstr "" "**Métriques personnalisées pour le serveur et les stratégies** " "([#717](https://github.com/adap/flower/pull/717))" -#: ../../source/ref-changelog.md:193 +#: ../../source/ref-changelog.md:304 msgid "" "When passing configs (run config, node config) to Flower, you now need to" " separate key-value pairs using spaces instead of commas. For example:" msgstr "" -#: ../../source/ref-changelog.md:199 +#: ../../source/ref-changelog.md:310 msgid "Previously, you could pass configs using commas, like this:" msgstr "" -#: ../../source/ref-changelog.md:205 +#: ../../source/ref-changelog.md:316 #, fuzzy msgid "" "**Remove** `flwr example` **CLI command** " @@ -17336,18 +18274,18 @@ msgstr "" "**Supprimez KerasClient** " "([#857](https://github.com/adap/flower/pull/857))" -#: ../../source/ref-changelog.md:207 +#: ../../source/ref-changelog.md:318 msgid "" "The experimental `flwr example` CLI command has been removed. Use `flwr " "new` to generate a project and then run it using `flwr run`." msgstr "" -#: ../../source/ref-changelog.md:209 +#: ../../source/ref-changelog.md:320 #, fuzzy msgid "v1.10.0 (2024-07-24)" msgstr "v1.0.0 (2022-07-28)" -#: ../../source/ref-changelog.md:215 +#: ../../source/ref-changelog.md:326 msgid "" "`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. " "Beutel`, `Daniel Nata Nugraha`, `Danny`, `Gustavo Bertoli`, `Heng Pan`, " @@ -17356,7 +18294,7 @@ msgid "" "---TOKEN_v1.10.0-->" msgstr "" -#: ../../source/ref-changelog.md:219 +#: ../../source/ref-changelog.md:330 #, fuzzy msgid "" "**Introduce** `flwr run` **(beta)** " @@ -17377,7 +18315,7 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475))" -#: ../../source/ref-changelog.md:221 +#: ../../source/ref-changelog.md:332 msgid "" "Flower 1.10 ships the first beta release of the new `flwr run` command. " "`flwr run` can run different projects using `flwr run path/to/project`, " @@ -17390,7 +18328,7 @@ msgid "" "`flwr new` to generate a project and then run it using `flwr run`." msgstr "" -#: ../../source/ref-changelog.md:223 +#: ../../source/ref-changelog.md:334 #, fuzzy msgid "" "**Introduce run config** " @@ -17419,7 +18357,7 @@ msgstr "" "[#1770](https://github.com/adap/flower/pull/1770), " "[#1733](https://github.com/adap/flower/pull/1733))" -#: ../../source/ref-changelog.md:225 +#: ../../source/ref-changelog.md:336 msgid "" "The new run config feature allows you to run your Flower project in " "different configurations without having to change a single line of code. " @@ -17432,7 +18370,7 @@ msgid "" "new project using `flwr new` to see run config in action." msgstr "" -#: ../../source/ref-changelog.md:227 +#: ../../source/ref-changelog.md:338 #, fuzzy msgid "" "**Generalize** `client_fn` **signature to** `client_fn(context: Context) " @@ -17447,7 +18385,7 @@ msgstr "" "[#1301](https://github.com/adap/flower/pull/1301), " "[#1310](https://github.com/adap/flower/pull/1310))" -#: ../../source/ref-changelog.md:229 +#: ../../source/ref-changelog.md:340 msgid "" "The `client_fn` signature has been generalized to `client_fn(context: " "Context) -> Client`. It now receives a `Context` object instead of the " @@ -17457,14 +18395,14 @@ msgid "" "system." msgstr "" -#: ../../source/ref-changelog.md:231 +#: ../../source/ref-changelog.md:342 msgid "" "The previous signature `client_fn(cid: str)` is now deprecated and " "support for it will be removed in a future release. Use " "`client_fn(context: Context) -> Client` everywhere." msgstr "" -#: ../../source/ref-changelog.md:233 +#: ../../source/ref-changelog.md:344 #, fuzzy msgid "" "**Introduce new** `server_fn(context)` " @@ -17477,7 +18415,7 @@ msgstr "" "[#1544](https://github.com/adap/flower/pull/1544), " "[#1584](https://github.com/adap/flower/pull/1584))" -#: ../../source/ref-changelog.md:235 +#: ../../source/ref-changelog.md:346 msgid "" "In addition to the new `client_fn(context:Context)`, a new " "`server_fn(context: Context) -> ServerAppComponents` can now be passed to" @@ -17486,7 +18424,7 @@ msgid "" "build a configurable `ServerApp`." msgstr "" -#: ../../source/ref-changelog.md:237 +#: ../../source/ref-changelog.md:348 #, fuzzy msgid "" "**Relaunch all** `flwr new` **templates** " @@ -17507,7 +18445,7 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614))" -#: ../../source/ref-changelog.md:239 +#: ../../source/ref-changelog.md:350 msgid "" "All `flwr new` templates have been significantly updated to showcase new " "Flower features and best practices. This includes using `flwr run` and " @@ -17516,7 +18454,7 @@ msgid "" "run` it." msgstr "" -#: ../../source/ref-changelog.md:241 +#: ../../source/ref-changelog.md:352 #, fuzzy msgid "" "**Introduce** `flower-supernode` **(preview)** " @@ -17525,7 +18463,7 @@ msgstr "" "**Introduire une nouvelle ligne de base pour les fleurs : FedAvg " "FEMNIST** ([#1655](https://github.com/adap/flower/pull/1655))" -#: ../../source/ref-changelog.md:243 +#: ../../source/ref-changelog.md:354 msgid "" "The new `flower-supernode` CLI is here to replace `flower-client-app`. " "`flower-supernode` brings full multi-app support to the Flower client-" @@ -17534,7 +18472,7 @@ msgid "" "`client_fn(context: Context)` signature)." msgstr "" -#: ../../source/ref-changelog.md:245 +#: ../../source/ref-changelog.md:356 #, fuzzy msgid "" "**Introduce node config** " @@ -17549,7 +18487,7 @@ msgstr "" "[#1681](https://github.com/adap/flower/pull/1681), " "[#1679](https://github.com/adap/flower/pull/1679))" -#: ../../source/ref-changelog.md:247 +#: ../../source/ref-changelog.md:358 msgid "" "A new node config feature allows you to pass a static configuration to " "the SuperNode. This configuration is read-only and available to every " @@ -17557,7 +18495,7 @@ msgid "" "config via `Context` (`context.node_config`)." msgstr "" -#: ../../source/ref-changelog.md:249 +#: ../../source/ref-changelog.md:360 msgid "" "**Introduce SuperExec (experimental)** " "([#3605](https://github.com/adap/flower/pull/3605), " @@ -17578,14 +18516,14 @@ msgid "" "[#3629](https://github.com/adap/flower/pull/3629))" msgstr "" -#: ../../source/ref-changelog.md:251 +#: ../../source/ref-changelog.md:362 msgid "" "This is the first experimental release of Flower SuperExec, a new service" " that executes your runs. It's not ready for production deployment just " "yet, but don't hesitate to give it a try if you're interested." msgstr "" -#: ../../source/ref-changelog.md:253 +#: ../../source/ref-changelog.md:364 #, fuzzy msgid "" "**Add new federated learning with tabular data example** " @@ -17594,13 +18532,13 @@ msgstr "" "**Ajouter un nouvel exemple d'apprentissage fédéré utilisant fastai et " "Flower** ([#1598](https://github.com/adap/flower/pull/1598))" -#: ../../source/ref-changelog.md:255 +#: ../../source/ref-changelog.md:366 msgid "" "A new code example exemplifies a federated learning setup using the " "Flower framework on the Adult Census Income tabular dataset." msgstr "" -#: ../../source/ref-changelog.md:257 +#: ../../source/ref-changelog.md:368 #, fuzzy msgid "" "**Create generic adapter layer (preview)** " @@ -17613,7 +18551,7 @@ msgstr "" "[#1286](https://github.com/adap/flower/pull/1286), " "[#1282](https://github.com/adap/flower/pull/1282))" -#: ../../source/ref-changelog.md:259 +#: ../../source/ref-changelog.md:370 msgid "" "A new generic gRPC adapter layer allows 3rd-party frameworks to integrate" " with Flower in a transparent way. This makes Flower more modular and " @@ -17621,7 +18559,7 @@ msgid "" "platforms." msgstr "" -#: ../../source/ref-changelog.md:261 +#: ../../source/ref-changelog.md:372 #, fuzzy msgid "" "**Refactor Flower Simulation Engine** " @@ -17644,7 +18582,7 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475))" -#: ../../source/ref-changelog.md:263 +#: ../../source/ref-changelog.md:374 msgid "" "The Simulation Engine was significantly refactored. This results in " "faster and more stable simulations. It is also the foundation for " @@ -17652,7 +18590,7 @@ msgid "" "configurability in federated learning simulations." msgstr "" -#: ../../source/ref-changelog.md:265 +#: ../../source/ref-changelog.md:376 #, fuzzy msgid "" "**Optimize Docker containers** " @@ -17661,13 +18599,13 @@ msgstr "" "Nouveau thème de documentation " "([#551](https://github.com/adap/flower/pull/551))" -#: ../../source/ref-changelog.md:267 +#: ../../source/ref-changelog.md:378 msgid "" "Flower Docker containers were optimized and updated to use that latest " "Flower framework features." msgstr "" -#: ../../source/ref-changelog.md:269 +#: ../../source/ref-changelog.md:380 #, fuzzy msgid "" "**Improve logging** ([#3776](https://github.com/adap/flower/pull/3776), " @@ -17677,13 +18615,13 @@ msgstr "" "([#1344](https://github.com/adap/flower/pull/1344), " "[#1347](https://github.com/adap/flower/pull/1347))" -#: ../../source/ref-changelog.md:271 +#: ../../source/ref-changelog.md:382 msgid "" "Improved logging aims to be more concise and helpful to show you the " "details you actually care about." msgstr "" -#: ../../source/ref-changelog.md:273 +#: ../../source/ref-changelog.md:384 #, fuzzy msgid "" "**Refactor framework internals** " @@ -17704,12 +18642,7 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475))" -#: ../../source/ref-changelog.md:277 -#, fuzzy -msgid "Documentation improvements" -msgstr "Améliorations facultatives" - -#: ../../source/ref-changelog.md:279 +#: ../../source/ref-changelog.md:390 #, fuzzy msgid "" "**Add 🇰🇷 Korean translations** " @@ -17718,7 +18651,7 @@ msgstr "" "**Ouvrir dans le bouton Colab** " "([#1389](https://github.com/adap/flower/pull/1389))" -#: ../../source/ref-changelog.md:281 +#: ../../source/ref-changelog.md:392 #, fuzzy msgid "" "**Update translations** " @@ -17739,7 +18672,7 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475))" -#: ../../source/ref-changelog.md:283 +#: ../../source/ref-changelog.md:394 #, fuzzy msgid "" "**Update documentation** " @@ -17762,18 +18695,18 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614))" -#: ../../source/ref-changelog.md:285 +#: ../../source/ref-changelog.md:396 msgid "" "Updated documentation includes new install instructions for different " "shells, a new Flower Code Examples documentation landing page, new `flwr`" " CLI docs and an updated federated XGBoost code example." msgstr "" -#: ../../source/ref-changelog.md:289 +#: ../../source/ref-changelog.md:400 msgid "**Deprecate** `client_fn(cid: str)`" msgstr "" -#: ../../source/ref-changelog.md:291 +#: ../../source/ref-changelog.md:402 msgid "" "`client_fn` used to have a signature `client_fn(cid: str) -> Client`. " "This signature is now deprecated. Use the new signature " @@ -17786,13 +18719,13 @@ msgid "" " the dataset on each simulated or deployed SuperNode." msgstr "" -#: ../../source/ref-changelog.md:293 +#: ../../source/ref-changelog.md:404 msgid "" "**Deprecate passing** `Server/ServerConfig/Strategy/ClientManager` **to**" " `ServerApp` **directly**" msgstr "" -#: ../../source/ref-changelog.md:295 +#: ../../source/ref-changelog.md:406 msgid "" "Creating `ServerApp` using `ServerApp(config=config, strategy=strategy)` " "is now deprecated. Instead of passing " @@ -17805,7 +18738,7 @@ msgid "" " the `run_config`)." msgstr "" -#: ../../source/ref-changelog.md:299 +#: ../../source/ref-changelog.md:410 #, fuzzy msgid "" "**Remove support for `client_ids` in `start_simulation`** " @@ -17814,7 +18747,7 @@ msgstr "" "**Améliorer la prise en charge des GPU dans les simulations** " "([#1555](https://github.com/adap/flower/pull/1555))" -#: ../../source/ref-changelog.md:301 +#: ../../source/ref-changelog.md:412 msgid "" "The (rarely used) feature that allowed passing custom `client_ids` to the" " `start_simulation` function was removed. This removal is part of a " @@ -17822,7 +18755,7 @@ msgid "" "internals work in simulation and deployment." msgstr "" -#: ../../source/ref-changelog.md:303 +#: ../../source/ref-changelog.md:414 #, fuzzy msgid "" "**Remove `flower-driver-api` and `flower-fleet-api`** " @@ -17831,19 +18764,19 @@ msgstr "" "**Supprimez KerasClient** " "([#857](https://github.com/adap/flower/pull/857))" -#: ../../source/ref-changelog.md:305 +#: ../../source/ref-changelog.md:416 msgid "" "The two deprecated CLI commands `flower-driver-api` and `flower-fleet-" "api` were removed in an effort to streamline the SuperLink developer " "experience. Use `flower-superlink` instead." msgstr "" -#: ../../source/ref-changelog.md:307 +#: ../../source/ref-changelog.md:418 #, fuzzy msgid "v1.9.0 (2024-06-10)" msgstr "v1.3.0 (2023-02-06)" -#: ../../source/ref-changelog.md:313 +#: ../../source/ref-changelog.md:424 msgid "" "`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. " "Beutel`, `Daniel Nata Nugraha`, `Heng Pan`, `Javier`, `Mahdi Beitollahi`," @@ -17851,7 +18784,7 @@ msgid "" "---TOKEN_v1.9.0-->" msgstr "" -#: ../../source/ref-changelog.md:317 +#: ../../source/ref-changelog.md:428 #, fuzzy msgid "" "**Introduce built-in authentication (preview)** " @@ -17881,7 +18814,7 @@ msgstr "" "[#1519](https://github.com/adap/flower/pull/1519), " "[#1515](https://github.com/adap/flower/pull/1515))" -#: ../../source/ref-changelog.md:319 +#: ../../source/ref-changelog.md:430 msgid "" "Flower 1.9 introduces the first build-in version of client node " "authentication. In previous releases, users often wrote glue code to " @@ -17893,14 +18826,14 @@ msgid "" "authentication) help you to get started." msgstr "" -#: ../../source/ref-changelog.md:321 +#: ../../source/ref-changelog.md:432 msgid "" "This is the first preview release of the Flower-native authentication " "system. Many additional features are on the roadmap for upcoming Flower " "releases - stay tuned." msgstr "" -#: ../../source/ref-changelog.md:323 +#: ../../source/ref-changelog.md:434 #, fuzzy msgid "" "**Introduce end-to-end Docker support** " @@ -17926,7 +18859,7 @@ msgstr "" "[#1770](https://github.com/adap/flower/pull/1770), " "[#1733](https://github.com/adap/flower/pull/1733))" -#: ../../source/ref-changelog.md:325 +#: ../../source/ref-changelog.md:436 msgid "" "Full Flower Next Docker support is here! With the release of Flower 1.9, " "Flower provides stable Docker images for the Flower SuperLink, the Flower" @@ -17936,7 +18869,7 @@ msgid "" "docker.html) to get stated." msgstr "" -#: ../../source/ref-changelog.md:327 +#: ../../source/ref-changelog.md:438 #, fuzzy msgid "" "**Re-architect Flower Next simulation engine** " @@ -17958,7 +18891,7 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614))" -#: ../../source/ref-changelog.md:329 +#: ../../source/ref-changelog.md:440 msgid "" "Flower Next simulations now use a new in-memory `Driver` that improves " "the reliability of simulations, especially in notebook environments. This" @@ -17966,7 +18899,7 @@ msgid "" "simulation architecture." msgstr "" -#: ../../source/ref-changelog.md:331 +#: ../../source/ref-changelog.md:442 #, fuzzy msgid "" "**Upgrade simulation engine** " @@ -17987,14 +18920,14 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614))" -#: ../../source/ref-changelog.md:333 +#: ../../source/ref-changelog.md:444 msgid "" "The Flower Next simulation engine comes with improved and configurable " "logging. The Ray-based simulation backend in Flower 1.9 was updated to " "use Ray 2.10." msgstr "" -#: ../../source/ref-changelog.md:335 +#: ../../source/ref-changelog.md:446 #, fuzzy msgid "" "**Introduce FedPFT baseline** " @@ -18003,7 +18936,7 @@ msgstr "" "**Ajouter une nouvelle stratégie `FedProx`** " "([#1619](https://github.com/adap/flower/pull/1619))" -#: ../../source/ref-changelog.md:337 +#: ../../source/ref-changelog.md:448 msgid "" "FedPFT allows you to perform one-shot Federated Learning by leveraging " "widely available foundational models, dramatically reducing communication" @@ -18014,7 +18947,7 @@ msgid "" "([arxiv](https://arxiv.org/abs/2402.01862))" msgstr "" -#: ../../source/ref-changelog.md:339 +#: ../../source/ref-changelog.md:450 #, fuzzy msgid "" "**Launch additional** `flwr new` **templates for Apple MLX, Hugging Face " @@ -18032,7 +18965,7 @@ msgstr "" "[#1065](https://github.com/adap/flower/pull/1065), " "[#1090](https://github.com/adap/flower/pull/1090))" -#: ../../source/ref-changelog.md:341 +#: ../../source/ref-changelog.md:452 msgid "" "The `flwr` CLI's `flwr new` command is starting to become everone's " "favorite way of creating new Flower projects. This release introduces " @@ -18041,7 +18974,7 @@ msgid "" "also received updates." msgstr "" -#: ../../source/ref-changelog.md:343 +#: ../../source/ref-changelog.md:454 #, fuzzy msgid "" "**Refine** `RecordSet` **API** " @@ -18061,14 +18994,14 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614))" -#: ../../source/ref-changelog.md:345 +#: ../../source/ref-changelog.md:456 msgid "" "`RecordSet` is part of the Flower Next low-level API preview release. In " "Flower 1.9, `RecordSet` received a number of usability improvements that " "make it easier to build `RecordSet`-based `ServerApp`s and `ClientApp`s." msgstr "" -#: ../../source/ref-changelog.md:347 +#: ../../source/ref-changelog.md:458 #, fuzzy msgid "" "**Beautify logging** ([#3379](https://github.com/adap/flower/pull/3379), " @@ -18083,13 +19016,13 @@ msgstr "" "[#1301](https://github.com/adap/flower/pull/1301), " "[#1310](https://github.com/adap/flower/pull/1310))" -#: ../../source/ref-changelog.md:349 +#: ../../source/ref-changelog.md:460 msgid "" "Logs received a substantial update. Not only are logs now much nicer to " "look at, but they are also more configurable." msgstr "" -#: ../../source/ref-changelog.md:351 +#: ../../source/ref-changelog.md:462 #, fuzzy msgid "" "**Improve reliability** " @@ -18109,13 +19042,13 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475))" -#: ../../source/ref-changelog.md:353 +#: ../../source/ref-changelog.md:464 msgid "" "Flower 1.9 includes reliability improvements across many parts of the " "system. One example is a much improved SuperNode shutdown procedure." msgstr "" -#: ../../source/ref-changelog.md:355 +#: ../../source/ref-changelog.md:466 #, fuzzy msgid "" "**Update Swift and C++ SDKs** " @@ -18126,14 +19059,14 @@ msgstr "" "([#1344](https://github.com/adap/flower/pull/1344), " "[#1347](https://github.com/adap/flower/pull/1347))" -#: ../../source/ref-changelog.md:357 +#: ../../source/ref-changelog.md:468 msgid "" "In the C++ SDK, communication-related code is now separate from main " "client logic. A new abstract class `Communicator` has been introduced " "alongside a gRPC implementation of it." msgstr "" -#: ../../source/ref-changelog.md:359 +#: ../../source/ref-changelog.md:470 msgid "" "**Improve testing, tooling and CI/CD infrastructure** " "([#3294](https://github.com/adap/flower/pull/3294), " @@ -18167,13 +19100,13 @@ msgid "" "[#3271](https://github.com/adap/flower/pull/3271))" msgstr "" -#: ../../source/ref-changelog.md:361 +#: ../../source/ref-changelog.md:472 msgid "" "As always, the Flower tooling, testing, and CI/CD infrastructure has " "received many updates." msgstr "" -#: ../../source/ref-changelog.md:363 +#: ../../source/ref-changelog.md:474 msgid "" "**Improve documentation** " "([#3530](https://github.com/adap/flower/pull/3530), " @@ -18198,32 +19131,32 @@ msgid "" "[#3274](https://github.com/adap/flower/pull/3274))" msgstr "" -#: ../../source/ref-changelog.md:365 +#: ../../source/ref-changelog.md:476 msgid "" "As always, the Flower documentation has received many updates. Notable " "new pages include:" msgstr "" -#: ../../source/ref-changelog.md:367 +#: ../../source/ref-changelog.md:478 msgid "" "[How-to upgrate to Flower Next (Flower Next migration " "guide)](https://flower.ai/docs/framework/how-to-upgrade-to-flower-" "next.html)" msgstr "" -#: ../../source/ref-changelog.md:369 +#: ../../source/ref-changelog.md:480 msgid "" "[How-to run Flower using Docker](https://flower.ai/docs/framework/how-to-" "run-flower-using-docker.html)" msgstr "" -#: ../../source/ref-changelog.md:371 +#: ../../source/ref-changelog.md:482 msgid "" "[Flower Mods reference](https://flower.ai/docs/framework/ref-" "api/flwr.client.mod.html#module-flwr.client.mod)" msgstr "" -#: ../../source/ref-changelog.md:373 +#: ../../source/ref-changelog.md:484 #, fuzzy msgid "" "**General updates to Flower Examples** " @@ -18258,11 +19191,11 @@ msgstr "" "[#1305](https://github.com/adap/flower/pull/1305), " "[#1307](https://github.com/adap/flower/pull/1307))" -#: ../../source/ref-changelog.md:375 +#: ../../source/ref-changelog.md:486 msgid "As always, Flower code examples have received many updates." msgstr "" -#: ../../source/ref-changelog.md:377 +#: ../../source/ref-changelog.md:488 msgid "" "**General improvements** " "([#3532](https://github.com/adap/flower/pull/3532), " @@ -18301,19 +19234,19 @@ msgid "" "[#3261](https://github.com/adap/flower/pull/3261))" msgstr "" -#: ../../source/ref-changelog.md:381 +#: ../../source/ref-changelog.md:492 #, fuzzy msgid "**Deprecate Python 3.8 support**" msgstr "**Créer le PR**" -#: ../../source/ref-changelog.md:383 +#: ../../source/ref-changelog.md:494 msgid "" "Python 3.8 will stop receiving security fixes in [October " "2024](https://devguide.python.org/versions/). Support for Python 3.8 is " "now deprecated and will be removed in an upcoming release." msgstr "" -#: ../../source/ref-changelog.md:385 +#: ../../source/ref-changelog.md:496 #, fuzzy msgid "" "**Deprecate (experimental)** `flower-driver-api` **and** `flower-fleet-" @@ -18324,14 +19257,14 @@ msgstr "" "([#1258](https://github.com/adap/flower/pull/1258), " "[#1259](https://github.com/adap/flower/pull/1259))" -#: ../../source/ref-changelog.md:387 +#: ../../source/ref-changelog.md:498 msgid "" "Flower 1.9 deprecates the two (experimental) commands `flower-driver-api`" " and `flower-fleet-api`. Both commands will be removed in an upcoming " "release. Use `flower-superlink` instead." msgstr "" -#: ../../source/ref-changelog.md:389 +#: ../../source/ref-changelog.md:500 #, fuzzy msgid "" "**Deprecate** `--server` **in favor of** `--superlink` " @@ -18340,14 +19273,14 @@ msgstr "" "**Autoriser le passage d'une **instance `Server` à** `start_simulation` " "([#1281](https://github.com/adap/flower/pull/1281))" -#: ../../source/ref-changelog.md:391 +#: ../../source/ref-changelog.md:502 msgid "" "The commands `flower-server-app` and `flower-client-app` should use " "`--superlink` instead of the now deprecated `--server`. Support for " "`--server` will be removed in a future release." msgstr "" -#: ../../source/ref-changelog.md:395 +#: ../../source/ref-changelog.md:506 msgid "" "**Replace** `flower-superlink` **CLI option** `--certificates` **with** " "`--ssl-ca-certfile` **,** `--ssl-certfile` **and** `--ssl-keyfile` " @@ -18355,7 +19288,7 @@ msgid "" "[#3408](https://github.com/adap/flower/pull/3408))" msgstr "" -#: ../../source/ref-changelog.md:397 +#: ../../source/ref-changelog.md:508 msgid "" "SSL-related `flower-superlink` CLI arguments were restructured in an " "incompatible way. Instead of passing a single `--certificates` flag with " @@ -18365,7 +19298,7 @@ msgid "" "connections.html) documentation page for details." msgstr "" -#: ../../source/ref-changelog.md:399 +#: ../../source/ref-changelog.md:510 #, fuzzy msgid "" "**Remove SuperLink** `--vce` **option** " @@ -18374,14 +19307,14 @@ msgstr "" "**Documentation restructurée** " "([#1387](https://github.com/adap/flower/pull/1387))" -#: ../../source/ref-changelog.md:401 +#: ../../source/ref-changelog.md:512 msgid "" "Instead of separately starting a SuperLink and a `ServerApp` for " "simulation, simulations must now be started using the single `flower-" "simulation` command." msgstr "" -#: ../../source/ref-changelog.md:403 +#: ../../source/ref-changelog.md:514 #, fuzzy msgid "" "**Merge** `--grpc-rere` **and** `--rest` **SuperLink options** " @@ -18390,7 +19323,7 @@ msgstr "" "**Rename** `rnd` **to** `server_round` " "([#1321](https://github.com/adap/flower/pull/1321))" -#: ../../source/ref-changelog.md:405 +#: ../../source/ref-changelog.md:516 msgid "" "To simplify the usage of `flower-superlink`, previously separate sets of " "CLI options for gRPC and REST were merged into one unified set of " @@ -18399,12 +19332,12 @@ msgid "" "details." msgstr "" -#: ../../source/ref-changelog.md:407 +#: ../../source/ref-changelog.md:518 #, fuzzy msgid "v1.8.0 (2024-04-03)" msgstr "v1.3.0 (2023-02-06)" -#: ../../source/ref-changelog.md:413 +#: ../../source/ref-changelog.md:524 msgid "" "`Adam Narozniak`, `Charles Beauville`, `Daniel J. Beutel`, `Daniel Nata " "Nugraha`, `Danny`, `Gustavo Bertoli`, `Heng Pan`, `Ikko Eltociear " @@ -18413,7 +19346,7 @@ msgid "" "`tabdar-khan` " msgstr "" -#: ../../source/ref-changelog.md:417 +#: ../../source/ref-changelog.md:528 msgid "" "**Introduce Flower Next high-level API (stable)** " "([#3002](https://github.com/adap/flower/pull/3002), " @@ -18443,7 +19376,7 @@ msgid "" "[#3197](https://github.com/adap/flower/pull/3197))" msgstr "" -#: ../../source/ref-changelog.md:419 +#: ../../source/ref-changelog.md:530 msgid "" "The Flower Next high-level API is stable! Flower Next is the future of " "Flower - all new features (like Flower Mods) will be built on top of it. " @@ -18457,7 +19390,7 @@ msgid "" "projects that use `Strategy`, `NumPyClient` & co." msgstr "" -#: ../../source/ref-changelog.md:421 +#: ../../source/ref-changelog.md:532 #, fuzzy msgid "" "**Introduce Flower Next low-level API (preview)** " @@ -18470,7 +19403,7 @@ msgstr "" "[#1286](https://github.com/adap/flower/pull/1286), " "[#1282](https://github.com/adap/flower/pull/1282))" -#: ../../source/ref-changelog.md:423 +#: ../../source/ref-changelog.md:534 msgid "" "In addition to the Flower Next *high-level* API that uses `Strategy`, " "`NumPyClient` & co, Flower 1.8 also comes with a preview version of the " @@ -18487,7 +19420,7 @@ msgid "" "custom SMPC protocols, to name just a few." msgstr "" -#: ../../source/ref-changelog.md:425 +#: ../../source/ref-changelog.md:536 #, fuzzy msgid "" "**Introduce Flower Mods (preview)** " @@ -18500,7 +19433,7 @@ msgstr "" "[#1544](https://github.com/adap/flower/pull/1544), " "[#1584](https://github.com/adap/flower/pull/1584))" -#: ../../source/ref-changelog.md:427 +#: ../../source/ref-changelog.md:538 msgid "" "Flower Modifiers (we call them Mods) can intercept messages and analyze, " "edit or handle them directly. Mods can be used to develop pluggable " @@ -18512,7 +19445,7 @@ msgid "" "can already use it to experiment with arbirtrary SMPC protocols." msgstr "" -#: ../../source/ref-changelog.md:429 +#: ../../source/ref-changelog.md:540 #, fuzzy msgid "" "**Fine-tune LLMs with LLM FlowerTune** " @@ -18531,7 +19464,7 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475))" -#: ../../source/ref-changelog.md:431 +#: ../../source/ref-changelog.md:542 msgid "" "We are introducing LLM FlowerTune, an introductory example that " "demonstrates federated LLM fine-tuning of pre-trained Llama2 models on " @@ -18541,7 +19474,7 @@ msgid "" "-llm-flowertune-federated-llm-finetuning-with-flower/) for more details." msgstr "" -#: ../../source/ref-changelog.md:433 +#: ../../source/ref-changelog.md:544 #, fuzzy msgid "" "**Introduce built-in Differential Privacy (preview)** " @@ -18562,7 +19495,7 @@ msgstr "" "[#993](https://github.com/adap/flower/pull/993), " "[#994](https://github.com/adap/flower/pull/994))" -#: ../../source/ref-changelog.md:435 +#: ../../source/ref-changelog.md:546 msgid "" "Built-in Differential Privacy is here! Flower supports both central and " "local differential privacy (DP). Central DP can be configured with either" @@ -18575,7 +19508,7 @@ msgid "" "/how-to-use-differential-privacy.html) in Flower." msgstr "" -#: ../../source/ref-changelog.md:437 +#: ../../source/ref-changelog.md:548 #, fuzzy msgid "" "**Introduce built-in Secure Aggregation (preview)** " @@ -18588,7 +19521,7 @@ msgstr "" "[#1544](https://github.com/adap/flower/pull/1544), " "[#1584](https://github.com/adap/flower/pull/1584))" -#: ../../source/ref-changelog.md:439 +#: ../../source/ref-changelog.md:550 msgid "" "Built-in Secure Aggregation is here! Flower now supports different secure" " aggregation protocols out-of-the-box. The best part? You can add secure " @@ -18601,7 +19534,7 @@ msgid "" "in the same project." msgstr "" -#: ../../source/ref-changelog.md:441 +#: ../../source/ref-changelog.md:552 #, fuzzy msgid "" "**Introduce** `flwr` **CLI (preview)** " @@ -18624,13 +19557,13 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614))" -#: ../../source/ref-changelog.md:443 +#: ../../source/ref-changelog.md:554 msgid "" "A new `flwr` CLI command allows creating new Flower projects (`flwr new`)" " and then running them using the Simulation Engine (`flwr run`)." msgstr "" -#: ../../source/ref-changelog.md:445 +#: ../../source/ref-changelog.md:556 #, fuzzy msgid "" "**Introduce Flower Next Simulation Engine** " @@ -18654,14 +19587,14 @@ msgstr "" "[#1770](https://github.com/adap/flower/pull/1770), " "[#1733](https://github.com/adap/flower/pull/1733))" -#: ../../source/ref-changelog.md:447 +#: ../../source/ref-changelog.md:558 msgid "" "The Flower Simulation Engine can now run Flower Next projects. For " "notebook environments, there's also a new `run_simulation` function that " "can run `ServerApp` and `ClientApp`." msgstr "" -#: ../../source/ref-changelog.md:449 +#: ../../source/ref-changelog.md:560 #, fuzzy msgid "" "**Handle SuperNode connection errors** " @@ -18670,7 +19603,7 @@ msgstr "" "**Ajouter une nouvelle stratégie `FedProx`** " "([#1619](https://github.com/adap/flower/pull/1619))" -#: ../../source/ref-changelog.md:451 +#: ../../source/ref-changelog.md:562 msgid "" "A SuperNode will now try to reconnect indefinitely to the SuperLink in " "case of connection errors. The arguments `--max-retries` and `--max-wait-" @@ -18681,7 +19614,7 @@ msgid "" "reconnect to the SuperLink." msgstr "" -#: ../../source/ref-changelog.md:453 +#: ../../source/ref-changelog.md:564 #, fuzzy msgid "" "**General updates to Flower Baselines** " @@ -18696,13 +19629,13 @@ msgstr "" "[#1681](https://github.com/adap/flower/pull/1681), " "[#1679](https://github.com/adap/flower/pull/1679))" -#: ../../source/ref-changelog.md:455 +#: ../../source/ref-changelog.md:566 msgid "" "There's a new [FedStar](https://flower.ai/docs/baselines/fedstar.html) " "baseline. Several other baselined have been updated as well." msgstr "" -#: ../../source/ref-changelog.md:457 +#: ../../source/ref-changelog.md:568 msgid "" "**Improve documentation and translations** " "([#3050](https://github.com/adap/flower/pull/3050), " @@ -18723,14 +19656,14 @@ msgid "" "[#2989](https://github.com/adap/flower/pull/2989))" msgstr "" -#: ../../source/ref-changelog.md:459 +#: ../../source/ref-changelog.md:570 msgid "" "As usual, we merged many smaller and larger improvements to the " "documentation. A special thank you goes to [Sebastian van der " "Voort](https://github.com/svdvoort) for landing a big documentation PR!" msgstr "" -#: ../../source/ref-changelog.md:461 +#: ../../source/ref-changelog.md:572 #, fuzzy msgid "" "**General updates to Flower Examples** " @@ -18757,7 +19690,7 @@ msgstr "" "[#1519](https://github.com/adap/flower/pull/1519), " "[#1515](https://github.com/adap/flower/pull/1515))" -#: ../../source/ref-changelog.md:463 +#: ../../source/ref-changelog.md:574 msgid "" "Two new examples show federated training of a Vision Transformer (ViT) " "and federated learning in a medical context using the popular MONAI " @@ -18766,7 +19699,7 @@ msgid "" "received considerable updates as well." msgstr "" -#: ../../source/ref-changelog.md:465 +#: ../../source/ref-changelog.md:576 msgid "" "**General improvements** " "([#3171](https://github.com/adap/flower/pull/3171), " @@ -18844,12 +19777,12 @@ msgid "" "[#2954](https://github.com/adap/flower/pull/2954))" msgstr "" -#: ../../source/ref-changelog.md:471 +#: ../../source/ref-changelog.md:582 #, fuzzy msgid "v1.7.0 (2024-02-05)" msgstr "v1.3.0 (2023-02-06)" -#: ../../source/ref-changelog.md:477 +#: ../../source/ref-changelog.md:588 msgid "" "`Aasheesh Singh`, `Adam Narozniak`, `Aml Hassan Esmil`, `Charles " "Beauville`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Edoardo " @@ -18859,7 +19792,7 @@ msgid "" "Shaaban`, `Yan Gao`, `Yasar Abbas` " msgstr "" -#: ../../source/ref-changelog.md:481 +#: ../../source/ref-changelog.md:592 #, fuzzy msgid "" "**Introduce stateful clients (experimental)** " @@ -18876,7 +19809,7 @@ msgstr "" "[#993](https://github.com/adap/flower/pull/993), " "[#994](https://github.com/adap/flower/pull/994))" -#: ../../source/ref-changelog.md:483 +#: ../../source/ref-changelog.md:594 msgid "" "Subclasses of `Client` and `NumPyClient` can now store local state that " "remains on the client. Let's start with the highlight first: this new " @@ -18889,7 +19822,7 @@ msgid "" "unified way across simulation and deployment." msgstr "" -#: ../../source/ref-changelog.md:485 +#: ../../source/ref-changelog.md:596 #, fuzzy msgid "" "**Improve performance** " @@ -18898,7 +19831,7 @@ msgstr "" "**Supprimer les stratégies expérimentales** " "([#1280](https://github.com/adap/flower/pull/1280))" -#: ../../source/ref-changelog.md:487 +#: ../../source/ref-changelog.md:598 msgid "" "Flower is faster than ever. All `FedAvg`-derived strategies now use in-" "place aggregation to reduce memory consumption. The Flower client " @@ -18907,7 +19840,7 @@ msgid "" "training time is short." msgstr "" -#: ../../source/ref-changelog.md:489 +#: ../../source/ref-changelog.md:600 #, fuzzy msgid "" "**Support Federated Learning with Apple MLX and Flower** " @@ -18916,14 +19849,14 @@ msgstr "" "**Ajouter un nouvel exemple d'apprentissage fédéré utilisant fastai et " "Flower** ([#1598](https://github.com/adap/flower/pull/1598))" -#: ../../source/ref-changelog.md:491 +#: ../../source/ref-changelog.md:602 msgid "" "Flower has official support for federated learning using [Apple " "MLX](https://ml-explore.github.io/mlx) via the new `quickstart-mlx` code " "example." msgstr "" -#: ../../source/ref-changelog.md:493 +#: ../../source/ref-changelog.md:604 #, fuzzy msgid "" "**Introduce new XGBoost cyclic strategy** " @@ -18934,7 +19867,7 @@ msgstr "" "([#1621](https://github.com/adap/flower/pull/1621), " "[#1764](https://github.com/adap/flower/pull/1764))" -#: ../../source/ref-changelog.md:495 +#: ../../source/ref-changelog.md:606 msgid "" "A new strategy called `FedXgbCyclic` supports a client-by-client style of" " training (often called cyclic). The `xgboost-comprehensive` code example" @@ -18943,7 +19876,7 @@ msgid "" "offers best-in-class XGBoost support." msgstr "" -#: ../../source/ref-changelog.md:497 +#: ../../source/ref-changelog.md:608 #, fuzzy msgid "" "**Support Python 3.11** " @@ -18952,13 +19885,13 @@ msgstr "" "**Support Python 3.10** " "([#1320](https://github.com/adap/flower/pull/1320))" -#: ../../source/ref-changelog.md:499 +#: ../../source/ref-changelog.md:610 msgid "" "Framework tests now run on Python 3.8, 3.9, 3.10, and 3.11. This will " "ensure better support for users using more recent Python versions." msgstr "" -#: ../../source/ref-changelog.md:501 +#: ../../source/ref-changelog.md:612 #, fuzzy msgid "" "**Update gRPC and ProtoBuf dependencies** " @@ -18967,13 +19900,13 @@ msgstr "" "**Ajouter une nouvelle stratégie `FedProx`** " "([#1619](https://github.com/adap/flower/pull/1619))" -#: ../../source/ref-changelog.md:503 +#: ../../source/ref-changelog.md:614 msgid "" "The `grpcio` and `protobuf` dependencies were updated to their latest " "versions for improved security and performance." msgstr "" -#: ../../source/ref-changelog.md:505 +#: ../../source/ref-changelog.md:616 #, fuzzy msgid "" "**Introduce Docker image for Flower server** " @@ -18994,7 +19927,7 @@ msgstr "" "[#993](https://github.com/adap/flower/pull/993), " "[#994](https://github.com/adap/flower/pull/994))" -#: ../../source/ref-changelog.md:507 +#: ../../source/ref-changelog.md:618 msgid "" "The Flower server can now be run using an official Docker image. A new " "how-to guide explains [how to run Flower using " @@ -19002,7 +19935,7 @@ msgid "" "docker.html). An official Flower client Docker image will follow." msgstr "" -#: ../../source/ref-changelog.md:509 +#: ../../source/ref-changelog.md:620 #, fuzzy msgid "" "**Introduce** `flower-via-docker-compose` **example** " @@ -19011,7 +19944,7 @@ msgstr "" "**Introduire une nouvelle ligne de base pour les fleurs : FedAvg " "FEMNIST** ([#1655](https://github.com/adap/flower/pull/1655))" -#: ../../source/ref-changelog.md:511 +#: ../../source/ref-changelog.md:622 #, fuzzy msgid "" "**Introduce** `quickstart-sklearn-tabular` **example** " @@ -19020,7 +19953,7 @@ msgstr "" "**Ajouter une nouvelle stratégie `FedProx`** " "([#1619](https://github.com/adap/flower/pull/1619))" -#: ../../source/ref-changelog.md:513 +#: ../../source/ref-changelog.md:624 #, fuzzy msgid "" "**Introduce** `custom-metrics` **example** " @@ -19029,7 +19962,7 @@ msgstr "" "**Ajouter une nouvelle stratégie `FedProx`** " "([#1619](https://github.com/adap/flower/pull/1619))" -#: ../../source/ref-changelog.md:515 +#: ../../source/ref-changelog.md:626 #, fuzzy msgid "" "**Update code examples to use Flower Datasets** " @@ -19044,13 +19977,13 @@ msgstr "" "[#1301](https://github.com/adap/flower/pull/1301), " "[#1310](https://github.com/adap/flower/pull/1310))" -#: ../../source/ref-changelog.md:517 +#: ../../source/ref-changelog.md:628 msgid "" "Several code examples were updated to use [Flower " "Datasets](https://flower.ai/docs/datasets/)." msgstr "" -#: ../../source/ref-changelog.md:519 +#: ../../source/ref-changelog.md:630 #, fuzzy msgid "" "**General updates to Flower Examples** " @@ -19076,16 +20009,16 @@ msgstr "" "[#1662](https://github.com/adap/flower/pull/1662), " "[#1794](https://github.com/adap/flower/pull/1794))" -#: ../../source/ref-changelog.md:521 +#: ../../source/ref-changelog.md:632 msgid "Many Flower code examples received substantial updates." msgstr "" -#: ../../source/ref-changelog.md:523 ../../source/ref-changelog.md:616 +#: ../../source/ref-changelog.md:634 ../../source/ref-changelog.md:727 #, fuzzy msgid "**Update Flower Baselines**" msgstr "Demande pour une nouvelle Flower Baseline" -#: ../../source/ref-changelog.md:525 +#: ../../source/ref-changelog.md:636 #, fuzzy msgid "" "HFedXGBoost ([#2226](https://github.com/adap/flower/pull/2226), " @@ -19095,38 +20028,38 @@ msgstr "" "([#906](https://github.com/adap/flower/pull/906), " "[#1143](https://github.com/adap/flower/pull/1143))" -#: ../../source/ref-changelog.md:526 +#: ../../source/ref-changelog.md:637 #, fuzzy msgid "FedVSSL ([#2412](https://github.com/adap/flower/pull/2412))" msgstr "" "Amélioration de la documentation sur le serveur gRPC " "([#841](https://github.com/adap/flower/pull/841))" -#: ../../source/ref-changelog.md:527 +#: ../../source/ref-changelog.md:638 #, fuzzy msgid "FedNova ([#2179](https://github.com/adap/flower/pull/2179))" msgstr "" "**Ajouter une nouvelle stratégie `FedProx`** " "([#1619](https://github.com/adap/flower/pull/1619))" -#: ../../source/ref-changelog.md:528 +#: ../../source/ref-changelog.md:639 #, fuzzy msgid "HeteroFL ([#2439](https://github.com/adap/flower/pull/2439))" msgstr "Nouvelle référence API ([#554](https://github.com/adap/flower/pull/554))" -#: ../../source/ref-changelog.md:529 +#: ../../source/ref-changelog.md:640 #, fuzzy msgid "FedAvgM ([#2246](https://github.com/adap/flower/pull/2246))" msgstr "Nouvelle référence API ([#554](https://github.com/adap/flower/pull/554))" -#: ../../source/ref-changelog.md:530 +#: ../../source/ref-changelog.md:641 #, fuzzy msgid "FedPara ([#2722](https://github.com/adap/flower/pull/2722))" msgstr "" "**Renommé stratégie q-FedAvg** " "([#802](https://github.com/adap/flower/pull/802))" -#: ../../source/ref-changelog.md:532 +#: ../../source/ref-changelog.md:643 #, fuzzy msgid "" "**Improve documentation** " @@ -19146,7 +20079,7 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614))" -#: ../../source/ref-changelog.md:534 +#: ../../source/ref-changelog.md:645 msgid "" "**Improved testing and development infrastructure** " "([#2797](https://github.com/adap/flower/pull/2797), " @@ -19180,13 +20113,13 @@ msgid "" "[#2398](https://github.com/adap/flower/pull/2398))" msgstr "" -#: ../../source/ref-changelog.md:536 +#: ../../source/ref-changelog.md:647 msgid "" "The Flower testing and development infrastructure has received " "substantial updates. This makes Flower 1.7 the most tested release ever." msgstr "" -#: ../../source/ref-changelog.md:538 +#: ../../source/ref-changelog.md:649 msgid "" "**Update dependencies** " "([#2753](https://github.com/adap/flower/pull/2753), " @@ -19210,7 +20143,7 @@ msgid "" "[#2789](https://github.com/adap/flower/pull/2789))" msgstr "" -#: ../../source/ref-changelog.md:540 +#: ../../source/ref-changelog.md:651 msgid "" "**General improvements** " "([#2803](https://github.com/adap/flower/pull/2803), " @@ -19251,7 +20184,7 @@ msgid "" "[#2759](https://github.com/adap/flower/pull/2759))" msgstr "" -#: ../../source/ref-changelog.md:544 +#: ../../source/ref-changelog.md:655 #, fuzzy msgid "" "**Deprecate** `start_numpy_client` " @@ -19262,7 +20195,7 @@ msgstr "" "([#828](https://github.com/adap/flower/pull/828) " "[#822](https://github.com/adap/flower/pull/822))" -#: ../../source/ref-changelog.md:546 +#: ../../source/ref-changelog.md:657 msgid "" "Until now, clients of type `NumPyClient` needed to be started via " "`start_numpy_client`. In our efforts to consolidate framework APIs, we " @@ -19273,7 +20206,7 @@ msgid "" "updated accordingly." msgstr "" -#: ../../source/ref-changelog.md:548 +#: ../../source/ref-changelog.md:659 #, fuzzy msgid "" "**Deprecate legacy DP wrappers** " @@ -19282,14 +20215,14 @@ msgstr "" "**Supprimez KerasClient** " "([#857](https://github.com/adap/flower/pull/857))" -#: ../../source/ref-changelog.md:550 +#: ../../source/ref-changelog.md:661 msgid "" "Legacy DP wrapper classes are deprecated, but still functional. This is " "in preparation for an all-new pluggable version of differential privacy " "support in Flower." msgstr "" -#: ../../source/ref-changelog.md:552 +#: ../../source/ref-changelog.md:663 #, fuzzy msgid "" "**Make optional arg** `--callable` **in** `flower-client` **a required " @@ -19298,7 +20231,7 @@ msgstr "" "**Log** `Client` **exceptions dans le moteur de client virtuel** " "([#1493](https://github.com/adap/flower/pull/1493))" -#: ../../source/ref-changelog.md:554 +#: ../../source/ref-changelog.md:665 #, fuzzy msgid "" "**Rename** `certificates` **to** `root_certificates` **in** `Driver` " @@ -19307,7 +20240,7 @@ msgstr "" "**Rename** `rnd` **to** `server_round` " "([#1321](https://github.com/adap/flower/pull/1321))" -#: ../../source/ref-changelog.md:556 +#: ../../source/ref-changelog.md:667 #, fuzzy msgid "" "**Drop experimental** `Task` **fields** " @@ -19318,14 +20251,14 @@ msgstr "" "([#1258](https://github.com/adap/flower/pull/1258), " "[#1259](https://github.com/adap/flower/pull/1259))" -#: ../../source/ref-changelog.md:558 +#: ../../source/ref-changelog.md:669 msgid "" "Experimental fields `sa`, `legacy_server_message` and " "`legacy_client_message` were removed from `Task` message. The removed " "fields are superseded by the new `RecordSet` abstraction." msgstr "" -#: ../../source/ref-changelog.md:560 +#: ../../source/ref-changelog.md:671 #, fuzzy msgid "" "**Retire MXNet examples** " @@ -19334,19 +20267,19 @@ msgstr "" "**Nouvel exemple de code scikit-learn** " "([#748](https://github.com/adap/flower/pull/748))" -#: ../../source/ref-changelog.md:562 +#: ../../source/ref-changelog.md:673 msgid "" "The development of the MXNet fremework has ended and the project is now " "[archived on GitHub](https://github.com/apache/mxnet). Existing MXNet " "examples won't receive updates." msgstr "" -#: ../../source/ref-changelog.md:564 +#: ../../source/ref-changelog.md:675 #, fuzzy msgid "v1.6.0 (2023-11-28)" msgstr "v1.4.0 (2023-04-21)" -#: ../../source/ref-changelog.md:570 +#: ../../source/ref-changelog.md:681 msgid "" "`Aashish Kolluri`, `Adam Narozniak`, `Alessio Mora`, `Barathwaja S`, " "`Charles Beauville`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Gabriel " @@ -19356,7 +20289,7 @@ msgid "" "`cnxdeveloper`, `k3nfalt` " msgstr "" -#: ../../source/ref-changelog.md:574 +#: ../../source/ref-changelog.md:685 #, fuzzy msgid "" "**Add experimental support for Python 3.12** " @@ -19365,7 +20298,7 @@ msgstr "" "**Ajouter la prise en charge expérimentale de Python 3.10 et Python " "3.11** ([#1135](https://github.com/adap/flower/pull/1135))" -#: ../../source/ref-changelog.md:576 +#: ../../source/ref-changelog.md:687 #, fuzzy msgid "" "**Add new XGBoost examples** " @@ -19384,13 +20317,13 @@ msgstr "" "[#1551](https://github.com/adap/flower/pull/1551), " "[#1567](https://github.com/adap/flower/pull/1567))" -#: ../../source/ref-changelog.md:578 +#: ../../source/ref-changelog.md:689 msgid "" "We have added a new `xgboost-quickstart` example alongside a new " "`xgboost-comprehensive` example that goes more in-depth." msgstr "" -#: ../../source/ref-changelog.md:580 +#: ../../source/ref-changelog.md:691 #, fuzzy msgid "" "**Add Vertical FL example** " @@ -19399,7 +20332,7 @@ msgstr "" "**Nouvel exemple de code CoreML pour iOS** " "([#1289](https://github.com/adap/flower/pull/1289))" -#: ../../source/ref-changelog.md:582 +#: ../../source/ref-changelog.md:693 msgid "" "We had many questions about Vertical Federated Learning using Flower, so " "we decided to add an simple example for it on the [Titanic " @@ -19407,7 +20340,7 @@ msgid "" "tutorial (in the README)." msgstr "" -#: ../../source/ref-changelog.md:584 +#: ../../source/ref-changelog.md:695 #, fuzzy msgid "" "**Support custom** `ClientManager` **in** `start_driver()` " @@ -19417,7 +20350,7 @@ msgstr "" "paramètre de `start_simulation` " "([#1171](https://github.com/adap/flower/pull/1171))" -#: ../../source/ref-changelog.md:586 +#: ../../source/ref-changelog.md:697 #, fuzzy msgid "" "**Update REST API to support create and delete nodes** " @@ -19426,7 +20359,7 @@ msgstr "" "**Nouvelle stratégie expérimentale TensorBoard** " "([#789](https://github.com/adap/flower/pull/789))" -#: ../../source/ref-changelog.md:588 +#: ../../source/ref-changelog.md:699 #, fuzzy msgid "" "**Update the Android SDK** " @@ -19435,11 +20368,11 @@ msgstr "" "**Introduire une nouvelle ligne de base pour les fleurs : FedAvg " "FEMNIST** ([#1655](https://github.com/adap/flower/pull/1655))" -#: ../../source/ref-changelog.md:590 +#: ../../source/ref-changelog.md:701 msgid "Add gRPC request-response capability to the Android SDK." msgstr "" -#: ../../source/ref-changelog.md:592 +#: ../../source/ref-changelog.md:703 #, fuzzy msgid "" "**Update the C++ SDK** " @@ -19454,11 +20387,11 @@ msgstr "" "[#1301](https://github.com/adap/flower/pull/1301), " "[#1310](https://github.com/adap/flower/pull/1310))" -#: ../../source/ref-changelog.md:594 +#: ../../source/ref-changelog.md:705 msgid "Add gRPC request-response capability to the C++ SDK." msgstr "" -#: ../../source/ref-changelog.md:596 +#: ../../source/ref-changelog.md:707 #, fuzzy msgid "" "**Make HTTPS the new default** " @@ -19469,7 +20402,7 @@ msgstr "" "([#1344](https://github.com/adap/flower/pull/1344), " "[#1347](https://github.com/adap/flower/pull/1347))" -#: ../../source/ref-changelog.md:598 +#: ../../source/ref-changelog.md:709 msgid "" "Flower is moving to HTTPS by default. The new `flower-server` requires " "passing `--certificates`, but users can enable `--insecure` to use HTTP " @@ -19479,14 +20412,14 @@ msgid "" "enable insecure HTTP connections." msgstr "" -#: ../../source/ref-changelog.md:600 +#: ../../source/ref-changelog.md:711 msgid "" "For backward compatibility, `start_client()` and `start_numpy_client()` " "will still start in insecure mode by default. In a future release, " "insecure connections will require user opt-in by passing `insecure=True`." msgstr "" -#: ../../source/ref-changelog.md:602 +#: ../../source/ref-changelog.md:713 #, fuzzy msgid "" "**Unify client API** ([#2303](https://github.com/adap/flower/pull/2303), " @@ -19498,7 +20431,7 @@ msgstr "" "[#1286](https://github.com/adap/flower/pull/1286), " "[#1282](https://github.com/adap/flower/pull/1282))" -#: ../../source/ref-changelog.md:604 +#: ../../source/ref-changelog.md:715 msgid "" "Using the `client_fn`, Flower clients can interchangeably run as " "standalone processes (i.e. via `start_client`) or in simulation (i.e. via" @@ -19507,7 +20440,7 @@ msgid "" "convert a `NumPyClient` to a `Client`." msgstr "" -#: ../../source/ref-changelog.md:606 +#: ../../source/ref-changelog.md:717 #, fuzzy msgid "" "**Add new** `Bulyan` **strategy** " @@ -19518,7 +20451,7 @@ msgstr "" "([#828](https://github.com/adap/flower/pull/828) " "[#822](https://github.com/adap/flower/pull/822))" -#: ../../source/ref-changelog.md:608 +#: ../../source/ref-changelog.md:719 #, fuzzy msgid "" "The new `Bulyan` strategy implements Bulyan by [El Mhamdi et al., " @@ -19528,7 +20461,7 @@ msgstr "" "(FedMedian) par [Yin et al., 2018] " "(https://arxiv.org/pdf/1803.01498v1.pdf)." -#: ../../source/ref-changelog.md:610 +#: ../../source/ref-changelog.md:721 #, fuzzy msgid "" "**Add new** `XGB Bagging` **strategy** " @@ -19537,7 +20470,7 @@ msgstr "" "**Ajouter une nouvelle stratégie `FedProx`** " "([#1619](https://github.com/adap/flower/pull/1619))" -#: ../../source/ref-changelog.md:612 ../../source/ref-changelog.md:614 +#: ../../source/ref-changelog.md:723 ../../source/ref-changelog.md:725 #, fuzzy msgid "" "**Introduce `WorkloadState`** " @@ -19548,7 +20481,7 @@ msgstr "" "([#828](https://github.com/adap/flower/pull/828) " "[#822](https://github.com/adap/flower/pull/822))" -#: ../../source/ref-changelog.md:618 +#: ../../source/ref-changelog.md:729 #, fuzzy msgid "" "FedProx ([#2210](https://github.com/adap/flower/pull/2210), " @@ -19560,7 +20493,7 @@ msgstr "" "[#1286](https://github.com/adap/flower/pull/1286), " "[#1282](https://github.com/adap/flower/pull/1282))" -#: ../../source/ref-changelog.md:620 +#: ../../source/ref-changelog.md:731 #, fuzzy msgid "" "Baselines Docs ([#2290](https://github.com/adap/flower/pull/2290), " @@ -19570,7 +20503,7 @@ msgstr "" "([#906](https://github.com/adap/flower/pull/906), " "[#1143](https://github.com/adap/flower/pull/1143))" -#: ../../source/ref-changelog.md:622 +#: ../../source/ref-changelog.md:733 #, fuzzy msgid "" "FedMLB ([#2340](https://github.com/adap/flower/pull/2340), " @@ -19580,7 +20513,7 @@ msgstr "" "([#1344](https://github.com/adap/flower/pull/1344), " "[#1347](https://github.com/adap/flower/pull/1347))" -#: ../../source/ref-changelog.md:624 +#: ../../source/ref-changelog.md:735 #, fuzzy msgid "" "TAMUNA ([#2254](https://github.com/adap/flower/pull/2254), " @@ -19590,48 +20523,48 @@ msgstr "" "([#828](https://github.com/adap/flower/pull/828) " "[#822](https://github.com/adap/flower/pull/822))" -#: ../../source/ref-changelog.md:626 +#: ../../source/ref-changelog.md:737 #, fuzzy msgid "FedMeta [#2438](https://github.com/adap/flower/pull/2438)" msgstr "Nouvelle référence API ([#554](https://github.com/adap/flower/pull/554))" -#: ../../source/ref-changelog.md:628 +#: ../../source/ref-changelog.md:739 #, fuzzy msgid "FjORD [#2431](https://github.com/adap/flower/pull/2431)" msgstr "" "Amélioration de la documentation sur le serveur gRPC " "([#841](https://github.com/adap/flower/pull/841))" -#: ../../source/ref-changelog.md:630 +#: ../../source/ref-changelog.md:741 #, fuzzy msgid "MOON [#2421](https://github.com/adap/flower/pull/2421)" msgstr "" "**Ajouter une nouvelle stratégie `FedProx`** " "([#1619](https://github.com/adap/flower/pull/1619))" -#: ../../source/ref-changelog.md:632 +#: ../../source/ref-changelog.md:743 #, fuzzy msgid "DepthFL [#2295](https://github.com/adap/flower/pull/2295)" msgstr "" "**Ajouter une nouvelle stratégie `FedProx`** " "([#1619](https://github.com/adap/flower/pull/1619))" -#: ../../source/ref-changelog.md:634 +#: ../../source/ref-changelog.md:745 #, fuzzy msgid "FedPer [#2266](https://github.com/adap/flower/pull/2266)" msgstr "Nouvelle référence API ([#554](https://github.com/adap/flower/pull/554))" -#: ../../source/ref-changelog.md:636 +#: ../../source/ref-changelog.md:747 #, fuzzy msgid "FedWav2vec [#2551](https://github.com/adap/flower/pull/2551)" msgstr "Nouvelle référence API ([#554](https://github.com/adap/flower/pull/554))" -#: ../../source/ref-changelog.md:638 +#: ../../source/ref-changelog.md:749 #, fuzzy msgid "niid-Bench [#2428](https://github.com/adap/flower/pull/2428)" msgstr "Nouvelle référence API ([#554](https://github.com/adap/flower/pull/554))" -#: ../../source/ref-changelog.md:640 +#: ../../source/ref-changelog.md:751 #, fuzzy msgid "" "FedBN ([#2608](https://github.com/adap/flower/pull/2608), " @@ -19641,7 +20574,7 @@ msgstr "" "([#828](https://github.com/adap/flower/pull/828) " "[#822](https://github.com/adap/flower/pull/822))" -#: ../../source/ref-changelog.md:642 +#: ../../source/ref-changelog.md:753 #, fuzzy msgid "" "**General updates to Flower Examples** " @@ -19657,7 +20590,7 @@ msgstr "" "[#1301](https://github.com/adap/flower/pull/1301), " "[#1310](https://github.com/adap/flower/pull/1310))" -#: ../../source/ref-changelog.md:644 +#: ../../source/ref-changelog.md:755 #, fuzzy msgid "" "**General updates to Flower Baselines** " @@ -19690,7 +20623,7 @@ msgstr "" "[#1564](https://github.com/adap/flower/pull/1564), " "[#1566](https://github.com/adap/flower/pull/1566))" -#: ../../source/ref-changelog.md:646 +#: ../../source/ref-changelog.md:757 #, fuzzy msgid "" "**General updates to the simulation engine** " @@ -19705,7 +20638,7 @@ msgstr "" "[#1301](https://github.com/adap/flower/pull/1301), " "[#1310](https://github.com/adap/flower/pull/1310))" -#: ../../source/ref-changelog.md:648 +#: ../../source/ref-changelog.md:759 #, fuzzy msgid "" "**General updates to Flower SDKs** " @@ -19724,7 +20657,7 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475))" -#: ../../source/ref-changelog.md:650 +#: ../../source/ref-changelog.md:761 msgid "" "**General improvements** " "([#2309](https://github.com/adap/flower/pull/2309), " @@ -19756,15 +20689,15 @@ msgid "" "[#2596](https://github.com/adap/flower/pull/2596))" msgstr "" -#: ../../source/ref-changelog.md:652 ../../source/ref-changelog.md:742 -#: ../../source/ref-changelog.md:806 ../../source/ref-changelog.md:860 -#: ../../source/ref-changelog.md:927 +#: ../../source/ref-changelog.md:763 ../../source/ref-changelog.md:853 +#: ../../source/ref-changelog.md:917 ../../source/ref-changelog.md:971 +#: ../../source/ref-changelog.md:1038 msgid "Flower received many improvements under the hood, too many to list here." msgstr "" "Flower a reçu de nombreuses améliorations sous le capot, trop nombreuses " "pour être énumérées ici." -#: ../../source/ref-changelog.md:656 +#: ../../source/ref-changelog.md:767 #, fuzzy msgid "" "**Remove support for Python 3.7** " @@ -19781,13 +20714,13 @@ msgstr "" "[#1065](https://github.com/adap/flower/pull/1065), " "[#1090](https://github.com/adap/flower/pull/1090))" -#: ../../source/ref-changelog.md:658 +#: ../../source/ref-changelog.md:769 msgid "" "Python 3.7 support was deprecated in Flower 1.5, and this release removes" " support. Flower now requires Python 3.8." msgstr "" -#: ../../source/ref-changelog.md:660 +#: ../../source/ref-changelog.md:771 #, fuzzy msgid "" "**Remove experimental argument** `rest` **from** `start_client` " @@ -19796,19 +20729,19 @@ msgstr "" "**Supprimer les stratégies expérimentales** " "([#1280](https://github.com/adap/flower/pull/1280))" -#: ../../source/ref-changelog.md:662 +#: ../../source/ref-changelog.md:773 msgid "" "The (still experimental) argument `rest` was removed from `start_client` " "and `start_numpy_client`. Use `transport=\"rest\"` to opt into the " "experimental REST API instead." msgstr "" -#: ../../source/ref-changelog.md:664 +#: ../../source/ref-changelog.md:775 #, fuzzy msgid "v1.5.0 (2023-08-31)" msgstr "v1.4.0 (2023-04-21)" -#: ../../source/ref-changelog.md:670 +#: ../../source/ref-changelog.md:781 msgid "" "`Adam Narozniak`, `Anass Anhari`, `Charles Beauville`, `Dana-Farber`, " "`Daniel J. Beutel`, `Daniel Nata Nugraha`, `Edoardo Gabrielli`, `Gustavo " @@ -19817,7 +20750,7 @@ msgid "" "TOKEN_v1.5.0-->" msgstr "" -#: ../../source/ref-changelog.md:674 +#: ../../source/ref-changelog.md:785 #, fuzzy msgid "" "**Introduce new simulation engine** " @@ -19830,7 +20763,7 @@ msgstr "" "[#1544](https://github.com/adap/flower/pull/1544), " "[#1584](https://github.com/adap/flower/pull/1584))" -#: ../../source/ref-changelog.md:676 +#: ../../source/ref-changelog.md:787 msgid "" "The new simulation engine has been rewritten from the ground up, yet it " "remains fully backwards compatible. It offers much improved stability and" @@ -19839,7 +20772,7 @@ msgid "" "only, CPU+GPU, multi-GPU, or multi-node multi-GPU environments." msgstr "" -#: ../../source/ref-changelog.md:678 +#: ../../source/ref-changelog.md:789 msgid "" "Comprehensive documentation includes a new [how-to run " "simulations](https://flower.ai/docs/framework/how-to-run-" @@ -19850,7 +20783,7 @@ msgid "" "series](https://www.youtube.com/watch?v=cRebUIGB5RU&list=PLNG4feLHqCWlnj8a_E1A_n5zr2-8pafTB)." msgstr "" -#: ../../source/ref-changelog.md:680 +#: ../../source/ref-changelog.md:791 msgid "" "**Restructure Flower Docs** " "([#1824](https://github.com/adap/flower/pull/1824), " @@ -19882,7 +20815,7 @@ msgid "" "[#2227](https://github.com/adap/flower/pull/2227))" msgstr "" -#: ../../source/ref-changelog.md:682 +#: ../../source/ref-changelog.md:793 msgid "" "Much effort went into a completely restructured Flower docs experience. " "The documentation on [flower.ai/docs](https://flower.ai/docs) is now " @@ -19890,7 +20823,7 @@ msgid "" "Flower iOS SDK, and code example projects." msgstr "" -#: ../../source/ref-changelog.md:684 +#: ../../source/ref-changelog.md:795 #, fuzzy msgid "" "**Introduce Flower Swift SDK** " @@ -19901,14 +20834,14 @@ msgstr "" "([#1621](https://github.com/adap/flower/pull/1621), " "[#1764](https://github.com/adap/flower/pull/1764))" -#: ../../source/ref-changelog.md:686 +#: ../../source/ref-changelog.md:797 msgid "" "This is the first preview release of the Flower Swift SDK. Flower support" " on iOS is improving, and alongside the Swift SDK and code example, there" " is now also an iOS quickstart tutorial." msgstr "" -#: ../../source/ref-changelog.md:688 +#: ../../source/ref-changelog.md:799 #, fuzzy msgid "" "**Introduce Flower Android SDK** " @@ -19917,14 +20850,14 @@ msgstr "" "**Introduire une nouvelle ligne de base pour les fleurs : FedAvg " "FEMNIST** ([#1655](https://github.com/adap/flower/pull/1655))" -#: ../../source/ref-changelog.md:690 +#: ../../source/ref-changelog.md:801 msgid "" "This is the first preview release of the Flower Kotlin SDK. Flower " "support on Android is improving, and alongside the Kotlin SDK and code " "example, there is now also an Android quickstart tutorial." msgstr "" -#: ../../source/ref-changelog.md:692 +#: ../../source/ref-changelog.md:803 #, fuzzy msgid "" "**Introduce new end-to-end testing infrastructure** " @@ -19957,24 +20890,24 @@ msgstr "" "[#1662](https://github.com/adap/flower/pull/1662), " "[#1794](https://github.com/adap/flower/pull/1794))" -#: ../../source/ref-changelog.md:694 +#: ../../source/ref-changelog.md:805 msgid "" "A new testing infrastructure ensures that new changes stay compatible " "with existing framework integrations or strategies." msgstr "" -#: ../../source/ref-changelog.md:696 +#: ../../source/ref-changelog.md:807 #, fuzzy msgid "**Deprecate Python 3.7**" msgstr "**Créer le PR**" -#: ../../source/ref-changelog.md:698 +#: ../../source/ref-changelog.md:809 msgid "" "Since Python 3.7 reached its end of life (EOL) on 2023-06-27, support for" " Python 3.7 is now deprecated and will be removed in an upcoming release." msgstr "" -#: ../../source/ref-changelog.md:700 +#: ../../source/ref-changelog.md:811 #, fuzzy msgid "" "**Add new** `FedTrimmedAvg` **strategy** " @@ -19985,7 +20918,7 @@ msgstr "" "([#1469](https://github.com/adap/flower/pull/1469), " "[#1535](https://github.com/adap/flower/pull/1535))" -#: ../../source/ref-changelog.md:702 +#: ../../source/ref-changelog.md:813 #, fuzzy msgid "" "The new `FedTrimmedAvg` strategy implements Trimmed Mean by [Dong Yin, " @@ -19995,7 +20928,7 @@ msgstr "" "(FedMedian) par [Yin et al., 2018] " "(https://arxiv.org/pdf/1803.01498v1.pdf)." -#: ../../source/ref-changelog.md:704 +#: ../../source/ref-changelog.md:815 #, fuzzy msgid "" "**Introduce start_driver** " @@ -20004,7 +20937,7 @@ msgstr "" "**Ajouter une nouvelle stratégie `FedProx`** " "([#1619](https://github.com/adap/flower/pull/1619))" -#: ../../source/ref-changelog.md:706 +#: ../../source/ref-changelog.md:817 msgid "" "In addition to `start_server` and using the raw Driver API, there is a " "new `start_driver` function that allows for running `start_server` " @@ -20013,7 +20946,7 @@ msgid "" "`start_driver`." msgstr "" -#: ../../source/ref-changelog.md:708 +#: ../../source/ref-changelog.md:819 #, fuzzy msgid "" "**Add parameter aggregation to** `mt-pytorch` **code example** " @@ -20022,7 +20955,7 @@ msgstr "" "**Nouvel exemple de code PyTorch avancé** " "([#1007](https://github.com/adap/flower/pull/1007))" -#: ../../source/ref-changelog.md:710 +#: ../../source/ref-changelog.md:821 msgid "" "The `mt-pytorch` example shows how to aggregate parameters when writing a" " driver script. The included `driver.py` and `server.py` have been " @@ -20030,7 +20963,7 @@ msgid "" "building server-side logic." msgstr "" -#: ../../source/ref-changelog.md:712 +#: ../../source/ref-changelog.md:823 #, fuzzy msgid "" "**Migrate experimental REST API to Starlette** " @@ -20039,14 +20972,14 @@ msgstr "" "**Nouvelle stratégie expérimentale TensorBoard** " "([#789](https://github.com/adap/flower/pull/789))" -#: ../../source/ref-changelog.md:714 +#: ../../source/ref-changelog.md:825 msgid "" "The (experimental) REST API used to be implemented in " "[FastAPI](https://fastapi.tiangolo.com/), but it has now been migrated to" " use [Starlette](https://www.starlette.io/) directly." msgstr "" -#: ../../source/ref-changelog.md:716 +#: ../../source/ref-changelog.md:827 #, fuzzy msgid "" "Please note: The REST request-response API is still experimental and will" @@ -20055,7 +20988,7 @@ msgstr "" "Remarque : l'API REST est encore expérimentale et est susceptible de " "changer de manière significative au fil du temps." -#: ../../source/ref-changelog.md:718 +#: ../../source/ref-changelog.md:829 #, fuzzy msgid "" "**Introduce experimental gRPC request-response API** " @@ -20066,14 +20999,14 @@ msgstr "" "([#1357](https://github.com/adap/flower/pull/1357), " "[#1460](https://github.com/adap/flower/pull/1460))" -#: ../../source/ref-changelog.md:720 +#: ../../source/ref-changelog.md:831 msgid "" "In addition to the existing gRPC API (based on bidirectional streaming) " "and the experimental REST API, there is now a new gRPC API that uses a " "request-response model to communicate with client nodes." msgstr "" -#: ../../source/ref-changelog.md:722 +#: ../../source/ref-changelog.md:833 #, fuzzy msgid "" "Please note: The gRPC request-response API is still experimental and will" @@ -20082,7 +21015,7 @@ msgstr "" "Remarque : l'API REST est encore expérimentale et est susceptible de " "changer de manière significative au fil du temps." -#: ../../source/ref-changelog.md:724 +#: ../../source/ref-changelog.md:835 #, fuzzy msgid "" "**Replace the experimental** `start_client(rest=True)` **with the new** " @@ -20092,7 +21025,7 @@ msgstr "" "**Initialise** `start_simulation` **avec une liste d'ID de clients** " "([#860](https://github.com/adap/flower/pull/860))" -#: ../../source/ref-changelog.md:726 +#: ../../source/ref-changelog.md:837 msgid "" "The (experimental) `start_client` argument `rest` was deprecated in " "favour of a new argument `transport`. `start_client(transport=\"rest\")` " @@ -20101,7 +21034,7 @@ msgid "" "argument `rest` will be removed in a future release." msgstr "" -#: ../../source/ref-changelog.md:728 +#: ../../source/ref-changelog.md:839 #, fuzzy msgid "" "**Add a new gRPC option** " @@ -20110,14 +21043,14 @@ msgstr "" "**Ajouter une nouvelle stratégie `FedProx`** " "([#1619](https://github.com/adap/flower/pull/1619))" -#: ../../source/ref-changelog.md:730 +#: ../../source/ref-changelog.md:841 msgid "" "We now start a gRPC server with the `grpc.keepalive_permit_without_calls`" " option set to 0 by default. This prevents the clients from sending " "keepalive pings when there is no outstanding stream." msgstr "" -#: ../../source/ref-changelog.md:732 +#: ../../source/ref-changelog.md:843 #, fuzzy msgid "" "**Improve example notebooks** " @@ -20126,12 +21059,12 @@ msgstr "" "**Supprimer les stratégies expérimentales** " "([#1280](https://github.com/adap/flower/pull/1280))" -#: ../../source/ref-changelog.md:734 +#: ../../source/ref-changelog.md:845 #, fuzzy msgid "There's a new 30min Federated Learning PyTorch tutorial!" msgstr "Bienvenue au tutoriel sur l'apprentissage fédéré de la fleur !" -#: ../../source/ref-changelog.md:736 +#: ../../source/ref-changelog.md:847 msgid "" "**Example updates** ([#1772](https://github.com/adap/flower/pull/1772), " "[#1873](https://github.com/adap/flower/pull/1873), " @@ -20146,7 +21079,7 @@ msgid "" "[#2183](https://github.com/adap/flower/pull/2183))" msgstr "" -#: ../../source/ref-changelog.md:738 +#: ../../source/ref-changelog.md:849 msgid "" "Many examples have received significant updates, including simplified " "advanced-tensorflow and advanced-pytorch examples, improved macOS " @@ -20155,7 +21088,7 @@ msgid "" "(in addition to `pyproject.toml`)." msgstr "" -#: ../../source/ref-changelog.md:740 +#: ../../source/ref-changelog.md:851 #, fuzzy msgid "" "**General improvements** " @@ -20175,11 +21108,11 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614))" -#: ../../source/ref-changelog.md:748 +#: ../../source/ref-changelog.md:859 msgid "v1.4.0 (2023-04-21)" msgstr "v1.4.0 (2023-04-21)" -#: ../../source/ref-changelog.md:754 +#: ../../source/ref-changelog.md:865 msgid "" "`Adam Narozniak`, `Alexander Viala Bellander`, `Charles Beauville`, " "`Chenyang Ma (Danny)`, `Daniel J. Beutel`, `Edoardo`, `Gautam Jajoo`, " @@ -20195,7 +21128,7 @@ msgstr "" "Lane`, `Nikolaos Episkopos`, `Ragy`, `Saurav Maheshkar`, `Semo Yang`, " "`Steve Laskaridis`, `Steven Hé (Sīchàng)`, `Taner Topal`" -#: ../../source/ref-changelog.md:758 +#: ../../source/ref-changelog.md:869 msgid "" "**Introduce support for XGBoost (**`FedXgbNnAvg` **strategy and " "example)** ([#1694](https://github.com/adap/flower/pull/1694), " @@ -20213,7 +21146,7 @@ msgstr "" "[#1763](https://github.com/adap/flower/pull/1763), " "[#1795](https://github.com/adap/flower/pull/1795))" -#: ../../source/ref-changelog.md:760 +#: ../../source/ref-changelog.md:871 msgid "" "XGBoost is a tree-based ensemble machine learning algorithm that uses " "gradient boosting to improve model accuracy. We added a new `FedXgbNnAvg`" @@ -20230,7 +21163,7 @@ msgstr "" "qui démontre l'utilisation de cette nouvelle stratégie dans un projet " "XGBoost." -#: ../../source/ref-changelog.md:762 +#: ../../source/ref-changelog.md:873 msgid "" "**Introduce iOS SDK (preview)** " "([#1621](https://github.com/adap/flower/pull/1621), " @@ -20240,7 +21173,7 @@ msgstr "" "([#1621](https://github.com/adap/flower/pull/1621), " "[#1764](https://github.com/adap/flower/pull/1764))" -#: ../../source/ref-changelog.md:764 +#: ../../source/ref-changelog.md:875 msgid "" "This is a major update for anyone wanting to implement Federated Learning" " on iOS mobile devices. We now have a swift iOS SDK present under " @@ -20259,7 +21192,7 @@ msgstr "" "iOS](https://github.com/adap/flower/tree/main/examples/ios) a également " "été mis à jour !" -#: ../../source/ref-changelog.md:766 +#: ../../source/ref-changelog.md:877 msgid "" "**Introduce new \"What is Federated Learning?\" tutorial** " "([#1657](https://github.com/adap/flower/pull/1657), " @@ -20269,7 +21202,7 @@ msgstr "" " \"** ([#1657](https://github.com/adap/flower/pull/1657), " "[#1721](https://github.com/adap/flower/pull/1721))" -#: ../../source/ref-changelog.md:768 +#: ../../source/ref-changelog.md:879 #, fuzzy msgid "" "A new [entry-level tutorial](https://flower.ai/docs/framework/tutorial-" @@ -20285,7 +21218,7 @@ msgstr "" " voyage avec Flower. Fais-le suivre à tous ceux qui s'intéressent à " "l'apprentissage fédéré !" -#: ../../source/ref-changelog.md:770 +#: ../../source/ref-changelog.md:881 msgid "" "**Introduce new Flower Baseline: FedProx MNIST** " "([#1513](https://github.com/adap/flower/pull/1513), " @@ -20299,7 +21232,7 @@ msgstr "" "[#1681](https://github.com/adap/flower/pull/1681), " "[#1679](https://github.com/adap/flower/pull/1679))" -#: ../../source/ref-changelog.md:772 +#: ../../source/ref-changelog.md:883 msgid "" "This new baseline replicates the MNIST+CNN task from the paper [Federated" " Optimization in Heterogeneous Networks (Li et al., " @@ -20312,7 +21245,7 @@ msgstr "" "qui vise à rendre la convergence plus robuste dans des contextes " "hétérogènes." -#: ../../source/ref-changelog.md:774 +#: ../../source/ref-changelog.md:885 msgid "" "**Introduce new Flower Baseline: FedAvg FEMNIST** " "([#1655](https://github.com/adap/flower/pull/1655))" @@ -20320,7 +21253,7 @@ msgstr "" "**Introduire une nouvelle ligne de base pour les fleurs : FedAvg " "FEMNIST** ([#1655](https://github.com/adap/flower/pull/1655))" -#: ../../source/ref-changelog.md:776 +#: ../../source/ref-changelog.md:887 msgid "" "This new baseline replicates an experiment evaluating the performance of " "the FedAvg algorithm on the FEMNIST dataset from the paper [LEAF: A " @@ -20332,7 +21265,7 @@ msgstr "" " l'article [LEAF : A Benchmark for Federated Settings (Caldas et al., " "2018)] (https://arxiv.org/abs/1812.01097)." -#: ../../source/ref-changelog.md:778 +#: ../../source/ref-changelog.md:889 msgid "" "**Introduce (experimental) REST API** " "([#1594](https://github.com/adap/flower/pull/1594), " @@ -20352,7 +21285,7 @@ msgstr "" "[#1770](https://github.com/adap/flower/pull/1770), " "[#1733](https://github.com/adap/flower/pull/1733))" -#: ../../source/ref-changelog.md:780 +#: ../../source/ref-changelog.md:891 msgid "" "A new REST API has been introduced as an alternative to the gRPC-based " "communication stack. In this initial version, the REST API only supports " @@ -20362,7 +21295,7 @@ msgstr "" "communication basée sur gRPC. Dans cette version initiale, l'API REST ne " "prend en charge que les clients anonymes." -#: ../../source/ref-changelog.md:782 +#: ../../source/ref-changelog.md:893 msgid "" "Please note: The REST API is still experimental and will likely change " "significantly over time." @@ -20370,7 +21303,7 @@ msgstr "" "Remarque : l'API REST est encore expérimentale et est susceptible de " "changer de manière significative au fil du temps." -#: ../../source/ref-changelog.md:784 +#: ../../source/ref-changelog.md:895 msgid "" "**Improve the (experimental) Driver API** " "([#1663](https://github.com/adap/flower/pull/1663), " @@ -20394,7 +21327,7 @@ msgstr "" "[#1662](https://github.com/adap/flower/pull/1662), " "[#1794](https://github.com/adap/flower/pull/1794))" -#: ../../source/ref-changelog.md:786 +#: ../../source/ref-changelog.md:897 msgid "" "The Driver API is still an experimental feature, but this release " "introduces some major upgrades. One of the main improvements is the " @@ -20412,7 +21345,7 @@ msgstr "" "considérablement l'efficacité de la mémoire d'un serveur Flower " "fonctionnant depuis longtemps." -#: ../../source/ref-changelog.md:788 +#: ../../source/ref-changelog.md:899 msgid "" "**Fix spilling issues related to Ray during simulations** " "([#1698](https://github.com/adap/flower/pull/1698))" @@ -20420,7 +21353,7 @@ msgstr "" "**Répare les problèmes de déversement liés à Ray pendant les " "simulations** ([#1698](https://github.com/adap/flower/pull/1698))" -#: ../../source/ref-changelog.md:790 +#: ../../source/ref-changelog.md:901 #, fuzzy msgid "" "While running long simulations, `ray` was sometimes spilling huge amounts" @@ -20431,7 +21364,7 @@ msgstr "" "d'énormes quantités de données qui rendaient l'entraînement incapable de " "continuer. ce problème est maintenant corrigé ! 🎉" -#: ../../source/ref-changelog.md:792 +#: ../../source/ref-changelog.md:903 msgid "" "**Add new example using** `TabNet` **and Flower** " "([#1725](https://github.com/adap/flower/pull/1725))" @@ -20439,7 +21372,7 @@ msgstr "" "**Ajouter un nouvel exemple utilisant** `TabNet` **et Flower** " "([#1725](https://github.com/adap/flower/pull/1725))" -#: ../../source/ref-changelog.md:794 +#: ../../source/ref-changelog.md:905 msgid "" "TabNet is a powerful and flexible framework for training machine learning" " models on tabular data. We now have a federated example using Flower: " @@ -20452,7 +21385,7 @@ msgstr "" "tabnet](https://github.com/adap/flower/tree/main/examples/quickstart-" "tabnet)." -#: ../../source/ref-changelog.md:796 +#: ../../source/ref-changelog.md:907 msgid "" "**Add new how-to guide for monitoring simulations** " "([#1649](https://github.com/adap/flower/pull/1649))" @@ -20460,7 +21393,7 @@ msgstr "" "**Ajouter un nouveau guide pratique pour le suivi des simulations** " "([#1649](https://github.com/adap/flower/pull/1649))" -#: ../../source/ref-changelog.md:798 +#: ../../source/ref-changelog.md:909 msgid "" "We now have a documentation guide to help users monitor their performance" " during simulations." @@ -20468,7 +21401,7 @@ msgstr "" "Nous avons maintenant un guide de documentation pour aider les " "utilisateurs à surveiller leurs performances pendant les simulations." -#: ../../source/ref-changelog.md:800 +#: ../../source/ref-changelog.md:911 msgid "" "**Add training metrics to** `History` **object during simulations** " "([#1696](https://github.com/adap/flower/pull/1696))" @@ -20476,7 +21409,7 @@ msgstr "" "**Ajouter des mesures de formation à** `History` **objet pendant les " "simulations** ([#1696](https://github.com/adap/flower/pull/1696))" -#: ../../source/ref-changelog.md:802 +#: ../../source/ref-changelog.md:913 msgid "" "The `fit_metrics_aggregation_fn` can be used to aggregate training " "metrics, but previous releases did not save the results in the `History` " @@ -20487,7 +21420,7 @@ msgstr "" "n'enregistraient pas les résultats dans l'objet `History`. c'est " "désormais le cas !" -#: ../../source/ref-changelog.md:804 +#: ../../source/ref-changelog.md:915 msgid "" "**General improvements** " "([#1659](https://github.com/adap/flower/pull/1659), " @@ -20562,11 +21495,11 @@ msgstr "" "[#1692](https://github.com/adap/flower/pull/1692), " "[#1705](https://github.com/ada" -#: ../../source/ref-changelog.md:812 +#: ../../source/ref-changelog.md:923 msgid "v1.3.0 (2023-02-06)" msgstr "v1.3.0 (2023-02-06)" -#: ../../source/ref-changelog.md:818 +#: ../../source/ref-changelog.md:929 msgid "" "`Adam Narozniak`, `Alexander Viala Bellander`, `Charles Beauville`, " "`Daniel J. Beutel`, `JDRanpariya`, `Lennart Behme`, `Taner Topal`" @@ -20574,7 +21507,7 @@ msgstr "" "`Adam Narozniak`, `Alexander Viala Bellander`, `Charles Beauville`, " "`Daniel J. Beutel`, `JDRanpariya`, `Lennart Behme`, `Taner Topal`" -#: ../../source/ref-changelog.md:822 +#: ../../source/ref-changelog.md:933 msgid "" "**Add support for** `workload_id` **and** `group_id` **in Driver API** " "([#1595](https://github.com/adap/flower/pull/1595))" @@ -20582,7 +21515,7 @@ msgstr "" "**Ajouter la prise en charge de** `workload_id` **et** `group_id` **dans " "l'API du pilote** ([#1595](https://github.com/adap/flower/pull/1595))" -#: ../../source/ref-changelog.md:824 +#: ../../source/ref-changelog.md:935 msgid "" "The (experimental) Driver API now supports a `workload_id` that can be " "used to identify which workload a task belongs to. It also supports a new" @@ -20597,7 +21530,7 @@ msgstr "" "en cours. Le `workload_id` et le `group_id` permettent tous deux aux " "nœuds clients de décider s'ils veulent traiter une tâche ou non." -#: ../../source/ref-changelog.md:826 +#: ../../source/ref-changelog.md:937 msgid "" "**Make Driver API and Fleet API address configurable** " "([#1637](https://github.com/adap/flower/pull/1637))" @@ -20606,7 +21539,7 @@ msgstr "" "flotte soit configurable** " "([#1637](https://github.com/adap/flower/pull/1637))" -#: ../../source/ref-changelog.md:828 +#: ../../source/ref-changelog.md:939 msgid "" "The (experimental) long-running Flower server (Driver API and Fleet API) " "can now configure the server address of both Driver API (via `--driver-" @@ -20617,7 +21550,7 @@ msgstr "" "`--driver-api-address`) et de Fleet API (via `--fleet-api-address`) lors " "de son démarrage :" -#: ../../source/ref-changelog.md:830 +#: ../../source/ref-changelog.md:941 #, fuzzy msgid "" "`flower-server --driver-api-address \"0.0.0.0:8081\" --fleet-api-address " @@ -20626,11 +21559,11 @@ msgstr "" "``flower-superlink --driver-api-address \"0.0.0.0:8081\" --fleet-api-" "address \"0.0.0.0:8086\" ``" -#: ../../source/ref-changelog.md:832 +#: ../../source/ref-changelog.md:943 msgid "Both IPv4 and IPv6 addresses are supported." msgstr "Les adresses IPv4 et IPv6 sont toutes deux prises en charge." -#: ../../source/ref-changelog.md:834 +#: ../../source/ref-changelog.md:945 msgid "" "**Add new example of Federated Learning using fastai and Flower** " "([#1598](https://github.com/adap/flower/pull/1598))" @@ -20638,7 +21571,7 @@ msgstr "" "**Ajouter un nouvel exemple d'apprentissage fédéré utilisant fastai et " "Flower** ([#1598](https://github.com/adap/flower/pull/1598))" -#: ../../source/ref-changelog.md:836 +#: ../../source/ref-changelog.md:947 msgid "" "A new code example (`quickstart-fastai`) demonstrates federated learning " "with [fastai](https://www.fast.ai/) and Flower. You can find it here: " @@ -20651,7 +21584,7 @@ msgstr "" "fastai](https://github.com/adap/flower/tree/main/examples/quickstart-" "fastai)." -#: ../../source/ref-changelog.md:838 +#: ../../source/ref-changelog.md:949 msgid "" "**Make Android example compatible with** `flwr >= 1.0.0` **and the latest" " versions of Android** " @@ -20661,7 +21594,7 @@ msgstr "" "dernières versions d'Android** " "([#1603](https://github.com/adap/flower/pull/1603))" -#: ../../source/ref-changelog.md:840 +#: ../../source/ref-changelog.md:951 #, fuzzy msgid "" "The Android code example has received a substantial update: the project " @@ -20675,7 +21608,7 @@ msgstr "" "est mis à jour pour être compatible avec les outils Android les plus " "récents." -#: ../../source/ref-changelog.md:842 +#: ../../source/ref-changelog.md:953 msgid "" "**Add new `FedProx` strategy** " "([#1619](https://github.com/adap/flower/pull/1619))" @@ -20683,7 +21616,7 @@ msgstr "" "**Ajouter une nouvelle stratégie `FedProx`** " "([#1619](https://github.com/adap/flower/pull/1619))" -#: ../../source/ref-changelog.md:844 +#: ../../source/ref-changelog.md:955 msgid "" "This " "[strategy](https://github.com/adap/flower/blob/main/src/py/flwr/server/strategy/fedprox.py)" @@ -20703,7 +21636,7 @@ msgstr "" "un paramètre appelé `proximal_mu` pour régulariser les modèles locaux par" " rapport aux modèles globaux." -#: ../../source/ref-changelog.md:846 +#: ../../source/ref-changelog.md:957 msgid "" "**Add new metrics to telemetry events** " "([#1640](https://github.com/adap/flower/pull/1640))" @@ -20711,7 +21644,7 @@ msgstr "" "**Ajouter de nouvelles métriques aux événements de télémétrie** " "([#1640](https://github.com/adap/flower/pull/1640))" -#: ../../source/ref-changelog.md:848 +#: ../../source/ref-changelog.md:959 msgid "" "An updated event structure allows, for example, the clustering of events " "within the same workload." @@ -20719,7 +21652,7 @@ msgstr "" "Une structure d'événements mise à jour permet, par exemple, de regrouper " "des événements au sein d'une même charge de travail." -#: ../../source/ref-changelog.md:850 +#: ../../source/ref-changelog.md:961 msgid "" "**Add new custom strategy tutorial section** " "[#1623](https://github.com/adap/flower/pull/1623)" @@ -20727,7 +21660,7 @@ msgstr "" "**Ajouter une nouvelle section de tutoriel sur les stratégies " "personnalisées** [#1623](https://github.com/adap/flower/pull/1623)" -#: ../../source/ref-changelog.md:852 +#: ../../source/ref-changelog.md:963 #, fuzzy msgid "" "The Flower tutorial now has a new section that covers implementing a " @@ -20741,7 +21674,7 @@ msgstr "" "Colab](https://colab.research.google.com/github/adap/flower/blob/main/doc/source/tutorial/Flower-3-Building-a" "-Strategy-PyTorch.ipynb)" -#: ../../source/ref-changelog.md:854 +#: ../../source/ref-changelog.md:965 msgid "" "**Add new custom serialization tutorial section** " "([#1622](https://github.com/adap/flower/pull/1622))" @@ -20749,7 +21682,7 @@ msgstr "" "**Ajouter une nouvelle section de tutoriel sur la sérialisation " "personnalisée** ([#1622](https://github.com/adap/flower/pull/1622))" -#: ../../source/ref-changelog.md:856 +#: ../../source/ref-changelog.md:967 #, fuzzy msgid "" "The Flower tutorial now has a new section that covers custom " @@ -20762,7 +21695,7 @@ msgstr "" "Colab](https://colab.research.google.com/github/adap/flower/blob/main/doc/source/tutorial/Flower-4" "-Client-and-NumPyClient-PyTorch.ipynb)" -#: ../../source/ref-changelog.md:858 +#: ../../source/ref-changelog.md:969 msgid "" "**General improvements** " "([#1638](https://github.com/adap/flower/pull/1638), " @@ -20821,7 +21754,7 @@ msgstr "" "[#1599](https://github.com/adap/flower/pull/1599), " "[#1600](https://github.com/ada" -#: ../../source/ref-changelog.md:862 +#: ../../source/ref-changelog.md:973 msgid "" "**Updated documentation** " "([#1629](https://github.com/adap/flower/pull/1629), " @@ -20841,7 +21774,7 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614))" -#: ../../source/ref-changelog.md:864 ../../source/ref-changelog.md:931 +#: ../../source/ref-changelog.md:975 ../../source/ref-changelog.md:1042 msgid "" "As usual, the documentation has improved quite a bit. It is another step " "in our effort to make the Flower documentation the best documentation of " @@ -20852,11 +21785,11 @@ msgstr "" " meilleure documentation de tout projet. Reste à l'écoute et comme " "toujours, n'hésite pas à nous faire part de tes commentaires !" -#: ../../source/ref-changelog.md:870 +#: ../../source/ref-changelog.md:981 msgid "v1.2.0 (2023-01-13)" msgstr "v1.2.0 (2023-01-13)" -#: ../../source/ref-changelog.md:876 +#: ../../source/ref-changelog.md:987 msgid "" "`Adam Narozniak`, `Charles Beauville`, `Daniel J. Beutel`, `Edoardo`, `L." " Jiang`, `Ragy`, `Taner Topal`, `dannymcy`" @@ -20864,7 +21797,7 @@ msgstr "" "adam Narozniak`, `Charles Beauville`, `Daniel J. Beutel`, `Edoardo`, `L. " "Jiang`, `Ragy`, `Taner Topal`, `dannymcy`" -#: ../../source/ref-changelog.md:880 +#: ../../source/ref-changelog.md:991 msgid "" "**Introduce new Flower Baseline: FedAvg MNIST** " "([#1497](https://github.com/adap/flower/pull/1497), " @@ -20874,7 +21807,7 @@ msgstr "" "([#1497](https://github.com/adap/flower/pull/1497), " "[#1552](https://github.com/adap/flower/pull/1552))" -#: ../../source/ref-changelog.md:882 +#: ../../source/ref-changelog.md:993 msgid "" "Over the coming weeks, we will be releasing a number of new reference " "implementations useful especially to FL newcomers. They will typically " @@ -20894,7 +21827,7 @@ msgstr "" "suite.](https://flower.ai/blog/2023-01-12-fl-starter-pack-fedavg-mnist-" "cnn/)" -#: ../../source/ref-changelog.md:884 +#: ../../source/ref-changelog.md:995 msgid "" "**Improve GPU support in simulations** " "([#1555](https://github.com/adap/flower/pull/1555))" @@ -20902,7 +21835,7 @@ msgstr "" "**Améliorer la prise en charge des GPU dans les simulations** " "([#1555](https://github.com/adap/flower/pull/1555))" -#: ../../source/ref-changelog.md:886 +#: ../../source/ref-changelog.md:997 msgid "" "The Ray-based Virtual Client Engine (`start_simulation`) has been updated" " to improve GPU support. The update includes some of the hard-earned " @@ -20916,7 +21849,7 @@ msgstr "" "paramètres par défaut rendent l'exécution des simulations basées sur les " "GPU beaucoup plus robuste." -#: ../../source/ref-changelog.md:888 +#: ../../source/ref-changelog.md:999 msgid "" "**Improve GPU support in Jupyter Notebook tutorials** " "([#1527](https://github.com/adap/flower/pull/1527), " @@ -20926,7 +21859,7 @@ msgstr "" "Notebook** ([#1527](https://github.com/adap/flower/pull/1527), " "[#1558](https://github.com/adap/flower/pull/1558))" -#: ../../source/ref-changelog.md:890 +#: ../../source/ref-changelog.md:1001 msgid "" "Some users reported that Jupyter Notebooks have not always been easy to " "use on GPU instances. We listened and made improvements to all of our " @@ -20937,7 +21870,7 @@ msgstr "" "écoutés et avons apporté des améliorations à tous nos carnets Jupyter ! " "Découvre les carnets mis à jour ici :" -#: ../../source/ref-changelog.md:892 +#: ../../source/ref-changelog.md:1003 #, fuzzy msgid "" "[An Introduction to Federated Learning](https://flower.ai/docs/framework" @@ -20946,7 +21879,7 @@ msgstr "" "[Une introduction à l'apprentissage fédéré] " "(https://flower.ai/docs/tutorial/Flower-1-Intro-to-FL-PyTorch.html)" -#: ../../source/ref-changelog.md:893 +#: ../../source/ref-changelog.md:1004 #, fuzzy msgid "" "[Strategies in Federated Learning](https://flower.ai/docs/framework" @@ -20955,7 +21888,7 @@ msgstr "" "[Stratégies d'apprentissage fédéré] " "(https://flower.ai/docs/tutorial/Flower-2-Strategies-in-FL-PyTorch.html)" -#: ../../source/ref-changelog.md:894 +#: ../../source/ref-changelog.md:1005 #, fuzzy msgid "" "[Building a Strategy](https://flower.ai/docs/framework/tutorial-build-a" @@ -20965,7 +21898,7 @@ msgstr "" "(https://flower.ai/docs/tutorial/Flower-3-Building-a-Strategy-" "PyTorch.html)" -#: ../../source/ref-changelog.md:895 +#: ../../source/ref-changelog.md:1006 #, fuzzy msgid "" "[Client and NumPyClient](https://flower.ai/docs/framework/tutorial-" @@ -20974,7 +21907,7 @@ msgstr "" "[Client et NumPyClient] (https://flower.ai/docs/tutorial/Flower-4-Client-" "and-NumPyClient-PyTorch.html)" -#: ../../source/ref-changelog.md:897 +#: ../../source/ref-changelog.md:1008 msgid "" "**Introduce optional telemetry** " "([#1533](https://github.com/adap/flower/pull/1533), " @@ -20986,7 +21919,7 @@ msgstr "" "[#1544](https://github.com/adap/flower/pull/1544), " "[#1584](https://github.com/adap/flower/pull/1584))" -#: ../../source/ref-changelog.md:899 +#: ../../source/ref-changelog.md:1010 msgid "" "After a [request for " "feedback](https://github.com/adap/flower/issues/1534) from the community," @@ -21003,7 +21936,7 @@ msgstr "" "comment Flower est utilisé et quels sont les défis auxquels les " "utilisateurs peuvent être confrontés." -#: ../../source/ref-changelog.md:901 +#: ../../source/ref-changelog.md:1012 #, fuzzy msgid "" "**Flower is a friendly framework for collaborative AI and data science.**" @@ -21017,7 +21950,7 @@ msgstr "" "souhaitent pas partager des métriques d'utilisation anonymes.[Lire la " "suite.](https://flower.ai/docs/telemetry.html)." -#: ../../source/ref-changelog.md:903 +#: ../../source/ref-changelog.md:1014 msgid "" "**Introduce (experimental) Driver API** " "([#1520](https://github.com/adap/flower/pull/1520), " @@ -21036,7 +21969,7 @@ msgstr "" "[#1551](https://github.com/adap/flower/pull/1551), " "[#1567](https://github.com/adap/flower/pull/1567))" -#: ../../source/ref-changelog.md:905 +#: ../../source/ref-changelog.md:1016 msgid "" "Flower now has a new (experimental) Driver API which will enable fully " "programmable, async, and multi-tenant Federated Learning and Federated " @@ -21051,7 +21984,7 @@ msgstr "" "laquelle de nombreuses fonctionnalités à venir seront construites - et tu" " peux commencer à construire ces choses dès maintenant, aussi." -#: ../../source/ref-changelog.md:907 +#: ../../source/ref-changelog.md:1018 msgid "" "The Driver API also enables a new execution mode in which the server runs" " indefinitely. Multiple individual workloads can run concurrently and " @@ -21064,7 +21997,7 @@ msgstr "" "leur exécution indépendamment du serveur. Ceci est particulièrement utile" " pour les utilisateurs qui souhaitent déployer Flower en production." -#: ../../source/ref-changelog.md:909 +#: ../../source/ref-changelog.md:1020 msgid "" "To learn more, check out the `mt-pytorch` code example. We look forward " "to you feedback!" @@ -21072,7 +22005,7 @@ msgstr "" "Pour en savoir plus, consulte l'exemple de code `mt-pytorch`. Nous " "attendons tes commentaires avec impatience !" -#: ../../source/ref-changelog.md:911 +#: ../../source/ref-changelog.md:1022 msgid "" "Please note: *The Driver API is still experimental and will likely change" " significantly over time.*" @@ -21080,7 +22013,7 @@ msgstr "" "Remarque : *L'API du pilote est encore expérimentale et est susceptible " "de changer de manière significative au fil du temps.*" -#: ../../source/ref-changelog.md:913 +#: ../../source/ref-changelog.md:1024 msgid "" "**Add new Federated Analytics with Pandas example** " "([#1469](https://github.com/adap/flower/pull/1469), " @@ -21090,7 +22023,7 @@ msgstr "" "([#1469](https://github.com/adap/flower/pull/1469), " "[#1535](https://github.com/adap/flower/pull/1535))" -#: ../../source/ref-changelog.md:915 +#: ../../source/ref-changelog.md:1026 msgid "" "A new code example (`quickstart-pandas`) demonstrates federated analytics" " with Pandas and Flower. You can find it here: [quickstart-" @@ -21102,7 +22035,7 @@ msgstr "" "pandas](https://github.com/adap/flower/tree/main/examples/quickstart-" "pandas)." -#: ../../source/ref-changelog.md:917 +#: ../../source/ref-changelog.md:1028 msgid "" "**Add new strategies: Krum and MultiKrum** " "([#1481](https://github.com/adap/flower/pull/1481))" @@ -21110,7 +22043,7 @@ msgstr "" "**Ajouter de nouvelles stratégies : Krum et MultiKrum** " "([#1481](https://github.com/adap/flower/pull/1481))" -#: ../../source/ref-changelog.md:919 +#: ../../source/ref-changelog.md:1030 msgid "" "Edoardo, a computer science student at the Sapienza University of Rome, " "contributed a new `Krum` strategy that enables users to easily use Krum " @@ -21120,7 +22053,7 @@ msgstr "" "contribué à une nouvelle stratégie `Krum` qui permet aux utilisateurs " "d'utiliser facilement Krum et MultiKrum dans leurs charges de travail." -#: ../../source/ref-changelog.md:921 +#: ../../source/ref-changelog.md:1032 msgid "" "**Update C++ example to be compatible with Flower v1.2.0** " "([#1495](https://github.com/adap/flower/pull/1495))" @@ -21128,7 +22061,7 @@ msgstr "" "**Mettre à jour l'exemple C++ pour qu'il soit compatible avec Flower " "v1.2.0** ([#1495](https://github.com/adap/flower/pull/1495))" -#: ../../source/ref-changelog.md:923 +#: ../../source/ref-changelog.md:1034 msgid "" "The C++ code example has received a substantial update to make it " "compatible with the latest version of Flower." @@ -21136,7 +22069,7 @@ msgstr "" "L'exemple de code C++ a reçu une mise à jour substantielle pour le rendre" " compatible avec la dernière version de Flower." -#: ../../source/ref-changelog.md:925 +#: ../../source/ref-changelog.md:1036 msgid "" "**General improvements** " "([#1491](https://github.com/adap/flower/pull/1491), " @@ -21168,7 +22101,7 @@ msgstr "" "[#1564](https://github.com/adap/flower/pull/1564), " "[#1566](https://github.com/adap/flower/pull/1566))" -#: ../../source/ref-changelog.md:929 +#: ../../source/ref-changelog.md:1040 msgid "" "**Updated documentation** " "([#1494](https://github.com/adap/flower/pull/1494), " @@ -21192,7 +22125,7 @@ msgstr "" "[#1519](https://github.com/adap/flower/pull/1519), " "[#1515](https://github.com/adap/flower/pull/1515))" -#: ../../source/ref-changelog.md:933 +#: ../../source/ref-changelog.md:1044 msgid "" "One highlight is the new [first time contributor " "guide](https://flower.ai/docs/first-time-contributors.html): if you've " @@ -21202,11 +22135,11 @@ msgstr "" "(https://flower.ai/docs/first-time-contributors.html) : si tu n'as jamais" " contribué sur GitHub auparavant, c'est l'endroit idéal pour commencer !" -#: ../../source/ref-changelog.md:939 +#: ../../source/ref-changelog.md:1050 msgid "v1.1.0 (2022-10-31)" msgstr "v1.1.0 (2022-10-31)" -#: ../../source/ref-changelog.md:943 +#: ../../source/ref-changelog.md:1054 msgid "" "We would like to give our **special thanks** to all the contributors who " "made the new version of Flower possible (in `git shortlog` order):" @@ -21215,7 +22148,7 @@ msgstr "" " qui ont rendu possible la nouvelle version de Flower (dans l'ordre `git " "shortlog`) :" -#: ../../source/ref-changelog.md:945 +#: ../../source/ref-changelog.md:1056 msgid "" "`Akis Linardos`, `Christopher S`, `Daniel J. Beutel`, `George`, `Jan " "Schlicht`, `Mohammad Fares`, `Pedro Porto Buarque de Gusmão`, `Philipp " @@ -21227,7 +22160,7 @@ msgstr "" "Wiesner`, `Rob Luke`, `Taner Topal`, `VasundharaAgarwal`, " "`danielnugraha`, `edogab33`" -#: ../../source/ref-changelog.md:949 +#: ../../source/ref-changelog.md:1060 msgid "" "**Introduce Differential Privacy wrappers (preview)** " "([#1357](https://github.com/adap/flower/pull/1357), " @@ -21237,7 +22170,7 @@ msgstr "" "([#1357](https://github.com/adap/flower/pull/1357), " "[#1460](https://github.com/adap/flower/pull/1460))" -#: ../../source/ref-changelog.md:951 +#: ../../source/ref-changelog.md:1062 msgid "" "The first (experimental) preview of pluggable Differential Privacy " "wrappers enables easy configuration and usage of differential privacy " @@ -21253,7 +22186,7 @@ msgstr "" "voir les documents de Flower, un nouvel explicatif va plus loin dans les " "détails." -#: ../../source/ref-changelog.md:953 +#: ../../source/ref-changelog.md:1064 msgid "" "**New iOS CoreML code example** " "([#1289](https://github.com/adap/flower/pull/1289))" @@ -21261,7 +22194,7 @@ msgstr "" "**Nouvel exemple de code CoreML pour iOS** " "([#1289](https://github.com/adap/flower/pull/1289))" -#: ../../source/ref-changelog.md:955 +#: ../../source/ref-changelog.md:1066 msgid "" "Flower goes iOS! A massive new code example shows how Flower clients can " "be built for iOS. The code example contains both Flower iOS SDK " @@ -21274,7 +22207,7 @@ msgstr "" "utilisés pour de nombreuses tâches, et un exemple de tâche fonctionnant " "sur CoreML." -#: ../../source/ref-changelog.md:957 +#: ../../source/ref-changelog.md:1068 msgid "" "**New FedMedian strategy** " "([#1461](https://github.com/adap/flower/pull/1461))" @@ -21282,7 +22215,7 @@ msgstr "" "**Nouvelle stratégie de FedMedian** " "([#1461](https://github.com/adap/flower/pull/1461))" -#: ../../source/ref-changelog.md:959 +#: ../../source/ref-changelog.md:1070 msgid "" "The new `FedMedian` strategy implements Federated Median (FedMedian) by " "[Yin et al., 2018](https://arxiv.org/pdf/1803.01498v1.pdf)." @@ -21291,7 +22224,7 @@ msgstr "" "(FedMedian) par [Yin et al., 2018] " "(https://arxiv.org/pdf/1803.01498v1.pdf)." -#: ../../source/ref-changelog.md:961 +#: ../../source/ref-changelog.md:1072 msgid "" "**Log** `Client` **exceptions in Virtual Client Engine** " "([#1493](https://github.com/adap/flower/pull/1493))" @@ -21299,7 +22232,7 @@ msgstr "" "**Log** `Client` **exceptions dans le moteur de client virtuel** " "([#1493](https://github.com/adap/flower/pull/1493))" -#: ../../source/ref-changelog.md:963 +#: ../../source/ref-changelog.md:1074 msgid "" "All `Client` exceptions happening in the VCE are now logged by default " "and not just exposed to the configured `Strategy` (via the `failures` " @@ -21309,7 +22242,7 @@ msgstr "" "maintenant enregistrées par défaut et ne sont pas seulement exposées à la" " `Stratégie` configurée (via l'argument `failures`)." -#: ../../source/ref-changelog.md:965 +#: ../../source/ref-changelog.md:1076 msgid "" "**Improve Virtual Client Engine internals** " "([#1401](https://github.com/adap/flower/pull/1401), " @@ -21319,7 +22252,7 @@ msgstr "" "([#1401](https://github.com/adap/flower/pull/1401), " "[#1453](https://github.com/adap/flower/pull/1453))" -#: ../../source/ref-changelog.md:967 +#: ../../source/ref-changelog.md:1078 msgid "" "Some internals of the Virtual Client Engine have been revamped. The VCE " "now uses Ray 2.0 under the hood, the value type of the `client_resources`" @@ -21330,7 +22263,7 @@ msgstr "" "dictionnaire `client_resources` a été remplacé par `float` pour permettre" " l'allocation de fractions de ressources." -#: ../../source/ref-changelog.md:969 +#: ../../source/ref-changelog.md:1080 msgid "" "**Support optional** `Client`**/**`NumPyClient` **methods in Virtual " "Client Engine**" @@ -21338,7 +22271,7 @@ msgstr "" "**Support optional** `Client`**/**`NumPyClient` **methods in Virtual " "Client Engine**" -#: ../../source/ref-changelog.md:971 +#: ../../source/ref-changelog.md:1082 msgid "" "The Virtual Client Engine now has full support for optional `Client` (and" " `NumPyClient`) methods." @@ -21346,7 +22279,7 @@ msgstr "" "Le moteur de client virtuel prend désormais en charge les méthodes " "optionnelles `Client` (et `NumPyClient`)." -#: ../../source/ref-changelog.md:973 +#: ../../source/ref-changelog.md:1084 msgid "" "**Provide type information to packages using** `flwr` " "([#1377](https://github.com/adap/flower/pull/1377))" @@ -21354,7 +22287,7 @@ msgstr "" "**Fournir des informations de type aux paquets en utilisant** `flwr` " "([#1377](https://github.com/adap/flower/pull/1377))" -#: ../../source/ref-changelog.md:975 +#: ../../source/ref-changelog.md:1086 msgid "" "The package `flwr` is now bundled with a `py.typed` file indicating that " "the package is typed. This enables typing support for projects or " @@ -21367,7 +22300,7 @@ msgstr "" "permettant d'améliorer leur code à l'aide de vérificateurs de types " "statiques comme `mypy`." -#: ../../source/ref-changelog.md:977 +#: ../../source/ref-changelog.md:1088 msgid "" "**Updated code example** " "([#1344](https://github.com/adap/flower/pull/1344), " @@ -21377,7 +22310,7 @@ msgstr "" "([#1344](https://github.com/adap/flower/pull/1344), " "[#1347](https://github.com/adap/flower/pull/1347))" -#: ../../source/ref-changelog.md:979 +#: ../../source/ref-changelog.md:1090 msgid "" "The code examples covering scikit-learn and PyTorch Lightning have been " "updated to work with the latest version of Flower." @@ -21385,7 +22318,7 @@ msgstr "" "Les exemples de code couvrant scikit-learn et PyTorch Lightning ont été " "mis à jour pour fonctionner avec la dernière version de Flower." -#: ../../source/ref-changelog.md:981 +#: ../../source/ref-changelog.md:1092 msgid "" "**Updated documentation** " "([#1355](https://github.com/adap/flower/pull/1355), " @@ -21425,7 +22358,7 @@ msgstr "" "[#1465](https://github.com/adap/flower/pull/1465), " "[#1467](https://github.com/adap/flower/pull/1467))" -#: ../../source/ref-changelog.md:983 +#: ../../source/ref-changelog.md:1094 msgid "" "There have been so many documentation updates that it doesn't even make " "sense to list them individually." @@ -21433,7 +22366,7 @@ msgstr "" "Il y a eu tellement de mises à jour de la documentation que cela n'a même" " pas de sens de les énumérer individuellement." -#: ../../source/ref-changelog.md:985 +#: ../../source/ref-changelog.md:1096 msgid "" "**Restructured documentation** " "([#1387](https://github.com/adap/flower/pull/1387))" @@ -21441,7 +22374,7 @@ msgstr "" "**Documentation restructurée** " "([#1387](https://github.com/adap/flower/pull/1387))" -#: ../../source/ref-changelog.md:987 +#: ../../source/ref-changelog.md:1098 msgid "" "The documentation has been restructured to make it easier to navigate. " "This is just the first step in a larger effort to make the Flower " @@ -21451,7 +22384,7 @@ msgstr "" "n'est que la première étape d'un effort plus important visant à faire de " "la documentation de Flower la meilleure documentation de tous les projets" -#: ../../source/ref-changelog.md:989 +#: ../../source/ref-changelog.md:1100 msgid "" "**Open in Colab button** " "([#1389](https://github.com/adap/flower/pull/1389))" @@ -21459,7 +22392,7 @@ msgstr "" "**Ouvrir dans le bouton Colab** " "([#1389](https://github.com/adap/flower/pull/1389))" -#: ../../source/ref-changelog.md:991 +#: ../../source/ref-changelog.md:1102 msgid "" "The four parts of the Flower Federated Learning Tutorial now come with a " "new `Open in Colab` button. No need to install anything on your local " @@ -21472,7 +22405,7 @@ msgstr "" "maintenant utiliser et apprendre à connaître Flower dans ton navigateur, " "il te suffit d'un simple clic." -#: ../../source/ref-changelog.md:993 +#: ../../source/ref-changelog.md:1104 msgid "" "**Improved tutorial** ([#1468](https://github.com/adap/flower/pull/1468)," " [#1470](https://github.com/adap/flower/pull/1470), " @@ -21488,7 +22421,7 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475))" -#: ../../source/ref-changelog.md:995 +#: ../../source/ref-changelog.md:1106 msgid "" "The Flower Federated Learning Tutorial has two brand-new parts covering " "custom strategies (still WIP) and the distinction between `Client` and " @@ -21501,27 +22434,27 @@ msgstr "" "existantes ont également été améliorées (beaucoup de petits changements " "et de corrections)." -#: ../../source/ref-changelog.md:1001 +#: ../../source/ref-changelog.md:1112 msgid "v1.0.0 (2022-07-28)" msgstr "v1.0.0 (2022-07-28)" -#: ../../source/ref-changelog.md:1003 +#: ../../source/ref-changelog.md:1114 msgid "Highlights" msgstr "Points forts" -#: ../../source/ref-changelog.md:1005 +#: ../../source/ref-changelog.md:1116 msgid "Stable **Virtual Client Engine** (accessible via `start_simulation`)" msgstr "Moteur de client virtuel stable** (accessible via `start_simulation`)" -#: ../../source/ref-changelog.md:1006 +#: ../../source/ref-changelog.md:1117 msgid "All `Client`/`NumPyClient` methods are now optional" msgstr "Toutes les méthodes `Client`/`NumPyClient` sont maintenant optionnelles" -#: ../../source/ref-changelog.md:1007 +#: ../../source/ref-changelog.md:1118 msgid "Configurable `get_parameters`" msgstr "`get_parameters` configurable" -#: ../../source/ref-changelog.md:1008 +#: ../../source/ref-changelog.md:1119 msgid "" "Tons of small API cleanups resulting in a more coherent developer " "experience" @@ -21529,7 +22462,7 @@ msgstr "" "Des tonnes de petits nettoyages d'API résultant en une expérience plus " "cohérente pour les développeurs" -#: ../../source/ref-changelog.md:1012 +#: ../../source/ref-changelog.md:1123 msgid "" "We would like to give our **special thanks** to all the contributors who " "made Flower 1.0 possible (in reverse [GitHub " @@ -21539,7 +22472,7 @@ msgstr "" "ont rendu Flower 1.0 possible (dans l'ordre inverse de [GitHub " "Contributors](https://github.com/adap/flower/graphs/contributors)) :" -#: ../../source/ref-changelog.md:1014 +#: ../../source/ref-changelog.md:1125 msgid "" "[@rtaiello](https://github.com/rtaiello), " "[@g-pichler](https://github.com/g-pichler), [@rob-" @@ -21599,7 +22532,7 @@ msgstr "" "/Jueun-Park), [@architjen](https://github.com/architjen), " "[@PratikGarai](https://github.com/PratikGarai), [@mrinaald](" -#: ../../source/ref-changelog.md:1018 +#: ../../source/ref-changelog.md:1129 msgid "" "**All arguments must be passed as keyword arguments** " "([#1338](https://github.com/adap/flower/pull/1338))" @@ -21607,7 +22540,7 @@ msgstr "" "**Tous les arguments doivent être passés comme des arguments de mot-clé**" " ([#1338](https://github.com/adap/flower/pull/1338))" -#: ../../source/ref-changelog.md:1020 +#: ../../source/ref-changelog.md:1131 #, fuzzy msgid "" "Pass all arguments as keyword arguments, positional arguments are not " @@ -21623,7 +22556,7 @@ msgstr "" "``start_client(server_address=\"127.0.0.1:8080\", " "client=FlowerClient())`)." -#: ../../source/ref-changelog.md:1022 +#: ../../source/ref-changelog.md:1133 msgid "" "**Introduce configuration object** `ServerConfig` **in** `start_server` " "**and** `start_simulation` " @@ -21633,7 +22566,7 @@ msgstr "" "`start_server` **et** `start_simulation` " "([#1317](https://github.com/adap/flower/pull/1317))" -#: ../../source/ref-changelog.md:1024 +#: ../../source/ref-changelog.md:1135 msgid "" "Instead of a config dictionary `{\"num_rounds\": 3, \"round_timeout\": " "600.0}`, `start_server` and `start_simulation` now expect a configuration" @@ -21649,7 +22582,7 @@ msgstr "" "sécurisé plus facile et les valeurs des paramètres par défaut plus " "transparentes." -#: ../../source/ref-changelog.md:1026 +#: ../../source/ref-changelog.md:1137 msgid "" "**Rename built-in strategy parameters for clarity** " "([#1334](https://github.com/adap/flower/pull/1334))" @@ -21657,7 +22590,7 @@ msgstr "" "**Renommer les paramètres de la stratégie intégrée pour plus de clarté** " "([#1334](https://github.com/adap/flower/pull/1334))" -#: ../../source/ref-changelog.md:1028 +#: ../../source/ref-changelog.md:1139 msgid "" "The following built-in strategy parameters were renamed to improve " "readability and consistency with other API's:" @@ -21665,19 +22598,19 @@ msgstr "" "Les paramètres de stratégie intégrés suivants ont été renommés pour " "améliorer la lisibilité et la cohérence avec d'autres API :" -#: ../../source/ref-changelog.md:1030 +#: ../../source/ref-changelog.md:1141 msgid "`fraction_eval` --> `fraction_evaluate`" msgstr "`fraction_eval` --> `fraction_evaluate`" -#: ../../source/ref-changelog.md:1031 +#: ../../source/ref-changelog.md:1142 msgid "`min_eval_clients` --> `min_evaluate_clients`" msgstr "`min_eval_clients` --> `min_evaluate_clients`" -#: ../../source/ref-changelog.md:1032 +#: ../../source/ref-changelog.md:1143 msgid "`eval_fn` --> `evaluate_fn`" msgstr "`eval_fn` --> `evaluate_fn`" -#: ../../source/ref-changelog.md:1034 +#: ../../source/ref-changelog.md:1145 msgid "" "**Update default arguments of built-in strategies** " "([#1278](https://github.com/adap/flower/pull/1278))" @@ -21685,7 +22618,7 @@ msgstr "" "**Mettre à jour les arguments par défaut des stratégies intégrées** " "([#1278](https://github.com/adap/flower/pull/1278))" -#: ../../source/ref-changelog.md:1036 +#: ../../source/ref-changelog.md:1147 msgid "" "All built-in strategies now use `fraction_fit=1.0` and " "`fraction_evaluate=1.0`, which means they select *all* currently " @@ -21700,11 +22633,11 @@ msgstr "" "peuvent retrouver le comportement antérieur en initialisant la stratégie " "de la manière suivante :" -#: ../../source/ref-changelog.md:1038 +#: ../../source/ref-changelog.md:1149 msgid "`strategy = FedAvg(fraction_fit=0.1, fraction_evaluate=0.1)`" msgstr "`stratégie = FedAvg(fraction_fit=0.1, fraction_evaluate=0.1)`" -#: ../../source/ref-changelog.md:1040 +#: ../../source/ref-changelog.md:1151 msgid "" "**Add** `server_round` **to** `Strategy.evaluate` " "([#1334](https://github.com/adap/flower/pull/1334))" @@ -21712,7 +22645,7 @@ msgstr "" "**Ajouter** `server_round` **à** `Strategy.evaluate` " "([#1334](https://github.com/adap/flower/pull/1334))" -#: ../../source/ref-changelog.md:1042 +#: ../../source/ref-changelog.md:1153 msgid "" "The `Strategy` method `evaluate` now receives the current round of " "federated learning/evaluation as the first parameter." @@ -21720,7 +22653,7 @@ msgstr "" "La méthode `Stratégie` `évaluer` reçoit maintenant le cycle actuel " "d'apprentissage/évaluation fédéré comme premier paramètre." -#: ../../source/ref-changelog.md:1044 +#: ../../source/ref-changelog.md:1155 msgid "" "**Add** `server_round` **and** `config` **parameters to** `evaluate_fn` " "([#1334](https://github.com/adap/flower/pull/1334))" @@ -21728,7 +22661,7 @@ msgstr "" "**Ajouter** `server_round` **et** `config` **paramètres à** `evaluate_fn`" " ([#1334](https://github.com/adap/flower/pull/1334))" -#: ../../source/ref-changelog.md:1046 +#: ../../source/ref-changelog.md:1157 msgid "" "The `evaluate_fn` passed to built-in strategies like `FedAvg` now takes " "three parameters: (1) The current round of federated learning/evaluation " @@ -21741,7 +22674,7 @@ msgstr "" " modèle à évaluer (`parameters`), et (3) un dictionnaire de configuration" " (`config`)." -#: ../../source/ref-changelog.md:1048 +#: ../../source/ref-changelog.md:1159 msgid "" "**Rename** `rnd` **to** `server_round` " "([#1321](https://github.com/adap/flower/pull/1321))" @@ -21749,7 +22682,7 @@ msgstr "" "**Rename** `rnd` **to** `server_round` " "([#1321](https://github.com/adap/flower/pull/1321))" -#: ../../source/ref-changelog.md:1050 +#: ../../source/ref-changelog.md:1161 msgid "" "Several Flower methods and functions (`evaluate_fn`, `configure_fit`, " "`aggregate_fit`, `configure_evaluate`, `aggregate_evaluate`) receive the " @@ -21764,7 +22697,7 @@ msgstr "" " la fiabilité et éviter la confusion avec *random*, ce paramètre a été " "renommé de `rnd` à `server_round`." -#: ../../source/ref-changelog.md:1052 +#: ../../source/ref-changelog.md:1163 msgid "" "**Move** `flwr.dataset` **to** `flwr_baselines` " "([#1273](https://github.com/adap/flower/pull/1273))" @@ -21772,11 +22705,11 @@ msgstr "" "**Déplacer** `flwr.dataset` **vers** `flwr_baselines` " "([#1273](https://github.com/adap/flower/pull/1273))" -#: ../../source/ref-changelog.md:1054 +#: ../../source/ref-changelog.md:1165 msgid "The experimental package `flwr.dataset` was migrated to Flower Baselines." msgstr "Le paquet expérimental `flwr.dataset` a été migré vers Flower Baselines." -#: ../../source/ref-changelog.md:1056 +#: ../../source/ref-changelog.md:1167 msgid "" "**Remove experimental strategies** " "([#1280](https://github.com/adap/flower/pull/1280))" @@ -21784,7 +22717,7 @@ msgstr "" "**Supprimer les stratégies expérimentales** " "([#1280](https://github.com/adap/flower/pull/1280))" -#: ../../source/ref-changelog.md:1058 +#: ../../source/ref-changelog.md:1169 msgid "" "Remove unmaintained experimental strategies (`FastAndSlow`, `FedFSv0`, " "`FedFSv1`)." @@ -21792,7 +22725,7 @@ msgstr "" "Supprimer les stratégies expérimentales non maintenues (`FastAndSlow`, " "`FedFSv0`, `FedFSv1`)." -#: ../../source/ref-changelog.md:1060 +#: ../../source/ref-changelog.md:1171 msgid "" "**Rename** `Weights` **to** `NDArrays` " "([#1258](https://github.com/adap/flower/pull/1258), " @@ -21802,7 +22735,7 @@ msgstr "" "([#1258](https://github.com/adap/flower/pull/1258), " "[#1259](https://github.com/adap/flower/pull/1259))" -#: ../../source/ref-changelog.md:1062 +#: ../../source/ref-changelog.md:1173 msgid "" "`flwr.common.Weights` was renamed to `flwr.common.NDArrays` to better " "capture what this type is all about." @@ -21810,7 +22743,7 @@ msgstr "" "`flwr.common.Weights` a été renommé en `flwr.common.NDArys` pour mieux " "rendre compte de la nature de ce type." -#: ../../source/ref-changelog.md:1064 +#: ../../source/ref-changelog.md:1175 msgid "" "**Remove antiquated** `force_final_distributed_eval` **from** " "`start_server` ([#1258](https://github.com/adap/flower/pull/1258), " @@ -21820,7 +22753,7 @@ msgstr "" "`start_server` ([#1258](https://github.com/adap/flower/pull/1258), " "[#1259](https://github.com/adap/flower/pull/1259))" -#: ../../source/ref-changelog.md:1066 +#: ../../source/ref-changelog.md:1177 msgid "" "The `start_server` parameter `force_final_distributed_eval` has long been" " a historic artefact, in this release it is finally gone for good." @@ -21829,7 +22762,7 @@ msgstr "" "été un artefact historique, dans cette version il a finalement disparu " "pour de bon." -#: ../../source/ref-changelog.md:1068 +#: ../../source/ref-changelog.md:1179 msgid "" "**Make** `get_parameters` **configurable** " "([#1242](https://github.com/adap/flower/pull/1242))" @@ -21837,7 +22770,7 @@ msgstr "" "**Make** `get_parameters` **configurable** " "([#1242](https://github.com/adap/flower/pull/1242))" -#: ../../source/ref-changelog.md:1070 +#: ../../source/ref-changelog.md:1181 msgid "" "The `get_parameters` method now accepts a configuration dictionary, just " "like `get_properties`, `fit`, and `evaluate`." @@ -21845,7 +22778,7 @@ msgstr "" "La méthode `get_parameters` accepte maintenant un dictionnaire de " "configuration, tout comme `get_properties`, `fit`, et `evaluate`." -#: ../../source/ref-changelog.md:1072 +#: ../../source/ref-changelog.md:1183 msgid "" "**Replace** `num_rounds` **in** `start_simulation` **with new** `config` " "**parameter** ([#1281](https://github.com/adap/flower/pull/1281))" @@ -21854,7 +22787,7 @@ msgstr "" " `config` **paramètre** " "([#1281](https://github.com/adap/flower/pull/1281))" -#: ../../source/ref-changelog.md:1074 +#: ../../source/ref-changelog.md:1185 msgid "" "The `start_simulation` function now accepts a configuration dictionary " "`config` instead of the `num_rounds` integer. This improves the " @@ -21866,7 +22799,7 @@ msgstr "" " cohérence entre `start_simulation` et `start_server` et facilite la " "transition entre les deux." -#: ../../source/ref-changelog.md:1078 +#: ../../source/ref-changelog.md:1189 msgid "" "**Support Python 3.10** " "([#1320](https://github.com/adap/flower/pull/1320))" @@ -21874,7 +22807,7 @@ msgstr "" "**Support Python 3.10** " "([#1320](https://github.com/adap/flower/pull/1320))" -#: ../../source/ref-changelog.md:1080 +#: ../../source/ref-changelog.md:1191 msgid "" "The previous Flower release introduced experimental support for Python " "3.10, this release declares Python 3.10 support as stable." @@ -21883,7 +22816,7 @@ msgstr "" "expérimentale de Python 3.10, cette version déclare la prise en charge de" " Python 3.10 comme stable." -#: ../../source/ref-changelog.md:1082 +#: ../../source/ref-changelog.md:1193 msgid "" "**Make all** `Client` **and** `NumPyClient` **methods optional** " "([#1260](https://github.com/adap/flower/pull/1260), " @@ -21893,7 +22826,7 @@ msgstr "" "**facultatives** ([#1260](https://github.com/adap/flower/pull/1260), " "[#1277](https://github.com/adap/flower/pull/1277))" -#: ../../source/ref-changelog.md:1084 +#: ../../source/ref-changelog.md:1195 msgid "" "The `Client`/`NumPyClient` methods `get_properties`, `get_parameters`, " "`fit`, and `evaluate` are all optional. This enables writing clients that" @@ -21906,7 +22839,7 @@ msgstr "" "méthode. Pas besoin d'implémenter `evaluate` quand on utilise " "l'évaluation centralisée !" -#: ../../source/ref-changelog.md:1086 +#: ../../source/ref-changelog.md:1197 msgid "" "**Enable passing a** `Server` **instance to** `start_simulation` " "([#1281](https://github.com/adap/flower/pull/1281))" @@ -21914,7 +22847,7 @@ msgstr "" "**Autoriser le passage d'une **instance `Server` à** `start_simulation` " "([#1281](https://github.com/adap/flower/pull/1281))" -#: ../../source/ref-changelog.md:1088 +#: ../../source/ref-changelog.md:1199 msgid "" "Similar to `start_server`, `start_simulation` now accepts a full `Server`" " instance. This enables users to heavily customize the execution of " @@ -21927,7 +22860,7 @@ msgstr "" "l'exécution, par exemple, de FL asynchrones à l'aide du moteur de client " "virtuel." -#: ../../source/ref-changelog.md:1090 +#: ../../source/ref-changelog.md:1201 msgid "" "**Update code examples** " "([#1291](https://github.com/adap/flower/pull/1291), " @@ -21939,7 +22872,7 @@ msgstr "" "[#1286](https://github.com/adap/flower/pull/1286), " "[#1282](https://github.com/adap/flower/pull/1282))" -#: ../../source/ref-changelog.md:1092 +#: ../../source/ref-changelog.md:1203 msgid "" "Many code examples received small or even large maintenance updates, " "among them are" @@ -21947,31 +22880,31 @@ msgstr "" "De nombreux exemples de code ont reçu de petites ou même de grandes mises" " à jour de maintenance" -#: ../../source/ref-changelog.md:1094 +#: ../../source/ref-changelog.md:1205 msgid "`scikit-learn`" msgstr "`scikit-learn`" -#: ../../source/ref-changelog.md:1095 +#: ../../source/ref-changelog.md:1206 msgid "`simulation_pytorch`" msgstr "`simulation_pytorch`" -#: ../../source/ref-changelog.md:1096 +#: ../../source/ref-changelog.md:1207 msgid "`quickstart_pytorch`" msgstr "`quickstart_pytorch` (démarrage rapide)" -#: ../../source/ref-changelog.md:1097 +#: ../../source/ref-changelog.md:1208 msgid "`quickstart_simulation`" msgstr "`quickstart_simulation`" -#: ../../source/ref-changelog.md:1098 +#: ../../source/ref-changelog.md:1209 msgid "`quickstart_tensorflow`" msgstr "`quickstart_tensorflow`" -#: ../../source/ref-changelog.md:1099 +#: ../../source/ref-changelog.md:1210 msgid "`advanced_tensorflow`" msgstr "`advanced_tensorflow` (en anglais)" -#: ../../source/ref-changelog.md:1101 +#: ../../source/ref-changelog.md:1212 msgid "" "**Remove the obsolete simulation example** " "([#1328](https://github.com/adap/flower/pull/1328))" @@ -21979,7 +22912,7 @@ msgstr "" "**Supprime l'exemple de simulation obsolète** " "([#1328](https://github.com/adap/flower/pull/1328))" -#: ../../source/ref-changelog.md:1103 +#: ../../source/ref-changelog.md:1214 msgid "" "Removes the obsolete `simulation` example and renames " "`quickstart_simulation` to `simulation_tensorflow` so it fits withs the " @@ -21989,7 +22922,7 @@ msgstr "" "`quickstart_simulation` en `simulation_tensorflow` pour qu'il corresponde" " au nom de `simulation_pytorch`" -#: ../../source/ref-changelog.md:1105 +#: ../../source/ref-changelog.md:1216 msgid "" "**Update documentation** " "([#1223](https://github.com/adap/flower/pull/1223), " @@ -22015,7 +22948,7 @@ msgstr "" "[#1305](https://github.com/adap/flower/pull/1305), " "[#1307](https://github.com/adap/flower/pull/1307))" -#: ../../source/ref-changelog.md:1107 +#: ../../source/ref-changelog.md:1218 msgid "" "One substantial documentation update fixes multiple smaller rendering " "issues, makes titles more succinct to improve navigation, removes a " @@ -22032,12 +22965,12 @@ msgstr "" "markdown, migre le changelog de `.rst` vers `.md`, et corrige un certain " "nombre de détails plus petits !" -#: ../../source/ref-changelog.md:1109 ../../source/ref-changelog.md:1164 -#: ../../source/ref-changelog.md:1233 ../../source/ref-changelog.md:1272 +#: ../../source/ref-changelog.md:1220 ../../source/ref-changelog.md:1275 +#: ../../source/ref-changelog.md:1344 ../../source/ref-changelog.md:1383 msgid "**Minor updates**" msgstr "**Mises à jour mineures**" -#: ../../source/ref-changelog.md:1111 +#: ../../source/ref-changelog.md:1222 msgid "" "Add round number to fit and evaluate log messages " "([#1266](https://github.com/adap/flower/pull/1266))" @@ -22045,7 +22978,7 @@ msgstr "" "Ajoute un chiffre rond pour ajuster et évaluer les messages du journal " "([#1266](https://github.com/adap/flower/pull/1266))" -#: ../../source/ref-changelog.md:1112 +#: ../../source/ref-changelog.md:1223 msgid "" "Add secure gRPC connection to the `advanced_tensorflow` code example " "([#847](https://github.com/adap/flower/pull/847))" @@ -22053,7 +22986,7 @@ msgstr "" "Ajouter une connexion gRPC sécurisée à l'exemple de code " "`advanced_tensorflow` ([#847](https://github.com/adap/flower/pull/847))" -#: ../../source/ref-changelog.md:1113 +#: ../../source/ref-changelog.md:1224 msgid "" "Update developer tooling " "([#1231](https://github.com/adap/flower/pull/1231), " @@ -22067,7 +23000,7 @@ msgstr "" "[#1301](https://github.com/adap/flower/pull/1301), " "[#1310](https://github.com/adap/flower/pull/1310))" -#: ../../source/ref-changelog.md:1114 +#: ../../source/ref-changelog.md:1225 msgid "" "Rename ProtoBuf messages to improve consistency " "([#1214](https://github.com/adap/flower/pull/1214), " @@ -22079,11 +23012,11 @@ msgstr "" "[#1258](https://github.com/adap/flower/pull/1258), " "[#1259](https://github.com/adap/flower/pull/1259))" -#: ../../source/ref-changelog.md:1116 +#: ../../source/ref-changelog.md:1227 msgid "v0.19.0 (2022-05-18)" msgstr "v0.19.0 (2022-05-18)" -#: ../../source/ref-changelog.md:1120 +#: ../../source/ref-changelog.md:1231 msgid "" "**Flower Baselines (preview): FedOpt, FedBN, FedAvgM** " "([#919](https://github.com/adap/flower/pull/919), " @@ -22095,7 +23028,7 @@ msgstr "" "[#1127](https://github.com/adap/flower/pull/1127), " "[#914](https://github.com/adap/flower/pull/914))" -#: ../../source/ref-changelog.md:1122 +#: ../../source/ref-changelog.md:1233 #, fuzzy msgid "" "The first preview release of Flower Baselines has arrived! We're " @@ -22114,7 +23047,7 @@ msgstr "" "également la communauté à [contribuer à leurs propres lignes de " "base](https://flower.ai/docs/baselines/how-to-contribute-baselines.html)." -#: ../../source/ref-changelog.md:1124 +#: ../../source/ref-changelog.md:1235 msgid "" "**C++ client SDK (preview) and code example** " "([#1111](https://github.com/adap/flower/pull/1111))" @@ -22122,7 +23055,7 @@ msgstr "" "**SDK client C++ (aperçu) et exemple de code** " "([#1111](https://github.com/adap/flower/pull/1111))" -#: ../../source/ref-changelog.md:1126 +#: ../../source/ref-changelog.md:1237 msgid "" "Preview support for Flower clients written in C++. The C++ preview " "includes a Flower client SDK and a quickstart code example that " @@ -22132,7 +23065,7 @@ msgstr "" "code de démarrage rapide qui démontre un client C++ simple utilisant le " "SDK." -#: ../../source/ref-changelog.md:1128 +#: ../../source/ref-changelog.md:1239 msgid "" "**Add experimental support for Python 3.10 and Python 3.11** " "([#1135](https://github.com/adap/flower/pull/1135))" @@ -22140,7 +23073,7 @@ msgstr "" "**Ajouter la prise en charge expérimentale de Python 3.10 et Python " "3.11** ([#1135](https://github.com/adap/flower/pull/1135))" -#: ../../source/ref-changelog.md:1130 +#: ../../source/ref-changelog.md:1241 msgid "" "Python 3.10 is the latest stable release of Python and Python 3.11 is due" " to be released in October. This Flower release adds experimental support" @@ -22150,7 +23083,7 @@ msgstr "" "devrait sortir en octobre. Cette version de Flower ajoute une prise en " "charge expérimentale pour les deux versions de Python." -#: ../../source/ref-changelog.md:1132 +#: ../../source/ref-changelog.md:1243 msgid "" "**Aggregate custom metrics through user-provided functions** " "([#1144](https://github.com/adap/flower/pull/1144))" @@ -22158,7 +23091,7 @@ msgstr "" "**Agréger des mesures personnalisées grâce à des fonctions fournies par " "l'utilisateur** ([#1144](https://github.com/adap/flower/pull/1144))" -#: ../../source/ref-changelog.md:1134 +#: ../../source/ref-changelog.md:1245 msgid "" "Custom metrics (e.g., `accuracy`) can now be aggregated without having to" " customize the strategy. Built-in strategies support two new arguments, " @@ -22170,7 +23103,7 @@ msgstr "" "permettent de passer des fonctions d'agrégation de métriques " "personnalisées." -#: ../../source/ref-changelog.md:1136 +#: ../../source/ref-changelog.md:1247 msgid "" "**User-configurable round timeout** " "([#1162](https://github.com/adap/flower/pull/1162))" @@ -22178,7 +23111,7 @@ msgstr "" "**Temps d'attente configurable par l'utilisateur** " "([#1162](https://github.com/adap/flower/pull/1162))" -#: ../../source/ref-changelog.md:1138 +#: ../../source/ref-changelog.md:1249 msgid "" "A new configuration value allows the round timeout to be set for " "`start_server` and `start_simulation`. If the `config` dictionary " @@ -22190,7 +23123,7 @@ msgstr "" "valeur `float` en secondes), le serveur attendra *au moins* " "`round_timeout` secondes avant de fermer la connexion." -#: ../../source/ref-changelog.md:1140 +#: ../../source/ref-changelog.md:1251 msgid "" "**Enable both federated evaluation and centralized evaluation to be used " "at the same time in all built-in strategies** " @@ -22200,7 +23133,7 @@ msgstr "" "l'évaluation centralisée dans toutes les stratégies intégrées** " "([#1091](https://github.com/adap/flower/pull/1091))" -#: ../../source/ref-changelog.md:1142 +#: ../../source/ref-changelog.md:1253 msgid "" "Built-in strategies can now perform both federated evaluation (i.e., " "client-side) and centralized evaluation (i.e., server-side) in the same " @@ -22212,7 +23145,7 @@ msgstr "" "(c'est-à-dire côté serveur) dans le même tour. L'évaluation fédérée peut " "être désactivée en réglant `fraction_eval` sur `0.0`." -#: ../../source/ref-changelog.md:1144 +#: ../../source/ref-changelog.md:1255 msgid "" "**Two new Jupyter Notebook tutorials** " "([#1141](https://github.com/adap/flower/pull/1141))" @@ -22220,7 +23153,7 @@ msgstr "" "**Deux nouveaux tutoriels Jupyter Notebook** " "([#1141](https://github.com/adap/flower/pull/1141))" -#: ../../source/ref-changelog.md:1146 +#: ../../source/ref-changelog.md:1257 msgid "" "Two Jupyter Notebook tutorials (compatible with Google Colab) explain " "basic and intermediate Flower features:" @@ -22228,7 +23161,7 @@ msgstr "" "Deux tutoriels Jupyter Notebook (compatibles avec Google Colab) " "expliquent les fonctionnalités de base et intermédiaires de Flower :" -#: ../../source/ref-changelog.md:1148 +#: ../../source/ref-changelog.md:1259 msgid "" "*An Introduction to Federated Learning*: [Open in " "Colab](https://colab.research.google.com/github/adap/flower/blob/main/tutorials/Flower-1" @@ -22238,7 +23171,7 @@ msgstr "" "Colab](https://colab.research.google.com/github/adap/flower/blob/main/tutorials/Flower-1" "-Intro-to-FL-PyTorch.ipynb)" -#: ../../source/ref-changelog.md:1150 +#: ../../source/ref-changelog.md:1261 msgid "" "*Using Strategies in Federated Learning*: [Open in " "Colab](https://colab.research.google.com/github/adap/flower/blob/main/tutorials/Flower-2" @@ -22248,7 +23181,7 @@ msgstr "" "Colab](https://colab.research.google.com/github/adap/flower/blob/main/tutorials/Flower-2" "-Strategies-in-FL-PyTorch.ipynb)" -#: ../../source/ref-changelog.md:1152 +#: ../../source/ref-changelog.md:1263 msgid "" "**New FedAvgM strategy (Federated Averaging with Server Momentum)** " "([#1076](https://github.com/adap/flower/pull/1076))" @@ -22256,7 +23189,7 @@ msgstr "" "**Nouvelle stratégie FedAvgM (Federated Averaging with Server Momentum)**" " ([#1076](https://github.com/adap/flower/pull/1076))" -#: ../../source/ref-changelog.md:1154 +#: ../../source/ref-changelog.md:1265 #, fuzzy msgid "" "The new `FedAvgM` strategy implements Federated Averaging with Server " @@ -22265,7 +23198,7 @@ msgstr "" "La nouvelle stratégie `FedAvgM` met en œuvre la moyenne fédérée avec le " "momentum du serveur [Hsu et al., 2019]." -#: ../../source/ref-changelog.md:1156 +#: ../../source/ref-changelog.md:1267 msgid "" "**New advanced PyTorch code example** " "([#1007](https://github.com/adap/flower/pull/1007))" @@ -22273,7 +23206,7 @@ msgstr "" "**Nouvel exemple de code PyTorch avancé** " "([#1007](https://github.com/adap/flower/pull/1007))" -#: ../../source/ref-changelog.md:1158 +#: ../../source/ref-changelog.md:1269 msgid "" "A new code example (`advanced_pytorch`) demonstrates advanced Flower " "concepts with PyTorch." @@ -22281,7 +23214,7 @@ msgstr "" "Un nouvel exemple de code (`advanced_pytorch`) démontre des concepts de " "fleur avancés avec PyTorch." -#: ../../source/ref-changelog.md:1160 +#: ../../source/ref-changelog.md:1271 msgid "" "**New JAX code example** " "([#906](https://github.com/adap/flower/pull/906), " @@ -22291,7 +23224,7 @@ msgstr "" "([#906](https://github.com/adap/flower/pull/906), " "[#1143](https://github.com/adap/flower/pull/1143))" -#: ../../source/ref-changelog.md:1162 +#: ../../source/ref-changelog.md:1273 msgid "" "A new code example (`jax_from_centralized_to_federated`) shows federated " "learning with JAX and Flower." @@ -22299,7 +23232,7 @@ msgstr "" "Un nouvel exemple de code (`jax_from_centralized_to_federated`) montre " "l'apprentissage fédéré avec JAX et Flower." -#: ../../source/ref-changelog.md:1166 +#: ../../source/ref-changelog.md:1277 msgid "" "New option to keep Ray running if Ray was already initialized in " "`start_simulation` ([#1177](https://github.com/adap/flower/pull/1177))" @@ -22308,7 +23241,7 @@ msgstr "" "initialisé dans `start_simulation` " "([#1177](https://github.com/adap/flower/pull/1177))" -#: ../../source/ref-changelog.md:1167 +#: ../../source/ref-changelog.md:1278 msgid "" "Add support for custom `ClientManager` as a `start_simulation` parameter " "([#1171](https://github.com/adap/flower/pull/1171))" @@ -22317,7 +23250,7 @@ msgstr "" "paramètre de `start_simulation` " "([#1171](https://github.com/adap/flower/pull/1171))" -#: ../../source/ref-changelog.md:1168 +#: ../../source/ref-changelog.md:1279 #, fuzzy msgid "" "New documentation for [implementing " @@ -22330,7 +23263,7 @@ msgstr "" "strategies.html) ([#1097](https://github.com/adap/flower/pull/1097), " "[#1175](https://github.com/adap/flower/pull/1175))" -#: ../../source/ref-changelog.md:1169 +#: ../../source/ref-changelog.md:1280 msgid "" "New mobile-friendly documentation theme " "([#1174](https://github.com/adap/flower/pull/1174))" @@ -22338,7 +23271,7 @@ msgstr "" "Nouveau thème de documentation adapté aux mobiles " "([#1174](https://github.com/adap/flower/pull/1174))" -#: ../../source/ref-changelog.md:1170 +#: ../../source/ref-changelog.md:1281 msgid "" "Limit version range for (optional) `ray` dependency to include only " "compatible releases (`>=1.9.2,<1.12.0`) " @@ -22348,7 +23281,7 @@ msgstr "" "n'inclure que les versions compatibles (`>=1.9.2,<1.12.0`) " "([#1205](https://github.com/adap/flower/pull/1205))" -#: ../../source/ref-changelog.md:1174 +#: ../../source/ref-changelog.md:1285 msgid "" "**Remove deprecated support for Python 3.6** " "([#871](https://github.com/adap/flower/pull/871))" @@ -22356,7 +23289,7 @@ msgstr "" "**Supprime la prise en charge obsolète de Python 3.6** " "([#871](https://github.com/adap/flower/pull/871))" -#: ../../source/ref-changelog.md:1175 +#: ../../source/ref-changelog.md:1286 msgid "" "**Remove deprecated KerasClient** " "([#857](https://github.com/adap/flower/pull/857))" @@ -22364,7 +23297,7 @@ msgstr "" "**Supprimez KerasClient** " "([#857](https://github.com/adap/flower/pull/857))" -#: ../../source/ref-changelog.md:1176 +#: ../../source/ref-changelog.md:1287 msgid "" "**Remove deprecated no-op extra installs** " "([#973](https://github.com/adap/flower/pull/973))" @@ -22372,7 +23305,7 @@ msgstr "" "**Supprimer les installations supplémentaires no-op dépréciées** " "([#973](https://github.com/adap/flower/pull/973))" -#: ../../source/ref-changelog.md:1177 +#: ../../source/ref-changelog.md:1288 msgid "" "**Remove deprecated proto fields from** `FitRes` **and** `EvaluateRes` " "([#869](https://github.com/adap/flower/pull/869))" @@ -22380,7 +23313,7 @@ msgstr "" "**Supprimez les champs proto obsolètes de** `FitRes` **et** `EvaluateRes`" " ([#869](https://github.com/adap/flower/pull/869))" -#: ../../source/ref-changelog.md:1178 +#: ../../source/ref-changelog.md:1289 msgid "" "**Remove deprecated QffedAvg strategy (replaced by QFedAvg)** " "([#1107](https://github.com/adap/flower/pull/1107))" @@ -22388,7 +23321,7 @@ msgstr "" "**Supprime la stratégie QffedAvg (remplacée par QFedAvg)** " "([#1107](https://github.com/adap/flower/pull/1107))" -#: ../../source/ref-changelog.md:1179 +#: ../../source/ref-changelog.md:1290 msgid "" "**Remove deprecated DefaultStrategy strategy** " "([#1142](https://github.com/adap/flower/pull/1142))" @@ -22396,7 +23329,7 @@ msgstr "" "**Supprime la stratégie DefaultStrategy qui est obsolète** " "([#1142](https://github.com/adap/flower/pull/1142))" -#: ../../source/ref-changelog.md:1180 +#: ../../source/ref-changelog.md:1291 msgid "" "**Remove deprecated support for eval_fn accuracy return value** " "([#1142](https://github.com/adap/flower/pull/1142))" @@ -22404,7 +23337,7 @@ msgstr "" "**Supprimer la prise en charge obsolète de la valeur de retour de la " "précision eval_fn** ([#1142](https://github.com/adap/flower/pull/1142))" -#: ../../source/ref-changelog.md:1181 +#: ../../source/ref-changelog.md:1292 msgid "" "**Remove deprecated support for passing initial parameters as NumPy " "ndarrays** ([#1142](https://github.com/adap/flower/pull/1142))" @@ -22413,11 +23346,11 @@ msgstr "" " en tant que ndarrays NumPy** " "([#1142](https://github.com/adap/flower/pull/1142))" -#: ../../source/ref-changelog.md:1183 +#: ../../source/ref-changelog.md:1294 msgid "v0.18.0 (2022-02-28)" msgstr "v0.18.0 (2022-02-28)" -#: ../../source/ref-changelog.md:1187 +#: ../../source/ref-changelog.md:1298 msgid "" "**Improved Virtual Client Engine compatibility with Jupyter Notebook / " "Google Colab** ([#866](https://github.com/adap/flower/pull/866), " @@ -22432,7 +23365,7 @@ msgstr "" "[#833](https://github.com/adap/flower/pull/833), " "[#1036](https://github.com/adap/flower/pull/1036))" -#: ../../source/ref-changelog.md:1189 +#: ../../source/ref-changelog.md:1300 msgid "" "Simulations (using the Virtual Client Engine through `start_simulation`) " "now work more smoothly on Jupyter Notebooks (incl. Google Colab) after " @@ -22444,7 +23377,7 @@ msgstr "" "Notebooks Jupyter (y compris Google Colab) après avoir installé Flower " "avec l'option `simulation` (`pip install 'flwr[simulation]'`)." -#: ../../source/ref-changelog.md:1191 +#: ../../source/ref-changelog.md:1302 msgid "" "**New Jupyter Notebook code example** " "([#833](https://github.com/adap/flower/pull/833))" @@ -22452,7 +23385,7 @@ msgstr "" "**Nouvel exemple de code Jupyter Notebook** " "([#833](https://github.com/adap/flower/pull/833))" -#: ../../source/ref-changelog.md:1193 +#: ../../source/ref-changelog.md:1304 msgid "" "A new code example (`quickstart_simulation`) demonstrates Flower " "simulations using the Virtual Client Engine through Jupyter Notebook " @@ -22462,7 +23395,7 @@ msgstr "" "simulations de Flower en utilisant le moteur de client virtuel via " "Jupyter Notebook (y compris Google Colab)." -#: ../../source/ref-changelog.md:1195 +#: ../../source/ref-changelog.md:1306 msgid "" "**Client properties (feature preview)** " "([#795](https://github.com/adap/flower/pull/795))" @@ -22470,7 +23403,7 @@ msgstr "" "**Propriétés du client (aperçu des fonctionnalités)** " "([#795](https://github.com/adap/flower/pull/795))" -#: ../../source/ref-changelog.md:1197 +#: ../../source/ref-changelog.md:1308 msgid "" "Clients can implement a new method `get_properties` to enable server-side" " strategies to query client properties." @@ -22479,7 +23412,7 @@ msgstr "" "pour permettre aux stratégies côté serveur d'interroger les propriétés du" " client." -#: ../../source/ref-changelog.md:1199 +#: ../../source/ref-changelog.md:1310 msgid "" "**Experimental Android support with TFLite** " "([#865](https://github.com/adap/flower/pull/865))" @@ -22487,7 +23420,7 @@ msgstr "" "**Support expérimental d'Android avec TFLite** " "([#865](https://github.com/adap/flower/pull/865))" -#: ../../source/ref-changelog.md:1201 +#: ../../source/ref-changelog.md:1312 msgid "" "Android support has finally arrived in `main`! Flower is both client-" "agnostic and framework-agnostic by design. One can integrate arbitrary " @@ -22499,7 +23432,7 @@ msgstr "" "intégrer des plates-formes client arbitraires et avec cette version, " "l'utilisation de Flower sur Android est devenue beaucoup plus facile." -#: ../../source/ref-changelog.md:1203 +#: ../../source/ref-changelog.md:1314 msgid "" "The example uses TFLite on the client side, along with a new " "`FedAvgAndroid` strategy. The Android client and `FedAvgAndroid` are " @@ -22513,7 +23446,7 @@ msgstr "" "part entière et une implémentation unifiée de `FedAvg` intégrant la " "nouvelle fonctionnalité de `FedAvgAndroid`." -#: ../../source/ref-changelog.md:1205 +#: ../../source/ref-changelog.md:1316 msgid "" "**Make gRPC keepalive time user-configurable and decrease default " "keepalive time** ([#1069](https://github.com/adap/flower/pull/1069))" @@ -22522,7 +23455,7 @@ msgstr "" "diminuer le temps de garde par défaut** " "([#1069](https://github.com/adap/flower/pull/1069))" -#: ../../source/ref-changelog.md:1207 +#: ../../source/ref-changelog.md:1318 msgid "" "The default gRPC keepalive time has been reduced to increase the " "compatibility of Flower with more cloud environments (for example, " @@ -22535,7 +23468,7 @@ msgstr "" "de keepalive pour personnaliser la pile gRPC en fonction d'exigences " "spécifiques." -#: ../../source/ref-changelog.md:1209 +#: ../../source/ref-changelog.md:1320 msgid "" "**New differential privacy example using Opacus and PyTorch** " "([#805](https://github.com/adap/flower/pull/805))" @@ -22543,7 +23476,7 @@ msgstr "" "**Nouvel exemple de confidentialité différentielle utilisant Opacus et " "PyTorch** ([#805](https://github.com/adap/flower/pull/805))" -#: ../../source/ref-changelog.md:1211 +#: ../../source/ref-changelog.md:1322 msgid "" "A new code example (`opacus`) demonstrates differentially-private " "federated learning with Opacus, PyTorch, and Flower." @@ -22551,7 +23484,7 @@ msgstr "" "Un nouvel exemple de code (`opacus`) démontre l'apprentissage fédéré " "différentiellement privé avec Opacus, PyTorch et Flower." -#: ../../source/ref-changelog.md:1213 +#: ../../source/ref-changelog.md:1324 msgid "" "**New Hugging Face Transformers code example** " "([#863](https://github.com/adap/flower/pull/863))" @@ -22559,7 +23492,7 @@ msgstr "" "**Nouvel exemple de code pour les Transformers à visage embrassant** " "([#863](https://github.com/adap/flower/pull/863))" -#: ../../source/ref-changelog.md:1215 +#: ../../source/ref-changelog.md:1326 msgid "" "A new code example (`quickstart_huggingface`) demonstrates usage of " "Hugging Face Transformers with Flower." @@ -22567,7 +23500,7 @@ msgstr "" "Un nouvel exemple de code (`quickstart_huggingface`) démontre " "l'utilisation des transformateurs Hugging Face avec Flower." -#: ../../source/ref-changelog.md:1217 +#: ../../source/ref-changelog.md:1328 msgid "" "**New MLCube code example** " "([#779](https://github.com/adap/flower/pull/779), " @@ -22581,7 +23514,7 @@ msgstr "" "[#1065](https://github.com/adap/flower/pull/1065), " "[#1090](https://github.com/adap/flower/pull/1090))" -#: ../../source/ref-changelog.md:1219 +#: ../../source/ref-changelog.md:1330 msgid "" "A new code example (`quickstart_mlcube`) demonstrates usage of MLCube " "with Flower." @@ -22589,7 +23522,7 @@ msgstr "" "Un nouvel exemple de code (`quickstart_mlcube`) démontre l'utilisation de" " MLCube avec Flower." -#: ../../source/ref-changelog.md:1221 +#: ../../source/ref-changelog.md:1332 msgid "" "**SSL-enabled server and client** " "([#842](https://github.com/adap/flower/pull/842), " @@ -22606,7 +23539,7 @@ msgstr "" "[#993](https://github.com/adap/flower/pull/993), " "[#994](https://github.com/adap/flower/pull/994))" -#: ../../source/ref-changelog.md:1223 +#: ../../source/ref-changelog.md:1334 msgid "" "SSL enables secure encrypted connections between clients and servers. " "This release open-sources the Flower secure gRPC implementation to make " @@ -22617,7 +23550,7 @@ msgstr "" "l'implémentation gRPC sécurisée de Flower afin de rendre les canaux de " "communication cryptés accessibles à tous les utilisateurs de Flower." -#: ../../source/ref-changelog.md:1225 +#: ../../source/ref-changelog.md:1336 msgid "" "**Updated** `FedAdam` **and** `FedYogi` **strategies** " "([#885](https://github.com/adap/flower/pull/885), " @@ -22627,7 +23560,7 @@ msgstr "" "([#885](https://github.com/adap/flower/pull/885), " "[#895](https://github.com/adap/flower/pull/895))" -#: ../../source/ref-changelog.md:1227 +#: ../../source/ref-changelog.md:1338 msgid "" "`FedAdam` and `FedAdam` match the latest version of the Adaptive " "Federated Optimization paper." @@ -22635,7 +23568,7 @@ msgstr "" "`FedAdam` et `FedAdam` correspondent à la dernière version de l'article " "sur l'optimisation fédérée adaptative." -#: ../../source/ref-changelog.md:1229 +#: ../../source/ref-changelog.md:1340 msgid "" "**Initialize** `start_simulation` **with a list of client IDs** " "([#860](https://github.com/adap/flower/pull/860))" @@ -22643,7 +23576,7 @@ msgstr "" "**Initialise** `start_simulation` **avec une liste d'ID de clients** " "([#860](https://github.com/adap/flower/pull/860))" -#: ../../source/ref-changelog.md:1231 +#: ../../source/ref-changelog.md:1342 msgid "" "`start_simulation` can now be called with a list of client IDs " "(`clients_ids`, type: `List[str]`). Those IDs will be passed to the " @@ -22657,7 +23590,7 @@ msgstr "" "être initialisé, ce qui peut faciliter le chargement de partitions de " "données qui ne sont pas accessibles par des identifiants `int`." -#: ../../source/ref-changelog.md:1235 +#: ../../source/ref-changelog.md:1346 msgid "" "Update `num_examples` calculation in PyTorch code examples in " "([#909](https://github.com/adap/flower/pull/909))" @@ -22665,7 +23598,7 @@ msgstr "" "Mettre à jour le calcul de `num_examples` dans les exemples de code " "PyTorch dans ([#909](https://github.com/adap/flower/pull/909))" -#: ../../source/ref-changelog.md:1236 +#: ../../source/ref-changelog.md:1347 msgid "" "Expose Flower version through `flwr.__version__` " "([#952](https://github.com/adap/flower/pull/952))" @@ -22673,7 +23606,7 @@ msgstr "" "Exposer la version de Flower à travers `flwr.__version__` " "([#952](https://github.com/adap/flower/pull/952))" -#: ../../source/ref-changelog.md:1237 +#: ../../source/ref-changelog.md:1348 msgid "" "`start_server` in `app.py` now returns a `History` object containing " "metrics from training ([#974](https://github.com/adap/flower/pull/974))" @@ -22682,7 +23615,7 @@ msgstr "" "contenant les métriques de l'entraînement " "([#974](https://github.com/adap/flower/pull/974))" -#: ../../source/ref-changelog.md:1238 +#: ../../source/ref-changelog.md:1349 msgid "" "Make `max_workers` (used by `ThreadPoolExecutor`) configurable " "([#978](https://github.com/adap/flower/pull/978))" @@ -22690,7 +23623,7 @@ msgstr "" "Rendre `max_workers` (utilisé par `ThreadPoolExecutor`) configurable " "([#978](https://github.com/adap/flower/pull/978))" -#: ../../source/ref-changelog.md:1239 +#: ../../source/ref-changelog.md:1350 msgid "" "Increase sleep time after server start to three seconds in all code " "examples ([#1086](https://github.com/adap/flower/pull/1086))" @@ -22699,7 +23632,7 @@ msgstr "" "secondes dans tous les exemples de code " "([#1086](https://github.com/adap/flower/pull/1086))" -#: ../../source/ref-changelog.md:1240 +#: ../../source/ref-changelog.md:1351 msgid "" "Added a new FAQ section to the documentation " "([#948](https://github.com/adap/flower/pull/948))" @@ -22707,7 +23640,7 @@ msgstr "" "Ajout d'une nouvelle section FAQ à la documentation " "([#948](https://github.com/adap/flower/pull/948))" -#: ../../source/ref-changelog.md:1241 +#: ../../source/ref-changelog.md:1352 msgid "" "And many more under-the-hood changes, library updates, documentation " "changes, and tooling improvements!" @@ -22716,7 +23649,7 @@ msgstr "" "bibliothèque, des modifications de la documentation et des améliorations " "de l'outillage !" -#: ../../source/ref-changelog.md:1245 +#: ../../source/ref-changelog.md:1356 msgid "" "**Removed** `flwr_example` **and** `flwr_experimental` **from release " "build** ([#869](https://github.com/adap/flower/pull/869))" @@ -22724,7 +23657,7 @@ msgstr "" "**Supprimé** `flwr_example` **et** `flwr_experimental` **de la version " "release build** ([#869](https://github.com/adap/flower/pull/869))" -#: ../../source/ref-changelog.md:1247 +#: ../../source/ref-changelog.md:1358 msgid "" "The packages `flwr_example` and `flwr_experimental` have been deprecated " "since Flower 0.12.0 and they are not longer included in Flower release " @@ -22738,11 +23671,11 @@ msgstr "" "tensorflow`, `http-logger`, `ops`) sont maintenant no-op et seront " "supprimés dans une prochaine version." -#: ../../source/ref-changelog.md:1249 +#: ../../source/ref-changelog.md:1360 msgid "v0.17.0 (2021-09-24)" msgstr "v0.17.0 (2021-09-24)" -#: ../../source/ref-changelog.md:1253 +#: ../../source/ref-changelog.md:1364 msgid "" "**Experimental virtual client engine** " "([#781](https://github.com/adap/flower/pull/781) " @@ -22754,7 +23687,7 @@ msgstr "" "[#790](https://github.com/adap/flower/pull/790) " "[#791](https://github.com/adap/flower/pull/791))" -#: ../../source/ref-changelog.md:1255 +#: ../../source/ref-changelog.md:1366 msgid "" "One of Flower's goals is to enable research at scale. This release " "enables a first (experimental) peek at a major new feature, codenamed the" @@ -22772,7 +23705,7 @@ msgstr "" "fonctionnalité est de regarder les deux nouveaux exemples de code appelés" " `quickstart_simulation` et `simulation_pytorch`." -#: ../../source/ref-changelog.md:1257 +#: ../../source/ref-changelog.md:1368 msgid "" "The feature is still experimental, so there's no stability guarantee for " "the API. It's also not quite ready for prime time and comes with a few " @@ -22785,7 +23718,7 @@ msgstr "" " les personnes curieuses sont encouragées à l'essayer et à faire part de " "leurs réflexions." -#: ../../source/ref-changelog.md:1259 +#: ../../source/ref-changelog.md:1370 msgid "" "**New built-in strategies** " "([#828](https://github.com/adap/flower/pull/828) " @@ -22795,7 +23728,7 @@ msgstr "" "([#828](https://github.com/adap/flower/pull/828) " "[#822](https://github.com/adap/flower/pull/822))" -#: ../../source/ref-changelog.md:1261 +#: ../../source/ref-changelog.md:1372 msgid "" "FedYogi - Federated learning strategy using Yogi on server-side. " "Implementation based on https://arxiv.org/abs/2003.00295" @@ -22803,7 +23736,7 @@ msgstr "" "FedYogi - Stratégie d'apprentissage fédéré utilisant Yogi côté serveur. " "Mise en oeuvre basée sur https://arxiv.org/abs/2003.00295" -#: ../../source/ref-changelog.md:1262 +#: ../../source/ref-changelog.md:1373 msgid "" "FedAdam - Federated learning strategy using Adam on server-side. " "Implementation based on https://arxiv.org/abs/2003.00295" @@ -22811,7 +23744,7 @@ msgstr "" "FedAdam - Stratégie d'apprentissage fédéré utilisant Adam côté serveur. " "Mise en œuvre basée sur https://arxiv.org/abs/2003.00295" -#: ../../source/ref-changelog.md:1264 +#: ../../source/ref-changelog.md:1375 msgid "" "**New PyTorch Lightning code example** " "([#617](https://github.com/adap/flower/pull/617))" @@ -22819,7 +23752,7 @@ msgstr "" "**Nouvel exemple de code PyTorch Lightning** " "([#617](https://github.com/adap/flower/pull/617))" -#: ../../source/ref-changelog.md:1266 +#: ../../source/ref-changelog.md:1377 msgid "" "**New Variational Auto-Encoder code example** " "([#752](https://github.com/adap/flower/pull/752))" @@ -22827,7 +23760,7 @@ msgstr "" "**Nouvel exemple de code d'autocodage variationnel** " "([#752](https://github.com/adap/flower/pull/752))" -#: ../../source/ref-changelog.md:1268 +#: ../../source/ref-changelog.md:1379 msgid "" "**New scikit-learn code example** " "([#748](https://github.com/adap/flower/pull/748))" @@ -22835,7 +23768,7 @@ msgstr "" "**Nouvel exemple de code scikit-learn** " "([#748](https://github.com/adap/flower/pull/748))" -#: ../../source/ref-changelog.md:1270 +#: ../../source/ref-changelog.md:1381 msgid "" "**New experimental TensorBoard strategy** " "([#789](https://github.com/adap/flower/pull/789))" @@ -22843,7 +23776,7 @@ msgstr "" "**Nouvelle stratégie expérimentale TensorBoard** " "([#789](https://github.com/adap/flower/pull/789))" -#: ../../source/ref-changelog.md:1274 +#: ../../source/ref-changelog.md:1385 msgid "" "Improved advanced TensorFlow code example " "([#769](https://github.com/adap/flower/pull/769))" @@ -22851,7 +23784,7 @@ msgstr "" "Amélioration de l'exemple de code TensorFlow avancé " "([#769](https://github.com/adap/flower/pull/769))" -#: ../../source/ref-changelog.md:1275 +#: ../../source/ref-changelog.md:1386 msgid "" "Warning when `min_available_clients` is misconfigured " "([#830](https://github.com/adap/flower/pull/830))" @@ -22859,7 +23792,7 @@ msgstr "" "Avertissement lorsque `min_available_clients` est mal configuré " "([#830](https://github.com/adap/flower/pull/830))" -#: ../../source/ref-changelog.md:1276 +#: ../../source/ref-changelog.md:1387 msgid "" "Improved gRPC server docs " "([#841](https://github.com/adap/flower/pull/841))" @@ -22867,7 +23800,7 @@ msgstr "" "Amélioration de la documentation sur le serveur gRPC " "([#841](https://github.com/adap/flower/pull/841))" -#: ../../source/ref-changelog.md:1277 +#: ../../source/ref-changelog.md:1388 msgid "" "Improved error message in `NumPyClient` " "([#851](https://github.com/adap/flower/pull/851))" @@ -22875,7 +23808,7 @@ msgstr "" "Amélioration du message d'erreur dans `NumPyClient` " "([#851](https://github.com/adap/flower/pull/851))" -#: ../../source/ref-changelog.md:1278 +#: ../../source/ref-changelog.md:1389 msgid "" "Improved PyTorch quickstart code example " "([#852](https://github.com/adap/flower/pull/852))" @@ -22883,7 +23816,7 @@ msgstr "" "Exemple de code de démarrage rapide PyTorch amélioré " "([#852](https://github.com/adap/flower/pull/852))" -#: ../../source/ref-changelog.md:1282 +#: ../../source/ref-changelog.md:1393 msgid "" "**Disabled final distributed evaluation** " "([#800](https://github.com/adap/flower/pull/800))" @@ -22891,7 +23824,7 @@ msgstr "" "**Désactivé l'évaluation finale distribuée** " "([#800](https://github.com/adap/flower/pull/800))" -#: ../../source/ref-changelog.md:1284 +#: ../../source/ref-changelog.md:1395 msgid "" "Prior behaviour was to perform a final round of distributed evaluation on" " all connected clients, which is often not required (e.g., when using " @@ -22904,7 +23837,7 @@ msgstr "" "l'évaluation côté serveur). Le comportement précédent peut être activé en" " passant `force_final_distributed_eval=True` à `start_server`." -#: ../../source/ref-changelog.md:1286 +#: ../../source/ref-changelog.md:1397 msgid "" "**Renamed q-FedAvg strategy** " "([#802](https://github.com/adap/flower/pull/802))" @@ -22912,7 +23845,7 @@ msgstr "" "**Renommé stratégie q-FedAvg** " "([#802](https://github.com/adap/flower/pull/802))" -#: ../../source/ref-changelog.md:1288 +#: ../../source/ref-changelog.md:1399 msgid "" "The strategy named `QffedAvg` was renamed to `QFedAvg` to better reflect " "the notation given in the original paper (q-FFL is the optimization " @@ -22927,7 +23860,7 @@ msgstr "" "des raisons de compatibilité (elle sera supprimée dans une prochaine " "version)." -#: ../../source/ref-changelog.md:1290 +#: ../../source/ref-changelog.md:1401 msgid "" "**Deprecated and renamed code example** `simulation_pytorch` **to** " "`simulation_pytorch_legacy` " @@ -22937,7 +23870,7 @@ msgstr "" "`simulation_pytorch_legacy` " "([#791](https://github.com/adap/flower/pull/791))" -#: ../../source/ref-changelog.md:1292 +#: ../../source/ref-changelog.md:1403 msgid "" "This example has been replaced by a new example. The new example is based" " on the experimental virtual client engine, which will become the new " @@ -22952,11 +23885,11 @@ msgstr "" "conservé à des fins de référence, mais il pourrait être supprimé à " "l'avenir." -#: ../../source/ref-changelog.md:1294 +#: ../../source/ref-changelog.md:1405 msgid "v0.16.0 (2021-05-11)" msgstr "v0.16.0 (2021-05-11)" -#: ../../source/ref-changelog.md:1298 +#: ../../source/ref-changelog.md:1409 msgid "" "**New built-in strategies** " "([#549](https://github.com/adap/flower/pull/549))" @@ -22964,11 +23897,11 @@ msgstr "" "**Nouvelles stratégies intégrées** " "([#549](https://github.com/adap/flower/pull/549))" -#: ../../source/ref-changelog.md:1300 +#: ../../source/ref-changelog.md:1411 msgid "(abstract) FedOpt" msgstr "(résumé) FedOpt" -#: ../../source/ref-changelog.md:1303 +#: ../../source/ref-changelog.md:1414 msgid "" "**Custom metrics for server and strategies** " "([#717](https://github.com/adap/flower/pull/717))" @@ -22976,7 +23909,7 @@ msgstr "" "**Métriques personnalisées pour le serveur et les stratégies** " "([#717](https://github.com/adap/flower/pull/717))" -#: ../../source/ref-changelog.md:1305 +#: ../../source/ref-changelog.md:1416 msgid "" "The Flower server is now fully task-agnostic, all remaining instances of " "task-specific metrics (such as `accuracy`) have been replaced by custom " @@ -22992,7 +23925,7 @@ msgstr "" " À partir de cette version, les métriques personnalisées remplacent les " "métriques spécifiques à une tâche sur le serveur." -#: ../../source/ref-changelog.md:1307 +#: ../../source/ref-changelog.md:1418 #, fuzzy msgid "" "Custom metric dictionaries are now used in two user-facing APIs: they are" @@ -23010,7 +23943,7 @@ msgstr "" "stratégies peuvent même renvoyer des dictionnaires de métriques " "*agrégées* pour que le serveur puisse en garder la trace." -#: ../../source/ref-changelog.md:1309 +#: ../../source/ref-changelog.md:1420 #, fuzzy msgid "" "Strategy implementations should migrate their `aggregate_fit` and " @@ -23024,7 +23957,7 @@ msgstr "" "d'évaluation côté serveur doivent migrer de `return loss, accuracy` à " "`return loss, {\"accuracy\" : accuracy}`." -#: ../../source/ref-changelog.md:1311 +#: ../../source/ref-changelog.md:1422 msgid "" "Flower 0.15-style return types are deprecated (but still supported), " "compatibility will be removed in a future release." @@ -23033,7 +23966,7 @@ msgstr "" "pris en charge), la compatibilité sera supprimée dans une prochaine " "version." -#: ../../source/ref-changelog.md:1313 +#: ../../source/ref-changelog.md:1424 msgid "" "**Migration warnings for deprecated functionality** " "([#690](https://github.com/adap/flower/pull/690))" @@ -23041,7 +23974,7 @@ msgstr "" "**Avertissements de migration pour les fonctionnalités obsolètes** " "([#690](https://github.com/adap/flower/pull/690))" -#: ../../source/ref-changelog.md:1315 +#: ../../source/ref-changelog.md:1426 msgid "" "Earlier versions of Flower were often migrated to new APIs, while " "maintaining compatibility with legacy APIs. This release introduces " @@ -23057,7 +23990,7 @@ msgstr "" "vers des API plus récentes, facilitant ainsi la transition d'une version " "à l'autre." -#: ../../source/ref-changelog.md:1317 +#: ../../source/ref-changelog.md:1428 msgid "" "Improved docs and docstrings " "([#691](https://github.com/adap/flower/pull/691) " @@ -23069,11 +24002,11 @@ msgstr "" "[#692](https://github.com/adap/flower/pull/692) " "[#713](https://github.com/adap/flower/pull/713))" -#: ../../source/ref-changelog.md:1319 +#: ../../source/ref-changelog.md:1430 msgid "MXNet example and documentation" msgstr "Exemple et documentation MXNet" -#: ../../source/ref-changelog.md:1321 +#: ../../source/ref-changelog.md:1432 msgid "" "FedBN implementation in example PyTorch: From Centralized To Federated " "([#696](https://github.com/adap/flower/pull/696) " @@ -23085,7 +24018,7 @@ msgstr "" "[#702](https://github.com/adap/flower/pull/702) " "[#705](https://github.com/adap/flower/pull/705))" -#: ../../source/ref-changelog.md:1325 +#: ../../source/ref-changelog.md:1436 msgid "" "**Serialization-agnostic server** " "([#721](https://github.com/adap/flower/pull/721))" @@ -23093,7 +24026,7 @@ msgstr "" "**Serveur agnostique de sérialisation** " "([#721](https://github.com/adap/flower/pull/721))" -#: ../../source/ref-changelog.md:1327 +#: ../../source/ref-changelog.md:1438 msgid "" "The Flower server is now fully serialization-agnostic. Prior usage of " "class `Weights` (which represents parameters as deserialized NumPy " @@ -23113,7 +24046,7 @@ msgstr "" "d'octets doivent être interprétés (par exemple, pour la " "sérialisation/désérialisation)." -#: ../../source/ref-changelog.md:1329 +#: ../../source/ref-changelog.md:1440 msgid "" "Built-in strategies implement this approach by handling serialization and" " deserialization to/from `Weights` internally. Custom/3rd-party Strategy " @@ -23130,7 +24063,7 @@ msgstr "" "[#721](https://github.com/adap/flower/pull/721) pour voir comment les " "stratégies peuvent facilement migrer vers le nouveau format." -#: ../../source/ref-changelog.md:1331 +#: ../../source/ref-changelog.md:1442 msgid "" "Deprecated `flwr.server.Server.evaluate`, use " "`flwr.server.Server.evaluate_round` instead " @@ -23140,11 +24073,11 @@ msgstr "" "`flwr.server.Server.evaluate_round` à la place " "([#717](https://github.com/adap/flower/pull/717))" -#: ../../source/ref-changelog.md:1333 +#: ../../source/ref-changelog.md:1444 msgid "v0.15.0 (2021-03-12)" msgstr "v0.15.0 (2021-03-12)" -#: ../../source/ref-changelog.md:1337 +#: ../../source/ref-changelog.md:1448 msgid "" "**Server-side parameter initialization** " "([#658](https://github.com/adap/flower/pull/658))" @@ -23152,7 +24085,7 @@ msgstr "" "**Initialisation des paramètres côté serveur** " "([#658](https://github.com/adap/flower/pull/658))" -#: ../../source/ref-changelog.md:1339 +#: ../../source/ref-changelog.md:1450 msgid "" "Model parameters can now be initialized on the server-side. Server-side " "parameter initialization works via a new `Strategy` method called " @@ -23162,7 +24095,7 @@ msgstr "" "serveur. L'initialisation des paramètres côté serveur fonctionne via une " "nouvelle méthode `Strategy` appelée `initialize_parameters`." -#: ../../source/ref-changelog.md:1341 +#: ../../source/ref-changelog.md:1452 msgid "" "Built-in strategies support a new constructor argument called " "`initial_parameters` to set the initial parameters. Built-in strategies " @@ -23174,7 +24107,7 @@ msgstr "" "initiaux. Les stratégies intégrées fourniront ces paramètres initiaux au " "serveur au démarrage et les supprimeront ensuite pour libérer la mémoire." -#: ../../source/ref-changelog.md:1360 +#: ../../source/ref-changelog.md:1471 msgid "" "If no initial parameters are provided to the strategy, the server will " "continue to use the current behaviour (namely, it will ask one of the " @@ -23186,7 +24119,7 @@ msgstr "" "l'un des clients connectés ses paramètres et les utilisera comme " "paramètres globaux initiaux)." -#: ../../source/ref-changelog.md:1364 +#: ../../source/ref-changelog.md:1475 msgid "" "Deprecate `flwr.server.strategy.DefaultStrategy` (migrate to " "`flwr.server.strategy.FedAvg`, which is equivalent)" @@ -23194,11 +24127,11 @@ msgstr "" "Déclasser `flwr.server.strategy.DefaultStrategy` (migrer vers " "`flwr.server.strategy.FedAvg`, qui est équivalent)" -#: ../../source/ref-changelog.md:1366 +#: ../../source/ref-changelog.md:1477 msgid "v0.14.0 (2021-02-18)" msgstr "v0.14.0 (2021-02-18)" -#: ../../source/ref-changelog.md:1370 +#: ../../source/ref-changelog.md:1481 msgid "" "**Generalized** `Client.fit` **and** `Client.evaluate` **return values** " "([#610](https://github.com/adap/flower/pull/610) " @@ -23210,7 +24143,7 @@ msgstr "" "[#572](https://github.com/adap/flower/pull/572) " "[#633](https://github.com/adap/flower/pull/633))" -#: ../../source/ref-changelog.md:1372 +#: ../../source/ref-changelog.md:1483 msgid "" "Clients can now return an additional dictionary mapping `str` keys to " "values of the following types: `bool`, `bytes`, `float`, `int`, `str`. " @@ -23223,7 +24156,7 @@ msgstr "" "valeurs presque arbitraires de `fit`/`evaluate` et les utiliser du côté " "du serveur !" -#: ../../source/ref-changelog.md:1374 +#: ../../source/ref-changelog.md:1485 msgid "" "This improvement also allowed for more consistent return types between " "`fit` and `evaluate`: `evaluate` should now return a tuple `(float, int, " @@ -23236,7 +24169,7 @@ msgstr "" "d'exemples, et un dictionnaire contenant des valeurs arbitraires " "spécifiques au problème comme la précision." -#: ../../source/ref-changelog.md:1376 +#: ../../source/ref-changelog.md:1487 msgid "" "In case you wondered: this feature is compatible with existing projects, " "the additional dictionary return value is optional. New code should " @@ -23253,7 +24186,7 @@ msgstr "" "Scalar]`, `evaluate` : `float, int, Dict[str, Scalar]`). Voir l'exemple " "ci-dessous pour plus de détails." -#: ../../source/ref-changelog.md:1378 +#: ../../source/ref-changelog.md:1489 msgid "" "*Code example:* note the additional dictionary return values in both " "`FlwrClient.fit` and `FlwrClient.evaluate`:" @@ -23261,7 +24194,7 @@ msgstr "" "*Exemple de code:* note les valeurs de retour du dictionnaire " "supplémentaires dans `FlwrClient.fit` et `FlwrClient.evaluate` :" -#: ../../source/ref-changelog.md:1393 +#: ../../source/ref-changelog.md:1504 msgid "" "**Generalized** `config` **argument in** `Client.fit` **and** " "`Client.evaluate` ([#595](https://github.com/adap/flower/pull/595))" @@ -23269,7 +24202,7 @@ msgstr "" "**Généralisé** `config` **argument dans** `Client.fit` **et** " "`Client.evaluate` ([#595](https://github.com/adap/flower/pull/595))" -#: ../../source/ref-changelog.md:1395 +#: ../../source/ref-changelog.md:1506 msgid "" "The `config` argument used to be of type `Dict[str, str]`, which means " "that dictionary values were expected to be strings. The new release " @@ -23281,7 +24214,7 @@ msgstr "" "nouvelle version généralise cela pour permettre les valeurs des types " "suivants : `bool`, `bytes`, `float`, `int`, `str`." -#: ../../source/ref-changelog.md:1397 +#: ../../source/ref-changelog.md:1508 msgid "" "This means one can now pass almost arbitrary values to `fit`/`evaluate` " "using the `config` dictionary. Yay, no more `str(epochs)` on the server-" @@ -23292,7 +24225,7 @@ msgstr "" "Yay, plus de `str(epochs)` du côté serveur et `int(config[\"epochs\"])` " "du côté client !" -#: ../../source/ref-changelog.md:1399 +#: ../../source/ref-changelog.md:1510 msgid "" "*Code example:* note that the `config` dictionary now contains non-`str` " "values in both `Client.fit` and `Client.evaluate`:" @@ -23300,11 +24233,11 @@ msgstr "" "*Exemple de code:* Notez que le dictionnaire `config` contient maintenant" " des valeurs autres que `str` dans `Client.fit` et `Client.evaluate` :" -#: ../../source/ref-changelog.md:1416 +#: ../../source/ref-changelog.md:1527 msgid "v0.13.0 (2021-01-08)" msgstr "v0.13.0 (2021-01-08)" -#: ../../source/ref-changelog.md:1420 +#: ../../source/ref-changelog.md:1531 msgid "" "New example: PyTorch From Centralized To Federated " "([#549](https://github.com/adap/flower/pull/549))" @@ -23312,21 +24245,21 @@ msgstr "" "Nouvel exemple : PyTorch de centralisé à fédéré " "([#549](https://github.com/adap/flower/pull/549))" -#: ../../source/ref-changelog.md:1421 +#: ../../source/ref-changelog.md:1532 msgid "Improved documentation" msgstr "Amélioration de la documentation" -#: ../../source/ref-changelog.md:1422 +#: ../../source/ref-changelog.md:1533 msgid "New documentation theme ([#551](https://github.com/adap/flower/pull/551))" msgstr "" "Nouveau thème de documentation " "([#551](https://github.com/adap/flower/pull/551))" -#: ../../source/ref-changelog.md:1423 +#: ../../source/ref-changelog.md:1534 msgid "New API reference ([#554](https://github.com/adap/flower/pull/554))" msgstr "Nouvelle référence API ([#554](https://github.com/adap/flower/pull/554))" -#: ../../source/ref-changelog.md:1424 +#: ../../source/ref-changelog.md:1535 msgid "" "Updated examples documentation " "([#549](https://github.com/adap/flower/pull/549))" @@ -23334,7 +24267,7 @@ msgstr "" "Mise à jour de la documentation des exemples " "([#549](https://github.com/adap/flower/pull/549))" -#: ../../source/ref-changelog.md:1425 +#: ../../source/ref-changelog.md:1536 msgid "" "Removed obsolete documentation " "([#548](https://github.com/adap/flower/pull/548))" @@ -23342,11 +24275,11 @@ msgstr "" "Suppression de la documentation obsolète " "([#548](https://github.com/adap/flower/pull/548))" -#: ../../source/ref-changelog.md:1427 +#: ../../source/ref-changelog.md:1538 msgid "Bugfix:" msgstr "Correction de bogues :" -#: ../../source/ref-changelog.md:1429 +#: ../../source/ref-changelog.md:1540 msgid "" "`Server.fit` does not disconnect clients when finished, disconnecting the" " clients is now handled in `flwr.server.start_server` " @@ -23359,15 +24292,15 @@ msgstr "" "([#553](https://github.com/adap/flower/pull/553) " "[#540](https://github.com/adap/flower/issues/540))." -#: ../../source/ref-changelog.md:1431 +#: ../../source/ref-changelog.md:1542 msgid "v0.12.0 (2020-12-07)" msgstr "v0.12.0 (2020-12-07)" -#: ../../source/ref-changelog.md:1433 ../../source/ref-changelog.md:1449 +#: ../../source/ref-changelog.md:1544 ../../source/ref-changelog.md:1560 msgid "Important changes:" msgstr "Changements importants :" -#: ../../source/ref-changelog.md:1435 +#: ../../source/ref-changelog.md:1546 msgid "" "Added an example for embedded devices " "([#507](https://github.com/adap/flower/pull/507))" @@ -23375,7 +24308,7 @@ msgstr "" "Ajout d'un exemple pour les périphériques embarqués " "([#507](https://github.com/adap/flower/pull/507))" -#: ../../source/ref-changelog.md:1436 +#: ../../source/ref-changelog.md:1547 msgid "" "Added a new NumPyClient (in addition to the existing KerasClient) " "([#504](https://github.com/adap/flower/pull/504) " @@ -23385,7 +24318,7 @@ msgstr "" "([#504](https://github.com/adap/flower/pull/504) " "[#508](https://github.com/adap/flower/pull/508))" -#: ../../source/ref-changelog.md:1437 +#: ../../source/ref-changelog.md:1548 msgid "" "Deprecated `flwr_example` package and started to migrate examples into " "the top-level `examples` directory " @@ -23397,15 +24330,15 @@ msgstr "" "([#494](https://github.com/adap/flower/pull/494) " "[#512](https://github.com/adap/flower/pull/512))" -#: ../../source/ref-changelog.md:1439 +#: ../../source/ref-changelog.md:1550 msgid "v0.11.0 (2020-11-30)" msgstr "v0.11.0 (2020-11-30)" -#: ../../source/ref-changelog.md:1441 +#: ../../source/ref-changelog.md:1552 msgid "Incompatible changes:" msgstr "Changements incompatibles :" -#: ../../source/ref-changelog.md:1443 +#: ../../source/ref-changelog.md:1554 msgid "" "Renamed strategy methods " "([#486](https://github.com/adap/flower/pull/486)) to unify the naming of " @@ -23422,23 +24355,23 @@ msgstr "" "quatre méthodes de Stratégie. Pour migrer, renommez les méthodes de " "`Strategy` suivantes en conséquence :" -#: ../../source/ref-changelog.md:1444 +#: ../../source/ref-changelog.md:1555 msgid "`on_configure_evaluate` => `configure_evaluate`" msgstr "`on_configure_evaluate` => `configure_evaluate`" -#: ../../source/ref-changelog.md:1445 +#: ../../source/ref-changelog.md:1556 msgid "`on_aggregate_evaluate` => `aggregate_evaluate`" msgstr "`on_aggregate_evaluate` => `aggregate_evaluate`" -#: ../../source/ref-changelog.md:1446 +#: ../../source/ref-changelog.md:1557 msgid "`on_configure_fit` => `configure_fit`" msgstr "`on_configure_fit` => `configure_fit`" -#: ../../source/ref-changelog.md:1447 +#: ../../source/ref-changelog.md:1558 msgid "`on_aggregate_fit` => `aggregate_fit`" msgstr "`on_aggregate_fit` => `aggregate_fit`" -#: ../../source/ref-changelog.md:1451 +#: ../../source/ref-changelog.md:1562 msgid "" "Deprecated `DefaultStrategy` " "([#479](https://github.com/adap/flower/pull/479)). To migrate use " @@ -23448,7 +24381,7 @@ msgstr "" "([#479](https://github.com/adap/flower/pull/479)). Pour migrer, utilisez " "`FedAvg` à la place." -#: ../../source/ref-changelog.md:1452 +#: ../../source/ref-changelog.md:1563 msgid "" "Simplified examples and baselines " "([#484](https://github.com/adap/flower/pull/484))." @@ -23456,7 +24389,7 @@ msgstr "" "Exemples simplifiés et lignes de base " "([#484](https://github.com/adap/flower/pull/484))." -#: ../../source/ref-changelog.md:1453 +#: ../../source/ref-changelog.md:1564 msgid "" "Removed presently unused `on_conclude_round` from strategy interface " "([#483](https://github.com/adap/flower/pull/483))." @@ -23464,7 +24397,7 @@ msgstr "" "Suppression de `on_conclude_round` actuellement inutilisé de l'interface " "de stratégie ([#483](https://github.com/adap/flower/pull/483))." -#: ../../source/ref-changelog.md:1454 +#: ../../source/ref-changelog.md:1565 msgid "" "Set minimal Python version to 3.6.1 instead of 3.6.9 " "([#471](https://github.com/adap/flower/pull/471))." @@ -23472,7 +24405,7 @@ msgstr "" "Fixe la version minimale de Python à 3.6.1 au lieu de 3.6.9 " "([#471](https://github.com/adap/flower/pull/471))." -#: ../../source/ref-changelog.md:1455 +#: ../../source/ref-changelog.md:1566 msgid "" "Improved `Strategy` docstrings " "([#470](https://github.com/adap/flower/pull/470))." @@ -27854,7 +28787,7 @@ msgstr "" "chose d'autre, comme la régression linéaire classique." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:41 -msgid "|c9344c3dfee24383908fabaac40a8504|" +msgid "|cf5fe148406b44b9a8b842fb01b5a7ea|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:109 @@ -27873,7 +28806,7 @@ msgstr "" " Go." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:53 -msgid "|c10cd8f2177641bd8091c7b76d318ff9|" +msgid "|ba25c91426d64cc1ae2d3febc5715b35|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:111 @@ -27905,7 +28838,7 @@ msgstr "" "chanson." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:67 -msgid "|3c59c315e67945ea8b839381c5deb6c2|" +msgid "|fca67f83aaab4389aa9ebb4d9c5cd75e|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:113 @@ -27926,7 +28859,7 @@ msgstr "" " données pour la même tâche." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:79 -msgid "|eadf87e1e20549789512f7aa9199fcff|" +msgid "|6f2e8f95c95443379b0df00ca9824654|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:115 @@ -27948,7 +28881,7 @@ msgstr "" "cloud." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:91 -msgid "|66ce8f21aeb443fca1fc88f727458417|" +msgid "|c0ab3a1a733d4dbc9e1677aa608e8038|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:117 @@ -27969,7 +28902,7 @@ msgstr "" "appuyés." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:103 -msgid "|f5768015a1014396b4761bb6cb3677f5|" +msgid "|8f0491bde07341ab9f2e23d50593c0be|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:119 @@ -27995,7 +28928,7 @@ msgstr "" " sur un serveur centralisé." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:138 -msgid "|a746aa3f56064617a4e00f4c6a0cb140|" +msgid "|762fc099899943688361562252c5e600|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:173 @@ -28014,7 +28947,7 @@ msgstr "" "suffisantes pour former un bon modèle." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:150 -msgid "|cf8f676dd3534a44995c1b40910fd030|" +msgid "|f62d365fd0ae405b975d3ca01e7183fd|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:175 @@ -28245,7 +29178,7 @@ msgstr "" "partir d'un point de contrôle précédemment sauvegardé." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:210 -msgid "|d1c0e3a4c9dc4bfd88ee6f1fe626edaf|" +msgid "|2c78fc1816b143289f4d909388f92a80|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:307 @@ -28280,7 +29213,7 @@ msgstr "" "rendements décroissants." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:225 -msgid "|1d8d6298a4014ec3a717135bcc7a94f9|" +msgid "|4230725aeebe497d8ad84a3efc2a912b|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:309 @@ -28313,7 +29246,7 @@ msgstr "" "données locales, ou même de quelques étapes (mini-batchs)." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:240 -msgid "|e3ea79200ff44d459358b9f4713e582b|" +msgid "|64b66a88417240eabe52f5cc55d89d0b|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:311 @@ -28344,7 +29277,7 @@ msgstr "" " l'entraînement local." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:255 -msgid "|3e1061718a4a49d485764d30a4bfecdd|" +msgid "|726c8eca58bc4f859b06aa24a587b253|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:313 @@ -28404,7 +29337,7 @@ msgstr "" "times as much as each of the 100 examples." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:273 -msgid "|7750e597d1ea4e319f7e0a40539bf214|" +msgid "|f9d869e4b33c4093b29cf24ed8dff80a|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:315 @@ -28548,7 +29481,7 @@ msgstr "" "quel cadre de ML et n'importe quel langage de programmation." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:334 -msgid "|dd4434075f374e99ac07f509a883778f|" +msgid "|4ab50bc01a9f426a91a2c0cbc3ab7a84|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:340 @@ -28972,6 +29905,9 @@ msgstr "" #~ " is provided, then `start_server` will " #~ "create one." #~ msgstr "" +#~ "Déclasser `flwr.server.strategy.DefaultStrategy` (migrer" +#~ " vers `flwr.server.strategy.FedAvg`, qui est " +#~ "équivalent)" #~ msgid "" #~ "Currently supported values are `num_rounds`" @@ -28985,6 +29921,9 @@ msgstr "" #~ "strategy is provided, then `start_server` " #~ "will use `flwr.server.strategy.FedAvg`." #~ msgstr "" +#~ "Déclasser `flwr.server.strategy.DefaultStrategy` (migrer" +#~ " vers `flwr.server.strategy.FedAvg`, qui est " +#~ "équivalent)" #~ msgid "" #~ "An implementation of the abstract base" @@ -28993,6 +29932,9 @@ msgstr "" #~ "`start_simulation` will use " #~ "`flwr.server.client_manager.SimpleClientManager`." #~ msgstr "" +#~ "Déclasser `flwr.server.strategy.DefaultStrategy` (migrer" +#~ " vers `flwr.server.strategy.FedAvg`, qui est " +#~ "équivalent)" #~ msgid "" #~ "Optional dictionary containing arguments for" @@ -36194,7 +37136,7 @@ msgstr "" #~ msgstr "" #~ msgid "run\\_client\\_app" -#~ msgstr "" +#~ msgstr "client" #~ msgid "run\\_supernode" #~ msgstr "flower-superlink" @@ -36220,7 +37162,7 @@ msgstr "" #~ msgstr "" #~ msgid "run\\_server\\_app" -#~ msgstr "" +#~ msgstr "serveur" #~ msgid "run\\_superlink" #~ msgstr "flower-superlink" @@ -41214,3 +42156,642 @@ msgstr "" #~ msgid "|55472eef61274ba1b739408607e109df|" #~ msgstr "" +#~ msgid "" +#~ "Run ``python3 src/py/flwr_tool/update_changelog.py " +#~ "`` in order to add every" +#~ " new change to the changelog (feel" +#~ " free to make manual changes to " +#~ "the changelog afterwards until it looks" +#~ " good)." +#~ msgstr "" + +#~ msgid "" +#~ "When operating in a production " +#~ "environment, it is strongly recommended " +#~ "to enable Transport Layer Security (TLS)" +#~ " for each Flower Component to ensure" +#~ " secure communication." +#~ msgstr "" + +#~ msgid "" +#~ "To enable TLS, you will need a " +#~ "PEM-encoded root certificate, a PEM-" +#~ "encoded private key and a PEM-" +#~ "encoded certificate chain." +#~ msgstr "" + +#~ msgid "" +#~ "Assuming all files we need are in" +#~ " the local ``certificates`` directory, we" +#~ " can use the flag ``--volume`` to " +#~ "mount the local directory into the " +#~ "``/app/certificates/`` directory of the " +#~ "container:" +#~ msgstr "" + +#~ msgid "" +#~ "``--volume ./certificates/:/app/certificates/:ro``: Mount" +#~ " the ``certificates`` directory in" +#~ msgstr "" + +#~ msgid "" +#~ "the current working directory of the " +#~ "host machine as a read-only volume" +#~ " at the" +#~ msgstr "" + +#~ msgid "``/app/certificates`` directory inside the container." +#~ msgstr "" + +#~ msgid "" +#~ "Assuming that the ``ca.crt`` certificate " +#~ "already exists locally, we can use " +#~ "the flag ``--volume`` to mount the " +#~ "local certificate into the container's " +#~ "``/app/`` directory." +#~ msgstr "" + +#~ msgid "" +#~ "``--volume ./ca.crt:/app/ca.crt/:ro``: Mount the " +#~ "``ca.crt`` file from the" +#~ msgstr "" + +#~ msgid "" +#~ "current working directory of the host" +#~ " machine as a read-only volume " +#~ "at the ``/app/ca.crt``" +#~ msgstr "" + +#~ msgid "SuperExec" +#~ msgstr "" + +#~ msgid "" +#~ "Assuming all files we need are in" +#~ " the local ``certificates`` directory where" +#~ " the SuperExec will be executed from," +#~ " we can use the flag ``--volume`` " +#~ "to mount the local directory into " +#~ "the ``/app/certificates/`` directory of the" +#~ " container:" +#~ msgstr "" + +#~ msgid "" +#~ ":substitution-code:`flwr/superexec:|stable_flwr_version|`: " +#~ "The name of the image to be " +#~ "run and the specific" +#~ msgstr "" + +#~ msgid "SuperExec." +#~ msgstr "" + +#~ msgid "" +#~ "``--ssl-certfile certificates/server.pem``: Specify" +#~ " the location of the SuperExec's" +#~ msgstr "" + +#~ msgid "" +#~ "The ``certificates/server.pem`` file is used" +#~ " to identify the SuperExec and to " +#~ "encrypt the" +#~ msgstr "" + +#~ msgid "" +#~ "``--ssl-keyfile certificates/server.key``: Specify" +#~ " the location of the SuperExec's" +#~ msgstr "" + +#~ msgid "" +#~ "``--executor-config root-" +#~ "certificates=\\\"certificates/superlink_ca.crt\\\"``: Specify" +#~ " the" +#~ msgstr "" + +#~ msgid "" +#~ "location of the CA certificate file " +#~ "inside the container that the SuperExec" +#~ " executor" +#~ msgstr "" + +#~ msgid "should use to verify the SuperLink's identity." +#~ msgstr "" + +#~ msgid "" +#~ "In this mode, the ClientApp is " +#~ "executed as a subprocess within the " +#~ "SuperNode Docker container, rather than " +#~ "running in a separate container. This" +#~ " approach reduces the number of " +#~ "running containers, which can be " +#~ "beneficial for environments with limited " +#~ "resources. However, it also means that" +#~ " the ClientApp is no longer isolated" +#~ " from the SuperNode, which may " +#~ "introduce additional security concerns." +#~ msgstr "" + +#~ msgid "" +#~ "Before running the ClientApp as a " +#~ "subprocess, ensure that the FAB " +#~ "dependencies have been installed in the" +#~ " SuperNode images. This can be done" +#~ " by extending the SuperNode image:" +#~ msgstr "" + +#~ msgid "Dockerfile.supernode" +#~ msgstr "Serveur de Flower" + +#~ msgid "" +#~ "Next, build the SuperNode Docker image" +#~ " by running the following command in" +#~ " the directory where Dockerfile is " +#~ "located:" +#~ msgstr "" + +#~ msgid "Run the ClientApp as a Subprocess" +#~ msgstr "" + +#~ msgid "" +#~ "Start the SuperNode with the flag " +#~ "``--isolation subprocess``, which tells the" +#~ " SuperNode to execute the ClientApp " +#~ "as a subprocess:" +#~ msgstr "" + +#~ msgid "Run the example and follow the logs of the ServerApp:" +#~ msgstr "" + +#~ msgid "" +#~ "That is all it takes! You can " +#~ "monitor the progress of the run " +#~ "through the logs of the SuperExec." +#~ msgstr "" + +#~ msgid "" +#~ "You will learn how to run the " +#~ "Flower client and server components on" +#~ " two separate machines, with Flower " +#~ "configured to use TLS encryption and " +#~ "persist SuperLink state across restarts. " +#~ "A server consists of a SuperLink " +#~ "and ``SuperExec``. For more details " +#~ "about the Flower architecture, refer to" +#~ " the :doc:`../explanation-flower-architecture`" +#~ " explainer page." +#~ msgstr "" + +#~ msgid "" +#~ "First, set the environment variables " +#~ "``SUPERLINK_IP`` and ``SUPEREXEC_IP`` with the" +#~ " IP address from the remote machine." +#~ " For example, if the IP is " +#~ "``192.168.2.33``, execute:" +#~ msgstr "" + +#~ msgid "" +#~ "Log into the remote machine using " +#~ "``ssh`` and run the following command" +#~ " to start the SuperLink and SuperExec" +#~ " services:" +#~ msgstr "" + +#~ msgid "" +#~ "Specify the remote SuperExec IP " +#~ "addresses and the path to the root" +#~ " certificate in the ``[tool.flwr.federations" +#~ ".remote-superexec]`` table in the " +#~ "``pyproject.toml`` file. Here, we have " +#~ "named our remote federation ``remote-" +#~ "superexec``:" +#~ msgstr "" + +#~ msgid "Run the project and follow the ServerApp logs:" +#~ msgstr "" + +#~ msgid "" +#~ "``-p 9091:9091 -p 9092:9092``: Map port" +#~ " ``9091`` and ``9092`` of the " +#~ "container to the same port of" +#~ msgstr "" + +#~ msgid "the host machine, allowing other services to access the Driver API on" +#~ msgstr "" + +#~ msgid "" +#~ "``http://localhost:9091`` and the Fleet API" +#~ " on ``http://localhost:9092``." +#~ msgstr "" + +#~ msgid "" +#~ "``flwr/supernode:|stable_flwr_version|``: This is " +#~ "the name of the image to be " +#~ "run and the specific tag" +#~ msgstr "" + +#~ msgid "" +#~ "``--supernode-address 0.0.0.0:9094``: Set the" +#~ " address and port number that the " +#~ "SuperNode" +#~ msgstr "" + +#~ msgid "is listening on." +#~ msgstr "" + +#~ msgid "Step 4: Start the ClientApp" +#~ msgstr "" + +#~ msgid "" +#~ "The ClientApp Docker image comes with" +#~ " a pre-installed version of Flower" +#~ " and serves as a base for " +#~ "building your own ClientApp image. In" +#~ " order to install the FAB " +#~ "dependencies, you will need to create" +#~ " a Dockerfile that extends the " +#~ "ClientApp image and installs the " +#~ "required dependencies." +#~ msgstr "" + +#~ msgid "" +#~ "Create a ClientApp Dockerfile called " +#~ "``Dockerfile.clientapp`` and paste the " +#~ "following code into it:" +#~ msgstr "" + +#~ msgid "Dockerfile.clientapp" +#~ msgstr "Flower ClientApp." + +#~ msgid "" +#~ "to be built from is the " +#~ "``flwr/clientapp image``, version :substitution-" +#~ "code:`|stable_flwr_version|`." +#~ msgstr "" + +#~ msgid "" +#~ "``--supernode supernode-1:9094``: Connect to " +#~ "the SuperNode's Fleet API at the " +#~ "address" +#~ msgstr "" + +#~ msgid "``supernode-1:9094``." +#~ msgstr "" + +#~ msgid "" +#~ "The procedure for building and running" +#~ " a SuperExec image is almost " +#~ "identical to the ClientApp image." +#~ msgstr "" + +#~ msgid "" +#~ "Similar to the ClientApp image, you " +#~ "will need to create a Dockerfile " +#~ "that extends the SuperExec image and " +#~ "installs the required FAB dependencies." +#~ msgstr "" + +#~ msgid "" +#~ "Create a SuperExec Dockerfile called " +#~ "``Dockerfile.superexec`` and paste the " +#~ "following code in:" +#~ msgstr "" + +#~ msgid "Dockerfile.superexec" +#~ msgstr "" + +#~ msgid "" +#~ ":substitution-code:`FROM " +#~ "flwr/superexec:|stable_flwr_version|`: This line " +#~ "specifies that the Docker image" +#~ msgstr "" + +#~ msgid "" +#~ "to be built from is the " +#~ "``flwr/superexec image``, version :substitution-" +#~ "code:`|stable_flwr_version|`." +#~ msgstr "" + +#~ msgid "" +#~ "``ENTRYPOINT [\"flower-superexec\"``: Set the" +#~ " command ``flower-superexec`` to be" +#~ msgstr "" + +#~ msgid "``\"--executor\", \"flwr.superexec.deployment:executor\"]`` Use the" +#~ msgstr "" + +#~ msgid "``flwr.superexec.deployment:executor`` executor to run the ServerApps." +#~ msgstr "" + +#~ msgid "" +#~ "Afterward, in the directory that holds" +#~ " the Dockerfile, execute this Docker " +#~ "command to build the SuperExec image:" +#~ msgstr "" + +#~ msgid "" +#~ "``-p 9093:9093``: Map port ``9093`` of" +#~ " the container to the same port " +#~ "of" +#~ msgstr "" + +#~ msgid "" +#~ "the host machine, allowing you to " +#~ "access the SuperExec API on " +#~ "``http://localhost:9093``." +#~ msgstr "" + +#~ msgid "``--name superexec``: Assign the name ``superexec`` to the container." +#~ msgstr "" + +#~ msgid "" +#~ "``flwr_superexec:0.0.1``: This is the name " +#~ "of the image to be run and " +#~ "the specific tag" +#~ msgstr "" + +#~ msgid "" +#~ "``--executor-config superlink=\\\"superlink:9091\\\"``:" +#~ " Configure the SuperExec executor to" +#~ msgstr "" + +#~ msgid "connect to the SuperLink running on port ``9091``." +#~ msgstr "" + +#~ msgid "Stop the current ClientApp containers:" +#~ msgstr "" + +#~ msgid "Launch two new ClientApp containers based on the newly built image:" +#~ msgstr "" + +#~ msgid "" +#~ "Setting the ``PROJECT_DIR`` helps Docker " +#~ "Compose locate the ``pyproject.toml`` file," +#~ " allowing it to install dependencies " +#~ "in the SuperExec and SuperNode images" +#~ " correctly." +#~ msgstr "" + +#~ msgid "" +#~ "To ensure the ``flwr`` CLI connects " +#~ "to the SuperExec, you need to " +#~ "specify the SuperExec addresses in the" +#~ " ``pyproject.toml`` file." +#~ msgstr "" + +#~ msgid "" +#~ "Run the quickstart example, monitor the" +#~ " ServerApp logs and wait for the " +#~ "summary to appear:" +#~ msgstr "" + +#~ msgid "In the SuperExec logs, you should find the ``Get weights`` line:" +#~ msgstr "" + +#~ msgid "Step 7: Add another SuperNode" +#~ msgstr "" + +#~ msgid "" +#~ "You can add more SuperNodes and " +#~ "ClientApps by duplicating their definitions" +#~ " in the ``compose.yml`` file." +#~ msgstr "" + +#~ msgid "" +#~ "Just give each new SuperNode and " +#~ "ClientApp service a unique service name" +#~ " like ``supernode-3``, ``clientapp-3``, etc." +#~ msgstr "" + +#~ msgid "In ``compose.yml``, add the following:" +#~ msgstr "" + +#~ msgid "" +#~ "If you also want to enable TLS " +#~ "for the new SuperNodes, duplicate the" +#~ " SuperNode definition for each new " +#~ "SuperNode service in the ``with-" +#~ "tls.yml`` file." +#~ msgstr "" + +#~ msgid "" +#~ "Make sure that the names of the" +#~ " services match with the one in " +#~ "the ``compose.yml`` file." +#~ msgstr "" + +#~ msgid "In ``with-tls.yml``, add the following:" +#~ msgstr "" + +#~ msgid "Comment out the lines 2-4 and uncomment the lines 5-9:" +#~ msgstr "" + +#~ msgid "" +#~ "This guide is for users who have" +#~ " already worked with Flower 0.x and" +#~ " want to upgrade to Flower 1.0. " +#~ "Newer versions of Flower (1.12+) are " +#~ "based on a new architecture (previously" +#~ " called Flower Next) and not covered" +#~ " in this guide. After upgrading " +#~ "Flower 0.x projects to Flower 1.0, " +#~ "please refer to :doc:`Upgrade to Flower" +#~ " Next ` to make your project compatible" +#~ " with the lastest version of Flower." +#~ msgstr "" + +#~ msgid "Upgrade to Flower Next" +#~ msgstr "Passe à Flower 1.0" + +#~ msgid "" +#~ "Welcome to the migration guide for " +#~ "updating Flower to Flower Next! Whether" +#~ " you're a seasoned user or just " +#~ "getting started, this guide will help" +#~ " you smoothly transition your existing " +#~ "setup to take advantage of the " +#~ "latest features and improvements in " +#~ "Flower Next, starting from version 1.8." +#~ msgstr "" + +#~ msgid "" +#~ "This guide shows how to reuse " +#~ "pre-``1.8`` Flower code with minimum " +#~ "code changes by using the *compatibility" +#~ " layer* in Flower Next. In another" +#~ " guide, we will show how to run" +#~ " Flower Next end-to-end with " +#~ "pure Flower Next APIs." +#~ msgstr "" + +#~ msgid "or if you need Flower Next with simulation:" +#~ msgstr "" + +#~ msgid "Using Poetry" +#~ msgstr "Utiliser la poésie (recommandé)" + +#~ msgid "" +#~ "Update the ``flwr`` dependency in " +#~ "``pyproject.toml`` and then reinstall (don't" +#~ " forget to delete ``poetry.lock`` via " +#~ "``rm poetry.lock`` before running ``poetry " +#~ "install``)." +#~ msgstr "" +#~ "Poetry : mettez à jour la " +#~ "dépendance ``flwr`` dans ``pyproject.toml`` " +#~ "puis réinstallez (n'oubliez pas de " +#~ "supprimer ``poetry.lock`` via ``rm " +#~ "poetry.lock`` avant d'exécuter ``poetry " +#~ "install``)." + +#~ msgid "" +#~ "Ensure you set the following version " +#~ "constraint in your ``pyproject.toml``:" +#~ msgstr "Augmente la version mineure de ``pyproject.toml`` d'une unité." + +#~ msgid "" +#~ "In Flower Next, the *infrastructure* and" +#~ " *application layers* have been decoupled." +#~ " Instead of starting a client in " +#~ "code via ``start_client()``, you create " +#~ "a |clientapp_link|_ and start it via " +#~ "the command line. Instead of starting" +#~ " a server in code via " +#~ "``start_server()``, you create a " +#~ "|serverapp_link|_ and start it via the" +#~ " command line. The long-running " +#~ "components of server and client are " +#~ "called SuperLink and SuperNode. The " +#~ "following non-breaking changes that " +#~ "require manual updates and allow you " +#~ "to run your project both in the" +#~ " traditional way and in the Flower" +#~ " Next way:" +#~ msgstr "" + +#~ msgid "" +#~ "Wrap your existing client with " +#~ "|clientapp_link|_ instead of launching it " +#~ "via |startclient_link|_. Here's an example:" +#~ msgstr "" + +#~ msgid "" +#~ "Wrap your existing strategy with " +#~ "|serverapp_link|_ instead of starting the " +#~ "server via |startserver_link|_. Here's an " +#~ "example:" +#~ msgstr "" + +#~ msgid "" +#~ "Run the ``SuperLink`` using " +#~ "|flowernext_superlink_link|_ before running, in " +#~ "sequence, |flowernext_clientapp_link|_ (2x) and " +#~ "|flowernext_serverapp_link|_. There is no need" +#~ " to execute `client.py` and `server.py` " +#~ "as Python scripts." +#~ msgstr "" + +#~ msgid "" +#~ "Here's an example to start the " +#~ "server without HTTPS (only for " +#~ "prototyping):" +#~ msgstr "" + +#~ msgid "" +#~ "Here's another example to start with " +#~ "HTTPS. Use the ``--ssl-ca-certfile``," +#~ " ``--ssl-certfile``, and ``--ssl-keyfile``" +#~ " command line options to pass paths" +#~ " to (CA certificate, server certificate," +#~ " and server private key)." +#~ msgstr "" + +#~ msgid "" +#~ "Wrap your existing client and strategy" +#~ " with |clientapp_link|_ and |serverapp_link|_," +#~ " respectively. There is no need to" +#~ " use |startsim_link|_ anymore. Here's an" +#~ " example:" +#~ msgstr "" + +#~ msgid "" +#~ "Run |flower_simulation_link|_ in CLI and " +#~ "point to the ``server_app`` / " +#~ "``client_app`` object in the code " +#~ "instead of executing the Python script." +#~ " Here's an example (assuming the " +#~ "``server_app`` and ``client_app`` objects are" +#~ " in a ``sim.py`` module):" +#~ msgstr "" + +#~ msgid "" +#~ "Set default resources for each " +#~ "|clientapp_link|_ using the ``--backend-" +#~ "config`` command line argument instead " +#~ "of setting the ``client_resources`` argument" +#~ " in |startsim_link|_. Here's an example:" +#~ msgstr "" + +#~ msgid "Simulation in a Notebook" +#~ msgstr "" + +#~ msgid "" +#~ "Run |runsim_link|_ in your notebook " +#~ "instead of |startsim_link|_. Here's an " +#~ "example:" +#~ msgstr "" + +#~ msgid "" +#~ "As we continuously enhance Flower Next" +#~ " at a rapid pace, we'll be " +#~ "periodically updating this guide. Please " +#~ "feel free to share any feedback " +#~ "with us!" +#~ msgstr "" + +#~ msgid "" +#~ "This function is deprecated since " +#~ "1.13.0. Use :code: `flwr run` to " +#~ "start a Flower simulation." +#~ msgstr "" + +#~ msgid "|c9344c3dfee24383908fabaac40a8504|" +#~ msgstr "" + +#~ msgid "|c10cd8f2177641bd8091c7b76d318ff9|" +#~ msgstr "" + +#~ msgid "|3c59c315e67945ea8b839381c5deb6c2|" +#~ msgstr "" + +#~ msgid "|eadf87e1e20549789512f7aa9199fcff|" +#~ msgstr "" + +#~ msgid "|66ce8f21aeb443fca1fc88f727458417|" +#~ msgstr "" + +#~ msgid "|f5768015a1014396b4761bb6cb3677f5|" +#~ msgstr "" + +#~ msgid "|a746aa3f56064617a4e00f4c6a0cb140|" +#~ msgstr "" + +#~ msgid "|cf8f676dd3534a44995c1b40910fd030|" +#~ msgstr "" + +#~ msgid "|d1c0e3a4c9dc4bfd88ee6f1fe626edaf|" +#~ msgstr "" + +#~ msgid "|1d8d6298a4014ec3a717135bcc7a94f9|" +#~ msgstr "" + +#~ msgid "|e3ea79200ff44d459358b9f4713e582b|" +#~ msgstr "" + +#~ msgid "|3e1061718a4a49d485764d30a4bfecdd|" +#~ msgstr "" + +#~ msgid "|7750e597d1ea4e319f7e0a40539bf214|" +#~ msgstr "" + +#~ msgid "|dd4434075f374e99ac07f509a883778f|" +#~ msgstr "" + diff --git a/doc/locales/ko/LC_MESSAGES/framework-docs.po b/doc/locales/ko/LC_MESSAGES/framework-docs.po index e299a694b1a5..3d22083683a2 100644 --- a/doc/locales/ko/LC_MESSAGES/framework-docs.po +++ b/doc/locales/ko/LC_MESSAGES/framework-docs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Flower main\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-20 09:07+0100\n" +"POT-Creation-Date: 2024-11-22 08:46+0000\n" "PO-Revision-Date: 2024-08-23 13:09+0000\n" "Last-Translator: Seulki Yun \n" "Language: ko\n" @@ -956,10 +956,11 @@ msgstr "" "순서대로 수행되어야 합니다:" #: ../../source/contributor-how-to-release-flower.rst:13 +#, fuzzy msgid "" -"Run ``python3 src/py/flwr_tool/update_changelog.py `` in " -"order to add every new change to the changelog (feel free to make manual " -"changes to the changelog afterwards until it looks good)." +"Run ``python3 ./dev/update_changelog.py `` in order to add" +" every new change to the changelog (feel free to make manual changes to " +"the changelog afterwards until it looks good)." msgstr "" "모든 새로운 변경 사항을 변경 로그에 추가하기 위해``python3 " "src/py/flwr_tool/update_changelog.py ``을 실행합니다 (변경 로그가 " @@ -2180,7 +2181,6 @@ msgid "Get started as a contributor" msgstr "기여자로 시작하기" #: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:5 -#: ../../source/docker/run-as-subprocess.rst:11 #: ../../source/docker/run-quickstart-examples-docker-compose.rst:16 #: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:18 #: ../../source/docker/tutorial-quickstart-docker-compose.rst:13 @@ -2454,18 +2454,11 @@ msgstr "보안 연결을 위한 SSL 사용 설정" #: ../../source/docker/enable-tls.rst:4 msgid "" "When operating in a production environment, it is strongly recommended to" -" enable Transport Layer Security (TLS) for each Flower Component to " +" enable Transport Layer Security (TLS) for each Flower component to " "ensure secure communication." msgstr "" -#: ../../source/docker/enable-tls.rst:7 -#, fuzzy -msgid "" -"To enable TLS, you will need a PEM-encoded root certificate, a PEM-" -"encoded private key and a PEM-encoded certificate chain." -msgstr "SSL을 사용하려면 PEM으로 인코딩된 루트 인증서, PEM으로 인코딩된 개인 키 및 PEM으로 인코딩된 인증서 체인이 필요합니다." - -#: ../../source/docker/enable-tls.rst:12 +#: ../../source/docker/enable-tls.rst:9 msgid "" "For testing purposes, you can generate your own self-signed certificates." " The `Enable SSL connections `__ 페이지에 프로세스를 안내하는 섹션이 있습니다." -#: ../../source/docker/enable-tls.rst:17 +#: ../../source/docker/enable-tls.rst:16 #, fuzzy msgid "" "Because Flower containers, by default, run with a non-root user ``app``, " @@ -2487,7 +2480,7 @@ msgstr "" "``49999``에 대한 적절한 권한이 있어야 합니다. 예를 들어, ``certificates/`` 디렉터리에 있는 모든 파일의 " "사용자 ID를 변경하려면 ``sudo chown -R 49999:49999 certificates/*``를 실행하면 됩니다." -#: ../../source/docker/enable-tls.rst:20 +#: ../../source/docker/enable-tls.rst:19 #, fuzzy msgid "" "For example, to change the user ID of all files in the ``certificates/`` " @@ -2497,63 +2490,94 @@ msgstr "" "``49999``에 대한 적절한 권한이 있어야 합니다. 예를 들어, ``certificates/`` 디렉터리에 있는 모든 파일의 " "사용자 ID를 변경하려면 ``sudo chown -R 49999:49999 certificates/*``를 실행하면 됩니다." -#: ../../source/docker/enable-tls.rst:23 +#: ../../source/docker/enable-tls.rst:22 msgid "" "If you later want to delete the directory, you can change the user ID " "back to the current user ID by running ``sudo chown -R $USER:$(id -gn) " "certificates``." msgstr "" -#: ../../source/docker/enable-tls.rst:27 +#: ../../source/docker/enable-tls.rst +msgid "Isolation Mode ``subprocess``" +msgstr "" + +#: ../../source/docker/enable-tls.rst:29 +msgid "" +"By default, the ServerApp is executed as a subprocess within the " +"SuperLink Docker container, and the ClientApp is run as a subprocess " +"within the SuperNode Docker container. You can learn more about the " +"different process modes here: :doc:`run-as-subprocess`." +msgstr "" + +#: ../../source/docker/enable-tls.rst:34 ../../source/docker/enable-tls.rst:119 +#, fuzzy +msgid "" +"To enable TLS between the SuperLink and SuperNode, as well as between the" +" SuperLink and the ``flwr`` CLI, you will need a PEM-encoded root " +"certificate, private key, and certificate chain." +msgstr "SSL을 사용하려면 PEM으로 인코딩된 루트 인증서, PEM으로 인코딩된 개인 키 및 PEM으로 인코딩된 인증서 체인이 필요합니다." + +#: ../../source/docker/enable-tls.rst:37 #, fuzzy -msgid "SuperLink" +msgid "**SuperLink**" msgstr "flower 초연결" -#: ../../source/docker/enable-tls.rst:29 +#: ../../source/docker/enable-tls.rst:39 +#, fuzzy msgid "" -"Assuming all files we need are in the local ``certificates`` directory, " -"we can use the flag ``--volume`` to mount the local directory into the " -"``/app/certificates/`` directory of the container:" +"Assuming all files we need are in the local ``superlink-certificates`` " +"directory, we can use the flag ``--volume`` to mount the local " +"directories into the SuperLink container:" msgstr "" +"인증서가 이미 로컬에 존재한다고 가정하면, ``--volume`` 플래그를 사용하여 로컬 인증서를 컨테이너의 ``/app/`` " +"디렉터리에 마운트할 수 있습니다. 이렇게 하면 SuperNode가 컨테이너 내의 인증서에 액세스할 수 있습니다. 컨테이너를 시작할 " +"때 ``--root-certificates`` 플래그를 사용하세요." #: ../../source/docker/enable-tls.rst msgid "Understanding the command" msgstr "" -#: ../../source/docker/enable-tls.rst:45 ../../source/docker/enable-tls.rst:92 -#: ../../source/docker/enable-tls.rst:125 -#: ../../source/docker/tutorial-quickstart-docker.rst:65 -#: ../../source/docker/tutorial-quickstart-docker.rst:102 -#: ../../source/docker/tutorial-quickstart-docker.rst:216 -#: ../../source/docker/tutorial-quickstart-docker.rst:304 +#: ../../source/docker/enable-tls.rst:54 ../../source/docker/enable-tls.rst:96 +#: ../../source/docker/enable-tls.rst:140 +#: ../../source/docker/enable-tls.rst:179 +#: ../../source/docker/enable-tls.rst:206 +#: ../../source/docker/enable-tls.rst:231 +#: ../../source/docker/tutorial-quickstart-docker.rst:68 +#: ../../source/docker/tutorial-quickstart-docker.rst:109 +#: ../../source/docker/tutorial-quickstart-docker.rst:221 +#: ../../source/docker/tutorial-quickstart-docker.rst:303 #, fuzzy msgid "``docker run``: This tells Docker to run a container from an image." msgstr "``docker run``: 새 Docker 컨테이너를 실행하는 명령입니다." -#: ../../source/docker/enable-tls.rst:46 ../../source/docker/enable-tls.rst:93 -#: ../../source/docker/enable-tls.rst:126 -#: ../../source/docker/tutorial-quickstart-docker.rst:66 -#: ../../source/docker/tutorial-quickstart-docker.rst:103 -#: ../../source/docker/tutorial-quickstart-docker.rst:217 -#: ../../source/docker/tutorial-quickstart-docker.rst:305 +#: ../../source/docker/enable-tls.rst:55 ../../source/docker/enable-tls.rst:97 +#: ../../source/docker/enable-tls.rst:141 +#: ../../source/docker/enable-tls.rst:180 +#: ../../source/docker/enable-tls.rst:207 +#: ../../source/docker/enable-tls.rst:232 +#: ../../source/docker/tutorial-quickstart-docker.rst:69 +#: ../../source/docker/tutorial-quickstart-docker.rst:110 +#: ../../source/docker/tutorial-quickstart-docker.rst:222 +#: ../../source/docker/tutorial-quickstart-docker.rst:304 msgid "``--rm``: Remove the container once it is stopped or the command exits." msgstr "" #: ../../source/docker/enable-tls.rst msgid "" -"``--volume ./certificates/:/app/certificates/:ro``: Mount the " -"``certificates`` directory in" +"``--volume ./superlink-certificates/:/app/certificates/:ro``: Mount the " +"``superlink-certificates``" msgstr "" #: ../../source/docker/enable-tls.rst msgid "" -"the current working directory of the host machine as a read-only volume " -"at the" +"directory in the current working directory of the host machine as a read-" +"only volume" msgstr "" #: ../../source/docker/enable-tls.rst -msgid "``/app/certificates`` directory inside the container." -msgstr "" +#, fuzzy +msgid "at the ``/app/certificates`` directory inside the container." +msgstr "VSCode Dev Container에서 개발" #: ../../source/docker/enable-tls.rst msgid "" @@ -2565,17 +2589,8 @@ msgstr "" msgid "directory." msgstr "" -#: ../../source/docker/enable-tls.rst -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "" -":substitution-code:`flwr/superlink:|stable_flwr_version|`: The name of " -"the image to be run and the specific" -msgstr "" - -#: ../../source/docker/enable-tls.rst -msgid "" -"tag of the image. The tag :substitution-code:`|stable_flwr_version|` " -"represents a specific version of the image." +#: ../../source/docker/enable-tls.rst:62 +msgid "````: The name of your SuperLink image to be run." msgstr "" #: ../../source/docker/enable-tls.rst @@ -2640,23 +2655,12 @@ msgstr "" msgid "the network." msgstr "" -#: ../../source/docker/enable-tls.rst:72 +#: ../../source/docker/enable-tls.rst:79 #, fuzzy -msgid "SuperNode" +msgid "**SuperNode**" msgstr "run\\_supernode" -#: ../../source/docker/enable-tls.rst:74 -#, fuzzy -msgid "" -"Assuming that the ``ca.crt`` certificate already exists locally, we can " -"use the flag ``--volume`` to mount the local certificate into the " -"container's ``/app/`` directory." -msgstr "" -"인증서가 이미 로컬에 존재한다고 가정하면, ``--volume`` 플래그를 사용하여 로컬 인증서를 컨테이너의 ``/app/`` " -"디렉터리에 마운트할 수 있습니다. 이렇게 하면 SuperNode가 컨테이너 내의 인증서에 액세스할 수 있습니다. 컨테이너를 시작할 " -"때 ``--root-certificates`` 플래그를 사용하세요." - -#: ../../source/docker/enable-tls.rst:79 +#: ../../source/docker/enable-tls.rst:83 ../../source/docker/enable-tls.rst:189 msgid "" "If you're generating self-signed certificates and the ``ca.crt`` " "certificate doesn't exist on the SuperNode, you can copy it over after " @@ -2664,24 +2668,24 @@ msgid "" msgstr "" #: ../../source/docker/enable-tls.rst -msgid "``--volume ./ca.crt:/app/ca.crt/:ro``: Mount the ``ca.crt`` file from the" +msgid "" +"``--volume ./superlink-certificates/ca.crt:/app/ca.crt/:ro``: Mount the " +"``ca.crt``" msgstr "" #: ../../source/docker/enable-tls.rst msgid "" -"current working directory of the host machine as a read-only volume at " -"the ``/app/ca.crt``" +"file from the ``superlink-certificates`` directory of the host machine as" +" a read-only" msgstr "" #: ../../source/docker/enable-tls.rst #, fuzzy -msgid "directory inside the container." +msgid "volume at the ``/app/ca.crt`` directory inside the container." msgstr "VSCode Dev Container에서 개발" -#: ../../source/docker/enable-tls.rst -msgid "" -":substitution-code:`flwr/supernode:|stable_flwr_version|`: The name of " -"the image to be run and the specific" +#: ../../source/docker/enable-tls.rst:101 +msgid "````: The name of your SuperNode image to be run." msgstr "" #: ../../source/docker/enable-tls.rst @@ -2694,60 +2698,198 @@ msgstr "" msgid "The ``ca.crt`` file is used to verify the identity of the SuperLink." msgstr "" -#: ../../source/docker/enable-tls.rst:105 -msgid "SuperExec" +#: ../../source/docker/enable-tls.rst +msgid "Isolation Mode ``process``" +msgstr "" + +#: ../../source/docker/enable-tls.rst:109 +msgid "" +"In isolation mode ``process``, the ServerApp and ClientApp run in their " +"own processes. Unlike in isolation mode ``subprocess``, the SuperLink or " +"SuperNode does not attempt to create the respective processes; instead, " +"they must be created externally." +msgstr "" + +#: ../../source/docker/enable-tls.rst:113 +msgid "" +"It is possible to run only the SuperLink in isolation mode ``subprocess``" +" and the SuperNode in isolation mode ``process``, or vice versa, or even " +"both with isolation mode ``process``." +msgstr "" + +#: ../../source/docker/enable-tls.rst:117 +msgid "**SuperLink and ServerApp**" +msgstr "" + +#: ../../source/docker/enable-tls.rst:122 +#, fuzzy +msgid "" +"Assuming all files we need are in the local ``superlink-certificates`` " +"directory, we can use the flag ``--volume`` to mount the local directory " +"into the SuperLink container:" +msgstr "" +"인증서가 이미 로컬에 존재한다고 가정하면, ``--volume`` 플래그를 사용하여 로컬 인증서를 컨테이너의 ``/app/`` " +"디렉터리에 마운트할 수 있습니다. 이렇게 하면 SuperNode가 컨테이너 내의 인증서에 액세스할 수 있습니다. 컨테이너를 시작할 " +"때 ``--root-certificates`` 플래그를 사용하세요." + +#: ../../source/docker/enable-tls.rst +msgid "``--volume ./superlink-certificates/:/app/certificates/:ro``: Mount the" +msgstr "" + +#: ../../source/docker/enable-tls.rst +msgid "" +"``superlink-certificates`` directory in the current working directory of " +"the host" msgstr "" -#: ../../source/docker/enable-tls.rst:107 +#: ../../source/docker/enable-tls.rst msgid "" -"Assuming all files we need are in the local ``certificates`` directory " -"where the SuperExec will be executed from, we can use the flag " -"``--volume`` to mount the local directory into the ``/app/certificates/``" -" directory of the container:" +"machine as a read-only volume at the ``/app/certificates`` directory " +"inside the container." msgstr "" #: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -":substitution-code:`flwr/superexec:|stable_flwr_version|`: The name of " +":substitution-code:`flwr/superlink:|stable_flwr_version|`: The name of " "the image to be run and the specific" msgstr "" #: ../../source/docker/enable-tls.rst -msgid "SuperExec." +msgid "" +"tag of the image. The tag :substitution-code:`|stable_flwr_version|` " +"represents a specific version of the image." msgstr "" #: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``--ssl-certfile certificates/server.pem``: Specify the location of the " -"SuperExec's" +"``--isolation process``: Tells the SuperLink that the ServerApp is " +"created by separate" +msgstr "" + +#: ../../source/docker/enable-tls.rst +msgid "independent process. The SuperLink does not attempt to create it." +msgstr "" + +#: ../../source/docker/enable-tls.rst:168 +#: ../../source/docker/tutorial-quickstart-docker.rst:207 +#, fuzzy +msgid "Start the ServerApp container:" +msgstr "현재 클라이언트 속성입니다." + +#: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker-compose.rst +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "Understand the command" +msgstr "" + +#: ../../source/docker/enable-tls.rst:181 +msgid "````: The name of your ServerApp image to be run." msgstr "" #: ../../source/docker/enable-tls.rst msgid "" -"The ``certificates/server.pem`` file is used to identify the SuperExec " -"and to encrypt the" +"``--insecure``: This flag tells the container to operate in an insecure " +"mode, allowing" msgstr "" #: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``--ssl-keyfile certificates/server.key``: Specify the location of the " -"SuperExec's" +"unencrypted communication. Secure connections will be added in future " +"releases." +msgstr "" + +#: ../../source/docker/enable-tls.rst:185 +msgid "**SuperNode and ClientApp**" +msgstr "" + +#: ../../source/docker/enable-tls.rst:192 +#, fuzzy +msgid "Start the SuperNode container:" +msgstr "이미 *서버*를 시작할 수 있습니다:" + +#: ../../source/docker/enable-tls.rst +msgid "" +"``--volume ./superlink-certificates/ca.crt:/app/ca.crt/:ro``: Mount the " +"``ca.crt`` file from the" +msgstr "" + +#: ../../source/docker/enable-tls.rst +msgid "" +"``superlink-certificates`` directory of the host machine as a read-only " +"volume at the ``/app/ca.crt``" msgstr "" +#: ../../source/docker/enable-tls.rst +#, fuzzy +msgid "directory inside the container." +msgstr "VSCode Dev Container에서 개발" + #: ../../source/docker/enable-tls.rst msgid "" -"``--executor-config root-" -"certificates=\\\"certificates/superlink_ca.crt\\\"``: Specify the" +":substitution-code:`flwr/supernode:|stable_flwr_version|`: The name of " +"the image to be run and the specific" msgstr "" #: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"location of the CA certificate file inside the container that the " -"SuperExec executor" +"``--isolation process``: Tells the SuperNode that the ClientApp is " +"created by separate" msgstr "" #: ../../source/docker/enable-tls.rst -msgid "should use to verify the SuperLink's identity." +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "independent process. The SuperNode does not attempt to create it." +msgstr "" + +#: ../../source/docker/enable-tls.rst:220 +#, fuzzy +msgid "Start the ClientApp container:" +msgstr "현재 클라이언트 속성입니다." + +#: ../../source/docker/enable-tls.rst:233 +msgid "````: The name of your ClientApp image to be run." +msgstr "" + +#: ../../source/docker/enable-tls.rst:237 +#: ../../source/docker/run-quickstart-examples-docker-compose.rst:54 +#, fuzzy +msgid "" +"Append the following lines to the end of the ``pyproject.toml`` file and " +"save it:" +msgstr "``pyproject.toml``에 다음 버전 제약 조건을 설정했는지 확인하세요:" + +#: ../../source/docker/enable-tls.rst:239 +#: ../../source/docker/run-quickstart-examples-docker-compose.rst:56 +#: ../../source/docker/tutorial-quickstart-docker.rst:330 +#, fuzzy +msgid "pyproject.toml" +msgstr "또는 ``pyproject.toml``:" + +#: ../../source/docker/enable-tls.rst:246 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:152 +msgid "" +"The path of the ``root-certificates`` should be relative to the location " +"of the ``pyproject.toml`` file." +msgstr "" + +#: ../../source/docker/enable-tls.rst:251 +#: ../../source/docker/run-quickstart-examples-docker-compose.rst:65 +msgid "" +"You can customize the string that follows ``tool.flwr.federations.`` to " +"fit your needs. However, please note that the string cannot contain a dot" +" (``.``)." +msgstr "" + +#: ../../source/docker/enable-tls.rst:254 +msgid "" +"In this example, ``local-deployment-tls`` has been used. Just remember to" +" replace ``local-deployment-tls`` with your chosen name in both the " +"``tool.flwr.federations.`` string and the corresponding ``flwr run .`` " +"command." msgstr "" #: ../../source/docker/index.rst:2 @@ -2942,48 +3084,135 @@ msgstr "SuperNode Dockerfile 만들기" #: ../../source/docker/run-as-subprocess.rst:2 #, fuzzy -msgid "Run ClientApp as a Subprocess" +msgid "Run ServerApp or ClientApp as a Subprocess" msgstr "린터 및 테스트 실행" #: ../../source/docker/run-as-subprocess.rst:4 msgid "" -"In this mode, the ClientApp is executed as a subprocess within the " -"SuperNode Docker container, rather than running in a separate container. " -"This approach reduces the number of running containers, which can be " -"beneficial for environments with limited resources. However, it also " -"means that the ClientApp is no longer isolated from the SuperNode, which " -"may introduce additional security concerns." +"The SuperLink and SuperNode components support two distinct isolation " +"modes, allowing for flexible deployment and control:" msgstr "" -#: ../../source/docker/run-as-subprocess.rst:13 +#: ../../source/docker/run-as-subprocess.rst:7 msgid "" -"Before running the ClientApp as a subprocess, ensure that the FAB " -"dependencies have been installed in the SuperNode images. This can be " -"done by extending the SuperNode image:" +"Subprocess Mode: In this configuration (default), the SuperLink and " +"SuperNode take responsibility for launching the ServerApp and ClientApp " +"processes internally. This differs from the ``process`` isolation-mode " +"which uses separate containers, as demonstrated in the :doc:`tutorial-" +"quickstart-docker` guide." +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:12 +msgid "" +"Using the ``subprocess`` approach reduces the number of running " +"containers, which can be beneficial for environments with limited " +"resources. However, it also means that the applications are not isolated " +"from their parent containers, which may introduce additional security " +"concerns." msgstr "" #: ../../source/docker/run-as-subprocess.rst:17 +msgid "" +"Process Mode: In this mode, the ServerApp and ClientApps run in " +"completely separate processes. Unlike the alternative Subprocess mode, " +"the SuperLink or SuperNode does not attempt to create or manage these " +"processes. Instead, they must be started externally." +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:22 +msgid "" +"Both modes can be mixed for added flexibility. For instance, you can run " +"the SuperLink in ``subprocess`` mode while keeping the SuperNode in " +"``process`` mode, or vice versa." +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:25 +msgid "" +"To run the SuperLink and SuperNode in isolation mode ``process``, refer " +"to the :doc:`tutorial-quickstart-docker` guide. To run them in " +"``subprocess`` mode, follow the instructions below." +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst +#: ../../source/ref-api/flwr.server.ServerApp.rst:2 +msgid "ServerApp" +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:33 +#: ../../source/docker/run-as-subprocess.rst:74 #, fuzzy -msgid "Dockerfile.supernode" -msgstr "Flower SuperNode" +msgid "**Prerequisites**" +msgstr "전제 조건" + +#: ../../source/docker/run-as-subprocess.rst:35 +msgid "" +"1. Before running the ServerApp as a subprocess, ensure that the FAB " +"dependencies have been installed in the SuperLink images. This can be " +"done by extending the SuperLink image:" +msgstr "" -#: ../../source/docker/run-as-subprocess.rst:31 +#: ../../source/docker/run-as-subprocess.rst:38 +#, fuzzy +msgid "superlink.Dockerfile" +msgstr "SuperNode Dockerfile 만들기" + +#: ../../source/docker/run-as-subprocess.rst:52 #, fuzzy msgid "" -"Next, build the SuperNode Docker image by running the following command " -"in the directory where Dockerfile is located:" +"2. Next, build the SuperLink Docker image by running the following " +"command in the directory where Dockerfile is located:" msgstr "" "다음으로, Dockerfile 및 ClientApp 코드가 있는 디렉터리에서 다음 명령을 실행하여 SuperNode Docker " "이미지를 빌드합니다." -#: ../../source/docker/run-as-subprocess.rst:39 -msgid "Run the ClientApp as a Subprocess" +#: ../../source/docker/run-as-subprocess.rst:59 +#, fuzzy +msgid "**Run the ServerApp as a Subprocess**" +msgstr "린터 및 테스트 실행" + +#: ../../source/docker/run-as-subprocess.rst:61 +msgid "" +"Start the SuperLink and run the ServerApp as a subprocess (note that the " +"subprocess mode is the default, so you do not have to explicitly set the " +"``--isolation`` flag):" +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst +#: ../../source/ref-api/flwr.client.ClientApp.rst:2 +msgid "ClientApp" +msgstr "클라이언트앱" + +#: ../../source/docker/run-as-subprocess.rst:76 +msgid "" +"1. Before running the ClientApp as a subprocess, ensure that the FAB " +"dependencies have been installed in the SuperNode images. This can be " +"done by extending the SuperNode image:" +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:80 +#, fuzzy +msgid "supernode.Dockerfile" +msgstr "SuperNode Dockerfile 만들기" + +#: ../../source/docker/run-as-subprocess.rst:94 +#, fuzzy +msgid "" +"2. Next, build the SuperNode Docker image by running the following " +"command in the directory where Dockerfile is located:" msgstr "" +"다음으로, Dockerfile 및 ClientApp 코드가 있는 디렉터리에서 다음 명령을 실행하여 SuperNode Docker " +"이미지를 빌드합니다." + +#: ../../source/docker/run-as-subprocess.rst:101 +#, fuzzy +msgid "**Run the ClientApp as a Subprocess**" +msgstr "린터 및 테스트 실행" -#: ../../source/docker/run-as-subprocess.rst:41 +#: ../../source/docker/run-as-subprocess.rst:103 msgid "" -"Start the SuperNode with the flag ``--isolation subprocess``, which tells" -" the SuperNode to execute the ClientApp as a subprocess:" +"Start the SuperNode and run the ClientApp as a subprocess (note that the " +"subprocess mode is the default, so you do not have to explicitly set the " +"``--isolation`` flag):" msgstr "" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:2 @@ -3061,26 +3290,6 @@ msgid "" "start the services using the following command:" msgstr "다음 명령을 실행하여 가상 환경을 활성화합니다:" -#: ../../source/docker/run-quickstart-examples-docker-compose.rst:54 -#, fuzzy -msgid "" -"Append the following lines to the end of the ``pyproject.toml`` file and " -"save it:" -msgstr "``pyproject.toml``에 다음 버전 제약 조건을 설정했는지 확인하세요:" - -#: ../../source/docker/run-quickstart-examples-docker-compose.rst:56 -#: ../../source/docker/tutorial-quickstart-docker.rst:323 -#, fuzzy -msgid "pyproject.toml" -msgstr "또는 ``pyproject.toml``:" - -#: ../../source/docker/run-quickstart-examples-docker-compose.rst:65 -msgid "" -"You can customize the string that follows ``tool.flwr.federations.`` to " -"fit your needs. However, please note that the string cannot contain a dot" -" (``.``)." -msgstr "" - #: ../../source/docker/run-quickstart-examples-docker-compose.rst:68 msgid "" "In this example, ``local-deployment`` has been used. Just remember to " @@ -3090,13 +3299,13 @@ msgid "" msgstr "" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:72 -msgid "Run the example and follow the logs of the ServerApp:" +msgid "Run the example and follow the logs of the ``ServerApp`` :" msgstr "" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:78 msgid "" "That is all it takes! You can monitor the progress of the run through the" -" logs of the SuperExec." +" logs of the ``ServerApp``." msgstr "" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:82 @@ -3137,10 +3346,10 @@ msgstr "빠른 시작 튜토리얼" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:119 #: ../../source/docker/run-quickstart-examples-docker-compose.rst:121 #: ../../source/docker/run-quickstart-examples-docker-compose.rst:125 -#: ../../source/ref-changelog.md:103 ../../source/ref-changelog.md:469 -#: ../../source/ref-changelog.md:746 ../../source/ref-changelog.md:810 -#: ../../source/ref-changelog.md:868 ../../source/ref-changelog.md:937 -#: ../../source/ref-changelog.md:999 +#: ../../source/ref-changelog.md:214 ../../source/ref-changelog.md:580 +#: ../../source/ref-changelog.md:857 ../../source/ref-changelog.md:921 +#: ../../source/ref-changelog.md:979 ../../source/ref-changelog.md:1048 +#: ../../source/ref-changelog.md:1110 msgid "None" msgstr "" @@ -3245,8 +3454,8 @@ msgid "" "You will learn how to run the Flower client and server components on two " "separate machines, with Flower configured to use TLS encryption and " "persist SuperLink state across restarts. A server consists of a SuperLink" -" and ``SuperExec``. For more details about the Flower architecture, refer" -" to the :doc:`../explanation-flower-architecture` explainer page." +" and a ``ServerApp``. For more details about the Flower architecture, " +"refer to the :doc:`../explanation-flower-architecture` explainer page." msgstr "" #: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:13 @@ -3301,70 +3510,70 @@ msgstr "" msgid "Clone the Flower repository and change to the ``distributed`` directory:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:45 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:46 msgid "Get the IP address from the remote machine and save it for later." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:46 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:47 msgid "" "Use the ``certs.yml`` Compose file to generate your own self-signed " "certificates. If you have certificates, you can continue with Step 2." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:51 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:214 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:52 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:212 msgid "These certificates should be used only for development purposes." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:53 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:54 msgid "" "For production environments, you may have to use dedicated services to " "obtain your certificates." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:56 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:57 msgid "" -"First, set the environment variables ``SUPERLINK_IP`` and " -"``SUPEREXEC_IP`` with the IP address from the remote machine. For " -"example, if the IP is ``192.168.2.33``, execute:" +"First, set the environment variable ``SUPERLINK_IP`` with the IP address " +"from the remote machine. For example, if the IP is ``192.168.2.33``, " +"execute:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:65 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:64 msgid "Next, generate the self-signed certificates:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:72 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:71 msgid "Step 2: Copy the Server Compose Files" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:74 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:73 msgid "" "Use the method that works best for you to copy the ``server`` directory, " "the certificates, and the ``pyproject.toml`` file of your Flower project " "to the remote machine." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:78 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:77 msgid "For example, you can use ``scp`` to copy the directories:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:88 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:86 msgid "Step 3: Start the Flower Server Components" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:90 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:88 msgid "" "Log into the remote machine using ``ssh`` and run the following command " -"to start the SuperLink and SuperExec services:" +"to start the SuperLink and ``ServerApp`` services:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:104 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:102 msgid "" "The path to the ``PROJECT_DIR`` containing the ``pyproject.toml`` file " "should be relative to the location of the server ``compose.yml`` file." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:109 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:107 msgid "" "When working with Docker Compose on Linux, you may need to create the " "``state`` directory first and change its ownership to ensure proper " @@ -3372,77 +3581,71 @@ msgid "" "4), run the following commands:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:118 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:167 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:116 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:165 msgid "" "For more information, consult the following page: :doc:`persist-" "superlink-state`." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:120 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:118 msgid "Go back to your terminal on your local machine." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:123 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:121 #, fuzzy msgid "Step 4: Start the Flower Client Components" msgstr "서버(SuperLink)" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:125 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:123 msgid "" "On your local machine, run the following command to start the client " "components:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:135 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:133 msgid "" "The path to the ``PROJECT_DIR`` containing the ``pyproject.toml`` file " "should be relative to the location of the client ``compose.yml`` file." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:139 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:137 #, fuzzy msgid "Step 5: Run Your Flower Project" msgstr "Flower SuperNode를 실행합니다." -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:141 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:139 msgid "" -"Specify the remote SuperExec IP addresses and the path to the root " -"certificate in the ``[tool.flwr.federations.remote-superexec]`` table in " -"the ``pyproject.toml`` file. Here, we have named our remote federation " -"``remote-superexec``:" +"Specify the remote SuperLink IP addresses and the path to the root " +"certificate in the ``[tool.flwr.federations.remote-deployment]`` table in" +" the ``pyproject.toml`` file. Here, we have named our remote federation " +"``remote-deployment``:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:145 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:143 msgid "examples/quickstart-sklearn-tabular/pyproject.toml" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:154 -msgid "" -"The path of the ``root-certificates`` should be relative to the location " -"of the ``pyproject.toml`` file." -msgstr "" - -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:157 -msgid "Run the project and follow the ServerApp logs:" +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:155 +msgid "Run the project and follow the ``ServerApp`` logs:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:163 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:161 msgid "" "That's it! With these steps, you've set up Flower on two separate " "machines and are ready to start using it." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:167 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:165 msgid "Step 6: Clean Up" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:169 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:167 #, fuzzy msgid "Shut down the Flower client components:" msgstr "Flower 클라이언트 앱을 실행합니다." -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:176 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:174 msgid "Shut down the Flower server components and delete the SuperLink state:" msgstr "" @@ -3464,7 +3667,7 @@ msgid "" " understanding the basic workflow that uses the minimum configurations." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:32 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:33 #: ../../source/docker/tutorial-quickstart-docker.rst:21 msgid "Create a new Flower project (PyTorch):" msgstr "" @@ -3486,47 +3689,50 @@ msgstr "" msgid "Step 2: Start the SuperLink" msgstr "서버(SuperLink)" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:62 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:64 #: ../../source/docker/tutorial-quickstart-docker.rst:51 msgid "Open your terminal and run:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "Understand the command" +msgid "" +"``-p 9091:9091 -p 9092:9092 -p 9093:9093``: Map port ``9091``, ``9092`` " +"and ``9093`` of the" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``-p 9091:9091 -p 9092:9092``: Map port ``9091`` and ``9092`` of the " -"container to the same port of" +"container to the same port of the host machine, allowing other services " +"to access the" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "the host machine, allowing other services to access the Driver API on" +msgid "" +"ServerAppIO API on ``http://localhost:9091``, the Fleet API on " +"``http://localhost:9092`` and" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``http://localhost:9091`` and the Fleet API on ``http://localhost:9092``." +msgid "the Exec API on ``http://localhost:9093``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:70 -#: ../../source/docker/tutorial-quickstart-docker.rst:107 -#: ../../source/docker/tutorial-quickstart-docker.rst:218 -#: ../../source/docker/tutorial-quickstart-docker.rst:308 +#: ../../source/docker/tutorial-quickstart-docker.rst:74 +#: ../../source/docker/tutorial-quickstart-docker.rst:114 +#: ../../source/docker/tutorial-quickstart-docker.rst:223 +#: ../../source/docker/tutorial-quickstart-docker.rst:305 msgid "" "``--network flwr-network``: Make the container join the network named " "``flwr-network``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:71 +#: ../../source/docker/tutorial-quickstart-docker.rst:75 msgid "``--name superlink``: Assign the name ``superlink`` to the container." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:72 -#: ../../source/docker/tutorial-quickstart-docker.rst:109 -#: ../../source/docker/tutorial-quickstart-docker.rst:219 -#: ../../source/docker/tutorial-quickstart-docker.rst:310 +#: ../../source/docker/tutorial-quickstart-docker.rst:76 +#: ../../source/docker/tutorial-quickstart-docker.rst:116 +#: ../../source/docker/tutorial-quickstart-docker.rst:225 +#: ../../source/docker/tutorial-quickstart-docker.rst:306 msgid "" "``--detach``: Run the container in the background, freeing up the " "terminal." @@ -3548,15 +3754,26 @@ msgstr "" msgid "unencrypted communication." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:79 -msgid "Step 3: Start the SuperNode" +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "" +"independent process. The SuperLink does not attempt to create it. You can" +" learn more about" +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "the different process modes here: :doc:`run-as-subprocess`." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:81 +#: ../../source/docker/tutorial-quickstart-docker.rst:86 +#, fuzzy +msgid "Step 3: Start the SuperNodes" +msgstr "서버(SuperLink)" + +#: ../../source/docker/tutorial-quickstart-docker.rst:88 msgid "Start two SuperNode containers." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:83 +#: ../../source/docker/tutorial-quickstart-docker.rst:90 msgid "Start the first container:" msgstr "" @@ -3572,18 +3789,18 @@ msgstr "" msgid "``http://localhost:9094``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:108 +#: ../../source/docker/tutorial-quickstart-docker.rst:115 msgid "``--name supernode-1``: Assign the name ``supernode-1`` to the container." msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``flwr/supernode:|stable_flwr_version|``: This is the name of the image " -"to be run and the specific tag" +":substitution-code:`flwr/supernode:|stable_flwr_version|`: This is the " +"name of the" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "of the image." +msgid "image to be run and the specific tag of the image." msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst @@ -3608,50 +3825,53 @@ msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``--supernode-address 0.0.0.0:9094``: Set the address and port number " -"that the SuperNode" +"``--clientappio-api-address 0.0.0.0:9094``: Set the address and port " +"number that the" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "is listening on." +msgid "SuperNode is listening on to communicate with the ClientApp. If" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``--isolation process``: Tells the SuperNode that the ClientApp is " -"created by separate" +"two SuperNodes are started on the same machine, set two different port " +"numbers for each SuperNode." msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "independent process. The SuperNode does not attempt to create it." +msgid "" +"(E.g. In the next step, we set the second SuperNode container to listen " +"on port 9095)" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:123 +#: ../../source/docker/tutorial-quickstart-docker.rst:132 msgid "Start the second container:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:141 -msgid "Step 4: Start the ClientApp" -msgstr "" +#: ../../source/docker/tutorial-quickstart-docker.rst:150 +#, fuzzy +msgid "Step 4: Start a ServerApp" +msgstr "서버(SuperLink)" -#: ../../source/docker/tutorial-quickstart-docker.rst:143 +#: ../../source/docker/tutorial-quickstart-docker.rst:152 msgid "" -"The ClientApp Docker image comes with a pre-installed version of Flower " -"and serves as a base for building your own ClientApp image. In order to " +"The ServerApp Docker image comes with a pre-installed version of Flower " +"and serves as a base for building your own ServerApp image. In order to " "install the FAB dependencies, you will need to create a Dockerfile that " -"extends the ClientApp image and installs the required dependencies." +"extends the ServerApp image and installs the required dependencies." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:148 +#: ../../source/docker/tutorial-quickstart-docker.rst:157 msgid "" -"Create a ClientApp Dockerfile called ``Dockerfile.clientapp`` and paste " -"the following code into it:" +"Create a ServerApp Dockerfile called ``serverapp.Dockerfile`` and paste " +"the following code in:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:151 +#: ../../source/docker/tutorial-quickstart-docker.rst:160 #, fuzzy -msgid "Dockerfile.clientapp" -msgstr "flower 클라이언트 앱" +msgid "serverapp.Dockerfile" +msgstr "SuperNode Dockerfile 만들기" #: ../../source/docker/tutorial-quickstart-docker.rst #, fuzzy @@ -3660,13 +3880,13 @@ msgstr "SuperNode Dockerfile 만들기" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -":substitution-code:`FROM flwr/clientapp:|stable_flwr_version|`: This line" +":substitution-code:`FROM flwr/serverapp:|stable_flwr_version|`: This line" " specifies that the Docker image" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"to be built from is the ``flwr/clientapp image``, version :substitution-" +"to be built from is the ``flwr/serverapp`` image, version :substitution-" "code:`|stable_flwr_version|`." msgstr "" @@ -3725,7 +3945,7 @@ msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``ENTRYPOINT [\"flwr-clientapp\"]``: Set the command ``flwr-clientapp`` " +"``ENTRYPOINT [\"flwr-serverapp\"]``: Set the command ``flwr-serverapp`` " "to be" msgstr "" @@ -3733,7 +3953,7 @@ msgstr "" msgid "the default command run when the container is started." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:185 +#: ../../source/docker/tutorial-quickstart-docker.rst:194 msgid "" "Note that `flwr `__ is already installed " "in the ``flwr/clientapp`` base image, so only other package dependencies " @@ -3742,214 +3962,212 @@ msgid "" "after it has been copied into the Docker image (see line 5)." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:191 -#, fuzzy -msgid "" -"Next, build the ClientApp Docker image by running the following command " -"in the directory where the Dockerfile is located:" -msgstr "" -"다음으로, Docker파일과 ServerApp 코드가 있는 디렉터리에서 다음 명령을 실행하여 ServerApp Docker 이미지를" -" 빌드합니다." - #: ../../source/docker/tutorial-quickstart-docker.rst:200 -#, fuzzy msgid "" -"The image name was set as ``flwr_clientapp`` with the tag ``0.0.1``. " -"Remember that these values are merely examples, and you can customize " -"them according to your requirements." +"Afterward, in the directory that holds the Dockerfile, execute this " +"Docker command to build the ServerApp image:" msgstr "" -"이미지에``flwr_serverapp``이라는 이름을 붙이고 ``0.0.1``이라는 태그를 붙였습니다. 여기서 선택한 값은 예시일 " -"뿐이라는 점을 기억하세요. 필요에 따라 변경할 수 있습니다." -#: ../../source/docker/tutorial-quickstart-docker.rst:204 -msgid "Start the first ClientApp container:" +#: ../../source/docker/tutorial-quickstart-docker.rst:224 +msgid "``--name serverapp``: Assign the name ``serverapp`` to the container." msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst #, fuzzy msgid "" -"``flwr_clientapp:0.0.1``: This is the name of the image to be run and the" +"``flwr_serverapp:0.0.1``: This is the name of the image to be run and the" " specific tag" -msgstr "``flwr_serverapp:0.0.1``: 사용할 Docker 이미지의 태그 이름입니다." +msgstr "``flwr_supernode:0.0.1``: 사용할 Docker 이미지의 태그 이름입니다." #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "" -"``--supernode supernode-1:9094``: Connect to the SuperNode's Fleet API at" -" the address" +msgid "of the image." msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``supernode-1:9094``." +msgid "" +"``--serverappio-api-address superlink:9091``: Connect to the SuperLink's " +"ServerAppIO API" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:225 -msgid "Start the second ClientApp container:" +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "at the address ``superlink:9091``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:236 -msgid "Step 5: Start the SuperExec" -msgstr "" +#: ../../source/docker/tutorial-quickstart-docker.rst:234 +#, fuzzy +msgid "Step 5: Start the ClientApp" +msgstr "서버(SuperLink)" -#: ../../source/docker/tutorial-quickstart-docker.rst:238 +#: ../../source/docker/tutorial-quickstart-docker.rst:236 #, fuzzy msgid "" -"The procedure for building and running a SuperExec image is almost " -"identical to the ClientApp image." +"The procedure for building and running a ClientApp image is almost " +"identical to the ServerApp image." msgstr "ServerApp 이미지를 빌드하고 실행하는 절차는 SuperNode 이미지와 거의 동일합니다." -#: ../../source/docker/tutorial-quickstart-docker.rst:241 +#: ../../source/docker/tutorial-quickstart-docker.rst:239 msgid "" -"Similar to the ClientApp image, you will need to create a Dockerfile that" -" extends the SuperExec image and installs the required FAB dependencies." +"Similar to the ServerApp image, you will need to create a Dockerfile that" +" extends the ClientApp image and installs the required FAB dependencies." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:244 +#: ../../source/docker/tutorial-quickstart-docker.rst:242 msgid "" -"Create a SuperExec Dockerfile called ``Dockerfile.superexec`` and paste " -"the following code in:" +"Create a ClientApp Dockerfile called ``clientapp.Dockerfile`` and paste " +"the following code into it:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:247 -msgid "Dockerfile.superexec" -msgstr "" +#: ../../source/docker/tutorial-quickstart-docker.rst:245 +#, fuzzy +msgid "clientapp.Dockerfile" +msgstr "클라이언트앱" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -":substitution-code:`FROM flwr/superexec:|stable_flwr_version|`: This line" +":substitution-code:`FROM flwr/clientapp:|stable_flwr_version|`: This line" " specifies that the Docker image" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst +#, fuzzy msgid "" -"to be built from is the ``flwr/superexec image``, version :substitution-" +"to be built from is the ``flwr/clientapp`` image, version :substitution-" "code:`|stable_flwr_version|`." -msgstr "" +msgstr "다음 명령은 ``superlink:1.8.0`` 태그가 참조하는 현재 이미지 해시를 반환합니다:" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``ENTRYPOINT [\"flower-superexec\"``: Set the command ``flower-" -"superexec`` to be" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``\"--executor\", \"flwr.superexec.deployment:executor\"]`` Use the" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``flwr.superexec.deployment:executor`` executor to run the ServerApps." +"``ENTRYPOINT [\"flwr-clientapp\"]``: Set the command ``flwr-clientapp`` " +"to be" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:282 +#: ../../source/docker/tutorial-quickstart-docker.rst:277 +#, fuzzy msgid "" -"Afterward, in the directory that holds the Dockerfile, execute this " -"Docker command to build the SuperExec image:" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst:289 -msgid "Start the SuperExec container:" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``-p 9093:9093``: Map port ``9093`` of the container to the same port of" +"Next, build the ClientApp Docker image by running the following command " +"in the directory where the Dockerfile is located:" msgstr "" +"다음으로, Docker파일과 ServerApp 코드가 있는 디렉터리에서 다음 명령을 실행하여 ServerApp Docker 이미지를" +" 빌드합니다." -#: ../../source/docker/tutorial-quickstart-docker.rst +#: ../../source/docker/tutorial-quickstart-docker.rst:286 +#, fuzzy msgid "" -"the host machine, allowing you to access the SuperExec API on " -"``http://localhost:9093``." +"The image name was set as ``flwr_clientapp`` with the tag ``0.0.1``. " +"Remember that these values are merely examples, and you can customize " +"them according to your requirements." msgstr "" +"이미지에``flwr_serverapp``이라는 이름을 붙이고 ``0.0.1``이라는 태그를 붙였습니다. 여기서 선택한 값은 예시일 " +"뿐이라는 점을 기억하세요. 필요에 따라 변경할 수 있습니다." -#: ../../source/docker/tutorial-quickstart-docker.rst:309 -msgid "``--name superexec``: Assign the name ``superexec`` to the container." +#: ../../source/docker/tutorial-quickstart-docker.rst:290 +msgid "Start the first ClientApp container:" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst #, fuzzy msgid "" -"``flwr_superexec:0.0.1``: This is the name of the image to be run and the" +"``flwr_clientapp:0.0.1``: This is the name of the image to be run and the" " specific tag" -msgstr "``flwr_supernode:0.0.1``: 사용할 Docker 이미지의 태그 이름입니다." +msgstr "``flwr_serverapp:0.0.1``: 사용할 Docker 이미지의 태그 이름입니다." #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``--executor-config superlink=\\\"superlink:9091\\\"``: Configure the " -"SuperExec executor to" +"``--clientappio-api-address supernode-1:9094``: Connect to the " +"SuperNode's ClientAppIO" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "connect to the SuperLink running on port ``9091``." +msgid "API at the address ``supernode-1:9094``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:319 +#: ../../source/docker/tutorial-quickstart-docker.rst:314 +msgid "Start the second ClientApp container:" +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:326 msgid "Step 6: Run the Quickstart Project" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:321 +#: ../../source/docker/tutorial-quickstart-docker.rst:328 #, fuzzy msgid "Add the following lines to the ``pyproject.toml``:" msgstr "``pyproject.toml``에 다음 버전 제약 조건을 설정했는지 확인하세요:" -#: ../../source/docker/tutorial-quickstart-docker.rst:330 +#: ../../source/docker/tutorial-quickstart-docker.rst:337 msgid "" "Run the ``quickstart-docker`` project and follow the ServerApp logs to " "track the execution of the run:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:338 +#: ../../source/docker/tutorial-quickstart-docker.rst:345 msgid "Step 7: Update the Application" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:340 +#: ../../source/docker/tutorial-quickstart-docker.rst:347 msgid "" "Change the application code. For example, change the ``seed`` in " "``quickstart_docker/task.py`` to ``43`` and save it:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:343 +#: ../../source/docker/tutorial-quickstart-docker.rst:350 msgid "quickstart_docker/task.py" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:350 +#: ../../source/docker/tutorial-quickstart-docker.rst:357 #, fuzzy -msgid "Stop the current ClientApp containers:" +msgid "Stop the current ServerApp and ClientApp containers:" msgstr "현재 클라이언트 속성입니다." -#: ../../source/docker/tutorial-quickstart-docker.rst:356 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:125 +#: ../../source/docker/tutorial-quickstart-docker.rst:361 +msgid "" +"If you have modified the dependencies listed in your ``pyproject.toml`` " +"file, it is essential to rebuild images." +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:364 +msgid "If you haven’t made any changes, you can skip steps 2 through 4." +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:370 #, fuzzy -msgid "Rebuild the FAB and ClientApp image:" +msgid "Rebuild ServerApp and ClientApp images:" msgstr "기본 이미지 빌드" -#: ../../source/docker/tutorial-quickstart-docker.rst:362 -msgid "Launch two new ClientApp containers based on the newly built image:" +#: ../../source/docker/tutorial-quickstart-docker.rst:377 +msgid "" +"Launch one new ServerApp and two new ClientApp containers based on the " +"newly built image:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:377 +#: ../../source/docker/tutorial-quickstart-docker.rst:402 msgid "Run the updated project:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:384 +#: ../../source/docker/tutorial-quickstart-docker.rst:409 msgid "Step 8: Clean Up" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:386 +#: ../../source/docker/tutorial-quickstart-docker.rst:411 msgid "Remove the containers and the bridge network:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:398 -#: ../../source/docker/tutorial-quickstart-docker.rst:398 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:400 +#: ../../source/docker/tutorial-quickstart-docker.rst:423 #, fuzzy msgid "Where to Go Next" msgstr "시작 위치" -#: ../../source/docker/tutorial-quickstart-docker.rst:400 +#: ../../source/docker/tutorial-quickstart-docker.rst:425 msgid ":doc:`enable-tls`" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:401 +#: ../../source/docker/tutorial-quickstart-docker.rst:426 msgid ":doc:`persist-superlink-state`" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:402 +#: ../../source/docker/tutorial-quickstart-docker.rst:427 msgid ":doc:`tutorial-quickstart-docker-compose`" msgstr "" @@ -3976,164 +4194,158 @@ msgstr "" msgid "Clone the Docker Compose ``complete`` directory:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:38 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:39 msgid "" "Export the path of the newly created project. The path should be relative" " to the location of the Docker Compose files:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:45 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:46 msgid "" "Setting the ``PROJECT_DIR`` helps Docker Compose locate the " "``pyproject.toml`` file, allowing it to install dependencies in the " -"SuperExec and SuperNode images correctly." +"``ServerApp`` and ``ClientApp`` images correctly." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:49 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:51 #, fuzzy msgid "Step 2: Run Flower in Insecure Mode" msgstr "Flower SuperNode를 실행합니다." -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:51 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:53 msgid "" "To begin, start Flower with the most basic configuration. In this setup, " "Flower will run without TLS and without persisting the state." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:56 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:58 msgid "" "Without TLS, the data sent between the services remains **unencrypted**. " "Use it only for development purposes." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:59 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:61 msgid "" "For production-oriented use cases, :ref:`enable TLS` for secure data" " transmission." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:70 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:177 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:72 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:175 #, fuzzy msgid "``docker compose``: The Docker command to run the Docker Compose tool." msgstr "``docker run``: 새 Docker 컨테이너를 실행하는 명령입니다." -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:71 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:183 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:73 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:181 msgid "" "``--build``: Rebuild the images for each service if they don't already " "exist." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:72 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:184 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:74 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:182 msgid "" "``-d``: Detach the containers from the terminal and run them in the " "background." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:75 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:77 msgid "Step 3: Run the Quickstart Project" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:77 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:79 msgid "" "Now that the Flower services have been started via Docker Compose, it is " "time to run the quickstart example." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:80 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:82 msgid "" -"To ensure the ``flwr`` CLI connects to the SuperExec, you need to specify" -" the SuperExec addresses in the ``pyproject.toml`` file." +"To ensure the ``flwr`` CLI connects to the SuperLink, you need to specify" +" the SuperLink addresses in the ``pyproject.toml`` file." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:83 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:225 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:85 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:223 msgid "Add the following lines to the ``quickstart-compose/pyproject.toml``:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:85 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:227 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:87 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:225 msgid "quickstart-compose/pyproject.toml" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:92 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:94 msgid "" -"Run the quickstart example, monitor the ServerApp logs and wait for the " -"summary to appear:" +"Run the quickstart example, monitor the ``ServerApp`` logs and wait for " +"the summary to appear:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:100 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:102 msgid "Step 4: Update the Application" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:102 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:104 msgid "In the next step, change the application code." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:104 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:106 msgid "" "For example, go to the ``task.py`` file in the ``quickstart-" "compose/quickstart_compose/`` directory and add a ``print`` call in the " "``get_weights`` function:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:108 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:110 msgid "quickstart-compose/quickstart_compose/task.py" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:119 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:121 #, fuzzy msgid "Rebuild and restart the services." msgstr "이미 *서버*를 시작할 수 있습니다:" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:123 -msgid "" -"If you have modified the dependencies listed in your ``pyproject.toml`` " -"file, it is essential to rebuild images." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:126 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:128 msgid "If you haven't made any changes, you can skip this step." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:128 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:130 msgid "Run the following command to rebuild and restart the services:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:134 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:136 msgid "Run the updated quickstart example:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:140 -msgid "In the SuperExec logs, you should find the ``Get weights`` line:" +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:142 +msgid "In the ``ServerApp`` logs, you should find the ``Get weights`` line:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:157 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:155 msgid "Step 5: Persisting the SuperLink State" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:159 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:157 msgid "" "In this step, Flower services are configured to persist the state of the " "SuperLink service, ensuring that it maintains its state even after a " "restart." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:164 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:162 msgid "" "When working with Docker Compose on Linux, you may need to create the " "``state`` directory first and change its ownership to ensure proper " "access and permissions." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:169 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:219 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:167 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:217 msgid "Run the command:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:178 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:176 msgid "" "``-f compose.yml``: Specify the YAML file that contains the basic Flower " "service definitions." @@ -4156,17 +4368,17 @@ msgid "" "rules>`_." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:186 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:240 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:367 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:184 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:238 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:369 msgid "Rerun the ``quickstart-compose`` project:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:192 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:190 msgid "Check the content of the ``state`` directory:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:199 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:197 msgid "" "You should see a ``state.db`` file in the ``state`` directory. If you " "restart the service, the state file will be used to restore the state " @@ -4174,121 +4386,106 @@ msgid "" "if the containers are stopped and started again." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:207 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:205 msgid "Step 6: Run Flower with TLS" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:209 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:207 msgid "" "To demonstrate how to enable TLS, generate self-signed certificates using" " the ``certs.yml`` Compose file." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:216 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:214 msgid "" "For production environments, use a service like `Let's Encrypt " "`_ to obtain your certificates." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:234 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:232 msgid "Restart the services with TLS enabled:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:247 -msgid "Step 7: Add another SuperNode" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:249 -msgid "" -"You can add more SuperNodes and ClientApps by duplicating their " -"definitions in the ``compose.yml`` file." -msgstr "" +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:245 +#, fuzzy +msgid "Step 7: Add another SuperNode and ClientApp" +msgstr "서버(SuperLink)" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:252 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:247 msgid "" -"Just give each new SuperNode and ClientApp service a unique service name " -"like ``supernode-3``, ``clientapp-3``, etc." +"You can add more SuperNodes and ClientApps by uncommenting their " +"definitions in the ``compose.yml`` file:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:255 -msgid "In ``compose.yml``, add the following:" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:257 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:250 msgid "compose.yml" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:308 -msgid "" -"If you also want to enable TLS for the new SuperNodes, duplicate the " -"SuperNode definition for each new SuperNode service in the ``with-" -"tls.yml`` file." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:311 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:302 msgid "" -"Make sure that the names of the services match with the one in the " -"``compose.yml`` file." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:313 -msgid "In ``with-tls.yml``, add the following:" +"If you also want to enable TLS for the new SuperNode, uncomment the " +"definition in the ``with-tls.yml`` file:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:315 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:305 msgid "with-tls.yml" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:337 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:326 +#, fuzzy +msgid "Restart the services with:" +msgstr "이미 *서버*를 시작할 수 있습니다:" + +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:335 msgid "Step 8: Persisting the SuperLink State and Enabling TLS" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:339 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:337 msgid "" "To run Flower with persisted SuperLink state and enabled TLS, a slight " "change in the ``with-state.yml`` file is required:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:342 -msgid "Comment out the lines 2-4 and uncomment the lines 5-9:" +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:340 +msgid "Comment out the lines 2-6 and uncomment the lines 7-13:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:344 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:342 msgid "with-state.yml" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:361 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:363 #, fuzzy msgid "Restart the services:" msgstr "이미 *서버*를 시작할 수 있습니다:" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:374 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:376 msgid "Step 9: Merge Multiple Compose Files" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:376 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:378 msgid "" "You can merge multiple Compose files into a single file. For instance, if" " you wish to combine the basic configuration with the TLS configuration, " "execute the following command:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:385 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:387 msgid "" "This will merge the contents of ``compose.yml`` and ``with-tls.yml`` into" " a new file called ``my_compose.yml``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:389 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:391 msgid "Step 10: Clean Up" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:391 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:393 #, fuzzy msgid "Remove all services and volumes:" msgstr "R에서 모든 항목을 제거합니다." -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:400 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:402 #, fuzzy msgid ":doc:`run-quickstart-examples-docker-compose`" msgstr "빠른 시작 튜토리얼" @@ -5248,7 +5445,7 @@ msgstr "" "포함되므로 모든 통신이 신뢰할 수 있는 통신 방법을 사용하여 안전한 방식으로 이루어지도록 하세요." #: ../../source/how-to-authenticate-supernodes.rst:100 -#: ../../source/how-to-enable-ssl-connections.rst:71 +#: ../../source/how-to-enable-tls-connections.rst:108 #: ../../source/how-to-use-built-in-mods.rst:95 #: ../../source/tutorial-series-what-is-federated-learning.ipynb:287 msgid "Conclusion" @@ -5682,21 +5879,22 @@ msgid "" " to apply the new parameters to a model." msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:2 -msgid "Enable SSL connections" +#: ../../source/how-to-enable-tls-connections.rst:2 +#, fuzzy +msgid "Enable TLS connections" msgstr "SSL 연결 사용" -#: ../../source/how-to-enable-ssl-connections.rst:4 +#: ../../source/how-to-enable-tls-connections.rst:4 #, fuzzy msgid "" -"This guide describes how to a SSL-enabled secure Flower server " +"This guide describes how to a TLS-enabled secure Flower server " "(``SuperLink``) can be started and how a Flower client (``SuperNode``) " "can establish a secure connections to it." msgstr "" "이 가이드에서는 SSL을 지원하는 보안 Flower 서버(:코드:`SuperLink`)를 시작하는 방법과 Flower " "클라이언트(:코드:`SuperNode`)가 이 서버에 보안 연결을 설정하는 방법을 설명합니다." -#: ../../source/how-to-enable-ssl-connections.rst:8 +#: ../../source/how-to-enable-tls-connections.rst:8 msgid "" "A complete code example demonstrating a secure connection can be found " "`here `_'에서 확인할 수 있습니다." -#: ../../source/how-to-enable-ssl-connections.rst:11 +#: ../../source/how-to-enable-tls-connections.rst:11 #, fuzzy msgid "" "The code example comes with a ``README.md`` file which explains how to " -"start it. Although it is already SSL-enabled, it might be less " +"start it. Although it is already TLS-enabled, it might be less " "descriptive on how it does so. Stick to this guide for a deeper " "introduction to the topic." msgstr "" "코드 예제에는 시작 방법을 설명하는 :code:`README.md` 파일이 함께 제공됩니다. 이미 SSL을 사용하도록 설정되어 " "있지만 그 방법에 대한 설명이 부족할 수 있습니다. 이 가이드를 참고하여 이 주제에 대해 자세히 알아보세요." -#: ../../source/how-to-enable-ssl-connections.rst:16 +#: ../../source/how-to-enable-tls-connections.rst:16 msgid "Certificates" msgstr "인증서" -#: ../../source/how-to-enable-ssl-connections.rst:18 +#: ../../source/how-to-enable-tls-connections.rst:18 #, fuzzy msgid "" -"Using SSL-enabled connections requires certificates to be passed to the " +"Using TLS-enabled connections requires certificates to be passed to the " "server and client. For the purpose of this guide we are going to generate" " self-signed certificates. As this can become quite complex we are going " "to ask you to run the script in ``examples/advanced-" @@ -5735,7 +5933,7 @@ msgstr "" "이 과정은 상당히 복잡할 수 있으므로 다음 명령 시퀀스를 사용하여 :code:`examples/advanced-" "tensorflow/certificates/generate.sh`에서 스크립트를 실행하도록 요청하겠습니다:" -#: ../../source/how-to-enable-ssl-connections.rst:29 +#: ../../source/how-to-enable-tls-connections.rst:29 #, fuzzy msgid "" "This will generate the certificates in ``examples/advanced-" @@ -5744,9 +5942,10 @@ msgstr "" "이렇게 하면 :code:`examples/advanced-tensorflow/.cache/certificates`에 인증서가 " "생성됩니다." -#: ../../source/how-to-enable-ssl-connections.rst:32 +#: ../../source/how-to-enable-tls-connections.rst:32 +#, fuzzy msgid "" -"The approach for generating SSL certificates in the context of this " +"The approach for generating TLS certificates in the context of this " "example can serve as an inspiration and starting point, but it should not" " be used as a reference for production environments. Please refer to " "other sources regarding the issue of correctly generating certificates " @@ -5758,64 +5957,106 @@ msgstr "" "됩니다. 프로덕션 환경용 인증서를 올바르게 생성하는 문제에 대해서는 다른 출처를 참조하세요. 중요하지 않은 프로토타이핑 또는 연구 " "프로젝트의 경우, 이 가이드에 언급된 스크립트를 사용하여 생성한 자체 서명 인증서를 사용하는 것으로 충분할 수 있습니다." -#: ../../source/how-to-enable-ssl-connections.rst:40 +#: ../../source/how-to-enable-tls-connections.rst:40 msgid "Server (SuperLink)" msgstr "서버(SuperLink)" -#: ../../source/how-to-enable-ssl-connections.rst:42 +#: ../../source/how-to-enable-tls-connections.rst:42 +#, fuzzy msgid "" -"Use the following terminal command to start a sever (SuperLink) that uses" -" the previously generated certificates:" +"Navigate to the ``examples/advanced-tensorflow`` folder (`here " +"`_) and use the following terminal command to start a server " +"(SuperLink) that uses the previously generated certificates:" msgstr "다음 터미널 명령을 사용하여 이전에 생성한 인증서를 사용하는 서버(SuperLink)를 시작합니다:" -#: ../../source/how-to-enable-ssl-connections.rst:52 +#: ../../source/how-to-enable-tls-connections.rst:54 msgid "" "When providing certificates, the server expects a tuple of three " "certificates paths: CA certificate, server certificate and server private" " key." msgstr "인증서를 제공할 때 서버는 세 가지 인증서 경로의 튜플을 기대합니다: CA 인증서, 서버 인증서 및 서버 개인 키입니다." -#: ../../source/how-to-enable-ssl-connections.rst:56 -msgid "Client (SuperNode)" +#: ../../source/how-to-enable-tls-connections.rst:58 +#, fuzzy +msgid "Clients (SuperNode)" msgstr "클라이언트(SuperNode)" -#: ../../source/how-to-enable-ssl-connections.rst:58 +#: ../../source/how-to-enable-tls-connections.rst:60 msgid "" "Use the following terminal command to start a client (SuperNode) that " "uses the previously generated certificates:" msgstr "다음 터미널 명령을 사용하여 이전에 생성한 인증서를 사용하는 클라이언트(SuperNode)를 시작합니다:" -#: ../../source/how-to-enable-ssl-connections.rst:67 +#: ../../source/how-to-enable-tls-connections.rst:71 #, fuzzy msgid "" "When setting ``root_certificates``, the client expects a file path to " "PEM-encoded root certificates." msgstr "코드:`root_certificates`를 설정하면 클라이언트는 PEM 인코딩된 루트 인증서의 파일 경로를 예상합니다." -#: ../../source/how-to-enable-ssl-connections.rst:73 +#: ../../source/how-to-enable-tls-connections.rst:74 +#, fuzzy +msgid "" +"In another terminal, start a second SuperNode that uses the same " +"certificates:" +msgstr "다음 터미널 명령을 사용하여 이전에 생성한 인증서를 사용하는 클라이언트(SuperNode)를 시작합니다:" + +#: ../../source/how-to-enable-tls-connections.rst:84 +msgid "" +"Note that in the second SuperNode, if you run both on the same machine, " +"you must specify a different port for the ``ClientAppIO`` API address to " +"avoid clashing with the first SuperNode." +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:89 +msgid "Executing ``flwr run`` with TLS" +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:91 +msgid "" +"The root certificates used for executing ``flwr run`` is specified in the" +" ``pyproject.toml`` of your app." +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:100 +msgid "" +"Note that the path to the ``root-certificates`` is relative to the root " +"of the project. Now, you can run the example by executing the following:" +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:110 +#, fuzzy msgid "" "You should now have learned how to generate self-signed certificates " -"using the given script, start an SSL-enabled server and have a client " -"establish a secure connection to it." +"using the given script, start an TLS-enabled server and have two clients " +"establish secure connections to it. You should also have learned how to " +"run your Flower project using ``flwr run`` with TLS enabled." msgstr "" "이제 주어진 스크립트를 사용하여 자체 서명 인증서를 생성하고, SSL 사용 서버를 시작하고, 클라이언트가 보안 연결을 설정하는 " "방법을 배웠을 것입니다." -#: ../../source/how-to-enable-ssl-connections.rst:78 +#: ../../source/how-to-enable-tls-connections.rst:117 +msgid "" +"For running a Docker setup with TLS enabled, please refer to :doc:`docker" +"/enable-tls`." +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:121 msgid "Additional resources" msgstr "추가 리소스" -#: ../../source/how-to-enable-ssl-connections.rst:80 +#: ../../source/how-to-enable-tls-connections.rst:123 msgid "" "These additional sources might be relevant if you would like to dive " "deeper into the topic of certificates:" msgstr "인증서에 대해 더 자세히 알아보고 싶다면 이러한 추가 자료를 참고하세요:" -#: ../../source/how-to-enable-ssl-connections.rst:83 +#: ../../source/how-to-enable-tls-connections.rst:126 msgid "`Let's Encrypt `_" msgstr "'암호화하세요 `_'" -#: ../../source/how-to-enable-ssl-connections.rst:84 +#: ../../source/how-to-enable-tls-connections.rst:127 msgid "`certbot `_" msgstr "`인증봇 `_" @@ -6284,7 +6525,6 @@ msgid "Install stable release" msgstr "안정적인 릴리즈 설치" #: ../../source/how-to-install-flower.rst:14 -#: ../../source/how-to-upgrade-to-flower-next.rst:66 msgid "Using pip" msgstr "pip 사용" @@ -7156,10 +7396,10 @@ msgstr "Flower 1.0으로 업그레이드" #: ../../source/how-to-upgrade-to-flower-1.0.rst:6 msgid "" "This guide is for users who have already worked with Flower 0.x and want " -"to upgrade to Flower 1.0. Newer versions of Flower (1.12+) are based on a" -" new architecture (previously called Flower Next) and not covered in this" -" guide. After upgrading Flower 0.x projects to Flower 1.0, please refer " -"to :doc:`Upgrade to Flower Next ` to make " +"to upgrade to Flower 1.0. Newer versions of Flower (1.13 and later) are " +"based on a new architecture and not covered in this guide. After " +"upgrading Flower 0.x projects to Flower 1.0, please refer to " +":doc:`Upgrade to Flower 1.13 ` to make " "your project compatible with the lastest version of Flower." msgstr "" @@ -7175,7 +7415,7 @@ msgstr "" "획기적인 변경 사항이 있습니다." #: ../../source/how-to-upgrade-to-flower-1.0.rst:19 -#: ../../source/how-to-upgrade-to-flower-next.rst:63 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:49 msgid "Install update" msgstr "업데이트 설치" @@ -7226,7 +7466,7 @@ msgstr "" "(``start_simulation`` 사용 시)" #: ../../source/how-to-upgrade-to-flower-1.0.rst:37 -#: ../../source/how-to-upgrade-to-flower-next.rst:121 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:88 msgid "Required changes" msgstr "필수 변경 사항" @@ -7476,7 +7716,7 @@ msgstr "" "...)``" #: ../../source/how-to-upgrade-to-flower-1.0.rst:130 -#: ../../source/how-to-upgrade-to-flower-next.rst:349 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:451 msgid "Further help" msgstr "추가 도움말" @@ -7493,87 +7733,71 @@ msgstr "" "업데이트되어 있으며, Flower 1.0 API를 사용하기 위한 참고 자료로 사용할 수 있습니다. 더 궁금한 점이 있다면 ``플라워" " 슬랙 `_에 가입하여 ``#questions`` 채널을 이용하세요." -#: ../../source/how-to-upgrade-to-flower-next.rst:2 -msgid "Upgrade to Flower Next" -msgstr "Flower Next 업그레이드" +#: ../../source/how-to-upgrade-to-flower-1.13.rst:2 +#, fuzzy +msgid "Upgrade to Flower 1.13" +msgstr "Flower 1.0으로 업그레이드" -#: ../../source/how-to-upgrade-to-flower-next.rst:4 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:4 +#, fuzzy msgid "" -"Welcome to the migration guide for updating Flower to Flower Next! " +"Welcome to the migration guide for updating Flower to Flower 1.13! " "Whether you're a seasoned user or just getting started, this guide will " "help you smoothly transition your existing setup to take advantage of the" -" latest features and improvements in Flower Next, starting from version " -"1.8." +" latest features and improvements in Flower 1.13." msgstr "" "Flower에서 Flower Next로의 업데이트를 위한 이동 가이드에 오신 것을 환영합니다! 이 가이드는 숙련된 사용자든 이제 막" " 시작한 사용자든 상관없이 기존 설정을 원활하게 전환하여 버전 1.8부터 Flower Next의 최신 기능 및 개선 사항을 활용할 " "수 있도록 도와드립니다." -#: ../../source/how-to-upgrade-to-flower-next.rst:11 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:10 msgid "" -"This guide shows how to reuse pre-``1.8`` Flower code with minimum code " -"changes by using the *compatibility layer* in Flower Next. In another " -"guide, we will show how to run Flower Next end-to-end with pure Flower " -"Next APIs." +"This guide shows how to make pre-``1.13`` Flower code compatible with " +"Flower 1.13 (and later) with only minimal code changes." msgstr "" -"이 가이드에서는 Flower Next의 *호환성 레이어*를 사용하여 최소한의 코드 변경으로 ``1.8`` 이전의 Flower 코드를" -" 재사용하는 방법을 보여줍니다. 다른 가이드에서는 순수한 Flower Next API로 Flower Next를 end-to-end로" -" 실행하는 방법을 보여드리겠습니다." -#: ../../source/how-to-upgrade-to-flower-next.rst:15 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:13 msgid "Let's dive in!" msgstr "자세히 알아봅시다!" -#: ../../source/how-to-upgrade-to-flower-next.rst:68 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:51 +#, fuzzy msgid "" -"Here's how to update an existing installation of Flower to Flower Next " +"Here's how to update an existing installation of Flower to Flower 1.13 " "with ``pip``:" msgstr "기존에 설치된 Flower to Flower Next를 ``pip``으로 업데이트하는 방법은 다음과 같습니다:" -#: ../../source/how-to-upgrade-to-flower-next.rst:74 -msgid "or if you need Flower Next with simulation:" +#: ../../source/how-to-upgrade-to-flower-1.13.rst:57 +#, fuzzy +msgid "or if you need Flower 1.13 with simulation:" msgstr "또는 시뮬레이션이 포함된 Flower Next가 필요한 경우:" -#: ../../source/how-to-upgrade-to-flower-next.rst:80 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:63 msgid "" "Ensure you set the following version constraint in your " "``requirements.txt``" msgstr "``requirements.txt``에서 다음 버전 제약 조건을 설정했는지 확인하세요" -#: ../../source/how-to-upgrade-to-flower-next.rst:90 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:73 msgid "or ``pyproject.toml``:" msgstr "또는 ``pyproject.toml``:" -#: ../../source/how-to-upgrade-to-flower-next.rst:101 -msgid "Using Poetry" -msgstr "Poetry 사용" - -#: ../../source/how-to-upgrade-to-flower-next.rst:103 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:90 msgid "" -"Update the ``flwr`` dependency in ``pyproject.toml`` and then reinstall " -"(don't forget to delete ``poetry.lock`` via ``rm poetry.lock`` before " -"running ``poetry install``)." +"Starting with Flower 1.8, the *infrastructure* and *application layers* " +"have been decoupled. Flower 1.13 enforces this separation further. Among " +"other things, this allows you to run the exact same code in a simulation " +"as in a real deployment." msgstr "" -"``pyproject.toml``에서 ``flwr`` 의존성를 업데이트한 다음 다시 설치하세요(``poetry install``을 " -"실행하기 전에 ``rm poetry.lock``을 통해 ``poetry.lock``을 삭제하는 것을 잊지 마세요)." - -#: ../../source/how-to-upgrade-to-flower-next.rst:106 -msgid "" -"Ensure you set the following version constraint in your " -"``pyproject.toml``:" -msgstr "``pyproject.toml``에 다음 버전 제약 조건을 설정했는지 확인하세요:" -#: ../../source/how-to-upgrade-to-flower-next.rst:123 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:94 +#, fuzzy msgid "" -"In Flower Next, the *infrastructure* and *application layers* have been " -"decoupled. Instead of starting a client in code via ``start_client()``, " -"you create a |clientapp_link|_ and start it via the command line. Instead" -" of starting a server in code via ``start_server()``, you create a " -"|serverapp_link|_ and start it via the command line. The long-running " -"components of server and client are called SuperLink and SuperNode. The " -"following non-breaking changes that require manual updates and allow you " -"to run your project both in the traditional way and in the Flower Next " -"way:" +"Instead of starting a client in code via ``start_client()``, you create a" +" |clientapp_link|_. Instead of starting a server in code via " +"``start_server()``, you create a |serverapp_link|_. Both ``ClientApp`` " +"and ``ServerApp`` are started by the long-running components of the " +"server and client: the `SuperLink` and `SuperNode`, respectively." msgstr "" "Flower Next에서는 *infrastructure*와 *application layers*가 분리되었습니다. 코드에서 " "``start_client()``를 통해 클라이언트를 시작하는 대신, 명령줄을 통해 |clientapp_link|_를 생성하여 " @@ -7582,113 +7806,201 @@ msgstr "" "업데이트가 필요하지 않고 기존 방식과 Flower Next 방식 모두에서 프로젝트를 실행할 수 있는 non-breaking 변경 " "사항은 다음과 같습니다:" -#: ../../source/how-to-upgrade-to-flower-next.rst:132 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:102 +msgid "" +"For more details on SuperLink and SuperNode, please see the " +"|flower_architecture_link|_ ." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:105 +msgid "" +"The following non-breaking changes require manual updates and allow you " +"to run your project both in the traditional (now deprecated) way and in " +"the new (recommended) Flower 1.13 way:" +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:110 msgid "|clientapp_link|_" msgstr "|clientapp_link|_" -#: ../../source/how-to-upgrade-to-flower-next.rst:134 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:112 +#, fuzzy msgid "" "Wrap your existing client with |clientapp_link|_ instead of launching it " -"via |startclient_link|_. Here's an example:" +"via ``start_client()``. Here's an example:" msgstr "" "|clientapp_link|_를 통해 실행하는 대신 기존 클라이언트를 |clientapp_link|_로 래핑하세요. 다음은 " "예시입니다:" -#: ../../source/how-to-upgrade-to-flower-next.rst:157 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:146 msgid "|serverapp_link|_" msgstr "|serverapp_link|_" -#: ../../source/how-to-upgrade-to-flower-next.rst:159 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:148 +#, fuzzy msgid "" "Wrap your existing strategy with |serverapp_link|_ instead of starting " -"the server via |startserver_link|_. Here's an example:" +"the server via ``start_server()``. Here's an example:" msgstr "" "서버를 시작하려면 |startserver_link|_를 통해 서버를 시작하는 대신 기존 전략을 |serverapp_link|_로 " "래핑하세요. 다음은 예시입니다:" -#: ../../source/how-to-upgrade-to-flower-next.rst:180 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:185 msgid "Deployment" msgstr "배포" -#: ../../source/how-to-upgrade-to-flower-next.rst:182 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:187 +#, fuzzy msgid "" -"Run the ``SuperLink`` using |flowernext_superlink_link|_ before running, " -"in sequence, |flowernext_clientapp_link|_ (2x) and " -"|flowernext_serverapp_link|_. There is no need to execute `client.py` and" -" `server.py` as Python scripts." +"In a terminal window, start the SuperLink using |flower_superlink_link|_." +" Then, in two additional terminal windows, start two SuperNodes using " +"|flower_supernode_link|_ (2x). There is no need to directly run " +"``client.py`` and ``server.py`` as Python scripts." msgstr "" "실행하기 전에 |flowernext_superlink_link|_를 사용하여 ``SuperLink``를 실행한 후 " "|flowernext_clientapp_link|_(2회) 및 |flowernext_serverapp_link|_를 순서대로 " "실행합니다. 'client.py'와 'server.py'를 Python 스크립트로 실행할 필요는 없습니다." -#: ../../source/how-to-upgrade-to-flower-next.rst:185 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:190 +#, fuzzy msgid "" -"Here's an example to start the server without HTTPS (only for " -"prototyping):" +"Here's an example to start the server without HTTPS (insecure mode, only " +"for prototyping):" msgstr "다음은 HTTPS 없이 서버를 시작하는 예제입니다(프로토타이핑용으로만 사용):" -#: ../../source/how-to-upgrade-to-flower-next.rst:201 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:195 +msgid "" +"For a comprehensive walk-through on how to deploy Flower using Docker, " +"please refer to the :doc:`docker/index` guide." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:218 +#, fuzzy msgid "" -"Here's another example to start with HTTPS. Use the ``--ssl-ca-" -"certfile``, ``--ssl-certfile``, and ``--ssl-keyfile`` command line " -"options to pass paths to (CA certificate, server certificate, and server " -"private key)." +"Here's another example to start both SuperLink and SuperNodes with HTTPS." +" Use the ``--ssl-ca-certfile``, ``--ssl-certfile``, and ``--ssl-keyfile``" +" command line options to pass paths to (CA certificate, server " +"certificate, and server private key)." msgstr "" "다음은 HTTPS로 시작하는 또 다른 예제입니다. '`--ssl-ca-certfile``, '`--ssl-certfile``, " "'`--ssl-keyfile`` 명령줄 옵션을 사용하여 (CA 인증서, 서버 인증서 및 서버 개인 키)의 경로를 전달합니다." -#: ../../source/how-to-upgrade-to-flower-next.rst:229 -msgid "Simulation in CLI" +#: ../../source/how-to-upgrade-to-flower-1.13.rst:246 +#, fuzzy +msgid "Simulation (CLI)" msgstr "CLI 시뮬레이션" -#: ../../source/how-to-upgrade-to-flower-next.rst:231 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:248 +#, fuzzy msgid "" "Wrap your existing client and strategy with |clientapp_link|_ and " -"|serverapp_link|_, respectively. There is no need to use |startsim_link|_" -" anymore. Here's an example:" +"|serverapp_link|_, respectively. There is no need to use " +"``start_simulation()`` anymore. Here's an example:" msgstr "" "기존 클라이언트와 전략을 각각 |clientapp_link|_와 |serverapp_link|_로 래핑하세요. 더 이상 " "|startsim_link|_를 사용할 필요가 없습니다. 다음은 예시입니다:" -#: ../../source/how-to-upgrade-to-flower-next.rst:264 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:253 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:389 +msgid "" +"For a comprehensive guide on how to setup and run Flower simulations " +"please read the |flower_how_to_run_simulations_link|_ guide." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:310 +msgid "Depending on your Flower version, you can run your simulation as follows:" +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:312 +msgid "" +"For Flower 1.11 and later, run ``flwr run`` in the terminal. This is the " +"recommended way to start simulations, other ways are deprecated and no " +"longer recommended." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:314 +#, fuzzy msgid "" -"Run |flower_simulation_link|_ in CLI and point to the ``server_app`` / " +"DEPRECATED For Flower versions between 1.8 and 1.10, run ``flower-" +"simulation`` in the terminal and point to the ``server_app`` / " "``client_app`` object in the code instead of executing the Python script." -" Here's an example (assuming the ``server_app`` and ``client_app`` " -"objects are in a ``sim.py`` module):" +" In the code snippet below, there is an example (assuming the " +"``server_app`` and ``client_app`` objects are in a ``sim.py`` module)." msgstr "" "CLI에서 |flower_simulation_link|_를 실행하고 Python 스크립트를 실행하는 대신 코드에서 " "``server_app`` / ``client_app`` 개체를 가리키세요. 다음은 예제입니다(``server_app`` 및 " "``client_app`` 객체가 ``sim.py`` 모듈에 있다고 가정):" -#: ../../source/how-to-upgrade-to-flower-next.rst:281 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:318 +msgid "DEPRECATED For Flower versions before 1.8, run the Python script directly." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:337 +msgid "" +"Depending on your Flower version, you can also define the default " +"resources as follows:" +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:339 +msgid "" +"For Flower 1.11 and later, you can edit your ``pyproject.toml`` file and " +"then run ``flwr run`` in the terminal as shown in the example below." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:341 +#, fuzzy msgid "" -"Set default resources for each |clientapp_link|_ using the ``--backend-" -"config`` command line argument instead of setting the " -"``client_resources`` argument in |startsim_link|_. Here's an example:" +"DEPRECATED For Flower versions between 1.8 and 1.10, you can adjust the " +"resources for each |clientapp_link|_ using the ``--backend-config`` " +"command line argument instead of setting the ``client_resources`` " +"argument in ``start_simulation()``." msgstr "" "|startsim_link|_에서 ``client_resources`` 인수를 설정하는 대신 ``--backend-config`` " "명령줄 인수를 사용하여 각 |clientapp_link|_에 대한 기본 리소스를 설정하세요. 다음은 예시입니다:" -#: ../../source/how-to-upgrade-to-flower-next.rst:305 -msgid "Simulation in a Notebook" +#: ../../source/how-to-upgrade-to-flower-1.13.rst:344 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:384 +msgid "" +"DEPRECATED For Flower versions before 1.8, you need to run " +"``start_simulation()`` and pass a dictionary of the required resources to" +" the ``client_resources`` argument." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:375 +#, fuzzy +msgid "Simulation (Notebook)" msgstr "Notebook에서 시뮬레이션" -#: ../../source/how-to-upgrade-to-flower-next.rst:307 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:377 +msgid "" +"To run your simulation from within a notebook, please consider the " +"following examples depending on your Flower version:" +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:380 +#, fuzzy msgid "" -"Run |runsim_link|_ in your notebook instead of |startsim_link|_. Here's " -"an example:" +"For Flower 1.11 and later, you need to run |runsim_link|_ in your " +"notebook instead of ``start_simulation()``." msgstr "notebook에서 |startsim_link|_ 대신 |runsim_link|_를 실행하세요. 다음은 예시입니다:" -#: ../../source/how-to-upgrade-to-flower-next.rst:351 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:382 +msgid "" +"DEPRECATED For Flower versions between 1.8 and 1.10, you need to run " +"|runsim_link|_ in your notebook instead of ``start_simulation()`` and " +"configure the resources." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:453 +#, fuzzy msgid "" -"Some official `Flower code examples `_ " -"are already updated to Flower Next so they can serve as a reference for " -"using the Flower Next API. If there are further questions, `join the " -"Flower Slack `_ and use the channel " -"``#questions``. You can also `participate in Flower Discuss " -"`_ where you can find us answering questions," -" or share and learn from others about migrating to Flower Next." +"Most official `Flower code examples `_ " +"are already updated to Flower 1.13 so they can serve as a reference for " +"using the Flower 1.13 API. If there are further questions, `join the " +"Flower Slack `_ (and use the channel " +"``#questions``) or post them on `Flower Discuss " +"`_ where you can find the community posting " +"and answering questions." msgstr "" "일부 공식 ``Flower 코드 예제 `_는 이미 플라워 넥스트에 " "업데이트되어 있으므로 플라워 넥스트 API를 사용하는 데 참고할 수 있습니다. 더 궁금한 점이 있다면 ``플라워 슬랙 " @@ -7696,20 +8008,20 @@ msgstr "" "``Flower Discuss `_에 참여하여 질문에 대한 답변을 확인하거나 다른" " 사람들과 Flower Next로의 이동에 대해 공유하고 배울 수 있습니다." -#: ../../source/how-to-upgrade-to-flower-next.rst:358 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:460 msgid "Important" msgstr "중요" -#: ../../source/how-to-upgrade-to-flower-next.rst:360 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:462 +#, fuzzy msgid "" -"As we continuously enhance Flower Next at a rapid pace, we'll be " -"periodically updating this guide. Please feel free to share any feedback " -"with us!" +"As we continuously enhance Flower at a rapid pace, we'll be periodically " +"updating this guide. Please feel free to share any feedback with us!" msgstr "" "Flower Next는 빠른 속도로 지속적으로 개선되고 있으므로 이 가이드는 주기적으로 업데이트될 예정입니다. 피드백이 있으면 " "언제든지 공유해 주세요!" -#: ../../source/how-to-upgrade-to-flower-next.rst:366 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:465 msgid "Happy migrating! 🚀" msgstr "행복한 마이그레이션! 🚀" @@ -8350,9 +8662,233 @@ msgstr "" msgid "``flwr`` CLI" msgstr "Flower 클라이언트." -#: ../../source/ref-api-cli.rst:19 +#: ../../flwr:1 #, fuzzy -msgid "``flower-superlink``" +msgid "flwr is the Flower command line interface." +msgstr "Flower ClientProxy 인스턴스 등록 해제." + +#: ../../source/ref-api-cli.rst +#, fuzzy +msgid "Options" +msgstr "해결법" + +#: ../../flwr:1 +#, fuzzy +msgid "Install completion for the current shell." +msgstr "현재 실행에 대한 식별자입니다." + +#: ../../flwr:1 +msgid "" +"Show completion for the current shell, to copy it or customize the " +"installation." +msgstr "" + +#: ../../flwr build:1 +msgid "Build a Flower App into a Flower App Bundle (FAB)." +msgstr "" + +#: ../../flwr build:1 +msgid "" +"You can run ``flwr build`` without any arguments to bundle the app " +"located in the current directory. Alternatively, you can you can specify " +"a path using the ``--app`` option to bundle an app located at the " +"provided path. For example:" +msgstr "" + +#: ../../flwr build:1 +msgid "``flwr build --app ./apps/flower-hello-world``." +msgstr "" + +#: ../../flwr build:1 +msgid "Path of the Flower App to bundle into a FAB" +msgstr "" + +#: ../../flwr install:1 +#, fuzzy +msgid "Install a Flower App Bundle." +msgstr "Flower 설치" + +#: ../../flwr install:1 +msgid "It can be ran with a single FAB file argument:" +msgstr "" + +#: ../../flwr install:1 +msgid "``flwr install ./target_project.fab``" +msgstr "" + +#: ../../flwr install:1 +msgid "The target install directory can be specified with ``--flwr-dir``:" +msgstr "" + +#: ../../flwr install:1 +msgid "``flwr install ./target_project.fab --flwr-dir ./docs/flwr``" +msgstr "" + +#: ../../flwr install:1 +msgid "" +"This will install ``target_project`` to ``./docs/flwr/``. By default, " +"``flwr-dir`` is equal to:" +msgstr "" + +#: ../../flwr install:1 +msgid "``$FLWR_HOME/`` if ``$FLWR_HOME`` is defined" +msgstr "" + +#: ../../flwr install:1 +msgid "``$XDG_DATA_HOME/.flwr/`` if ``$XDG_DATA_HOME`` is defined" +msgstr "" + +#: ../../flwr install:1 +msgid "``$HOME/.flwr/`` in all other cases" +msgstr "" + +#: ../../flwr install:1 +msgid "The desired install path." +msgstr "" + +#: ../../source/ref-api-cli.rst +#, fuzzy +msgid "Arguments" +msgstr "빌드 전달인자" + +#: ../../flwr install:1 log:1 ls:1 new:1 run:1 +#, fuzzy +msgid "Optional argument" +msgstr "선택적 개선 사항" + +#: ../../flwr install:1 +msgid "The source FAB file to install." +msgstr "" + +#: ../../flwr log:1 +msgid "Get logs from a Flower project run." +msgstr "" + +#: ../../flwr log:1 +msgid "Flag to stream or print logs from the Flower run" +msgstr "" + +#: ../../flwr log ls run +msgid "default" +msgstr "" + +#: ../../flwr log:1 +#, fuzzy +msgid "``True``" +msgstr "``DISTRO``" + +#: ../../flwr log:1 +#, fuzzy +msgid "Required argument" +msgstr "빌드 전달인자" + +#: ../../flwr log:1 +#, fuzzy +msgid "The Flower run ID to query" +msgstr "Flower 커뮤니티 가입하기" + +#: ../../flwr log:1 +msgid "Path of the Flower project to run" +msgstr "" + +#: ../../flwr log:1 +msgid "Name of the federation to run the app on" +msgstr "" + +#: ../../flwr ls:1 +msgid "List runs." +msgstr "" + +#: ../../flwr ls:1 +msgid "List all runs" +msgstr "" + +#: ../../flwr ls:1 run:1 +#, fuzzy +msgid "``False``" +msgstr "``flwr/base``" + +#: ../../flwr ls:1 +msgid "Specific run ID to display" +msgstr "" + +#: ../../flwr ls:1 +#, fuzzy +msgid "Path of the Flower project" +msgstr "Flower 기본 이미지의 태그." + +#: ../../flwr ls:1 +msgid "Name of the federation" +msgstr "" + +#: ../../flwr new:1 +#, fuzzy +msgid "Create new Flower App." +msgstr "새 페이지 만들기" + +#: ../../flwr new:1 +msgid "The ML framework to use" +msgstr "" + +#: ../../flwr new +#, fuzzy +msgid "options" +msgstr "해결법" + +#: ../../flwr new:1 +msgid "" +"PyTorch | TensorFlow | sklearn | HuggingFace | JAX | MLX | NumPy | " +"FlowerTune | Flower Baseline" +msgstr "" + +#: ../../flwr new:1 +msgid "The Flower username of the author" +msgstr "" + +#: ../../flwr new:1 +#, fuzzy +msgid "The name of the Flower App" +msgstr "Flower 기본 이미지의 태그." + +#: ../../flwr run:1 +#, fuzzy +msgid "Run Flower App." +msgstr "Flower 서버." + +#: ../../flwr run:1 +msgid "Override configuration key-value pairs, should be of the format:" +msgstr "" + +#: ../../flwr run:1 +msgid "" +"`--run-config 'key1=\"value1\" key2=\"value2\"' --run-config " +"'key3=\"value3\"'`" +msgstr "" + +#: ../../flwr run:1 +msgid "" +"Note that `key1`, `key2`, and `key3` in this example need to exist inside" +" the `pyproject.toml` in order to be properly overriden." +msgstr "" + +#: ../../flwr run:1 +msgid "" +"Use `--stream` with `flwr run` to display logs; logs are not streamed by " +"default." +msgstr "" + +#: ../../flwr run:1 +#, fuzzy +msgid "Path of the Flower App to run." +msgstr "Flower 기본 이미지의 태그." + +#: ../../flwr run:1 +msgid "Name of the federation to run the app on." +msgstr "" + +#: ../../source/ref-api-cli.rst:19 +#, fuzzy +msgid "``flower-superlink``" msgstr "flower 초연결" #: ../../source/ref-api-cli.rst:29 @@ -8421,7 +8957,7 @@ msgstr "Modules" #: ../../source/ref-api/flwr.rst:35::1 #, fuzzy -msgid ":py:obj:`client `\\" +msgid ":py:obj:`flwr.client `\\" msgstr ":py:obj:`flwr.client `\\" #: ../../source/ref-api/flwr.rst:35::1 flwr.client:1 of @@ -8430,7 +8966,7 @@ msgstr "Flower 클라이언트." #: ../../source/ref-api/flwr.rst:35::1 #, fuzzy -msgid ":py:obj:`common `\\" +msgid ":py:obj:`flwr.common `\\" msgstr ":py:obj:`flwr.common `\\" #: ../../source/ref-api/flwr.rst:35::1 flwr.common:1 of @@ -8439,7 +8975,7 @@ msgstr "서버와 클라이언트 간에 공유되는 공통 구성 요소입니 #: ../../source/ref-api/flwr.rst:35::1 #, fuzzy -msgid ":py:obj:`server `\\" +msgid ":py:obj:`flwr.server `\\" msgstr ":py:obj:`flwr.server `\\" #: ../../source/ref-api/flwr.rst:35::1 @@ -8450,7 +8986,7 @@ msgstr "Flower 서버." #: ../../source/ref-api/flwr.rst:35::1 #, fuzzy -msgid ":py:obj:`simulation `\\" +msgid ":py:obj:`flwr.simulation `\\" msgstr ":py:obj:`flwr.simulation `\\" #: ../../source/ref-api/flwr.rst:35::1 flwr.simulation:1 of @@ -8538,7 +9074,7 @@ msgstr "NumPy를 사용하는 Flower 클라이언트를 위한 추상 베이스 #: ../../source/ref-api/flwr.client.rst:50::1 #, fuzzy -msgid ":py:obj:`mod `\\" +msgid ":py:obj:`flwr.client.mod `\\" msgstr ":py:obj:`flwr.client.mod `\\" #: ../../source/ref-api/flwr.client.rst:50::1 flwr.client.mod:1 of @@ -8736,49 +9272,59 @@ msgstr ":py:obj:`context `\\" msgid "Getter for `Context` client attribute." msgstr "" -#: ../../source/ref-api/flwr.client.Client.rst -#: ../../source/ref-api/flwr.client.NumPyClient.rst -#: ../../source/ref-api/flwr.client.mod.LocalDpMod.rst -#: ../../source/ref-api/flwr.common.Array.rst -#: ../../source/ref-api/flwr.common.ConfigsRecord.rst -#: ../../source/ref-api/flwr.common.Context.rst -#: ../../source/ref-api/flwr.common.Error.rst -#: ../../source/ref-api/flwr.common.Message.rst -#: ../../source/ref-api/flwr.common.Metadata.rst -#: ../../source/ref-api/flwr.common.MetricsRecord.rst #: ../../source/ref-api/flwr.common.Parameters.rst:2 -#: ../../source/ref-api/flwr.common.ParametersRecord.rst -#: ../../source/ref-api/flwr.common.RecordSet.rst -#: ../../source/ref-api/flwr.server.ClientManager.rst -#: ../../source/ref-api/flwr.server.Driver.rst -#: ../../source/ref-api/flwr.server.ServerAppComponents.rst -#: ../../source/ref-api/flwr.server.SimpleClientManager.rst -#: ../../source/ref-api/flwr.server.strategy.Bulyan.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgAdaptive.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgFixed.rst -#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyClientSideAdaptiveClipping.rst -#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyClientSideFixedClipping.rst -#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyServerSideAdaptiveClipping.rst -#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyServerSideFixedClipping.rst -#: ../../source/ref-api/flwr.server.strategy.FedAdagrad.rst -#: ../../source/ref-api/flwr.server.strategy.FedAdam.rst -#: ../../source/ref-api/flwr.server.strategy.FedAvg.rst -#: ../../source/ref-api/flwr.server.strategy.FedAvgAndroid.rst -#: ../../source/ref-api/flwr.server.strategy.FedAvgM.rst -#: ../../source/ref-api/flwr.server.strategy.FedOpt.rst -#: ../../source/ref-api/flwr.server.strategy.FedProx.rst -#: ../../source/ref-api/flwr.server.strategy.FedTrimmedAvg.rst -#: ../../source/ref-api/flwr.server.strategy.FedYogi.rst -#: ../../source/ref-api/flwr.server.strategy.Krum.rst -#: ../../source/ref-api/flwr.server.strategy.Strategy.rst -#: ../../source/ref-api/flwr.server.workflow.SecAggPlusWorkflow.rst -#: ../../source/ref-api/flwr.server.workflow.SecAggWorkflow.rst -#: ../../source/ref-api/flwr.simulation.SimulationIoConnection.rst -#: ../../source/ref-api/flwr.simulation.run_simulation.rst -#: ../../source/ref-api/flwr.simulation.start_simulation.rst #: flwr.client.app.start_client flwr.client.app.start_numpy_client -#: flwr.server.app.start_server -#: flwr.server.driver.driver.Driver.send_and_receive of +#: flwr.client.client.Client.evaluate flwr.client.client.Client.fit +#: flwr.client.client.Client.get_parameters +#: flwr.client.client.Client.get_properties +#: flwr.client.mod.localdp_mod.LocalDpMod +#: flwr.client.numpy_client.NumPyClient.evaluate +#: flwr.client.numpy_client.NumPyClient.fit +#: flwr.client.numpy_client.NumPyClient.get_parameters +#: flwr.client.numpy_client.NumPyClient.get_properties +#: flwr.common.context.Context flwr.common.message.Error +#: flwr.common.message.Message flwr.common.message.Message.create_error_reply +#: flwr.common.message.Message.create_reply flwr.common.message.Metadata +#: flwr.common.record.configsrecord.ConfigsRecord +#: flwr.common.record.metricsrecord.MetricsRecord +#: flwr.common.record.parametersrecord.Array +#: flwr.common.record.parametersrecord.ParametersRecord +#: flwr.common.record.recordset.RecordSet flwr.server.app.start_server +#: flwr.server.client_manager.ClientManager.register +#: flwr.server.client_manager.ClientManager.unregister +#: flwr.server.client_manager.SimpleClientManager.register +#: flwr.server.client_manager.SimpleClientManager.unregister +#: flwr.server.client_manager.SimpleClientManager.wait_for +#: flwr.server.driver.driver.Driver.create_message +#: flwr.server.driver.driver.Driver.pull_messages +#: flwr.server.driver.driver.Driver.push_messages +#: flwr.server.driver.driver.Driver.send_and_receive +#: flwr.server.driver.driver.Driver.set_run +#: flwr.server.serverapp_components.ServerAppComponents +#: flwr.server.strategy.bulyan.Bulyan +#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping +#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping +#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping +#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit +#: flwr.server.strategy.fedadagrad.FedAdagrad +#: flwr.server.strategy.fedadam.FedAdam flwr.server.strategy.fedavg.FedAvg +#: flwr.server.strategy.fedavg_android.FedAvgAndroid +#: flwr.server.strategy.fedavgm.FedAvgM flwr.server.strategy.fedopt.FedOpt +#: flwr.server.strategy.fedprox.FedProx +#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg +#: flwr.server.strategy.fedyogi.FedYogi flwr.server.strategy.krum.Krum +#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate +#: flwr.server.strategy.strategy.Strategy.aggregate_fit +#: flwr.server.strategy.strategy.Strategy.configure_evaluate +#: flwr.server.strategy.strategy.Strategy.configure_fit +#: flwr.server.strategy.strategy.Strategy.evaluate +#: flwr.server.strategy.strategy.Strategy.initialize_parameters +#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow +#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow +#: flwr.simulation.run_simulation.run_simulation +#: flwr.simulation.simulationio_connection.SimulationIoConnection of msgid "Parameters" msgstr "파라미터" @@ -8789,21 +9335,32 @@ msgid "" "customize the local evaluation process." msgstr "서버에서 받은 (전역) 모델 파라미터와 로컬 평가 프로세스를 사용자 지정하는 데 사용되는 구성 값 사전이 포함된 평가 지침입니다." -#: ../../source/ref-api/flwr.client.Client.rst -#: ../../source/ref-api/flwr.client.NumPyClient.rst -#: ../../source/ref-api/flwr.common.ConfigsRecord.rst -#: ../../source/ref-api/flwr.common.Message.rst -#: ../../source/ref-api/flwr.common.MetricsRecord.rst -#: ../../source/ref-api/flwr.common.ParametersRecord.rst -#: ../../source/ref-api/flwr.server.ClientManager.rst -#: ../../source/ref-api/flwr.server.Driver.rst -#: ../../source/ref-api/flwr.server.SimpleClientManager.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgAdaptive.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgFixed.rst -#: ../../source/ref-api/flwr.server.strategy.Strategy.rst -#: ../../source/ref-api/flwr.simulation.start_simulation.rst -#: flwr.server.app.start_server -#: flwr.server.driver.driver.Driver.send_and_receive of +#: flwr.client.client.Client.evaluate flwr.client.client.Client.fit +#: flwr.client.client.Client.get_parameters +#: flwr.client.client.Client.get_properties +#: flwr.client.numpy_client.NumPyClient.evaluate +#: flwr.client.numpy_client.NumPyClient.fit +#: flwr.client.numpy_client.NumPyClient.get_parameters +#: flwr.client.numpy_client.NumPyClient.get_properties +#: flwr.common.message.Message.create_error_reply +#: flwr.common.message.Message.create_reply flwr.server.app.start_server +#: flwr.server.client_manager.ClientManager.num_available +#: flwr.server.client_manager.ClientManager.register +#: flwr.server.client_manager.SimpleClientManager.num_available +#: flwr.server.client_manager.SimpleClientManager.register +#: flwr.server.client_manager.SimpleClientManager.wait_for +#: flwr.server.driver.driver.Driver.create_message +#: flwr.server.driver.driver.Driver.pull_messages +#: flwr.server.driver.driver.Driver.push_messages +#: flwr.server.driver.driver.Driver.send_and_receive +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit +#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate +#: flwr.server.strategy.strategy.Strategy.aggregate_fit +#: flwr.server.strategy.strategy.Strategy.configure_evaluate +#: flwr.server.strategy.strategy.Strategy.configure_fit +#: flwr.server.strategy.strategy.Strategy.evaluate +#: flwr.server.strategy.strategy.Strategy.initialize_parameters of msgid "Returns" msgstr "반환" @@ -8813,18 +9370,30 @@ msgid "" "details such as the number of local data examples used for evaluation." msgstr "로컬 데이터 세트의 손실 및 평가에 사용된 로컬 데이터 예제 수와 같은 기타 세부 정보가 포함된 평가 결과입니다." -#: ../../source/ref-api/flwr.client.Client.rst -#: ../../source/ref-api/flwr.client.NumPyClient.rst -#: ../../source/ref-api/flwr.common.Message.rst -#: ../../source/ref-api/flwr.server.ClientManager.rst -#: ../../source/ref-api/flwr.server.Driver.rst -#: ../../source/ref-api/flwr.server.SimpleClientManager.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgAdaptive.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgFixed.rst -#: ../../source/ref-api/flwr.server.strategy.Strategy.rst -#: ../../source/ref-api/flwr.simulation.start_simulation.rst -#: flwr.server.app.start_server -#: flwr.server.driver.driver.Driver.send_and_receive of +#: flwr.client.client.Client.evaluate flwr.client.client.Client.fit +#: flwr.client.client.Client.get_parameters +#: flwr.client.client.Client.get_properties +#: flwr.client.numpy_client.NumPyClient.get_parameters +#: flwr.client.numpy_client.NumPyClient.get_properties +#: flwr.common.message.Message.create_error_reply +#: flwr.common.message.Message.create_reply flwr.server.app.start_server +#: flwr.server.client_manager.ClientManager.num_available +#: flwr.server.client_manager.ClientManager.register +#: flwr.server.client_manager.SimpleClientManager.num_available +#: flwr.server.client_manager.SimpleClientManager.register +#: flwr.server.client_manager.SimpleClientManager.wait_for +#: flwr.server.driver.driver.Driver.create_message +#: flwr.server.driver.driver.Driver.pull_messages +#: flwr.server.driver.driver.Driver.push_messages +#: flwr.server.driver.driver.Driver.send_and_receive +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit +#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate +#: flwr.server.strategy.strategy.Strategy.aggregate_fit +#: flwr.server.strategy.strategy.Strategy.configure_evaluate +#: flwr.server.strategy.strategy.Strategy.configure_fit +#: flwr.server.strategy.strategy.Strategy.evaluate +#: flwr.server.strategy.strategy.Strategy.initialize_parameters of msgid "Return type" msgstr "반환 타입" @@ -8861,10 +9430,6 @@ msgstr "구성 값 dictionary이 포함된 서버로부터 받은 속성 가져 msgid "The current client properties." msgstr "현재 클라이언트 속성입니다." -#: ../../source/ref-api/flwr.client.ClientApp.rst:2 -msgid "ClientApp" -msgstr "클라이언트앱" - #: flwr.client.client_app.ClientApp:1 flwr.client.mod.localdp_mod.LocalDpMod:1 #: flwr.common.constant.MessageType:1 flwr.common.constant.MessageTypeLegacy:1 #: flwr.common.context.Context:1 flwr.common.message.Error:1 @@ -9181,6 +9746,11 @@ msgstr "클라이언트 측 고정 클리핑 수정자." msgid ":py:obj:`make_ffn `\\ \\(ffn\\, mods\\)" msgstr ":py:obj:`make_ffn `\\ \\(ffn\\, mods\\)" +#: ../../source/ref-api/flwr.client.mod.rst:28::1 +#: flwr.client.mod.utils.make_ffn:1 of +msgid "." +msgstr "." + #: ../../source/ref-api/flwr.client.mod.rst:28::1 msgid "" ":py:obj:`message_size_mod `\\ \\(msg\\," @@ -9357,10 +9927,6 @@ msgstr "일반적으로 fixedclipping_mod는 매개변수에서 가장 마지막 msgid "make\\_ffn" msgstr "make\\_ffn" -#: flwr.client.mod.utils.make_ffn:1 of -msgid "." -msgstr "." - #: ../../source/ref-api/flwr.client.mod.message_size_mod.rst:2 msgid "message\\_size\\_mod" msgstr "message\\_size\\_mod" @@ -9387,16 +9953,6 @@ msgstr "secagg\\_mod" msgid "secaggplus\\_mod" msgstr "secaggplus\\_mod" -#: ../../source/ref-api/flwr.client.run_client_app.rst:2 -#, fuzzy -msgid "run\\_client\\_app" -msgstr "클라이언트앱" - -#: ../../source/ref-api/flwr.client.run_supernode.rst:2 -#, fuzzy -msgid "run\\_supernode" -msgstr "run\\_supernode" - #: ../../source/ref-api/flwr.client.start_client.rst:2 msgid "start\\_client" msgstr "start\\_client" @@ -10212,14 +10768,9 @@ msgstr "이 객체에 저장된 바이트 수를 반환합니다." #: collections.abc.MutableMapping.clear:1::1 of #, fuzzy -msgid ":py:obj:`get `\\ \\(key\\[\\, default\\]\\)" +msgid ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" msgstr ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" -#: collections.abc.Mapping.get:1 -#: collections.abc.MutableMapping.clear:1::1 of -msgid "Retrieve the corresponding layout by the string key." -msgstr "" - #: collections.abc.MutableMapping.clear:1::1 of msgid ":py:obj:`items `\\ \\(\\)" msgstr ":py:obj:`items `\\ \\(\\)" @@ -10278,22 +10829,6 @@ msgstr ":py:obj:`values `\\ \\(\\)" msgid "This function counts booleans as occupying 1 Byte." msgstr "이 함수는 booleans을 1바이트를 차지하는 것으로 계산합니다." -#: collections.abc.Mapping.get:3 of -msgid "" -"When there isn't an exact match, all the existing keys in the layout map " -"will be treated as a regex and map against the input key again. The first" -" match will be returned, based on the key insertion order. Return None if" -" there isn't any match found." -msgstr "" - -#: collections.abc.Mapping.get:8 of -msgid "the string key as the query for the layout." -msgstr "" - -#: collections.abc.Mapping.get:10 of -msgid "Corresponding layout based on the query." -msgstr "" - #: ../../source/ref-api/flwr.common.Context.rst:2 msgid "Context" msgstr "컨텍스트" @@ -11824,7 +12359,7 @@ msgstr ":py:obj:`count_bytes `\\ \\(\\)" #: collections.abc.MutableMapping.clear:1::1 of #, fuzzy -msgid ":py:obj:`get `\\ \\(key\\[\\, default\\]\\)" +msgid ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" msgstr ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" #: collections.abc.MutableMapping.clear:1::1 of @@ -11971,9 +12506,7 @@ msgstr ":py:obj:`count_bytes `\\ \\(\\ #: collections.abc.MutableMapping.clear:1::1 of #, fuzzy -msgid "" -":py:obj:`get `\\ \\(key\\[\\, " -"default\\]\\)" +msgid ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" msgstr ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" #: collections.abc.MutableMapping.clear:1::1 of @@ -12316,7 +12849,7 @@ msgstr "사용 가능한 클라이언트 그룹 제공." #: ../../source/ref-api/flwr.server.rst:56::1 #, fuzzy -msgid ":py:obj:`strategy `\\" +msgid ":py:obj:`flwr.server.strategy `\\" msgstr ":py:obj:`state `\\" #: ../../source/ref-api/flwr.server.rst:56::1 @@ -12326,7 +12859,7 @@ msgstr "" #: ../../source/ref-api/flwr.server.rst:56::1 #, fuzzy -msgid ":py:obj:`workflow `\\" +msgid ":py:obj:`flwr.server.workflow `\\" msgstr ":py:obj:`flwr.server `\\" #: ../../source/ref-api/flwr.server.rst:56::1 @@ -12812,10 +13345,6 @@ msgstr "" msgid "Replace server strategy." msgstr "" -#: ../../source/ref-api/flwr.server.ServerApp.rst:2 -msgid "ServerApp" -msgstr "" - #: flwr.server.server_app.ServerApp:5 of msgid "Use the `ServerApp` with an existing `Strategy`:" msgstr "" @@ -12844,8 +13373,7 @@ msgid "" msgstr "" #: flwr.server.app.start_server:14 -#: flwr.server.serverapp_components.ServerAppComponents:6 -#: flwr.simulation.legacy_app.start_simulation:34 of +#: flwr.server.serverapp_components.ServerAppComponents:6 of msgid "" "Currently supported values are `num_rounds` (int, default: 1) and " "`round_timeout` in seconds (float, default: None)." @@ -12967,16 +13495,6 @@ msgstr "" msgid "**success**" msgstr "" -#: ../../source/ref-api/flwr.server.run_server_app.rst:2 -#, fuzzy -msgid "run\\_server\\_app" -msgstr "Flower 서버앱" - -#: ../../source/ref-api/flwr.server.run_superlink.rst:2 -#, fuzzy -msgid "run\\_superlink" -msgstr "flower 초연결" - #: ../../source/ref-api/flwr.server.start_server.rst:2 msgid "start\\_server" msgstr "" @@ -14343,7 +14861,7 @@ msgid "" msgstr "" #: ../../source/ref-api/flwr.server.strategy.FedAdagrad.rst:2 -#: ../../source/ref-changelog.md:1301 +#: ../../source/ref-changelog.md:1412 msgid "FedAdagrad" msgstr "" @@ -16026,17 +16544,16 @@ msgstr "Flower 시뮬레이션." #: ../../source/ref-api/flwr.simulation.rst:24::1 #, fuzzy msgid "" -":py:obj:`start_simulation `\\ \\(\\*\\," -" client\\_fn\\, num\\_clients\\)" +":py:obj:`start_simulation `\\ " +"\\(\\*args\\, \\*\\*kwargs\\)" msgstr "" ":py:obj:`start_client `\\ \\(\\*\\, " "server\\_address\\[\\, client\\_fn\\, ...\\]\\)" #: ../../source/ref-api/flwr.simulation.rst:24::1 -#: flwr.simulation.legacy_app.start_simulation:1 of -#, fuzzy -msgid "Start a Ray-based Flower simulation server." -msgstr "멀티 노드 Flower 시뮬레이션" +#: flwr.simulation.start_simulation:1 of +msgid "Log error stating that module `ray` could not be imported." +msgstr "" #: ../../source/ref-api/flwr.simulation.rst:31::1 #, fuzzy @@ -16134,237 +16651,620 @@ msgstr "시뮬레이션 실행" msgid "start\\_simulation" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:5 of -msgid "" -"This function is deprecated since 1.13.0. Use :code: `flwr run` to start " -"a Flower simulation." +#: ../../source/ref-changelog.md:1 +msgid "Changelog" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:8 of -msgid "" -"A function creating `Client` instances. The function must have the " -"signature `client_fn(context: Context). It should return a single client " -"instance of type `Client`. Note that the created client instances are " -"ephemeral and will often be destroyed after a single method invocation. " -"Since client instances are not long-lived, they should not attempt to " -"carry state over method invocations. Any state required by the instance " -"(model, dataset, hyperparameters, ...) should be (re-)created in either " -"the call to `client_fn` or the call to any of the client methods (e.g., " -"load evaluation data in the `evaluate` method itself)." -msgstr "" +#: ../../source/ref-changelog.md:3 +#, fuzzy +msgid "Unreleased" +msgstr "릴리즈 빌드" -#: flwr.simulation.legacy_app.start_simulation:18 of -msgid "The total number of clients in this simulation." +#: ../../source/ref-changelog.md:5 ../../source/ref-changelog.md:21 +#: ../../source/ref-changelog.md:122 ../../source/ref-changelog.md:224 +#: ../../source/ref-changelog.md:328 ../../source/ref-changelog.md:426 +#: ../../source/ref-changelog.md:526 ../../source/ref-changelog.md:590 +#: ../../source/ref-changelog.md:683 ../../source/ref-changelog.md:783 +#: ../../source/ref-changelog.md:867 ../../source/ref-changelog.md:931 +#: ../../source/ref-changelog.md:989 ../../source/ref-changelog.md:1058 +#: ../../source/ref-changelog.md:1187 ../../source/ref-changelog.md:1229 +#: ../../source/ref-changelog.md:1296 ../../source/ref-changelog.md:1362 +#: ../../source/ref-changelog.md:1407 ../../source/ref-changelog.md:1446 +#: ../../source/ref-changelog.md:1479 ../../source/ref-changelog.md:1529 +msgid "What's new?" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:20 of -msgid "" -"UNSUPPORTED, WILL BE REMOVED. USE `num_clients` INSTEAD. List " -"`client_id`s for each client. This is only required if `num_clients` is " -"not set. Setting both `num_clients` and `clients_ids` with " -"`len(clients_ids)` not equal to `num_clients` generates an error. Using " -"this argument will raise an error." +#: ../../source/ref-changelog.md:7 +#, fuzzy +msgid "Other changes" +msgstr "**변경사항 스테이징**" + +#: ../../source/ref-changelog.md:9 ../../source/ref-changelog.md:388 +#, fuzzy +msgid "Documentation improvements" +msgstr "선택적 개선 사항" + +#: ../../source/ref-changelog.md:11 ../../source/ref-changelog.md:88 +#: ../../source/ref-changelog.md:178 ../../source/ref-changelog.md:212 +#: ../../source/ref-changelog.md:292 ../../source/ref-changelog.md:408 +#: ../../source/ref-changelog.md:504 ../../source/ref-changelog.md:578 +#: ../../source/ref-changelog.md:653 ../../source/ref-changelog.md:765 +#: ../../source/ref-changelog.md:855 ../../source/ref-changelog.md:919 +#: ../../source/ref-changelog.md:977 ../../source/ref-changelog.md:1046 +#: ../../source/ref-changelog.md:1108 ../../source/ref-changelog.md:1127 +#: ../../source/ref-changelog.md:1283 ../../source/ref-changelog.md:1354 +#: ../../source/ref-changelog.md:1391 ../../source/ref-changelog.md:1434 +msgid "Incompatible changes" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:26 of -msgid "" -"CPU and GPU resources for a single client. Supported keys are `num_cpus` " -"and `num_gpus`. To understand the GPU utilization caused by `num_gpus`, " -"as well as using custom resources, please consult the Ray documentation." +#: ../../source/ref-changelog.md:13 +msgid "v1.13.0 (2024-11-20)" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:31 of -msgid "" -"An implementation of the abstract base class `flwr.server.Server`. If no " -"instance is provided, then `start_server` will create one." +#: ../../source/ref-changelog.md:15 ../../source/ref-changelog.md:116 +#: ../../source/ref-changelog.md:186 ../../source/ref-changelog.md:218 +#: ../../source/ref-changelog.md:322 ../../source/ref-changelog.md:420 +#: ../../source/ref-changelog.md:520 ../../source/ref-changelog.md:584 +#: ../../source/ref-changelog.md:677 ../../source/ref-changelog.md:777 +#: ../../source/ref-changelog.md:861 ../../source/ref-changelog.md:925 +#: ../../source/ref-changelog.md:983 ../../source/ref-changelog.md:1052 +#: ../../source/ref-changelog.md:1121 +msgid "Thanks to our contributors" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:37 of +#: ../../source/ref-changelog.md:17 ../../source/ref-changelog.md:118 +#: ../../source/ref-changelog.md:188 ../../source/ref-changelog.md:220 +#: ../../source/ref-changelog.md:324 ../../source/ref-changelog.md:422 +#: ../../source/ref-changelog.md:522 ../../source/ref-changelog.md:586 +#: ../../source/ref-changelog.md:679 ../../source/ref-changelog.md:779 +#: ../../source/ref-changelog.md:863 ../../source/ref-changelog.md:927 +#: ../../source/ref-changelog.md:985 msgid "" -"An implementation of the abstract base class `flwr.server.Strategy`. If " -"no strategy is provided, then `start_server` will use " -"`flwr.server.strategy.FedAvg`." +"We would like to give our special thanks to all the contributors who made" +" the new version of Flower possible (in `git shortlog` order):" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:41 of +#: ../../source/ref-changelog.md:19 msgid "" -"An implementation of the abstract base class `flwr.server.ClientManager`." -" If no implementation is provided, then `start_simulation` will use " -"`flwr.server.client_manager.SimpleClientManager`." +"`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. " +"Beutel`, `Daniel Nata Nugraha`, `Dimitris Stripelis`, `Heng Pan`, " +"`Javier`, `Mohammad Naseri`, `Robert Steiner`, `Waris Gill`, `William " +"Lindskog`, `Yan Gao`, `Yao Xu`, `wwjang` " msgstr "" -#: flwr.simulation.legacy_app.start_simulation:45 of +#: ../../source/ref-changelog.md:23 msgid "" -"Optional dictionary containing arguments for the call to `ray.init`. If " -"ray_init_args is None (the default), Ray will be initialized with the " -"following default args: { \"ignore_reinit_error\": True, " -"\"include_dashboard\": False } An empty dictionary can be used " -"(ray_init_args={}) to prevent any arguments from being passed to " -"ray.init." +"**Introduce `flwr ls` command** " +"([#4460](https://github.com/adap/flower/pull/4460), " +"[#4459](https://github.com/adap/flower/pull/4459), " +"[#4477](https://github.com/adap/flower/pull/4477))" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:45 of +#: ../../source/ref-changelog.md:25 msgid "" -"Optional dictionary containing arguments for the call to `ray.init`. If " -"ray_init_args is None (the default), Ray will be initialized with the " -"following default args:" +"The `flwr ls` command is now available to display details about all runs " +"(or one specific run). It supports the following usage options:" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:49 of -msgid "{ \"ignore_reinit_error\": True, \"include_dashboard\": False }" +#: ../../source/ref-changelog.md:27 +msgid "`flwr ls --runs [] []`: Lists all runs." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:51 of +#: ../../source/ref-changelog.md:28 msgid "" -"An empty dictionary can be used (ray_init_args={}) to prevent any " -"arguments from being passed to ray.init." +"`flwr ls --run-id [] []`: Displays details for " +"a specific run." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:54 of +#: ../../source/ref-changelog.md:30 msgid "" -"Set to True to prevent `ray.shutdown()` in case " -"`ray.is_initialized()=True`." +"This command provides information including the run ID, FAB ID and " +"version, run status, elapsed time, and timestamps for when the run was " +"created, started running, and finished." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:56 of +#: ../../source/ref-changelog.md:32 msgid "" -"Optionally specify the type of actor to use. The actor object, which " -"persists throughout the simulation, will be the process in charge of " -"executing a ClientApp wrapping input argument `client_fn`." +"**Fuse SuperLink and SuperExec** " +"([#4358](https://github.com/adap/flower/pull/4358), " +"[#4403](https://github.com/adap/flower/pull/4403), " +"[#4406](https://github.com/adap/flower/pull/4406), " +"[#4357](https://github.com/adap/flower/pull/4357), " +"[#4359](https://github.com/adap/flower/pull/4359), " +"[#4354](https://github.com/adap/flower/pull/4354), " +"[#4229](https://github.com/adap/flower/pull/4229), " +"[#4283](https://github.com/adap/flower/pull/4283), " +"[#4352](https://github.com/adap/flower/pull/4352))" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:60 of +#: ../../source/ref-changelog.md:34 msgid "" -"If you want to create your own Actor classes, you might need to pass some" -" input argument. You can use this dictionary for such purpose." +"SuperExec has been integrated into SuperLink, enabling SuperLink to " +"directly manage ServerApp processes (`flwr-serverapp`). The `flwr` CLI " +"now targets SuperLink's Exec API. Additionally, SuperLink introduces two " +"isolation modes for running ServerApps: `subprocess` (default) and " +"`process`, which can be specified using the `--isolation " +"{subprocess,process}` flag." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:63 of +#: ../../source/ref-changelog.md:36 msgid "" -"(default: \"DEFAULT\") Optional string (\"DEFAULT\" or \"SPREAD\") for " -"the VCE to choose in which node the actor is placed. If you are an " -"advanced user needed more control you can use lower-level scheduling " -"strategies to pin actors to specific compute nodes (e.g. via " -"NodeAffinitySchedulingStrategy). Please note this is an advanced feature." -" For all details, please refer to the Ray documentation: " -"https://docs.ray.io/en/latest/ray-core/scheduling/index.html" +"**Introduce `flwr-serverapp` command** " +"([#4394](https://github.com/adap/flower/pull/4394), " +"[#4370](https://github.com/adap/flower/pull/4370), " +"[#4367](https://github.com/adap/flower/pull/4367), " +"[#4350](https://github.com/adap/flower/pull/4350), " +"[#4364](https://github.com/adap/flower/pull/4364), " +"[#4400](https://github.com/adap/flower/pull/4400), " +"[#4363](https://github.com/adap/flower/pull/4363), " +"[#4401](https://github.com/adap/flower/pull/4401), " +"[#4388](https://github.com/adap/flower/pull/4388), " +"[#4402](https://github.com/adap/flower/pull/4402))" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:72 of -msgid "**hist** -- Object containing metrics from training." +#: ../../source/ref-changelog.md:38 +msgid "" +"The `flwr-serverapp` command has been introduced as a CLI entry point " +"that runs a `ServerApp` process. This process communicates with SuperLink" +" to load and execute the `ServerApp` object, enabling isolated execution " +"and more flexible deployment." msgstr "" -#: ../../source/ref-changelog.md:1 -msgid "Changelog" +#: ../../source/ref-changelog.md:40 +msgid "" +"**Improve simulation engine and introduce `flwr-simulation` command** " +"([#4433](https://github.com/adap/flower/pull/4433), " +"[#4486](https://github.com/adap/flower/pull/4486), " +"[#4448](https://github.com/adap/flower/pull/4448), " +"[#4427](https://github.com/adap/flower/pull/4427), " +"[#4438](https://github.com/adap/flower/pull/4438), " +"[#4421](https://github.com/adap/flower/pull/4421), " +"[#4430](https://github.com/adap/flower/pull/4430), " +"[#4462](https://github.com/adap/flower/pull/4462))" msgstr "" -#: ../../source/ref-changelog.md:3 -msgid "v1.12.0 (2024-10-14)" +#: ../../source/ref-changelog.md:42 +msgid "" +"The simulation engine has been significantly improved, resulting in " +"dramatically faster simulations. Additionally, the `flwr-simulation` " +"command has been introduced to enhance maintainability and provide a " +"dedicated entry point for running simulations." msgstr "" -#: ../../source/ref-changelog.md:5 ../../source/ref-changelog.md:75 -#: ../../source/ref-changelog.md:107 ../../source/ref-changelog.md:211 -#: ../../source/ref-changelog.md:309 ../../source/ref-changelog.md:409 -#: ../../source/ref-changelog.md:473 ../../source/ref-changelog.md:566 -#: ../../source/ref-changelog.md:666 ../../source/ref-changelog.md:750 -#: ../../source/ref-changelog.md:814 ../../source/ref-changelog.md:872 -#: ../../source/ref-changelog.md:941 ../../source/ref-changelog.md:1010 -msgid "Thanks to our contributors" +#: ../../source/ref-changelog.md:44 +msgid "" +"**Improve SuperLink message management** " +"([#4378](https://github.com/adap/flower/pull/4378), " +"[#4369](https://github.com/adap/flower/pull/4369))" msgstr "" -#: ../../source/ref-changelog.md:7 ../../source/ref-changelog.md:77 -#: ../../source/ref-changelog.md:109 ../../source/ref-changelog.md:213 -#: ../../source/ref-changelog.md:311 ../../source/ref-changelog.md:411 -#: ../../source/ref-changelog.md:475 ../../source/ref-changelog.md:568 -#: ../../source/ref-changelog.md:668 ../../source/ref-changelog.md:752 -#: ../../source/ref-changelog.md:816 ../../source/ref-changelog.md:874 +#: ../../source/ref-changelog.md:46 msgid "" -"We would like to give our special thanks to all the contributors who made" -" the new version of Flower possible (in `git shortlog` order):" +"SuperLink now validates the destination node ID of instruction messages " +"and checks the TTL (time-to-live) for reply messages. When pulling reply " +"messages, an error reply will be generated and returned if the " +"corresponding instruction message does not exist, has expired, or if the " +"reply message exists but has expired." msgstr "" -#: ../../source/ref-changelog.md:9 +#: ../../source/ref-changelog.md:48 msgid "" -"`Adam Narozniak`, `Audris`, `Charles Beauville`, `Chong Shen Ng`, `Daniel" -" J. Beutel`, `Daniel Nata Nugraha`, `Heng Pan`, `Javier`, `Jiahao Tan`, " -"`Julian Rußmeyer`, `Mohammad Naseri`, `Ray Sun`, `Robert Steiner`, `Yan " -"Gao`, `xiliguguagua` " +"**Introduce FedDebug baseline** " +"([#3783](https://github.com/adap/flower/pull/3783))" msgstr "" -#: ../../source/ref-changelog.md:11 ../../source/ref-changelog.md:113 -#: ../../source/ref-changelog.md:217 ../../source/ref-changelog.md:315 -#: ../../source/ref-changelog.md:415 ../../source/ref-changelog.md:479 -#: ../../source/ref-changelog.md:572 ../../source/ref-changelog.md:672 -#: ../../source/ref-changelog.md:756 ../../source/ref-changelog.md:820 -#: ../../source/ref-changelog.md:878 ../../source/ref-changelog.md:947 -#: ../../source/ref-changelog.md:1076 ../../source/ref-changelog.md:1118 -#: ../../source/ref-changelog.md:1185 ../../source/ref-changelog.md:1251 -#: ../../source/ref-changelog.md:1296 ../../source/ref-changelog.md:1335 -#: ../../source/ref-changelog.md:1368 ../../source/ref-changelog.md:1418 -msgid "What's new?" +#: ../../source/ref-changelog.md:50 +msgid "" +"FedDebug is a framework that enhances debugging in Federated Learning by " +"enabling interactive inspection of the training process and automatically" +" identifying clients responsible for degrading the global model's " +"performance—all without requiring testing data or labels. Learn more in " +"the [FedDebug baseline " +"documentation](https://flower.ai/docs/baselines/feddebug.html)." msgstr "" -#: ../../source/ref-changelog.md:13 +#: ../../source/ref-changelog.md:52 msgid "" -"**Introduce SuperExec log streaming** " -"([#3577](https://github.com/adap/flower/pull/3577), " -"[#3584](https://github.com/adap/flower/pull/3584), " -"[#4242](https://github.com/adap/flower/pull/4242), " -"[#3611](https://github.com/adap/flower/pull/3611), " -"[#3613](https://github.com/adap/flower/pull/3613))" +"**Update documentation** " +"([#4511](https://github.com/adap/flower/pull/4511), " +"[#4010](https://github.com/adap/flower/pull/4010), " +"[#4396](https://github.com/adap/flower/pull/4396), " +"[#4499](https://github.com/adap/flower/pull/4499), " +"[#4269](https://github.com/adap/flower/pull/4269), " +"[#3340](https://github.com/adap/flower/pull/3340), " +"[#4482](https://github.com/adap/flower/pull/4482), " +"[#4387](https://github.com/adap/flower/pull/4387), " +"[#4342](https://github.com/adap/flower/pull/4342), " +"[#4492](https://github.com/adap/flower/pull/4492), " +"[#4474](https://github.com/adap/flower/pull/4474), " +"[#4500](https://github.com/adap/flower/pull/4500), " +"[#4514](https://github.com/adap/flower/pull/4514), " +"[#4236](https://github.com/adap/flower/pull/4236), " +"[#4112](https://github.com/adap/flower/pull/4112), " +"[#3367](https://github.com/adap/flower/pull/3367), " +"[#4501](https://github.com/adap/flower/pull/4501), " +"[#4373](https://github.com/adap/flower/pull/4373), " +"[#4409](https://github.com/adap/flower/pull/4409), " +"[#4356](https://github.com/adap/flower/pull/4356), " +"[#4520](https://github.com/adap/flower/pull/4520), " +"[#4524](https://github.com/adap/flower/pull/4524), " +"[#4525](https://github.com/adap/flower/pull/4525), " +"[#4526](https://github.com/adap/flower/pull/4526), " +"[#4527](https://github.com/adap/flower/pull/4527), " +"[#4528](https://github.com/adap/flower/pull/4528), " +"[#4545](https://github.com/adap/flower/pull/4545), " +"[#4522](https://github.com/adap/flower/pull/4522), " +"[#4534](https://github.com/adap/flower/pull/4534), " +"[#4513](https://github.com/adap/flower/pull/4513), " +"[#4529](https://github.com/adap/flower/pull/4529), " +"[#4441](https://github.com/adap/flower/pull/4441), " +"[#4530](https://github.com/adap/flower/pull/4530), " +"[#4470](https://github.com/adap/flower/pull/4470), " +"[#4553](https://github.com/adap/flower/pull/4553), " +"[#4531](https://github.com/adap/flower/pull/4531), " +"[#4554](https://github.com/adap/flower/pull/4554), " +"[#4555](https://github.com/adap/flower/pull/4555), " +"[#4552](https://github.com/adap/flower/pull/4552), " +"[#4533](https://github.com/adap/flower/pull/4533))" +msgstr "" + +#: ../../source/ref-changelog.md:54 +msgid "" +"Many documentation pages and tutorials have been updated to improve " +"clarity, fix typos, incorporate user feedback, and stay aligned with the " +"latest features in the framework. Key updates include adding a guide for " +"designing stateful `ClientApp` objects, updating the comprehensive guide " +"for setting up and running Flower's `Simulation Engine`, updating the " +"XGBoost, scikit-learn, and JAX quickstart tutorials to use `flwr run`, " +"updating DP guide, removing outdated pages, updating Docker docs, and " +"marking legacy functions as deprecated. The [Secure Aggregation " +"Protocols](https://flower.ai/docs/framework/contributor-ref-secure-" +"aggregation-protocols.html) page has also been updated." +msgstr "" + +#: ../../source/ref-changelog.md:56 +msgid "" +"**Update examples and templates** " +"([#4510](https://github.com/adap/flower/pull/4510), " +"[#4368](https://github.com/adap/flower/pull/4368), " +"[#4121](https://github.com/adap/flower/pull/4121), " +"[#4329](https://github.com/adap/flower/pull/4329), " +"[#4382](https://github.com/adap/flower/pull/4382), " +"[#4248](https://github.com/adap/flower/pull/4248), " +"[#4395](https://github.com/adap/flower/pull/4395), " +"[#4386](https://github.com/adap/flower/pull/4386), " +"[#4408](https://github.com/adap/flower/pull/4408))" +msgstr "" + +#: ../../source/ref-changelog.md:58 +msgid "" +"Multiple examples and templates have been updated to enhance usability " +"and correctness. The updates include the `30-minute-tutorial`, " +"`quickstart-jax`, `quickstart-pytorch`, `advanced-tensorflow` examples, " +"and the FlowerTune template." +msgstr "" + +#: ../../source/ref-changelog.md:60 +msgid "" +"**Improve Docker support** " +"([#4506](https://github.com/adap/flower/pull/4506), " +"[#4424](https://github.com/adap/flower/pull/4424), " +"[#4224](https://github.com/adap/flower/pull/4224), " +"[#4413](https://github.com/adap/flower/pull/4413), " +"[#4414](https://github.com/adap/flower/pull/4414), " +"[#4336](https://github.com/adap/flower/pull/4336), " +"[#4420](https://github.com/adap/flower/pull/4420), " +"[#4407](https://github.com/adap/flower/pull/4407), " +"[#4422](https://github.com/adap/flower/pull/4422), " +"[#4532](https://github.com/adap/flower/pull/4532), " +"[#4540](https://github.com/adap/flower/pull/4540))" +msgstr "" + +#: ../../source/ref-changelog.md:62 +msgid "" +"Docker images and configurations have been updated, including updating " +"Docker Compose files to version 1.13.0, refactoring the Docker build " +"matrix for better maintainability, updating `docker/build-push-action` to" +" 6.9.0, and improving Docker documentation." +msgstr "" + +#: ../../source/ref-changelog.md:64 +msgid "" +"**Allow app installation without internet access** " +"([#4479](https://github.com/adap/flower/pull/4479), " +"[#4475](https://github.com/adap/flower/pull/4475))" +msgstr "" + +#: ../../source/ref-changelog.md:66 +msgid "" +"The `flwr build` command now includes a wheel file in the FAB, enabling " +"Flower app installation in environments without internet access via `flwr" +" install`." msgstr "" -#: ../../source/ref-changelog.md:15 +#: ../../source/ref-changelog.md:68 msgid "" -"Flower now supports log streaming from a remote SuperExec using the `flwr" -" log` command. This new feature allows you to monitor logs from SuperExec" -" in real time via `flwr log ` (or `flwr log " -"`)." +"**Improve `flwr log` command** " +"([#4391](https://github.com/adap/flower/pull/4391), " +"[#4411](https://github.com/adap/flower/pull/4411), " +"[#4390](https://github.com/adap/flower/pull/4390), " +"[#4397](https://github.com/adap/flower/pull/4397))" msgstr "" -#: ../../source/ref-changelog.md:17 +#: ../../source/ref-changelog.md:70 msgid "" -"**Improve `flwr new` templates** " -"([#4291](https://github.com/adap/flower/pull/4291), " -"[#4292](https://github.com/adap/flower/pull/4292), " -"[#4293](https://github.com/adap/flower/pull/4293), " -"[#4294](https://github.com/adap/flower/pull/4294), " -"[#4295](https://github.com/adap/flower/pull/4295))" +"**Refactor SuperNode for better maintainability and efficiency** " +"([#4439](https://github.com/adap/flower/pull/4439), " +"[#4348](https://github.com/adap/flower/pull/4348), " +"[#4512](https://github.com/adap/flower/pull/4512), " +"[#4485](https://github.com/adap/flower/pull/4485))" msgstr "" -#: ../../source/ref-changelog.md:19 +#: ../../source/ref-changelog.md:72 msgid "" -"The `flwr new` command templates for MLX, NumPy, sklearn, JAX, and " -"PyTorch have been updated to improve usability and consistency across " -"frameworks." +"**Support NumPy `2.0`** " +"([#4440](https://github.com/adap/flower/pull/4440))" msgstr "" -#: ../../source/ref-changelog.md:21 +#: ../../source/ref-changelog.md:74 msgid "" -"**Migrate ID handling to use unsigned 64-bit integers** " -"([#4170](https://github.com/adap/flower/pull/4170), " -"[#4237](https://github.com/adap/flower/pull/4237), " -"[#4243](https://github.com/adap/flower/pull/4243))" +"**Update infrastructure and CI/CD** " +"([#4466](https://github.com/adap/flower/pull/4466), " +"[#4419](https://github.com/adap/flower/pull/4419), " +"[#4338](https://github.com/adap/flower/pull/4338), " +"[#4334](https://github.com/adap/flower/pull/4334), " +"[#4456](https://github.com/adap/flower/pull/4456), " +"[#4446](https://github.com/adap/flower/pull/4446), " +"[#4415](https://github.com/adap/flower/pull/4415))" msgstr "" -#: ../../source/ref-changelog.md:23 +#: ../../source/ref-changelog.md:76 msgid "" -"Node IDs, run IDs, and related fields have been migrated from signed " -"64-bit integers (`sint64`) to unsigned 64-bit integers (`uint64`). To " -"support this change, the `uint64` type is fully supported in all " -"communications. You may now use `uint64` values in config and metric " -"dictionaries. For Python users, that means using `int` values larger than" -" the maximum value of `sint64` but less than the maximum value of " -"`uint64`." +"**Bugfixes** ([#4404](https://github.com/adap/flower/pull/4404), " +"[#4518](https://github.com/adap/flower/pull/4518), " +"[#4452](https://github.com/adap/flower/pull/4452), " +"[#4376](https://github.com/adap/flower/pull/4376), " +"[#4493](https://github.com/adap/flower/pull/4493), " +"[#4436](https://github.com/adap/flower/pull/4436), " +"[#4410](https://github.com/adap/flower/pull/4410), " +"[#4442](https://github.com/adap/flower/pull/4442), " +"[#4375](https://github.com/adap/flower/pull/4375), " +"[#4515](https://github.com/adap/flower/pull/4515))" msgstr "" -#: ../../source/ref-changelog.md:25 +#: ../../source/ref-changelog.md:78 msgid "" -"**Add Flower architecture explanation** " -"([#3270](https://github.com/adap/flower/pull/3270))" +"**General improvements** " +"([#4454](https://github.com/adap/flower/pull/4454), " +"[#4365](https://github.com/adap/flower/pull/4365), " +"[#4423](https://github.com/adap/flower/pull/4423), " +"[#4516](https://github.com/adap/flower/pull/4516), " +"[#4509](https://github.com/adap/flower/pull/4509), " +"[#4498](https://github.com/adap/flower/pull/4498), " +"[#4371](https://github.com/adap/flower/pull/4371), " +"[#4449](https://github.com/adap/flower/pull/4449), " +"[#4488](https://github.com/adap/flower/pull/4488), " +"[#4478](https://github.com/adap/flower/pull/4478), " +"[#4392](https://github.com/adap/flower/pull/4392), " +"[#4483](https://github.com/adap/flower/pull/4483), " +"[#4517](https://github.com/adap/flower/pull/4517), " +"[#4330](https://github.com/adap/flower/pull/4330), " +"[#4458](https://github.com/adap/flower/pull/4458), " +"[#4347](https://github.com/adap/flower/pull/4347), " +"[#4429](https://github.com/adap/flower/pull/4429), " +"[#4463](https://github.com/adap/flower/pull/4463), " +"[#4496](https://github.com/adap/flower/pull/4496), " +"[#4508](https://github.com/adap/flower/pull/4508), " +"[#4444](https://github.com/adap/flower/pull/4444), " +"[#4417](https://github.com/adap/flower/pull/4417), " +"[#4504](https://github.com/adap/flower/pull/4504), " +"[#4418](https://github.com/adap/flower/pull/4418), " +"[#4480](https://github.com/adap/flower/pull/4480), " +"[#4455](https://github.com/adap/flower/pull/4455), " +"[#4468](https://github.com/adap/flower/pull/4468), " +"[#4385](https://github.com/adap/flower/pull/4385), " +"[#4487](https://github.com/adap/flower/pull/4487), " +"[#4393](https://github.com/adap/flower/pull/4393), " +"[#4489](https://github.com/adap/flower/pull/4489), " +"[#4389](https://github.com/adap/flower/pull/4389), " +"[#4507](https://github.com/adap/flower/pull/4507), " +"[#4469](https://github.com/adap/flower/pull/4469), " +"[#4340](https://github.com/adap/flower/pull/4340), " +"[#4353](https://github.com/adap/flower/pull/4353), " +"[#4494](https://github.com/adap/flower/pull/4494), " +"[#4461](https://github.com/adap/flower/pull/4461), " +"[#4362](https://github.com/adap/flower/pull/4362), " +"[#4473](https://github.com/adap/flower/pull/4473), " +"[#4405](https://github.com/adap/flower/pull/4405), " +"[#4416](https://github.com/adap/flower/pull/4416), " +"[#4453](https://github.com/adap/flower/pull/4453), " +"[#4491](https://github.com/adap/flower/pull/4491), " +"[#4539](https://github.com/adap/flower/pull/4539), " +"[#4542](https://github.com/adap/flower/pull/4542), " +"[#4538](https://github.com/adap/flower/pull/4538), " +"[#4543](https://github.com/adap/flower/pull/4543), " +"[#4541](https://github.com/adap/flower/pull/4541), " +"[#4550](https://github.com/adap/flower/pull/4550), " +"[#4481](https://github.com/adap/flower/pull/4481))" +msgstr "" + +#: ../../source/ref-changelog.md:80 ../../source/ref-changelog.md:176 +#: ../../source/ref-changelog.md:279 ../../source/ref-changelog.md:386 +msgid "" +"As always, many parts of the Flower framework and quality infrastructure " +"were improved and updated." msgstr "" -#: ../../source/ref-changelog.md:27 +#: ../../source/ref-changelog.md:82 ../../source/ref-changelog.md:281 +#: ../../source/ref-changelog.md:398 ../../source/ref-changelog.md:490 +#: ../../source/ref-changelog.md:1473 +msgid "Deprecations" +msgstr "" + +#: ../../source/ref-changelog.md:84 +#, fuzzy +msgid "**Deprecate Python 3.9**" +msgstr "**PR 만들기**" + +#: ../../source/ref-changelog.md:86 +msgid "" +"Flower is deprecating support for Python 3.9 as several of its " +"dependencies are phasing out compatibility with this version. While no " +"immediate changes have been made, users are encouraged to plan for " +"upgrading to a supported Python version." +msgstr "" + +#: ../../source/ref-changelog.md:90 +msgid "" +"**Remove `flower-superexec` command** " +"([#4351](https://github.com/adap/flower/pull/4351))" +msgstr "" + +#: ../../source/ref-changelog.md:92 +msgid "" +"The `flower-superexec` command, previously used to launch SuperExec, is " +"no longer functional as SuperExec has been merged into SuperLink. " +"Starting an additional SuperExec is no longer necessary when SuperLink is" +" initiated." +msgstr "" + +#: ../../source/ref-changelog.md:94 +msgid "" +"**Remove `flower-server-app` command** " +"([#4490](https://github.com/adap/flower/pull/4490))" +msgstr "" + +#: ../../source/ref-changelog.md:96 +msgid "" +"The `flower-server-app` command has been removed. To start a Flower app, " +"please use the `flwr run` command instead." +msgstr "" + +#: ../../source/ref-changelog.md:98 +msgid "" +"**Remove `app` argument from `flower-supernode` command** " +"([#4497](https://github.com/adap/flower/pull/4497))" +msgstr "" + +#: ../../source/ref-changelog.md:100 +msgid "" +"The usage of `flower-supernode ` has been removed. SuperNode " +"will now load the FAB delivered by SuperLink, and it is no longer " +"possible to directly specify an app directory." +msgstr "" + +#: ../../source/ref-changelog.md:102 +msgid "" +"**Remove support for non-app simulations** " +"([#4431](https://github.com/adap/flower/pull/4431))" +msgstr "" + +#: ../../source/ref-changelog.md:104 +msgid "" +"The simulation engine (via `flower-simulation`) now exclusively supports " +"passing an app." +msgstr "" + +#: ../../source/ref-changelog.md:106 +msgid "" +"**Rename CLI arguments for `flower-superlink` command** " +"([#4412](https://github.com/adap/flower/pull/4412))" +msgstr "" + +#: ../../source/ref-changelog.md:108 +msgid "" +"The `--driver-api-address` argument has been renamed to `--serverappio-" +"api-address` in the `flower-superlink` command to reflect the renaming of" +" the `Driver` service to the `ServerAppIo` service." +msgstr "" + +#: ../../source/ref-changelog.md:110 +msgid "" +"**Rename CLI arguments for `flwr-serverapp` and `flwr-clientapp` " +"commands** ([#4495](https://github.com/adap/flower/pull/4495))" +msgstr "" + +#: ../../source/ref-changelog.md:112 +msgid "" +"The CLI arguments have been renamed for clarity and consistency. " +"Specifically, `--superlink` for `flwr-serverapp` is now `--serverappio-" +"api-address`, and `--supernode` for `flwr-clientapp` is now " +"`--clientappio-api-address`." +msgstr "" + +#: ../../source/ref-changelog.md:114 +msgid "v1.12.0 (2024-10-14)" +msgstr "" + +#: ../../source/ref-changelog.md:120 +msgid "" +"`Adam Narozniak`, `Audris`, `Charles Beauville`, `Chong Shen Ng`, `Daniel" +" J. Beutel`, `Daniel Nata Nugraha`, `Heng Pan`, `Javier`, `Jiahao Tan`, " +"`Julian Rußmeyer`, `Mohammad Naseri`, `Ray Sun`, `Robert Steiner`, `Yan " +"Gao`, `xiliguguagua` " +msgstr "" + +#: ../../source/ref-changelog.md:124 +msgid "" +"**Introduce SuperExec log streaming** " +"([#3577](https://github.com/adap/flower/pull/3577), " +"[#3584](https://github.com/adap/flower/pull/3584), " +"[#4242](https://github.com/adap/flower/pull/4242), " +"[#3611](https://github.com/adap/flower/pull/3611), " +"[#3613](https://github.com/adap/flower/pull/3613))" +msgstr "" + +#: ../../source/ref-changelog.md:126 +msgid "" +"Flower now supports log streaming from a remote SuperExec using the `flwr" +" log` command. This new feature allows you to monitor logs from SuperExec" +" in real time via `flwr log ` (or `flwr log " +"`)." +msgstr "" + +#: ../../source/ref-changelog.md:128 +msgid "" +"**Improve `flwr new` templates** " +"([#4291](https://github.com/adap/flower/pull/4291), " +"[#4292](https://github.com/adap/flower/pull/4292), " +"[#4293](https://github.com/adap/flower/pull/4293), " +"[#4294](https://github.com/adap/flower/pull/4294), " +"[#4295](https://github.com/adap/flower/pull/4295))" +msgstr "" + +#: ../../source/ref-changelog.md:130 +msgid "" +"The `flwr new` command templates for MLX, NumPy, sklearn, JAX, and " +"PyTorch have been updated to improve usability and consistency across " +"frameworks." +msgstr "" + +#: ../../source/ref-changelog.md:132 +msgid "" +"**Migrate ID handling to use unsigned 64-bit integers** " +"([#4170](https://github.com/adap/flower/pull/4170), " +"[#4237](https://github.com/adap/flower/pull/4237), " +"[#4243](https://github.com/adap/flower/pull/4243))" +msgstr "" + +#: ../../source/ref-changelog.md:134 +msgid "" +"Node IDs, run IDs, and related fields have been migrated from signed " +"64-bit integers (`sint64`) to unsigned 64-bit integers (`uint64`). To " +"support this change, the `uint64` type is fully supported in all " +"communications. You may now use `uint64` values in config and metric " +"dictionaries. For Python users, that means using `int` values larger than" +" the maximum value of `sint64` but less than the maximum value of " +"`uint64`." +msgstr "" + +#: ../../source/ref-changelog.md:136 +msgid "" +"**Add Flower architecture explanation** " +"([#3270](https://github.com/adap/flower/pull/3270))" +msgstr "" + +#: ../../source/ref-changelog.md:138 msgid "" "A new [Flower architecture explainer](https://flower.ai/docs/framework" "/explanation-flower-architecture.html) page introduces Flower components " @@ -16372,13 +17272,13 @@ msgid "" "documentation if you're interested." msgstr "" -#: ../../source/ref-changelog.md:29 +#: ../../source/ref-changelog.md:140 msgid "" "**Introduce FedRep baseline** " "([#3790](https://github.com/adap/flower/pull/3790))" msgstr "" -#: ../../source/ref-changelog.md:31 +#: ../../source/ref-changelog.md:142 msgid "" "FedRep is a federated learning algorithm that learns shared data " "representations across clients while allowing each to maintain " @@ -16388,7 +17288,7 @@ msgid "" "([arxiv](https://arxiv.org/abs/2102.07078))" msgstr "" -#: ../../source/ref-changelog.md:33 +#: ../../source/ref-changelog.md:144 msgid "" "**Improve FlowerTune template and LLM evaluation pipelines** " "([#4286](https://github.com/adap/flower/pull/4286), " @@ -16409,7 +17309,7 @@ msgid "" "[#4327](https://github.com/adap/flower/pull/4327))" msgstr "" -#: ../../source/ref-changelog.md:35 +#: ../../source/ref-changelog.md:146 msgid "" "Refined evaluation pipelines, metrics, and documentation for the upcoming" " FlowerTune LLM Leaderboard across multiple domains including Finance, " @@ -16418,7 +17318,7 @@ msgid "" "exciting challenge!" msgstr "" -#: ../../source/ref-changelog.md:37 +#: ../../source/ref-changelog.md:148 msgid "" "**Enhance Docker Support and Documentation** " "([#4191](https://github.com/adap/flower/pull/4191), " @@ -16437,7 +17337,7 @@ msgid "" "[#4226](https://github.com/adap/flower/pull/4226))" msgstr "" -#: ../../source/ref-changelog.md:39 +#: ../../source/ref-changelog.md:150 msgid "" "Upgraded Ubuntu base image to 24.04, added SBOM and gcc to Docker images," " and comprehensively updated [Docker " @@ -16445,14 +17345,14 @@ msgid "" "including quickstart guides and distributed Docker Compose instructions." msgstr "" -#: ../../source/ref-changelog.md:41 +#: ../../source/ref-changelog.md:152 msgid "" "**Introduce Flower glossary** " "([#4165](https://github.com/adap/flower/pull/4165), " "[#4235](https://github.com/adap/flower/pull/4235))" msgstr "" -#: ../../source/ref-changelog.md:43 +#: ../../source/ref-changelog.md:154 msgid "" "Added the [Federated Learning glossary](https://flower.ai/glossary/) to " "the Flower repository, located under the `flower/glossary/` directory. " @@ -16462,7 +17362,7 @@ msgid "" "become a Flower contributor!" msgstr "" -#: ../../source/ref-changelog.md:45 +#: ../../source/ref-changelog.md:156 msgid "" "**Implement Message Time-to-Live (TTL)** " "([#3620](https://github.com/adap/flower/pull/3620), " @@ -16472,7 +17372,7 @@ msgid "" "[#3635](https://github.com/adap/flower/pull/3635))" msgstr "" -#: ../../source/ref-changelog.md:47 +#: ../../source/ref-changelog.md:158 msgid "" "Added comprehensive TTL support for messages in Flower's SuperLink. " "Messages are now automatically expired and cleaned up based on " @@ -16480,7 +17380,7 @@ msgid "" " default in the high-level API)." msgstr "" -#: ../../source/ref-changelog.md:49 +#: ../../source/ref-changelog.md:160 msgid "" "**Improve FAB handling** " "([#4303](https://github.com/adap/flower/pull/4303), " @@ -16489,14 +17389,14 @@ msgid "" "[#4304](https://github.com/adap/flower/pull/4304))" msgstr "" -#: ../../source/ref-changelog.md:51 +#: ../../source/ref-changelog.md:162 msgid "" "An 8-character hash is now appended to the FAB file name. The `flwr " "install` command installs FABs with a more flattened folder structure, " "reducing it from 3 levels to 1." msgstr "" -#: ../../source/ref-changelog.md:53 +#: ../../source/ref-changelog.md:164 msgid "" "**Update documentation** " "([#3341](https://github.com/adap/flower/pull/3341), " @@ -16507,7 +17407,7 @@ msgid "" "[#3993](https://github.com/adap/flower/pull/3993))" msgstr "" -#: ../../source/ref-changelog.md:55 +#: ../../source/ref-changelog.md:166 msgid "" "Updated quickstart tutorials (PyTorch Lightning, TensorFlow, Hugging " "Face, Fastai) to use the new `flwr run` command and removed default title" @@ -16515,7 +17415,7 @@ msgid "" "added to FAQ." msgstr "" -#: ../../source/ref-changelog.md:57 +#: ../../source/ref-changelog.md:168 msgid "" "**Update example projects** " "([#3716](https://github.com/adap/flower/pull/3716), " @@ -16528,7 +17428,7 @@ msgid "" "[#4331](https://github.com/adap/flower/pull/4331))" msgstr "" -#: ../../source/ref-changelog.md:59 +#: ../../source/ref-changelog.md:170 msgid "" "Refreshed multiple example projects including vertical FL, PyTorch " "(advanced), Pandas, Secure Aggregation, and XGBoost examples. Optimized " @@ -16536,7 +17436,7 @@ msgid "" "simulation examples." msgstr "" -#: ../../source/ref-changelog.md:61 +#: ../../source/ref-changelog.md:172 msgid "" "**Update translations** " "([#4070](https://github.com/adap/flower/pull/4070), " @@ -16548,7 +17448,7 @@ msgid "" "[#4259](https://github.com/adap/flower/pull/4259))" msgstr "" -#: ../../source/ref-changelog.md:63 +#: ../../source/ref-changelog.md:174 msgid "" "**General improvements** " "([#4239](https://github.com/adap/flower/pull/4239), " @@ -16595,26 +17495,7 @@ msgid "" "[#4333](https://github.com/adap/flower/pull/4333))" msgstr "" -#: ../../source/ref-changelog.md:65 ../../source/ref-changelog.md:168 -#: ../../source/ref-changelog.md:275 -msgid "" -"As always, many parts of the Flower framework and quality infrastructure " -"were improved and updated." -msgstr "" - -#: ../../source/ref-changelog.md:67 ../../source/ref-changelog.md:101 -#: ../../source/ref-changelog.md:181 ../../source/ref-changelog.md:297 -#: ../../source/ref-changelog.md:393 ../../source/ref-changelog.md:467 -#: ../../source/ref-changelog.md:542 ../../source/ref-changelog.md:654 -#: ../../source/ref-changelog.md:744 ../../source/ref-changelog.md:808 -#: ../../source/ref-changelog.md:866 ../../source/ref-changelog.md:935 -#: ../../source/ref-changelog.md:997 ../../source/ref-changelog.md:1016 -#: ../../source/ref-changelog.md:1172 ../../source/ref-changelog.md:1243 -#: ../../source/ref-changelog.md:1280 ../../source/ref-changelog.md:1323 -msgid "Incompatible changes" -msgstr "" - -#: ../../source/ref-changelog.md:69 +#: ../../source/ref-changelog.md:180 msgid "" "**Drop Python 3.8 support and update minimum version to 3.9** " "([#4180](https://github.com/adap/flower/pull/4180), " @@ -16627,7 +17508,7 @@ msgid "" "[#4194](https://github.com/adap/flower/pull/4194))" msgstr "" -#: ../../source/ref-changelog.md:71 +#: ../../source/ref-changelog.md:182 msgid "" "Python 3.8 support was deprecated in Flower 1.9, and this release removes" " support. Flower now requires Python 3.9 or later (Python 3.11 is " @@ -16635,80 +17516,80 @@ msgid "" "minimum supported version. Flower now supports Python 3.9 to 3.12." msgstr "" -#: ../../source/ref-changelog.md:73 +#: ../../source/ref-changelog.md:184 msgid "v1.11.1 (2024-09-11)" msgstr "" -#: ../../source/ref-changelog.md:79 +#: ../../source/ref-changelog.md:190 msgid "" "`Charles Beauville`, `Chong Shen Ng`, `Daniel J. Beutel`, `Heng Pan`, " "`Javier`, `Robert Steiner`, `Yan Gao` " msgstr "" -#: ../../source/ref-changelog.md:81 +#: ../../source/ref-changelog.md:192 #, fuzzy msgid "Improvements" msgstr "선택적 개선 사항" -#: ../../source/ref-changelog.md:83 +#: ../../source/ref-changelog.md:194 msgid "" "**Implement** `keys/values/items` **methods for** `TypedDict` " "([#4146](https://github.com/adap/flower/pull/4146))" msgstr "" -#: ../../source/ref-changelog.md:85 +#: ../../source/ref-changelog.md:196 msgid "" "**Fix parsing of** `--executor-config` **if present** " "([#4125](https://github.com/adap/flower/pull/4125))" msgstr "" -#: ../../source/ref-changelog.md:87 +#: ../../source/ref-changelog.md:198 msgid "" "**Adjust framework name in templates docstrings** " "([#4127](https://github.com/adap/flower/pull/4127))" msgstr "" -#: ../../source/ref-changelog.md:89 +#: ../../source/ref-changelog.md:200 msgid "" "**Update** `flwr new` **Hugging Face template** " "([#4169](https://github.com/adap/flower/pull/4169))" msgstr "" -#: ../../source/ref-changelog.md:91 +#: ../../source/ref-changelog.md:202 msgid "" "**Fix** `flwr new` **FlowerTune template** " "([#4123](https://github.com/adap/flower/pull/4123))" msgstr "" -#: ../../source/ref-changelog.md:93 +#: ../../source/ref-changelog.md:204 msgid "" "**Add buffer time after** `ServerApp` **thread initialization** " "([#4119](https://github.com/adap/flower/pull/4119))" msgstr "" -#: ../../source/ref-changelog.md:95 +#: ../../source/ref-changelog.md:206 msgid "" "**Handle unsuitable resources for simulation** " "([#4143](https://github.com/adap/flower/pull/4143))" msgstr "" -#: ../../source/ref-changelog.md:97 +#: ../../source/ref-changelog.md:208 msgid "" "**Update example READMEs** " "([#4117](https://github.com/adap/flower/pull/4117))" msgstr "" -#: ../../source/ref-changelog.md:99 +#: ../../source/ref-changelog.md:210 msgid "" "**Update SuperNode authentication docs** " "([#4160](https://github.com/adap/flower/pull/4160))" msgstr "" -#: ../../source/ref-changelog.md:105 +#: ../../source/ref-changelog.md:216 msgid "v1.11.0 (2024-08-30)" msgstr "" -#: ../../source/ref-changelog.md:111 +#: ../../source/ref-changelog.md:222 msgid "" "`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. " "Beutel`, `Daniel Nata Nugraha`, `Danny`, `Edoardo Gabrielli`, `Heng Pan`," @@ -16717,7 +17598,7 @@ msgid "" "TOKEN_v1.11.0-->" msgstr "" -#: ../../source/ref-changelog.md:115 +#: ../../source/ref-changelog.md:226 msgid "" "**Deliver Flower App Bundle (FAB) to SuperLink and SuperNodes** " "([#4006](https://github.com/adap/flower/pull/4006), " @@ -16744,14 +17625,14 @@ msgid "" "[#3619](https://github.com/adap/flower/pull/3619))" msgstr "" -#: ../../source/ref-changelog.md:117 +#: ../../source/ref-changelog.md:228 msgid "" "Dynamic code updates are here! `flwr run` can now ship and install the " "latest version of your `ServerApp` and `ClientApp` to an already-running " "federation (SuperLink and SuperNodes)." msgstr "" -#: ../../source/ref-changelog.md:119 +#: ../../source/ref-changelog.md:230 msgid "" "How does it work? `flwr run` bundles your Flower app into a single FAB " "(Flower App Bundle) file. It then ships this FAB file, via the SuperExec," @@ -16761,11 +17642,11 @@ msgid "" "projects!) dynamically." msgstr "" -#: ../../source/ref-changelog.md:121 +#: ../../source/ref-changelog.md:232 msgid "`flwr run` is all you need." msgstr "" -#: ../../source/ref-changelog.md:123 +#: ../../source/ref-changelog.md:234 msgid "" "**Introduce isolated** `ClientApp` **execution** " "([#3970](https://github.com/adap/flower/pull/3970), " @@ -16785,30 +17666,30 @@ msgid "" "[#4032](https://github.com/adap/flower/pull/4032))" msgstr "" -#: ../../source/ref-changelog.md:125 +#: ../../source/ref-changelog.md:236 msgid "" "The SuperNode can now run your `ClientApp` in a fully isolated way. In an" " enterprise deployment, this allows you to set strict limits on what the " "`ClientApp` can and cannot do." msgstr "" -#: ../../source/ref-changelog.md:127 +#: ../../source/ref-changelog.md:238 msgid "`flower-supernode` supports three `--isolation` modes:" msgstr "" -#: ../../source/ref-changelog.md:129 +#: ../../source/ref-changelog.md:240 msgid "" "Unset: The SuperNode runs the `ClientApp` in the same process (as in " "previous versions of Flower). This is the default mode." msgstr "" -#: ../../source/ref-changelog.md:130 +#: ../../source/ref-changelog.md:241 msgid "" "`--isolation=subprocess`: The SuperNode starts a subprocess to run the " "`ClientApp`." msgstr "" -#: ../../source/ref-changelog.md:131 +#: ../../source/ref-changelog.md:242 msgid "" "`--isolation=process`: The SuperNode expects an externally-managed " "process to run the `ClientApp`. This external process is not managed by " @@ -16817,7 +17698,7 @@ msgid "" "`flwr/clientapp` Docker image." msgstr "" -#: ../../source/ref-changelog.md:133 +#: ../../source/ref-changelog.md:244 msgid "" "**Improve Docker support for enterprise deployments** " "([#4050](https://github.com/adap/flower/pull/4050), " @@ -16828,17 +17709,17 @@ msgid "" "[#3722](https://github.com/adap/flower/pull/3722))" msgstr "" -#: ../../source/ref-changelog.md:135 +#: ../../source/ref-changelog.md:246 msgid "" "Flower 1.11 ships many Docker improvements that are especially useful for" " enterprise deployments:" msgstr "" -#: ../../source/ref-changelog.md:137 +#: ../../source/ref-changelog.md:248 msgid "`flwr/supernode` comes with a new Alpine Docker image." msgstr "" -#: ../../source/ref-changelog.md:138 +#: ../../source/ref-changelog.md:249 msgid "" "`flwr/clientapp` is a new image to be used with the `--isolation=process`" " option. In this mode, SuperNode and `ClientApp` run in two different " @@ -16848,19 +17729,19 @@ msgid "" "enterprise settings." msgstr "" -#: ../../source/ref-changelog.md:139 +#: ../../source/ref-changelog.md:250 msgid "" "New all-in-one Docker Compose enables you to easily start a full Flower " "Deployment Engine on a single machine." msgstr "" -#: ../../source/ref-changelog.md:140 +#: ../../source/ref-changelog.md:251 msgid "" "Completely new Docker documentation: " "https://flower.ai/docs/framework/docker/index.html" msgstr "" -#: ../../source/ref-changelog.md:142 +#: ../../source/ref-changelog.md:253 msgid "" "**Improve SuperNode authentication** " "([#4043](https://github.com/adap/flower/pull/4043), " @@ -16868,13 +17749,13 @@ msgid "" "[#4074](https://github.com/adap/flower/pull/4074))" msgstr "" -#: ../../source/ref-changelog.md:144 +#: ../../source/ref-changelog.md:255 msgid "" "SuperNode auth has been improved in several ways, including improved " "logging, improved testing, and improved error handling." msgstr "" -#: ../../source/ref-changelog.md:146 +#: ../../source/ref-changelog.md:257 msgid "" "**Update** `flwr new` **templates** " "([#3933](https://github.com/adap/flower/pull/3933), " @@ -16888,13 +17769,13 @@ msgid "" "[#4064](https://github.com/adap/flower/pull/4064))" msgstr "" -#: ../../source/ref-changelog.md:148 +#: ../../source/ref-changelog.md:259 msgid "" "All `flwr new` templates have been updated to show the latest recommended" " use of Flower APIs." msgstr "" -#: ../../source/ref-changelog.md:150 +#: ../../source/ref-changelog.md:261 msgid "" "**Improve Simulation Engine** " "([#4095](https://github.com/adap/flower/pull/4095), " @@ -16906,14 +17787,14 @@ msgid "" "[#3988](https://github.com/adap/flower/pull/3988))" msgstr "" -#: ../../source/ref-changelog.md:152 +#: ../../source/ref-changelog.md:263 msgid "" "The Flower Simulation Engine comes with several updates, including " "improved run config support, verbose logging, simulation backend " "configuration via `flwr run`, and more." msgstr "" -#: ../../source/ref-changelog.md:154 +#: ../../source/ref-changelog.md:265 msgid "" "**Improve** `RecordSet` " "([#4052](https://github.com/adap/flower/pull/4052), " @@ -16921,7 +17802,7 @@ msgid "" "[#4016](https://github.com/adap/flower/pull/4016))" msgstr "" -#: ../../source/ref-changelog.md:156 +#: ../../source/ref-changelog.md:267 msgid "" "`RecordSet` is the core object to exchange model parameters, " "configuration values and metrics between `ClientApp` and `ServerApp`. " @@ -16929,7 +17810,7 @@ msgid "" "related `*Record` types." msgstr "" -#: ../../source/ref-changelog.md:158 +#: ../../source/ref-changelog.md:269 msgid "" "**Update documentation** " "([#3972](https://github.com/adap/flower/pull/3972), " @@ -16948,14 +17829,14 @@ msgid "" "[#3916](https://github.com/adap/flower/pull/3916))" msgstr "" -#: ../../source/ref-changelog.md:160 +#: ../../source/ref-changelog.md:271 msgid "" "Many parts of the documentation, including the main tutorial, have been " "migrated to show new Flower APIs and other new Flower features like the " "improved Docker support." msgstr "" -#: ../../source/ref-changelog.md:162 +#: ../../source/ref-changelog.md:273 msgid "" "**Migrate code example to use new Flower APIs** " "([#3758](https://github.com/adap/flower/pull/3758), " @@ -16981,11 +17862,11 @@ msgid "" "[#3313](https://github.com/adap/flower/pull/3313))" msgstr "" -#: ../../source/ref-changelog.md:164 +#: ../../source/ref-changelog.md:275 msgid "Many code examples have been migrated to use new Flower APIs." msgstr "" -#: ../../source/ref-changelog.md:166 +#: ../../source/ref-changelog.md:277 msgid "" "**Update Flower framework, framework internals and quality " "infrastructure** ([#4018](https://github.com/adap/flower/pull/4018), " @@ -17027,18 +17908,13 @@ msgid "" "[#4038](https://github.com/adap/flower/pull/4038))" msgstr "" -#: ../../source/ref-changelog.md:170 ../../source/ref-changelog.md:287 -#: ../../source/ref-changelog.md:379 ../../source/ref-changelog.md:1362 -msgid "Deprecations" -msgstr "" - -#: ../../source/ref-changelog.md:172 +#: ../../source/ref-changelog.md:283 msgid "" "**Deprecate accessing `Context` via `Client.context`** " "([#3797](https://github.com/adap/flower/pull/3797))" msgstr "" -#: ../../source/ref-changelog.md:174 +#: ../../source/ref-changelog.md:285 msgid "" "Now that both `client_fn` and `server_fn` receive a `Context` object, " "accessing `Context` via `Client.context` is deprecated. `Client.context` " @@ -17047,7 +17923,7 @@ msgid "" " instance in `client_fn`:" msgstr "" -#: ../../source/ref-changelog.md:183 +#: ../../source/ref-changelog.md:294 msgid "" "**Update CLIs to accept an app directory instead of** `ClientApp` **and**" " `ServerApp` ([#3952](https://github.com/adap/flower/pull/3952), " @@ -17055,7 +17931,7 @@ msgid "" "[#3850](https://github.com/adap/flower/pull/3850))" msgstr "" -#: ../../source/ref-changelog.md:185 +#: ../../source/ref-changelog.md:296 msgid "" "The CLI commands `flower-supernode` and `flower-server-app` now accept an" " app directory as argument (instead of references to a `ClientApp` or " @@ -17065,49 +17941,49 @@ msgid "" "`flwr new`." msgstr "" -#: ../../source/ref-changelog.md:187 +#: ../../source/ref-changelog.md:298 msgid "" "**Disable** `flower-client-app` **CLI command** " "([#4022](https://github.com/adap/flower/pull/4022))" msgstr "" -#: ../../source/ref-changelog.md:189 +#: ../../source/ref-changelog.md:300 msgid "`flower-client-app` has been disabled. Use `flower-supernode` instead." msgstr "" -#: ../../source/ref-changelog.md:191 +#: ../../source/ref-changelog.md:302 msgid "" "**Use spaces instead of commas for separating config args** " "([#4000](https://github.com/adap/flower/pull/4000))" msgstr "" -#: ../../source/ref-changelog.md:193 +#: ../../source/ref-changelog.md:304 msgid "" "When passing configs (run config, node config) to Flower, you now need to" " separate key-value pairs using spaces instead of commas. For example:" msgstr "" -#: ../../source/ref-changelog.md:199 +#: ../../source/ref-changelog.md:310 msgid "Previously, you could pass configs using commas, like this:" msgstr "" -#: ../../source/ref-changelog.md:205 +#: ../../source/ref-changelog.md:316 msgid "" "**Remove** `flwr example` **CLI command** " "([#4084](https://github.com/adap/flower/pull/4084))" msgstr "" -#: ../../source/ref-changelog.md:207 +#: ../../source/ref-changelog.md:318 msgid "" "The experimental `flwr example` CLI command has been removed. Use `flwr " "new` to generate a project and then run it using `flwr run`." msgstr "" -#: ../../source/ref-changelog.md:209 +#: ../../source/ref-changelog.md:320 msgid "v1.10.0 (2024-07-24)" msgstr "" -#: ../../source/ref-changelog.md:215 +#: ../../source/ref-changelog.md:326 msgid "" "`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. " "Beutel`, `Daniel Nata Nugraha`, `Danny`, `Gustavo Bertoli`, `Heng Pan`, " @@ -17116,7 +17992,7 @@ msgid "" "---TOKEN_v1.10.0-->" msgstr "" -#: ../../source/ref-changelog.md:219 +#: ../../source/ref-changelog.md:330 msgid "" "**Introduce** `flwr run` **(beta)** " "([#3810](https://github.com/adap/flower/pull/3810), " @@ -17130,7 +18006,7 @@ msgid "" "[#3819](https://github.com/adap/flower/pull/3819))" msgstr "" -#: ../../source/ref-changelog.md:221 +#: ../../source/ref-changelog.md:332 msgid "" "Flower 1.10 ships the first beta release of the new `flwr run` command. " "`flwr run` can run different projects using `flwr run path/to/project`, " @@ -17143,7 +18019,7 @@ msgid "" "`flwr new` to generate a project and then run it using `flwr run`." msgstr "" -#: ../../source/ref-changelog.md:223 +#: ../../source/ref-changelog.md:334 msgid "" "**Introduce run config** " "([#3751](https://github.com/adap/flower/pull/3751), " @@ -17163,7 +18039,7 @@ msgid "" "[#3815](https://github.com/adap/flower/pull/3815))" msgstr "" -#: ../../source/ref-changelog.md:225 +#: ../../source/ref-changelog.md:336 msgid "" "The new run config feature allows you to run your Flower project in " "different configurations without having to change a single line of code. " @@ -17176,7 +18052,7 @@ msgid "" "new project using `flwr new` to see run config in action." msgstr "" -#: ../../source/ref-changelog.md:227 +#: ../../source/ref-changelog.md:338 msgid "" "**Generalize** `client_fn` **signature to** `client_fn(context: Context) " "-> Client` ([#3779](https://github.com/adap/flower/pull/3779), " @@ -17185,7 +18061,7 @@ msgid "" "[#3696](https://github.com/adap/flower/pull/3696))" msgstr "" -#: ../../source/ref-changelog.md:229 +#: ../../source/ref-changelog.md:340 msgid "" "The `client_fn` signature has been generalized to `client_fn(context: " "Context) -> Client`. It now receives a `Context` object instead of the " @@ -17195,14 +18071,14 @@ msgid "" "system." msgstr "" -#: ../../source/ref-changelog.md:231 +#: ../../source/ref-changelog.md:342 msgid "" "The previous signature `client_fn(cid: str)` is now deprecated and " "support for it will be removed in a future release. Use " "`client_fn(context: Context) -> Client` everywhere." msgstr "" -#: ../../source/ref-changelog.md:233 +#: ../../source/ref-changelog.md:344 msgid "" "**Introduce new** `server_fn(context)` " "([#3773](https://github.com/adap/flower/pull/3773), " @@ -17210,7 +18086,7 @@ msgid "" "[#3771](https://github.com/adap/flower/pull/3771))" msgstr "" -#: ../../source/ref-changelog.md:235 +#: ../../source/ref-changelog.md:346 msgid "" "In addition to the new `client_fn(context:Context)`, a new " "`server_fn(context: Context) -> ServerAppComponents` can now be passed to" @@ -17219,7 +18095,7 @@ msgid "" "build a configurable `ServerApp`." msgstr "" -#: ../../source/ref-changelog.md:237 +#: ../../source/ref-changelog.md:348 msgid "" "**Relaunch all** `flwr new` **templates** " "([#3877](https://github.com/adap/flower/pull/3877), " @@ -17231,7 +18107,7 @@ msgid "" "[#3760](https://github.com/adap/flower/pull/3760))" msgstr "" -#: ../../source/ref-changelog.md:239 +#: ../../source/ref-changelog.md:350 msgid "" "All `flwr new` templates have been significantly updated to showcase new " "Flower features and best practices. This includes using `flwr run` and " @@ -17240,13 +18116,13 @@ msgid "" "run` it." msgstr "" -#: ../../source/ref-changelog.md:241 +#: ../../source/ref-changelog.md:352 msgid "" "**Introduce** `flower-supernode` **(preview)** " "([#3353](https://github.com/adap/flower/pull/3353))" msgstr "" -#: ../../source/ref-changelog.md:243 +#: ../../source/ref-changelog.md:354 msgid "" "The new `flower-supernode` CLI is here to replace `flower-client-app`. " "`flower-supernode` brings full multi-app support to the Flower client-" @@ -17255,7 +18131,7 @@ msgid "" "`client_fn(context: Context)` signature)." msgstr "" -#: ../../source/ref-changelog.md:245 +#: ../../source/ref-changelog.md:356 msgid "" "**Introduce node config** " "([#3782](https://github.com/adap/flower/pull/3782), " @@ -17264,7 +18140,7 @@ msgid "" "[#3886](https://github.com/adap/flower/pull/3886))" msgstr "" -#: ../../source/ref-changelog.md:247 +#: ../../source/ref-changelog.md:358 msgid "" "A new node config feature allows you to pass a static configuration to " "the SuperNode. This configuration is read-only and available to every " @@ -17272,7 +18148,7 @@ msgid "" "config via `Context` (`context.node_config`)." msgstr "" -#: ../../source/ref-changelog.md:249 +#: ../../source/ref-changelog.md:360 msgid "" "**Introduce SuperExec (experimental)** " "([#3605](https://github.com/adap/flower/pull/3605), " @@ -17293,26 +18169,26 @@ msgid "" "[#3629](https://github.com/adap/flower/pull/3629))" msgstr "" -#: ../../source/ref-changelog.md:251 +#: ../../source/ref-changelog.md:362 msgid "" "This is the first experimental release of Flower SuperExec, a new service" " that executes your runs. It's not ready for production deployment just " "yet, but don't hesitate to give it a try if you're interested." msgstr "" -#: ../../source/ref-changelog.md:253 +#: ../../source/ref-changelog.md:364 msgid "" "**Add new federated learning with tabular data example** " "([#3568](https://github.com/adap/flower/pull/3568))" msgstr "" -#: ../../source/ref-changelog.md:255 +#: ../../source/ref-changelog.md:366 msgid "" "A new code example exemplifies a federated learning setup using the " "Flower framework on the Adult Census Income tabular dataset." msgstr "" -#: ../../source/ref-changelog.md:257 +#: ../../source/ref-changelog.md:368 msgid "" "**Create generic adapter layer (preview)** " "([#3538](https://github.com/adap/flower/pull/3538), " @@ -17320,7 +18196,7 @@ msgid "" "[#3540](https://github.com/adap/flower/pull/3540))" msgstr "" -#: ../../source/ref-changelog.md:259 +#: ../../source/ref-changelog.md:370 msgid "" "A new generic gRPC adapter layer allows 3rd-party frameworks to integrate" " with Flower in a transparent way. This makes Flower more modular and " @@ -17328,7 +18204,7 @@ msgid "" "platforms." msgstr "" -#: ../../source/ref-changelog.md:261 +#: ../../source/ref-changelog.md:372 msgid "" "**Refactor Flower Simulation Engine** " "([#3581](https://github.com/adap/flower/pull/3581), " @@ -17344,7 +18220,7 @@ msgid "" "[#3469](https://github.com/adap/flower/pull/3469))" msgstr "" -#: ../../source/ref-changelog.md:263 +#: ../../source/ref-changelog.md:374 msgid "" "The Simulation Engine was significantly refactored. This results in " "faster and more stable simulations. It is also the foundation for " @@ -17352,31 +18228,31 @@ msgid "" "configurability in federated learning simulations." msgstr "" -#: ../../source/ref-changelog.md:265 +#: ../../source/ref-changelog.md:376 msgid "" "**Optimize Docker containers** " "([#3591](https://github.com/adap/flower/pull/3591))" msgstr "" -#: ../../source/ref-changelog.md:267 +#: ../../source/ref-changelog.md:378 msgid "" "Flower Docker containers were optimized and updated to use that latest " "Flower framework features." msgstr "" -#: ../../source/ref-changelog.md:269 +#: ../../source/ref-changelog.md:380 msgid "" "**Improve logging** ([#3776](https://github.com/adap/flower/pull/3776), " "[#3789](https://github.com/adap/flower/pull/3789))" msgstr "" -#: ../../source/ref-changelog.md:271 +#: ../../source/ref-changelog.md:382 msgid "" "Improved logging aims to be more concise and helpful to show you the " "details you actually care about." msgstr "" -#: ../../source/ref-changelog.md:273 +#: ../../source/ref-changelog.md:384 msgid "" "**Refactor framework internals** " "([#3621](https://github.com/adap/flower/pull/3621), " @@ -17390,18 +18266,13 @@ msgid "" "[#3569](https://github.com/adap/flower/pull/3569))" msgstr "" -#: ../../source/ref-changelog.md:277 -#, fuzzy -msgid "Documentation improvements" -msgstr "선택적 개선 사항" - -#: ../../source/ref-changelog.md:279 +#: ../../source/ref-changelog.md:390 msgid "" "**Add 🇰🇷 Korean translations** " "([#3680](https://github.com/adap/flower/pull/3680))" msgstr "" -#: ../../source/ref-changelog.md:281 +#: ../../source/ref-changelog.md:392 msgid "" "**Update translations** " "([#3586](https://github.com/adap/flower/pull/3586), " @@ -17415,7 +18286,7 @@ msgid "" "[#3631](https://github.com/adap/flower/pull/3631))" msgstr "" -#: ../../source/ref-changelog.md:283 +#: ../../source/ref-changelog.md:394 msgid "" "**Update documentation** " "([#3864](https://github.com/adap/flower/pull/3864), " @@ -17429,18 +18300,18 @@ msgid "" "[#3707](https://github.com/adap/flower/pull/3707))" msgstr "" -#: ../../source/ref-changelog.md:285 +#: ../../source/ref-changelog.md:396 msgid "" "Updated documentation includes new install instructions for different " "shells, a new Flower Code Examples documentation landing page, new `flwr`" " CLI docs and an updated federated XGBoost code example." msgstr "" -#: ../../source/ref-changelog.md:289 +#: ../../source/ref-changelog.md:400 msgid "**Deprecate** `client_fn(cid: str)`" msgstr "" -#: ../../source/ref-changelog.md:291 +#: ../../source/ref-changelog.md:402 msgid "" "`client_fn` used to have a signature `client_fn(cid: str) -> Client`. " "This signature is now deprecated. Use the new signature " @@ -17453,13 +18324,13 @@ msgid "" " the dataset on each simulated or deployed SuperNode." msgstr "" -#: ../../source/ref-changelog.md:293 +#: ../../source/ref-changelog.md:404 msgid "" "**Deprecate passing** `Server/ServerConfig/Strategy/ClientManager` **to**" " `ServerApp` **directly**" msgstr "" -#: ../../source/ref-changelog.md:295 +#: ../../source/ref-changelog.md:406 msgid "" "Creating `ServerApp` using `ServerApp(config=config, strategy=strategy)` " "is now deprecated. Instead of passing " @@ -17472,13 +18343,13 @@ msgid "" " the `run_config`)." msgstr "" -#: ../../source/ref-changelog.md:299 +#: ../../source/ref-changelog.md:410 msgid "" "**Remove support for `client_ids` in `start_simulation`** " "([#3699](https://github.com/adap/flower/pull/3699))" msgstr "" -#: ../../source/ref-changelog.md:301 +#: ../../source/ref-changelog.md:412 msgid "" "The (rarely used) feature that allowed passing custom `client_ids` to the" " `start_simulation` function was removed. This removal is part of a " @@ -17486,24 +18357,24 @@ msgid "" "internals work in simulation and deployment." msgstr "" -#: ../../source/ref-changelog.md:303 +#: ../../source/ref-changelog.md:414 msgid "" "**Remove `flower-driver-api` and `flower-fleet-api`** " "([#3418](https://github.com/adap/flower/pull/3418))" msgstr "" -#: ../../source/ref-changelog.md:305 +#: ../../source/ref-changelog.md:416 msgid "" "The two deprecated CLI commands `flower-driver-api` and `flower-fleet-" "api` were removed in an effort to streamline the SuperLink developer " "experience. Use `flower-superlink` instead." msgstr "" -#: ../../source/ref-changelog.md:307 +#: ../../source/ref-changelog.md:418 msgid "v1.9.0 (2024-06-10)" msgstr "" -#: ../../source/ref-changelog.md:313 +#: ../../source/ref-changelog.md:424 msgid "" "`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. " "Beutel`, `Daniel Nata Nugraha`, `Heng Pan`, `Javier`, `Mahdi Beitollahi`," @@ -17511,7 +18382,7 @@ msgid "" "---TOKEN_v1.9.0-->" msgstr "" -#: ../../source/ref-changelog.md:317 +#: ../../source/ref-changelog.md:428 msgid "" "**Introduce built-in authentication (preview)** " "([#2946](https://github.com/adap/flower/pull/2946), " @@ -17530,7 +18401,7 @@ msgid "" "[#3357](https://github.com/adap/flower/pull/3357))" msgstr "" -#: ../../source/ref-changelog.md:319 +#: ../../source/ref-changelog.md:430 msgid "" "Flower 1.9 introduces the first build-in version of client node " "authentication. In previous releases, users often wrote glue code to " @@ -17542,14 +18413,14 @@ msgid "" "authentication) help you to get started." msgstr "" -#: ../../source/ref-changelog.md:321 +#: ../../source/ref-changelog.md:432 msgid "" "This is the first preview release of the Flower-native authentication " "system. Many additional features are on the roadmap for upcoming Flower " "releases - stay tuned." msgstr "" -#: ../../source/ref-changelog.md:323 +#: ../../source/ref-changelog.md:434 msgid "" "**Introduce end-to-end Docker support** " "([#3483](https://github.com/adap/flower/pull/3483), " @@ -17566,7 +18437,7 @@ msgid "" "[#3290](https://github.com/adap/flower/pull/3290))" msgstr "" -#: ../../source/ref-changelog.md:325 +#: ../../source/ref-changelog.md:436 msgid "" "Full Flower Next Docker support is here! With the release of Flower 1.9, " "Flower provides stable Docker images for the Flower SuperLink, the Flower" @@ -17576,7 +18447,7 @@ msgid "" "docker.html) to get stated." msgstr "" -#: ../../source/ref-changelog.md:327 +#: ../../source/ref-changelog.md:438 msgid "" "**Re-architect Flower Next simulation engine** " "([#3307](https://github.com/adap/flower/pull/3307), " @@ -17589,7 +18460,7 @@ msgid "" "[#3326](https://github.com/adap/flower/pull/3326))" msgstr "" -#: ../../source/ref-changelog.md:329 +#: ../../source/ref-changelog.md:440 msgid "" "Flower Next simulations now use a new in-memory `Driver` that improves " "the reliability of simulations, especially in notebook environments. This" @@ -17597,7 +18468,7 @@ msgid "" "simulation architecture." msgstr "" -#: ../../source/ref-changelog.md:331 +#: ../../source/ref-changelog.md:442 msgid "" "**Upgrade simulation engine** " "([#3354](https://github.com/adap/flower/pull/3354), " @@ -17609,20 +18480,20 @@ msgid "" "[#3494](https://github.com/adap/flower/pull/3494))" msgstr "" -#: ../../source/ref-changelog.md:333 +#: ../../source/ref-changelog.md:444 msgid "" "The Flower Next simulation engine comes with improved and configurable " "logging. The Ray-based simulation backend in Flower 1.9 was updated to " "use Ray 2.10." msgstr "" -#: ../../source/ref-changelog.md:335 +#: ../../source/ref-changelog.md:446 msgid "" "**Introduce FedPFT baseline** " "([#3268](https://github.com/adap/flower/pull/3268))" msgstr "" -#: ../../source/ref-changelog.md:337 +#: ../../source/ref-changelog.md:448 msgid "" "FedPFT allows you to perform one-shot Federated Learning by leveraging " "widely available foundational models, dramatically reducing communication" @@ -17633,7 +18504,7 @@ msgid "" "([arxiv](https://arxiv.org/abs/2402.01862))" msgstr "" -#: ../../source/ref-changelog.md:339 +#: ../../source/ref-changelog.md:450 msgid "" "**Launch additional** `flwr new` **templates for Apple MLX, Hugging Face " "Transformers, scikit-learn and TensorFlow** " @@ -17645,7 +18516,7 @@ msgid "" "[#3287](https://github.com/adap/flower/pull/3287))" msgstr "" -#: ../../source/ref-changelog.md:341 +#: ../../source/ref-changelog.md:452 msgid "" "The `flwr` CLI's `flwr new` command is starting to become everone's " "favorite way of creating new Flower projects. This release introduces " @@ -17654,7 +18525,7 @@ msgid "" "also received updates." msgstr "" -#: ../../source/ref-changelog.md:343 +#: ../../source/ref-changelog.md:454 msgid "" "**Refine** `RecordSet` **API** " "([#3209](https://github.com/adap/flower/pull/3209), " @@ -17665,14 +18536,14 @@ msgid "" "[#3368](https://github.com/adap/flower/pull/3368))" msgstr "" -#: ../../source/ref-changelog.md:345 +#: ../../source/ref-changelog.md:456 msgid "" "`RecordSet` is part of the Flower Next low-level API preview release. In " "Flower 1.9, `RecordSet` received a number of usability improvements that " "make it easier to build `RecordSet`-based `ServerApp`s and `ClientApp`s." msgstr "" -#: ../../source/ref-changelog.md:347 +#: ../../source/ref-changelog.md:458 msgid "" "**Beautify logging** ([#3379](https://github.com/adap/flower/pull/3379), " "[#3430](https://github.com/adap/flower/pull/3430), " @@ -17681,13 +18552,13 @@ msgid "" "[#3433](https://github.com/adap/flower/pull/3433))" msgstr "" -#: ../../source/ref-changelog.md:349 +#: ../../source/ref-changelog.md:460 msgid "" "Logs received a substantial update. Not only are logs now much nicer to " "look at, but they are also more configurable." msgstr "" -#: ../../source/ref-changelog.md:351 +#: ../../source/ref-changelog.md:462 msgid "" "**Improve reliability** " "([#3564](https://github.com/adap/flower/pull/3564), " @@ -17700,27 +18571,27 @@ msgid "" "[#3372](https://github.com/adap/flower/pull/3372))" msgstr "" -#: ../../source/ref-changelog.md:353 +#: ../../source/ref-changelog.md:464 msgid "" "Flower 1.9 includes reliability improvements across many parts of the " "system. One example is a much improved SuperNode shutdown procedure." msgstr "" -#: ../../source/ref-changelog.md:355 +#: ../../source/ref-changelog.md:466 msgid "" "**Update Swift and C++ SDKs** " "([#3321](https://github.com/adap/flower/pull/3321), " "[#2763](https://github.com/adap/flower/pull/2763))" msgstr "" -#: ../../source/ref-changelog.md:357 +#: ../../source/ref-changelog.md:468 msgid "" "In the C++ SDK, communication-related code is now separate from main " "client logic. A new abstract class `Communicator` has been introduced " "alongside a gRPC implementation of it." msgstr "" -#: ../../source/ref-changelog.md:359 +#: ../../source/ref-changelog.md:470 msgid "" "**Improve testing, tooling and CI/CD infrastructure** " "([#3294](https://github.com/adap/flower/pull/3294), " @@ -17754,13 +18625,13 @@ msgid "" "[#3271](https://github.com/adap/flower/pull/3271))" msgstr "" -#: ../../source/ref-changelog.md:361 +#: ../../source/ref-changelog.md:472 msgid "" "As always, the Flower tooling, testing, and CI/CD infrastructure has " "received many updates." msgstr "" -#: ../../source/ref-changelog.md:363 +#: ../../source/ref-changelog.md:474 msgid "" "**Improve documentation** " "([#3530](https://github.com/adap/flower/pull/3530), " @@ -17785,32 +18656,32 @@ msgid "" "[#3274](https://github.com/adap/flower/pull/3274))" msgstr "" -#: ../../source/ref-changelog.md:365 +#: ../../source/ref-changelog.md:476 msgid "" "As always, the Flower documentation has received many updates. Notable " "new pages include:" msgstr "" -#: ../../source/ref-changelog.md:367 +#: ../../source/ref-changelog.md:478 msgid "" "[How-to upgrate to Flower Next (Flower Next migration " "guide)](https://flower.ai/docs/framework/how-to-upgrade-to-flower-" "next.html)" msgstr "" -#: ../../source/ref-changelog.md:369 +#: ../../source/ref-changelog.md:480 msgid "" "[How-to run Flower using Docker](https://flower.ai/docs/framework/how-to-" "run-flower-using-docker.html)" msgstr "" -#: ../../source/ref-changelog.md:371 +#: ../../source/ref-changelog.md:482 msgid "" "[Flower Mods reference](https://flower.ai/docs/framework/ref-" "api/flwr.client.mod.html#module-flwr.client.mod)" msgstr "" -#: ../../source/ref-changelog.md:373 +#: ../../source/ref-changelog.md:484 msgid "" "**General updates to Flower Examples** " "([#3205](https://github.com/adap/flower/pull/3205), " @@ -17833,11 +18704,11 @@ msgid "" "[#3269](https://github.com/adap/flower/pull/3269))" msgstr "" -#: ../../source/ref-changelog.md:375 +#: ../../source/ref-changelog.md:486 msgid "As always, Flower code examples have received many updates." msgstr "" -#: ../../source/ref-changelog.md:377 +#: ../../source/ref-changelog.md:488 msgid "" "**General improvements** " "([#3532](https://github.com/adap/flower/pull/3532), " @@ -17876,45 +18747,45 @@ msgid "" "[#3261](https://github.com/adap/flower/pull/3261))" msgstr "" -#: ../../source/ref-changelog.md:381 +#: ../../source/ref-changelog.md:492 msgid "**Deprecate Python 3.8 support**" msgstr "" -#: ../../source/ref-changelog.md:383 +#: ../../source/ref-changelog.md:494 msgid "" "Python 3.8 will stop receiving security fixes in [October " "2024](https://devguide.python.org/versions/). Support for Python 3.8 is " "now deprecated and will be removed in an upcoming release." msgstr "" -#: ../../source/ref-changelog.md:385 +#: ../../source/ref-changelog.md:496 msgid "" "**Deprecate (experimental)** `flower-driver-api` **and** `flower-fleet-" "api` ([#3416](https://github.com/adap/flower/pull/3416), " "[#3420](https://github.com/adap/flower/pull/3420))" msgstr "" -#: ../../source/ref-changelog.md:387 +#: ../../source/ref-changelog.md:498 msgid "" "Flower 1.9 deprecates the two (experimental) commands `flower-driver-api`" " and `flower-fleet-api`. Both commands will be removed in an upcoming " "release. Use `flower-superlink` instead." msgstr "" -#: ../../source/ref-changelog.md:389 +#: ../../source/ref-changelog.md:500 msgid "" "**Deprecate** `--server` **in favor of** `--superlink` " "([#3518](https://github.com/adap/flower/pull/3518))" msgstr "" -#: ../../source/ref-changelog.md:391 +#: ../../source/ref-changelog.md:502 msgid "" "The commands `flower-server-app` and `flower-client-app` should use " "`--superlink` instead of the now deprecated `--server`. Support for " "`--server` will be removed in a future release." msgstr "" -#: ../../source/ref-changelog.md:395 +#: ../../source/ref-changelog.md:506 msgid "" "**Replace** `flower-superlink` **CLI option** `--certificates` **with** " "`--ssl-ca-certfile` **,** `--ssl-certfile` **and** `--ssl-keyfile` " @@ -17922,7 +18793,7 @@ msgid "" "[#3408](https://github.com/adap/flower/pull/3408))" msgstr "" -#: ../../source/ref-changelog.md:397 +#: ../../source/ref-changelog.md:508 msgid "" "SSL-related `flower-superlink` CLI arguments were restructured in an " "incompatible way. Instead of passing a single `--certificates` flag with " @@ -17932,26 +18803,26 @@ msgid "" "connections.html) documentation page for details." msgstr "" -#: ../../source/ref-changelog.md:399 +#: ../../source/ref-changelog.md:510 msgid "" "**Remove SuperLink** `--vce` **option** " "([#3513](https://github.com/adap/flower/pull/3513))" msgstr "" -#: ../../source/ref-changelog.md:401 +#: ../../source/ref-changelog.md:512 msgid "" "Instead of separately starting a SuperLink and a `ServerApp` for " "simulation, simulations must now be started using the single `flower-" "simulation` command." msgstr "" -#: ../../source/ref-changelog.md:403 +#: ../../source/ref-changelog.md:514 msgid "" "**Merge** `--grpc-rere` **and** `--rest` **SuperLink options** " "([#3527](https://github.com/adap/flower/pull/3527))" msgstr "" -#: ../../source/ref-changelog.md:405 +#: ../../source/ref-changelog.md:516 msgid "" "To simplify the usage of `flower-superlink`, previously separate sets of " "CLI options for gRPC and REST were merged into one unified set of " @@ -17960,11 +18831,11 @@ msgid "" "details." msgstr "" -#: ../../source/ref-changelog.md:407 +#: ../../source/ref-changelog.md:518 msgid "v1.8.0 (2024-04-03)" msgstr "" -#: ../../source/ref-changelog.md:413 +#: ../../source/ref-changelog.md:524 msgid "" "`Adam Narozniak`, `Charles Beauville`, `Daniel J. Beutel`, `Daniel Nata " "Nugraha`, `Danny`, `Gustavo Bertoli`, `Heng Pan`, `Ikko Eltociear " @@ -17973,7 +18844,7 @@ msgid "" "`tabdar-khan` " msgstr "" -#: ../../source/ref-changelog.md:417 +#: ../../source/ref-changelog.md:528 msgid "" "**Introduce Flower Next high-level API (stable)** " "([#3002](https://github.com/adap/flower/pull/3002), " @@ -18003,7 +18874,7 @@ msgid "" "[#3197](https://github.com/adap/flower/pull/3197))" msgstr "" -#: ../../source/ref-changelog.md:419 +#: ../../source/ref-changelog.md:530 msgid "" "The Flower Next high-level API is stable! Flower Next is the future of " "Flower - all new features (like Flower Mods) will be built on top of it. " @@ -18017,7 +18888,7 @@ msgid "" "projects that use `Strategy`, `NumPyClient` & co." msgstr "" -#: ../../source/ref-changelog.md:421 +#: ../../source/ref-changelog.md:532 msgid "" "**Introduce Flower Next low-level API (preview)** " "([#3062](https://github.com/adap/flower/pull/3062), " @@ -18025,7 +18896,7 @@ msgid "" "[#3069](https://github.com/adap/flower/pull/3069))" msgstr "" -#: ../../source/ref-changelog.md:423 +#: ../../source/ref-changelog.md:534 msgid "" "In addition to the Flower Next *high-level* API that uses `Strategy`, " "`NumPyClient` & co, Flower 1.8 also comes with a preview version of the " @@ -18042,7 +18913,7 @@ msgid "" "custom SMPC protocols, to name just a few." msgstr "" -#: ../../source/ref-changelog.md:425 +#: ../../source/ref-changelog.md:536 msgid "" "**Introduce Flower Mods (preview)** " "([#3054](https://github.com/adap/flower/pull/3054), " @@ -18050,7 +18921,7 @@ msgid "" "[#3083](https://github.com/adap/flower/pull/3083))" msgstr "" -#: ../../source/ref-changelog.md:427 +#: ../../source/ref-changelog.md:538 msgid "" "Flower Modifiers (we call them Mods) can intercept messages and analyze, " "edit or handle them directly. Mods can be used to develop pluggable " @@ -18062,7 +18933,7 @@ msgid "" "can already use it to experiment with arbirtrary SMPC protocols." msgstr "" -#: ../../source/ref-changelog.md:429 +#: ../../source/ref-changelog.md:540 msgid "" "**Fine-tune LLMs with LLM FlowerTune** " "([#3029](https://github.com/adap/flower/pull/3029), " @@ -18074,7 +18945,7 @@ msgid "" "[#3172](https://github.com/adap/flower/pull/3172))" msgstr "" -#: ../../source/ref-changelog.md:431 +#: ../../source/ref-changelog.md:542 msgid "" "We are introducing LLM FlowerTune, an introductory example that " "demonstrates federated LLM fine-tuning of pre-trained Llama2 models on " @@ -18084,7 +18955,7 @@ msgid "" "-llm-flowertune-federated-llm-finetuning-with-flower/) for more details." msgstr "" -#: ../../source/ref-changelog.md:433 +#: ../../source/ref-changelog.md:544 msgid "" "**Introduce built-in Differential Privacy (preview)** " "([#2798](https://github.com/adap/flower/pull/2798), " @@ -18098,7 +18969,7 @@ msgid "" "[#3074](https://github.com/adap/flower/pull/3074))" msgstr "" -#: ../../source/ref-changelog.md:435 +#: ../../source/ref-changelog.md:546 msgid "" "Built-in Differential Privacy is here! Flower supports both central and " "local differential privacy (DP). Central DP can be configured with either" @@ -18111,7 +18982,7 @@ msgid "" "/how-to-use-differential-privacy.html) in Flower." msgstr "" -#: ../../source/ref-changelog.md:437 +#: ../../source/ref-changelog.md:548 msgid "" "**Introduce built-in Secure Aggregation (preview)** " "([#3120](https://github.com/adap/flower/pull/3120), " @@ -18119,7 +18990,7 @@ msgid "" "[#3108](https://github.com/adap/flower/pull/3108))" msgstr "" -#: ../../source/ref-changelog.md:439 +#: ../../source/ref-changelog.md:550 msgid "" "Built-in Secure Aggregation is here! Flower now supports different secure" " aggregation protocols out-of-the-box. The best part? You can add secure " @@ -18132,7 +19003,7 @@ msgid "" "in the same project." msgstr "" -#: ../../source/ref-changelog.md:441 +#: ../../source/ref-changelog.md:552 msgid "" "**Introduce** `flwr` **CLI (preview)** " "([#2942](https://github.com/adap/flower/pull/2942), " @@ -18146,13 +19017,13 @@ msgid "" "[#3142](https://github.com/adap/flower/pull/3142))" msgstr "" -#: ../../source/ref-changelog.md:443 +#: ../../source/ref-changelog.md:554 msgid "" "A new `flwr` CLI command allows creating new Flower projects (`flwr new`)" " and then running them using the Simulation Engine (`flwr run`)." msgstr "" -#: ../../source/ref-changelog.md:445 +#: ../../source/ref-changelog.md:556 msgid "" "**Introduce Flower Next Simulation Engine** " "([#3024](https://github.com/adap/flower/pull/3024), " @@ -18167,20 +19038,20 @@ msgid "" "[#3008](https://github.com/adap/flower/pull/3008))" msgstr "" -#: ../../source/ref-changelog.md:447 +#: ../../source/ref-changelog.md:558 msgid "" "The Flower Simulation Engine can now run Flower Next projects. For " "notebook environments, there's also a new `run_simulation` function that " "can run `ServerApp` and `ClientApp`." msgstr "" -#: ../../source/ref-changelog.md:449 +#: ../../source/ref-changelog.md:560 msgid "" "**Handle SuperNode connection errors** " "([#2969](https://github.com/adap/flower/pull/2969))" msgstr "" -#: ../../source/ref-changelog.md:451 +#: ../../source/ref-changelog.md:562 msgid "" "A SuperNode will now try to reconnect indefinitely to the SuperLink in " "case of connection errors. The arguments `--max-retries` and `--max-wait-" @@ -18191,7 +19062,7 @@ msgid "" "reconnect to the SuperLink." msgstr "" -#: ../../source/ref-changelog.md:453 +#: ../../source/ref-changelog.md:564 msgid "" "**General updates to Flower Baselines** " "([#2904](https://github.com/adap/flower/pull/2904), " @@ -18200,13 +19071,13 @@ msgid "" "[#2968](https://github.com/adap/flower/pull/2968))" msgstr "" -#: ../../source/ref-changelog.md:455 +#: ../../source/ref-changelog.md:566 msgid "" "There's a new [FedStar](https://flower.ai/docs/baselines/fedstar.html) " "baseline. Several other baselined have been updated as well." msgstr "" -#: ../../source/ref-changelog.md:457 +#: ../../source/ref-changelog.md:568 msgid "" "**Improve documentation and translations** " "([#3050](https://github.com/adap/flower/pull/3050), " @@ -18227,14 +19098,14 @@ msgid "" "[#2989](https://github.com/adap/flower/pull/2989))" msgstr "" -#: ../../source/ref-changelog.md:459 +#: ../../source/ref-changelog.md:570 msgid "" "As usual, we merged many smaller and larger improvements to the " "documentation. A special thank you goes to [Sebastian van der " "Voort](https://github.com/svdvoort) for landing a big documentation PR!" msgstr "" -#: ../../source/ref-changelog.md:461 +#: ../../source/ref-changelog.md:572 msgid "" "**General updates to Flower Examples** " "([3134](https://github.com/adap/flower/pull/3134), " @@ -18250,7 +19121,7 @@ msgid "" "[#3117](https://github.com/adap/flower/pull/3117))" msgstr "" -#: ../../source/ref-changelog.md:463 +#: ../../source/ref-changelog.md:574 msgid "" "Two new examples show federated training of a Vision Transformer (ViT) " "and federated learning in a medical context using the popular MONAI " @@ -18259,7 +19130,7 @@ msgid "" "received considerable updates as well." msgstr "" -#: ../../source/ref-changelog.md:465 +#: ../../source/ref-changelog.md:576 msgid "" "**General improvements** " "([#3171](https://github.com/adap/flower/pull/3171), " @@ -18337,11 +19208,11 @@ msgid "" "[#2954](https://github.com/adap/flower/pull/2954))" msgstr "" -#: ../../source/ref-changelog.md:471 +#: ../../source/ref-changelog.md:582 msgid "v1.7.0 (2024-02-05)" msgstr "" -#: ../../source/ref-changelog.md:477 +#: ../../source/ref-changelog.md:588 msgid "" "`Aasheesh Singh`, `Adam Narozniak`, `Aml Hassan Esmil`, `Charles " "Beauville`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Edoardo " @@ -18351,7 +19222,7 @@ msgid "" "Shaaban`, `Yan Gao`, `Yasar Abbas` " msgstr "" -#: ../../source/ref-changelog.md:481 +#: ../../source/ref-changelog.md:592 msgid "" "**Introduce stateful clients (experimental)** " "([#2770](https://github.com/adap/flower/pull/2770), " @@ -18361,7 +19232,7 @@ msgid "" "[#2769](https://github.com/adap/flower/pull/2769))" msgstr "" -#: ../../source/ref-changelog.md:483 +#: ../../source/ref-changelog.md:594 msgid "" "Subclasses of `Client` and `NumPyClient` can now store local state that " "remains on the client. Let's start with the highlight first: this new " @@ -18374,13 +19245,13 @@ msgid "" "unified way across simulation and deployment." msgstr "" -#: ../../source/ref-changelog.md:485 +#: ../../source/ref-changelog.md:596 msgid "" "**Improve performance** " "([#2293](https://github.com/adap/flower/pull/2293))" msgstr "" -#: ../../source/ref-changelog.md:487 +#: ../../source/ref-changelog.md:598 msgid "" "Flower is faster than ever. All `FedAvg`-derived strategies now use in-" "place aggregation to reduce memory consumption. The Flower client " @@ -18389,27 +19260,27 @@ msgid "" "training time is short." msgstr "" -#: ../../source/ref-changelog.md:489 +#: ../../source/ref-changelog.md:600 msgid "" "**Support Federated Learning with Apple MLX and Flower** " "([#2693](https://github.com/adap/flower/pull/2693))" msgstr "" -#: ../../source/ref-changelog.md:491 +#: ../../source/ref-changelog.md:602 msgid "" "Flower has official support for federated learning using [Apple " "MLX](https://ml-explore.github.io/mlx) via the new `quickstart-mlx` code " "example." msgstr "" -#: ../../source/ref-changelog.md:493 +#: ../../source/ref-changelog.md:604 msgid "" "**Introduce new XGBoost cyclic strategy** " "([#2666](https://github.com/adap/flower/pull/2666), " "[#2668](https://github.com/adap/flower/pull/2668))" msgstr "" -#: ../../source/ref-changelog.md:495 +#: ../../source/ref-changelog.md:606 msgid "" "A new strategy called `FedXgbCyclic` supports a client-by-client style of" " training (often called cyclic). The `xgboost-comprehensive` code example" @@ -18418,31 +19289,31 @@ msgid "" "offers best-in-class XGBoost support." msgstr "" -#: ../../source/ref-changelog.md:497 +#: ../../source/ref-changelog.md:608 msgid "" "**Support Python 3.11** " "([#2394](https://github.com/adap/flower/pull/2394))" msgstr "" -#: ../../source/ref-changelog.md:499 +#: ../../source/ref-changelog.md:610 msgid "" "Framework tests now run on Python 3.8, 3.9, 3.10, and 3.11. This will " "ensure better support for users using more recent Python versions." msgstr "" -#: ../../source/ref-changelog.md:501 +#: ../../source/ref-changelog.md:612 msgid "" "**Update gRPC and ProtoBuf dependencies** " "([#2814](https://github.com/adap/flower/pull/2814))" msgstr "" -#: ../../source/ref-changelog.md:503 +#: ../../source/ref-changelog.md:614 msgid "" "The `grpcio` and `protobuf` dependencies were updated to their latest " "versions for improved security and performance." msgstr "" -#: ../../source/ref-changelog.md:505 +#: ../../source/ref-changelog.md:616 msgid "" "**Introduce Docker image for Flower server** " "([#2700](https://github.com/adap/flower/pull/2700), " @@ -18456,7 +19327,7 @@ msgid "" "[#2701](https://github.com/adap/flower/pull/2701))" msgstr "" -#: ../../source/ref-changelog.md:507 +#: ../../source/ref-changelog.md:618 msgid "" "The Flower server can now be run using an official Docker image. A new " "how-to guide explains [how to run Flower using " @@ -18464,25 +19335,25 @@ msgid "" "docker.html). An official Flower client Docker image will follow." msgstr "" -#: ../../source/ref-changelog.md:509 +#: ../../source/ref-changelog.md:620 msgid "" "**Introduce** `flower-via-docker-compose` **example** " "([#2626](https://github.com/adap/flower/pull/2626))" msgstr "" -#: ../../source/ref-changelog.md:511 +#: ../../source/ref-changelog.md:622 msgid "" "**Introduce** `quickstart-sklearn-tabular` **example** " "([#2719](https://github.com/adap/flower/pull/2719))" msgstr "" -#: ../../source/ref-changelog.md:513 +#: ../../source/ref-changelog.md:624 msgid "" "**Introduce** `custom-metrics` **example** " "([#1958](https://github.com/adap/flower/pull/1958))" msgstr "" -#: ../../source/ref-changelog.md:515 +#: ../../source/ref-changelog.md:626 msgid "" "**Update code examples to use Flower Datasets** " "([#2450](https://github.com/adap/flower/pull/2450), " @@ -18491,13 +19362,13 @@ msgid "" "[#2712](https://github.com/adap/flower/pull/2712))" msgstr "" -#: ../../source/ref-changelog.md:517 +#: ../../source/ref-changelog.md:628 msgid "" "Several code examples were updated to use [Flower " "Datasets](https://flower.ai/docs/datasets/)." msgstr "" -#: ../../source/ref-changelog.md:519 +#: ../../source/ref-changelog.md:630 msgid "" "**General updates to Flower Examples** " "([#2381](https://github.com/adap/flower/pull/2381), " @@ -18512,41 +19383,41 @@ msgid "" "[#2655](https://github.com/adap/flower/pull/2655))" msgstr "" -#: ../../source/ref-changelog.md:521 +#: ../../source/ref-changelog.md:632 msgid "Many Flower code examples received substantial updates." msgstr "" -#: ../../source/ref-changelog.md:523 ../../source/ref-changelog.md:616 +#: ../../source/ref-changelog.md:634 ../../source/ref-changelog.md:727 msgid "**Update Flower Baselines**" msgstr "" -#: ../../source/ref-changelog.md:525 +#: ../../source/ref-changelog.md:636 msgid "" "HFedXGBoost ([#2226](https://github.com/adap/flower/pull/2226), " "[#2771](https://github.com/adap/flower/pull/2771))" msgstr "" -#: ../../source/ref-changelog.md:526 +#: ../../source/ref-changelog.md:637 msgid "FedVSSL ([#2412](https://github.com/adap/flower/pull/2412))" msgstr "" -#: ../../source/ref-changelog.md:527 +#: ../../source/ref-changelog.md:638 msgid "FedNova ([#2179](https://github.com/adap/flower/pull/2179))" msgstr "" -#: ../../source/ref-changelog.md:528 +#: ../../source/ref-changelog.md:639 msgid "HeteroFL ([#2439](https://github.com/adap/flower/pull/2439))" msgstr "" -#: ../../source/ref-changelog.md:529 +#: ../../source/ref-changelog.md:640 msgid "FedAvgM ([#2246](https://github.com/adap/flower/pull/2246))" msgstr "" -#: ../../source/ref-changelog.md:530 +#: ../../source/ref-changelog.md:641 msgid "FedPara ([#2722](https://github.com/adap/flower/pull/2722))" msgstr "" -#: ../../source/ref-changelog.md:532 +#: ../../source/ref-changelog.md:643 msgid "" "**Improve documentation** " "([#2674](https://github.com/adap/flower/pull/2674), " @@ -18557,7 +19428,7 @@ msgid "" "[#2900](https://github.com/adap/flower/pull/2900))" msgstr "" -#: ../../source/ref-changelog.md:534 +#: ../../source/ref-changelog.md:645 msgid "" "**Improved testing and development infrastructure** " "([#2797](https://github.com/adap/flower/pull/2797), " @@ -18591,13 +19462,13 @@ msgid "" "[#2398](https://github.com/adap/flower/pull/2398))" msgstr "" -#: ../../source/ref-changelog.md:536 +#: ../../source/ref-changelog.md:647 msgid "" "The Flower testing and development infrastructure has received " "substantial updates. This makes Flower 1.7 the most tested release ever." msgstr "" -#: ../../source/ref-changelog.md:538 +#: ../../source/ref-changelog.md:649 msgid "" "**Update dependencies** " "([#2753](https://github.com/adap/flower/pull/2753), " @@ -18621,7 +19492,7 @@ msgid "" "[#2789](https://github.com/adap/flower/pull/2789))" msgstr "" -#: ../../source/ref-changelog.md:540 +#: ../../source/ref-changelog.md:651 msgid "" "**General improvements** " "([#2803](https://github.com/adap/flower/pull/2803), " @@ -18662,14 +19533,14 @@ msgid "" "[#2759](https://github.com/adap/flower/pull/2759))" msgstr "" -#: ../../source/ref-changelog.md:544 +#: ../../source/ref-changelog.md:655 msgid "" "**Deprecate** `start_numpy_client` " "([#2563](https://github.com/adap/flower/pull/2563), " "[#2718](https://github.com/adap/flower/pull/2718))" msgstr "" -#: ../../source/ref-changelog.md:546 +#: ../../source/ref-changelog.md:657 msgid "" "Until now, clients of type `NumPyClient` needed to be started via " "`start_numpy_client`. In our efforts to consolidate framework APIs, we " @@ -18680,63 +19551,63 @@ msgid "" "updated accordingly." msgstr "" -#: ../../source/ref-changelog.md:548 +#: ../../source/ref-changelog.md:659 msgid "" "**Deprecate legacy DP wrappers** " "([#2749](https://github.com/adap/flower/pull/2749))" msgstr "" -#: ../../source/ref-changelog.md:550 +#: ../../source/ref-changelog.md:661 msgid "" "Legacy DP wrapper classes are deprecated, but still functional. This is " "in preparation for an all-new pluggable version of differential privacy " "support in Flower." msgstr "" -#: ../../source/ref-changelog.md:552 +#: ../../source/ref-changelog.md:663 msgid "" "**Make optional arg** `--callable` **in** `flower-client` **a required " "positional arg** ([#2673](https://github.com/adap/flower/pull/2673))" msgstr "" -#: ../../source/ref-changelog.md:554 +#: ../../source/ref-changelog.md:665 msgid "" "**Rename** `certificates` **to** `root_certificates` **in** `Driver` " "([#2890](https://github.com/adap/flower/pull/2890))" msgstr "" -#: ../../source/ref-changelog.md:556 +#: ../../source/ref-changelog.md:667 msgid "" "**Drop experimental** `Task` **fields** " "([#2866](https://github.com/adap/flower/pull/2866), " "[#2865](https://github.com/adap/flower/pull/2865))" msgstr "" -#: ../../source/ref-changelog.md:558 +#: ../../source/ref-changelog.md:669 msgid "" "Experimental fields `sa`, `legacy_server_message` and " "`legacy_client_message` were removed from `Task` message. The removed " "fields are superseded by the new `RecordSet` abstraction." msgstr "" -#: ../../source/ref-changelog.md:560 +#: ../../source/ref-changelog.md:671 msgid "" "**Retire MXNet examples** " "([#2724](https://github.com/adap/flower/pull/2724))" msgstr "" -#: ../../source/ref-changelog.md:562 +#: ../../source/ref-changelog.md:673 msgid "" "The development of the MXNet fremework has ended and the project is now " "[archived on GitHub](https://github.com/apache/mxnet). Existing MXNet " "examples won't receive updates." msgstr "" -#: ../../source/ref-changelog.md:564 +#: ../../source/ref-changelog.md:675 msgid "v1.6.0 (2023-11-28)" msgstr "" -#: ../../source/ref-changelog.md:570 +#: ../../source/ref-changelog.md:681 msgid "" "`Aashish Kolluri`, `Adam Narozniak`, `Alessio Mora`, `Barathwaja S`, " "`Charles Beauville`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Gabriel " @@ -18746,13 +19617,13 @@ msgid "" "`cnxdeveloper`, `k3nfalt` " msgstr "" -#: ../../source/ref-changelog.md:574 +#: ../../source/ref-changelog.md:685 msgid "" "**Add experimental support for Python 3.12** " "([#2565](https://github.com/adap/flower/pull/2565))" msgstr "" -#: ../../source/ref-changelog.md:576 +#: ../../source/ref-changelog.md:687 msgid "" "**Add new XGBoost examples** " "([#2612](https://github.com/adap/flower/pull/2612), " @@ -18763,19 +19634,19 @@ msgid "" "[#2567](https://github.com/adap/flower/pull/2567))" msgstr "" -#: ../../source/ref-changelog.md:578 +#: ../../source/ref-changelog.md:689 msgid "" "We have added a new `xgboost-quickstart` example alongside a new " "`xgboost-comprehensive` example that goes more in-depth." msgstr "" -#: ../../source/ref-changelog.md:580 +#: ../../source/ref-changelog.md:691 msgid "" "**Add Vertical FL example** " "([#2598](https://github.com/adap/flower/pull/2598))" msgstr "" -#: ../../source/ref-changelog.md:582 +#: ../../source/ref-changelog.md:693 msgid "" "We had many questions about Vertical Federated Learning using Flower, so " "we decided to add an simple example for it on the [Titanic " @@ -18783,29 +19654,29 @@ msgid "" "tutorial (in the README)." msgstr "" -#: ../../source/ref-changelog.md:584 +#: ../../source/ref-changelog.md:695 msgid "" "**Support custom** `ClientManager` **in** `start_driver()` " "([#2292](https://github.com/adap/flower/pull/2292))" msgstr "" -#: ../../source/ref-changelog.md:586 +#: ../../source/ref-changelog.md:697 msgid "" "**Update REST API to support create and delete nodes** " "([#2283](https://github.com/adap/flower/pull/2283))" msgstr "" -#: ../../source/ref-changelog.md:588 +#: ../../source/ref-changelog.md:699 msgid "" "**Update the Android SDK** " "([#2187](https://github.com/adap/flower/pull/2187))" msgstr "" -#: ../../source/ref-changelog.md:590 +#: ../../source/ref-changelog.md:701 msgid "Add gRPC request-response capability to the Android SDK." msgstr "" -#: ../../source/ref-changelog.md:592 +#: ../../source/ref-changelog.md:703 msgid "" "**Update the C++ SDK** " "([#2537](https://github.com/adap/flower/pull/2537), " @@ -18814,18 +19685,18 @@ msgid "" "[#2522](https://github.com/adap/flower/pull/2522))" msgstr "" -#: ../../source/ref-changelog.md:594 +#: ../../source/ref-changelog.md:705 msgid "Add gRPC request-response capability to the C++ SDK." msgstr "" -#: ../../source/ref-changelog.md:596 +#: ../../source/ref-changelog.md:707 msgid "" "**Make HTTPS the new default** " "([#2591](https://github.com/adap/flower/pull/2591), " "[#2636](https://github.com/adap/flower/pull/2636))" msgstr "" -#: ../../source/ref-changelog.md:598 +#: ../../source/ref-changelog.md:709 msgid "" "Flower is moving to HTTPS by default. The new `flower-server` requires " "passing `--certificates`, but users can enable `--insecure` to use HTTP " @@ -18835,21 +19706,21 @@ msgid "" "enable insecure HTTP connections." msgstr "" -#: ../../source/ref-changelog.md:600 +#: ../../source/ref-changelog.md:711 msgid "" "For backward compatibility, `start_client()` and `start_numpy_client()` " "will still start in insecure mode by default. In a future release, " "insecure connections will require user opt-in by passing `insecure=True`." msgstr "" -#: ../../source/ref-changelog.md:602 +#: ../../source/ref-changelog.md:713 msgid "" "**Unify client API** ([#2303](https://github.com/adap/flower/pull/2303), " "[#2390](https://github.com/adap/flower/pull/2390), " "[#2493](https://github.com/adap/flower/pull/2493))" msgstr "" -#: ../../source/ref-changelog.md:604 +#: ../../source/ref-changelog.md:715 msgid "" "Using the `client_fn`, Flower clients can interchangeably run as " "standalone processes (i.e. via `start_client`) or in simulation (i.e. via" @@ -18858,92 +19729,92 @@ msgid "" "convert a `NumPyClient` to a `Client`." msgstr "" -#: ../../source/ref-changelog.md:606 +#: ../../source/ref-changelog.md:717 msgid "" "**Add new** `Bulyan` **strategy** " "([#1817](https://github.com/adap/flower/pull/1817), " "[#1891](https://github.com/adap/flower/pull/1891))" msgstr "" -#: ../../source/ref-changelog.md:608 +#: ../../source/ref-changelog.md:719 msgid "" "The new `Bulyan` strategy implements Bulyan by [El Mhamdi et al., " "2018](https://arxiv.org/abs/1802.07927)" msgstr "" -#: ../../source/ref-changelog.md:610 +#: ../../source/ref-changelog.md:721 msgid "" "**Add new** `XGB Bagging` **strategy** " "([#2611](https://github.com/adap/flower/pull/2611))" msgstr "" -#: ../../source/ref-changelog.md:612 ../../source/ref-changelog.md:614 +#: ../../source/ref-changelog.md:723 ../../source/ref-changelog.md:725 msgid "" "**Introduce `WorkloadState`** " "([#2564](https://github.com/adap/flower/pull/2564), " "[#2632](https://github.com/adap/flower/pull/2632))" msgstr "" -#: ../../source/ref-changelog.md:618 +#: ../../source/ref-changelog.md:729 msgid "" "FedProx ([#2210](https://github.com/adap/flower/pull/2210), " "[#2286](https://github.com/adap/flower/pull/2286), " "[#2509](https://github.com/adap/flower/pull/2509))" msgstr "" -#: ../../source/ref-changelog.md:620 +#: ../../source/ref-changelog.md:731 msgid "" "Baselines Docs ([#2290](https://github.com/adap/flower/pull/2290), " "[#2400](https://github.com/adap/flower/pull/2400))" msgstr "" -#: ../../source/ref-changelog.md:622 +#: ../../source/ref-changelog.md:733 msgid "" "FedMLB ([#2340](https://github.com/adap/flower/pull/2340), " "[#2507](https://github.com/adap/flower/pull/2507))" msgstr "" -#: ../../source/ref-changelog.md:624 +#: ../../source/ref-changelog.md:735 msgid "" "TAMUNA ([#2254](https://github.com/adap/flower/pull/2254), " "[#2508](https://github.com/adap/flower/pull/2508))" msgstr "" -#: ../../source/ref-changelog.md:626 +#: ../../source/ref-changelog.md:737 msgid "FedMeta [#2438](https://github.com/adap/flower/pull/2438)" msgstr "" -#: ../../source/ref-changelog.md:628 +#: ../../source/ref-changelog.md:739 msgid "FjORD [#2431](https://github.com/adap/flower/pull/2431)" msgstr "" -#: ../../source/ref-changelog.md:630 +#: ../../source/ref-changelog.md:741 msgid "MOON [#2421](https://github.com/adap/flower/pull/2421)" msgstr "" -#: ../../source/ref-changelog.md:632 +#: ../../source/ref-changelog.md:743 msgid "DepthFL [#2295](https://github.com/adap/flower/pull/2295)" msgstr "" -#: ../../source/ref-changelog.md:634 +#: ../../source/ref-changelog.md:745 msgid "FedPer [#2266](https://github.com/adap/flower/pull/2266)" msgstr "" -#: ../../source/ref-changelog.md:636 +#: ../../source/ref-changelog.md:747 msgid "FedWav2vec [#2551](https://github.com/adap/flower/pull/2551)" msgstr "" -#: ../../source/ref-changelog.md:638 +#: ../../source/ref-changelog.md:749 msgid "niid-Bench [#2428](https://github.com/adap/flower/pull/2428)" msgstr "" -#: ../../source/ref-changelog.md:640 +#: ../../source/ref-changelog.md:751 msgid "" "FedBN ([#2608](https://github.com/adap/flower/pull/2608), " "[#2615](https://github.com/adap/flower/pull/2615))" msgstr "" -#: ../../source/ref-changelog.md:642 +#: ../../source/ref-changelog.md:753 msgid "" "**General updates to Flower Examples** " "([#2384](https://github.com/adap/flower/pull/2384), " @@ -18953,7 +19824,7 @@ msgid "" "[#2545](https://github.com/adap/flower/pull/2545))" msgstr "" -#: ../../source/ref-changelog.md:644 +#: ../../source/ref-changelog.md:755 msgid "" "**General updates to Flower Baselines** " "([#2301](https://github.com/adap/flower/pull/2301), " @@ -18971,7 +19842,7 @@ msgid "" "[#2470](https://github.com/adap/flower/pull/2470))" msgstr "" -#: ../../source/ref-changelog.md:646 +#: ../../source/ref-changelog.md:757 msgid "" "**General updates to the simulation engine** " "([#2331](https://github.com/adap/flower/pull/2331), " @@ -18980,7 +19851,7 @@ msgid "" "[#2294](https://github.com/adap/flower/pull/2294))" msgstr "" -#: ../../source/ref-changelog.md:648 +#: ../../source/ref-changelog.md:759 msgid "" "**General updates to Flower SDKs** " "([#2288](https://github.com/adap/flower/pull/2288), " @@ -18992,7 +19863,7 @@ msgid "" "[#2623](https://github.com/adap/flower/pull/2623))" msgstr "" -#: ../../source/ref-changelog.md:650 +#: ../../source/ref-changelog.md:761 msgid "" "**General improvements** " "([#2309](https://github.com/adap/flower/pull/2309), " @@ -19024,13 +19895,13 @@ msgid "" "[#2596](https://github.com/adap/flower/pull/2596))" msgstr "" -#: ../../source/ref-changelog.md:652 ../../source/ref-changelog.md:742 -#: ../../source/ref-changelog.md:806 ../../source/ref-changelog.md:860 -#: ../../source/ref-changelog.md:927 +#: ../../source/ref-changelog.md:763 ../../source/ref-changelog.md:853 +#: ../../source/ref-changelog.md:917 ../../source/ref-changelog.md:971 +#: ../../source/ref-changelog.md:1038 msgid "Flower received many improvements under the hood, too many to list here." msgstr "" -#: ../../source/ref-changelog.md:656 +#: ../../source/ref-changelog.md:767 msgid "" "**Remove support for Python 3.7** " "([#2280](https://github.com/adap/flower/pull/2280), " @@ -19041,30 +19912,30 @@ msgid "" "[#2356](https://github.com/adap/flower/pull/2356))" msgstr "" -#: ../../source/ref-changelog.md:658 +#: ../../source/ref-changelog.md:769 msgid "" "Python 3.7 support was deprecated in Flower 1.5, and this release removes" " support. Flower now requires Python 3.8." msgstr "" -#: ../../source/ref-changelog.md:660 +#: ../../source/ref-changelog.md:771 msgid "" "**Remove experimental argument** `rest` **from** `start_client` " "([#2324](https://github.com/adap/flower/pull/2324))" msgstr "" -#: ../../source/ref-changelog.md:662 +#: ../../source/ref-changelog.md:773 msgid "" "The (still experimental) argument `rest` was removed from `start_client` " "and `start_numpy_client`. Use `transport=\"rest\"` to opt into the " "experimental REST API instead." msgstr "" -#: ../../source/ref-changelog.md:664 +#: ../../source/ref-changelog.md:775 msgid "v1.5.0 (2023-08-31)" msgstr "" -#: ../../source/ref-changelog.md:670 +#: ../../source/ref-changelog.md:781 msgid "" "`Adam Narozniak`, `Anass Anhari`, `Charles Beauville`, `Dana-Farber`, " "`Daniel J. Beutel`, `Daniel Nata Nugraha`, `Edoardo Gabrielli`, `Gustavo " @@ -19073,7 +19944,7 @@ msgid "" "TOKEN_v1.5.0-->" msgstr "" -#: ../../source/ref-changelog.md:674 +#: ../../source/ref-changelog.md:785 msgid "" "**Introduce new simulation engine** " "([#1969](https://github.com/adap/flower/pull/1969), " @@ -19081,7 +19952,7 @@ msgid "" "[#2248](https://github.com/adap/flower/pull/2248))" msgstr "" -#: ../../source/ref-changelog.md:676 +#: ../../source/ref-changelog.md:787 msgid "" "The new simulation engine has been rewritten from the ground up, yet it " "remains fully backwards compatible. It offers much improved stability and" @@ -19090,7 +19961,7 @@ msgid "" "only, CPU+GPU, multi-GPU, or multi-node multi-GPU environments." msgstr "" -#: ../../source/ref-changelog.md:678 +#: ../../source/ref-changelog.md:789 msgid "" "Comprehensive documentation includes a new [how-to run " "simulations](https://flower.ai/docs/framework/how-to-run-" @@ -19101,7 +19972,7 @@ msgid "" "series](https://www.youtube.com/watch?v=cRebUIGB5RU&list=PLNG4feLHqCWlnj8a_E1A_n5zr2-8pafTB)." msgstr "" -#: ../../source/ref-changelog.md:680 +#: ../../source/ref-changelog.md:791 msgid "" "**Restructure Flower Docs** " "([#1824](https://github.com/adap/flower/pull/1824), " @@ -19133,7 +20004,7 @@ msgid "" "[#2227](https://github.com/adap/flower/pull/2227))" msgstr "" -#: ../../source/ref-changelog.md:682 +#: ../../source/ref-changelog.md:793 msgid "" "Much effort went into a completely restructured Flower docs experience. " "The documentation on [flower.ai/docs](https://flower.ai/docs) is now " @@ -19141,34 +20012,34 @@ msgid "" "Flower iOS SDK, and code example projects." msgstr "" -#: ../../source/ref-changelog.md:684 +#: ../../source/ref-changelog.md:795 msgid "" "**Introduce Flower Swift SDK** " "([#1858](https://github.com/adap/flower/pull/1858), " "[#1897](https://github.com/adap/flower/pull/1897))" msgstr "" -#: ../../source/ref-changelog.md:686 +#: ../../source/ref-changelog.md:797 msgid "" "This is the first preview release of the Flower Swift SDK. Flower support" " on iOS is improving, and alongside the Swift SDK and code example, there" " is now also an iOS quickstart tutorial." msgstr "" -#: ../../source/ref-changelog.md:688 +#: ../../source/ref-changelog.md:799 msgid "" "**Introduce Flower Android SDK** " "([#2131](https://github.com/adap/flower/pull/2131))" msgstr "" -#: ../../source/ref-changelog.md:690 +#: ../../source/ref-changelog.md:801 msgid "" "This is the first preview release of the Flower Kotlin SDK. Flower " "support on Android is improving, and alongside the Kotlin SDK and code " "example, there is now also an Android quickstart tutorial." msgstr "" -#: ../../source/ref-changelog.md:692 +#: ../../source/ref-changelog.md:803 msgid "" "**Introduce new end-to-end testing infrastructure** " "([#1842](https://github.com/adap/flower/pull/1842), " @@ -19190,42 +20061,42 @@ msgid "" "[#2165](https://github.com/adap/flower/pull/2165))" msgstr "" -#: ../../source/ref-changelog.md:694 +#: ../../source/ref-changelog.md:805 msgid "" "A new testing infrastructure ensures that new changes stay compatible " "with existing framework integrations or strategies." msgstr "" -#: ../../source/ref-changelog.md:696 +#: ../../source/ref-changelog.md:807 msgid "**Deprecate Python 3.7**" msgstr "" -#: ../../source/ref-changelog.md:698 +#: ../../source/ref-changelog.md:809 msgid "" "Since Python 3.7 reached its end of life (EOL) on 2023-06-27, support for" " Python 3.7 is now deprecated and will be removed in an upcoming release." msgstr "" -#: ../../source/ref-changelog.md:700 +#: ../../source/ref-changelog.md:811 msgid "" "**Add new** `FedTrimmedAvg` **strategy** " "([#1769](https://github.com/adap/flower/pull/1769), " "[#1853](https://github.com/adap/flower/pull/1853))" msgstr "" -#: ../../source/ref-changelog.md:702 +#: ../../source/ref-changelog.md:813 msgid "" "The new `FedTrimmedAvg` strategy implements Trimmed Mean by [Dong Yin, " "2018](https://arxiv.org/abs/1803.01498)." msgstr "" -#: ../../source/ref-changelog.md:704 +#: ../../source/ref-changelog.md:815 msgid "" "**Introduce start_driver** " "([#1697](https://github.com/adap/flower/pull/1697))" msgstr "" -#: ../../source/ref-changelog.md:706 +#: ../../source/ref-changelog.md:817 msgid "" "In addition to `start_server` and using the raw Driver API, there is a " "new `start_driver` function that allows for running `start_server` " @@ -19234,13 +20105,13 @@ msgid "" "`start_driver`." msgstr "" -#: ../../source/ref-changelog.md:708 +#: ../../source/ref-changelog.md:819 msgid "" "**Add parameter aggregation to** `mt-pytorch` **code example** " "([#1785](https://github.com/adap/flower/pull/1785))" msgstr "" -#: ../../source/ref-changelog.md:710 +#: ../../source/ref-changelog.md:821 msgid "" "The `mt-pytorch` example shows how to aggregate parameters when writing a" " driver script. The included `driver.py` and `server.py` have been " @@ -19248,53 +20119,53 @@ msgid "" "building server-side logic." msgstr "" -#: ../../source/ref-changelog.md:712 +#: ../../source/ref-changelog.md:823 msgid "" "**Migrate experimental REST API to Starlette** " "([2171](https://github.com/adap/flower/pull/2171))" msgstr "" -#: ../../source/ref-changelog.md:714 +#: ../../source/ref-changelog.md:825 msgid "" "The (experimental) REST API used to be implemented in " "[FastAPI](https://fastapi.tiangolo.com/), but it has now been migrated to" " use [Starlette](https://www.starlette.io/) directly." msgstr "" -#: ../../source/ref-changelog.md:716 +#: ../../source/ref-changelog.md:827 msgid "" "Please note: The REST request-response API is still experimental and will" " likely change significantly over time." msgstr "" -#: ../../source/ref-changelog.md:718 +#: ../../source/ref-changelog.md:829 msgid "" "**Introduce experimental gRPC request-response API** " "([#1867](https://github.com/adap/flower/pull/1867), " "[#1901](https://github.com/adap/flower/pull/1901))" msgstr "" -#: ../../source/ref-changelog.md:720 +#: ../../source/ref-changelog.md:831 msgid "" "In addition to the existing gRPC API (based on bidirectional streaming) " "and the experimental REST API, there is now a new gRPC API that uses a " "request-response model to communicate with client nodes." msgstr "" -#: ../../source/ref-changelog.md:722 +#: ../../source/ref-changelog.md:833 msgid "" "Please note: The gRPC request-response API is still experimental and will" " likely change significantly over time." msgstr "" -#: ../../source/ref-changelog.md:724 +#: ../../source/ref-changelog.md:835 msgid "" "**Replace the experimental** `start_client(rest=True)` **with the new** " "`start_client(transport=\"rest\")` " "([#1880](https://github.com/adap/flower/pull/1880))" msgstr "" -#: ../../source/ref-changelog.md:726 +#: ../../source/ref-changelog.md:837 msgid "" "The (experimental) `start_client` argument `rest` was deprecated in " "favour of a new argument `transport`. `start_client(transport=\"rest\")` " @@ -19303,30 +20174,30 @@ msgid "" "argument `rest` will be removed in a future release." msgstr "" -#: ../../source/ref-changelog.md:728 +#: ../../source/ref-changelog.md:839 msgid "" "**Add a new gRPC option** " "([#2197](https://github.com/adap/flower/pull/2197))" msgstr "" -#: ../../source/ref-changelog.md:730 +#: ../../source/ref-changelog.md:841 msgid "" "We now start a gRPC server with the `grpc.keepalive_permit_without_calls`" " option set to 0 by default. This prevents the clients from sending " "keepalive pings when there is no outstanding stream." msgstr "" -#: ../../source/ref-changelog.md:732 +#: ../../source/ref-changelog.md:843 msgid "" "**Improve example notebooks** " "([#2005](https://github.com/adap/flower/pull/2005))" msgstr "" -#: ../../source/ref-changelog.md:734 +#: ../../source/ref-changelog.md:845 msgid "There's a new 30min Federated Learning PyTorch tutorial!" msgstr "" -#: ../../source/ref-changelog.md:736 +#: ../../source/ref-changelog.md:847 msgid "" "**Example updates** ([#1772](https://github.com/adap/flower/pull/1772), " "[#1873](https://github.com/adap/flower/pull/1873), " @@ -19341,7 +20212,7 @@ msgid "" "[#2183](https://github.com/adap/flower/pull/2183))" msgstr "" -#: ../../source/ref-changelog.md:738 +#: ../../source/ref-changelog.md:849 msgid "" "Many examples have received significant updates, including simplified " "advanced-tensorflow and advanced-pytorch examples, improved macOS " @@ -19350,7 +20221,7 @@ msgid "" "(in addition to `pyproject.toml`)." msgstr "" -#: ../../source/ref-changelog.md:740 +#: ../../source/ref-changelog.md:851 msgid "" "**General improvements** " "([#1872](https://github.com/adap/flower/pull/1872), " @@ -19361,11 +20232,11 @@ msgid "" "[#2171](https://github.com/adap/flower/pull/2171))" msgstr "" -#: ../../source/ref-changelog.md:748 +#: ../../source/ref-changelog.md:859 msgid "v1.4.0 (2023-04-21)" msgstr "" -#: ../../source/ref-changelog.md:754 +#: ../../source/ref-changelog.md:865 msgid "" "`Adam Narozniak`, `Alexander Viala Bellander`, `Charles Beauville`, " "`Chenyang Ma (Danny)`, `Daniel J. Beutel`, `Edoardo`, `Gautam Jajoo`, " @@ -19375,7 +20246,7 @@ msgid "" "`Steve Laskaridis`, `Steven Hé (Sīchàng)`, `Taner Topal`" msgstr "" -#: ../../source/ref-changelog.md:758 +#: ../../source/ref-changelog.md:869 msgid "" "**Introduce support for XGBoost (**`FedXgbNnAvg` **strategy and " "example)** ([#1694](https://github.com/adap/flower/pull/1694), " @@ -19386,7 +20257,7 @@ msgid "" "[#1795](https://github.com/adap/flower/pull/1795))" msgstr "" -#: ../../source/ref-changelog.md:760 +#: ../../source/ref-changelog.md:871 msgid "" "XGBoost is a tree-based ensemble machine learning algorithm that uses " "gradient boosting to improve model accuracy. We added a new `FedXgbNnAvg`" @@ -19397,14 +20268,14 @@ msgid "" "an XGBoost project." msgstr "" -#: ../../source/ref-changelog.md:762 +#: ../../source/ref-changelog.md:873 msgid "" "**Introduce iOS SDK (preview)** " "([#1621](https://github.com/adap/flower/pull/1621), " "[#1764](https://github.com/adap/flower/pull/1764))" msgstr "" -#: ../../source/ref-changelog.md:764 +#: ../../source/ref-changelog.md:875 msgid "" "This is a major update for anyone wanting to implement Federated Learning" " on iOS mobile devices. We now have a swift iOS SDK present under " @@ -19415,14 +20286,14 @@ msgid "" "been updated!" msgstr "" -#: ../../source/ref-changelog.md:766 +#: ../../source/ref-changelog.md:877 msgid "" "**Introduce new \"What is Federated Learning?\" tutorial** " "([#1657](https://github.com/adap/flower/pull/1657), " "[#1721](https://github.com/adap/flower/pull/1721))" msgstr "" -#: ../../source/ref-changelog.md:768 +#: ../../source/ref-changelog.md:879 msgid "" "A new [entry-level tutorial](https://flower.ai/docs/framework/tutorial-" "what-is-federated-learning.html) in our documentation explains the basics" @@ -19431,7 +20302,7 @@ msgid "" "interested in Federated Learning!" msgstr "" -#: ../../source/ref-changelog.md:770 +#: ../../source/ref-changelog.md:881 msgid "" "**Introduce new Flower Baseline: FedProx MNIST** " "([#1513](https://github.com/adap/flower/pull/1513), " @@ -19440,7 +20311,7 @@ msgid "" "[#1679](https://github.com/adap/flower/pull/1679))" msgstr "" -#: ../../source/ref-changelog.md:772 +#: ../../source/ref-changelog.md:883 msgid "" "This new baseline replicates the MNIST+CNN task from the paper [Federated" " Optimization in Heterogeneous Networks (Li et al., " @@ -19448,13 +20319,13 @@ msgid "" " which aims at making convergence more robust in heterogeneous settings." msgstr "" -#: ../../source/ref-changelog.md:774 +#: ../../source/ref-changelog.md:885 msgid "" "**Introduce new Flower Baseline: FedAvg FEMNIST** " "([#1655](https://github.com/adap/flower/pull/1655))" msgstr "" -#: ../../source/ref-changelog.md:776 +#: ../../source/ref-changelog.md:887 msgid "" "This new baseline replicates an experiment evaluating the performance of " "the FedAvg algorithm on the FEMNIST dataset from the paper [LEAF: A " @@ -19462,7 +20333,7 @@ msgid "" "2018)](https://arxiv.org/abs/1812.01097)." msgstr "" -#: ../../source/ref-changelog.md:778 +#: ../../source/ref-changelog.md:889 msgid "" "**Introduce (experimental) REST API** " "([#1594](https://github.com/adap/flower/pull/1594), " @@ -19474,20 +20345,20 @@ msgid "" "[#1733](https://github.com/adap/flower/pull/1733))" msgstr "" -#: ../../source/ref-changelog.md:780 +#: ../../source/ref-changelog.md:891 msgid "" "A new REST API has been introduced as an alternative to the gRPC-based " "communication stack. In this initial version, the REST API only supports " "anonymous clients." msgstr "" -#: ../../source/ref-changelog.md:782 +#: ../../source/ref-changelog.md:893 msgid "" "Please note: The REST API is still experimental and will likely change " "significantly over time." msgstr "" -#: ../../source/ref-changelog.md:784 +#: ../../source/ref-changelog.md:895 msgid "" "**Improve the (experimental) Driver API** " "([#1663](https://github.com/adap/flower/pull/1663), " @@ -19501,7 +20372,7 @@ msgid "" "[#1794](https://github.com/adap/flower/pull/1794))" msgstr "" -#: ../../source/ref-changelog.md:786 +#: ../../source/ref-changelog.md:897 msgid "" "The Driver API is still an experimental feature, but this release " "introduces some major upgrades. One of the main improvements is the " @@ -19511,26 +20382,26 @@ msgid "" "improves the memory efficiency of a long-running Flower server." msgstr "" -#: ../../source/ref-changelog.md:788 +#: ../../source/ref-changelog.md:899 msgid "" "**Fix spilling issues related to Ray during simulations** " "([#1698](https://github.com/adap/flower/pull/1698))" msgstr "" -#: ../../source/ref-changelog.md:790 +#: ../../source/ref-changelog.md:901 msgid "" "While running long simulations, `ray` was sometimes spilling huge amounts" " of data that would make the training unable to continue. This is now " "fixed! 🎉" msgstr "" -#: ../../source/ref-changelog.md:792 +#: ../../source/ref-changelog.md:903 msgid "" "**Add new example using** `TabNet` **and Flower** " "([#1725](https://github.com/adap/flower/pull/1725))" msgstr "" -#: ../../source/ref-changelog.md:794 +#: ../../source/ref-changelog.md:905 msgid "" "TabNet is a powerful and flexible framework for training machine learning" " models on tabular data. We now have a federated example using Flower: " @@ -19538,32 +20409,32 @@ msgid "" "/quickstart-tabnet)." msgstr "" -#: ../../source/ref-changelog.md:796 +#: ../../source/ref-changelog.md:907 msgid "" "**Add new how-to guide for monitoring simulations** " "([#1649](https://github.com/adap/flower/pull/1649))" msgstr "" -#: ../../source/ref-changelog.md:798 +#: ../../source/ref-changelog.md:909 msgid "" "We now have a documentation guide to help users monitor their performance" " during simulations." msgstr "" -#: ../../source/ref-changelog.md:800 +#: ../../source/ref-changelog.md:911 msgid "" "**Add training metrics to** `History` **object during simulations** " "([#1696](https://github.com/adap/flower/pull/1696))" msgstr "" -#: ../../source/ref-changelog.md:802 +#: ../../source/ref-changelog.md:913 msgid "" "The `fit_metrics_aggregation_fn` can be used to aggregate training " "metrics, but previous releases did not save the results in the `History` " "object. This is now the case!" msgstr "" -#: ../../source/ref-changelog.md:804 +#: ../../source/ref-changelog.md:915 msgid "" "**General improvements** " "([#1659](https://github.com/adap/flower/pull/1659), " @@ -19617,23 +20488,23 @@ msgid "" "[#1805](https://github.com/adap/flower/pull/1805))" msgstr "" -#: ../../source/ref-changelog.md:812 +#: ../../source/ref-changelog.md:923 msgid "v1.3.0 (2023-02-06)" msgstr "" -#: ../../source/ref-changelog.md:818 +#: ../../source/ref-changelog.md:929 msgid "" "`Adam Narozniak`, `Alexander Viala Bellander`, `Charles Beauville`, " "`Daniel J. Beutel`, `JDRanpariya`, `Lennart Behme`, `Taner Topal`" msgstr "" -#: ../../source/ref-changelog.md:822 +#: ../../source/ref-changelog.md:933 msgid "" "**Add support for** `workload_id` **and** `group_id` **in Driver API** " "([#1595](https://github.com/adap/flower/pull/1595))" msgstr "" -#: ../../source/ref-changelog.md:824 +#: ../../source/ref-changelog.md:935 msgid "" "The (experimental) Driver API now supports a `workload_id` that can be " "used to identify which workload a task belongs to. It also supports a new" @@ -19642,36 +20513,36 @@ msgid "" " to decide whether they want to handle a task or not." msgstr "" -#: ../../source/ref-changelog.md:826 +#: ../../source/ref-changelog.md:937 msgid "" "**Make Driver API and Fleet API address configurable** " "([#1637](https://github.com/adap/flower/pull/1637))" msgstr "" -#: ../../source/ref-changelog.md:828 +#: ../../source/ref-changelog.md:939 msgid "" "The (experimental) long-running Flower server (Driver API and Fleet API) " "can now configure the server address of both Driver API (via `--driver-" "api-address`) and Fleet API (via `--fleet-api-address`) when starting:" msgstr "" -#: ../../source/ref-changelog.md:830 +#: ../../source/ref-changelog.md:941 msgid "" "`flower-server --driver-api-address \"0.0.0.0:8081\" --fleet-api-address " "\"0.0.0.0:8086\"`" msgstr "" -#: ../../source/ref-changelog.md:832 +#: ../../source/ref-changelog.md:943 msgid "Both IPv4 and IPv6 addresses are supported." msgstr "" -#: ../../source/ref-changelog.md:834 +#: ../../source/ref-changelog.md:945 msgid "" "**Add new example of Federated Learning using fastai and Flower** " "([#1598](https://github.com/adap/flower/pull/1598))" msgstr "" -#: ../../source/ref-changelog.md:836 +#: ../../source/ref-changelog.md:947 msgid "" "A new code example (`quickstart-fastai`) demonstrates federated learning " "with [fastai](https://www.fast.ai/) and Flower. You can find it here: " @@ -19679,14 +20550,14 @@ msgid "" "/quickstart-fastai)." msgstr "" -#: ../../source/ref-changelog.md:838 +#: ../../source/ref-changelog.md:949 msgid "" "**Make Android example compatible with** `flwr >= 1.0.0` **and the latest" " versions of Android** " "([#1603](https://github.com/adap/flower/pull/1603))" msgstr "" -#: ../../source/ref-changelog.md:840 +#: ../../source/ref-changelog.md:951 msgid "" "The Android code example has received a substantial update: the project " "is compatible with Flower 1.0 (and later), the UI received a full " @@ -19694,13 +20565,13 @@ msgid "" "tooling." msgstr "" -#: ../../source/ref-changelog.md:842 +#: ../../source/ref-changelog.md:953 msgid "" "**Add new `FedProx` strategy** " "([#1619](https://github.com/adap/flower/pull/1619))" msgstr "" -#: ../../source/ref-changelog.md:844 +#: ../../source/ref-changelog.md:955 msgid "" "This " "[strategy](https://github.com/adap/flower/blob/main/src/py/flwr/server/strategy/fedprox.py)" @@ -19712,25 +20583,25 @@ msgid "" "respect to the global models." msgstr "" -#: ../../source/ref-changelog.md:846 +#: ../../source/ref-changelog.md:957 msgid "" "**Add new metrics to telemetry events** " "([#1640](https://github.com/adap/flower/pull/1640))" msgstr "" -#: ../../source/ref-changelog.md:848 +#: ../../source/ref-changelog.md:959 msgid "" "An updated event structure allows, for example, the clustering of events " "within the same workload." msgstr "" -#: ../../source/ref-changelog.md:850 +#: ../../source/ref-changelog.md:961 msgid "" "**Add new custom strategy tutorial section** " "[#1623](https://github.com/adap/flower/pull/1623)" msgstr "" -#: ../../source/ref-changelog.md:852 +#: ../../source/ref-changelog.md:963 msgid "" "The Flower tutorial now has a new section that covers implementing a " "custom strategy from scratch: [Open in " @@ -19738,13 +20609,13 @@ msgid "" "/tutorial-build-a-strategy-from-scratch-pytorch.ipynb)" msgstr "" -#: ../../source/ref-changelog.md:854 +#: ../../source/ref-changelog.md:965 msgid "" "**Add new custom serialization tutorial section** " "([#1622](https://github.com/adap/flower/pull/1622))" msgstr "" -#: ../../source/ref-changelog.md:856 +#: ../../source/ref-changelog.md:967 msgid "" "The Flower tutorial now has a new section that covers custom " "serialization: [Open in " @@ -19752,7 +20623,7 @@ msgid "" "/tutorial-customize-the-client-pytorch.ipynb)" msgstr "" -#: ../../source/ref-changelog.md:858 +#: ../../source/ref-changelog.md:969 msgid "" "**General improvements** " "([#1638](https://github.com/adap/flower/pull/1638), " @@ -19790,7 +20661,7 @@ msgid "" "[#1586](https://github.com/adap/flower/pull/1586))" msgstr "" -#: ../../source/ref-changelog.md:862 +#: ../../source/ref-changelog.md:973 msgid "" "**Updated documentation** " "([#1629](https://github.com/adap/flower/pull/1629), " @@ -19802,31 +20673,31 @@ msgid "" "[#1614](https://github.com/adap/flower/pull/1614))" msgstr "" -#: ../../source/ref-changelog.md:864 ../../source/ref-changelog.md:931 +#: ../../source/ref-changelog.md:975 ../../source/ref-changelog.md:1042 msgid "" "As usual, the documentation has improved quite a bit. It is another step " "in our effort to make the Flower documentation the best documentation of " "any project. Stay tuned and as always, feel free to provide feedback!" msgstr "" -#: ../../source/ref-changelog.md:870 +#: ../../source/ref-changelog.md:981 msgid "v1.2.0 (2023-01-13)" msgstr "" -#: ../../source/ref-changelog.md:876 +#: ../../source/ref-changelog.md:987 msgid "" "`Adam Narozniak`, `Charles Beauville`, `Daniel J. Beutel`, `Edoardo`, `L." " Jiang`, `Ragy`, `Taner Topal`, `dannymcy`" msgstr "" -#: ../../source/ref-changelog.md:880 +#: ../../source/ref-changelog.md:991 msgid "" "**Introduce new Flower Baseline: FedAvg MNIST** " "([#1497](https://github.com/adap/flower/pull/1497), " "[#1552](https://github.com/adap/flower/pull/1552))" msgstr "" -#: ../../source/ref-changelog.md:882 +#: ../../source/ref-changelog.md:993 msgid "" "Over the coming weeks, we will be releasing a number of new reference " "implementations useful especially to FL newcomers. They will typically " @@ -19837,13 +20708,13 @@ msgid "" "pack-fedavg-mnist-cnn/)" msgstr "" -#: ../../source/ref-changelog.md:884 +#: ../../source/ref-changelog.md:995 msgid "" "**Improve GPU support in simulations** " "([#1555](https://github.com/adap/flower/pull/1555))" msgstr "" -#: ../../source/ref-changelog.md:886 +#: ../../source/ref-changelog.md:997 msgid "" "The Ray-based Virtual Client Engine (`start_simulation`) has been updated" " to improve GPU support. The update includes some of the hard-earned " @@ -19851,45 +20722,45 @@ msgid "" "defaults make running GPU-based simulations substantially more robust." msgstr "" -#: ../../source/ref-changelog.md:888 +#: ../../source/ref-changelog.md:999 msgid "" "**Improve GPU support in Jupyter Notebook tutorials** " "([#1527](https://github.com/adap/flower/pull/1527), " "[#1558](https://github.com/adap/flower/pull/1558))" msgstr "" -#: ../../source/ref-changelog.md:890 +#: ../../source/ref-changelog.md:1001 msgid "" "Some users reported that Jupyter Notebooks have not always been easy to " "use on GPU instances. We listened and made improvements to all of our " "Jupyter notebooks! Check out the updated notebooks here:" msgstr "" -#: ../../source/ref-changelog.md:892 +#: ../../source/ref-changelog.md:1003 msgid "" "[An Introduction to Federated Learning](https://flower.ai/docs/framework" "/tutorial-get-started-with-flower-pytorch.html)" msgstr "" -#: ../../source/ref-changelog.md:893 +#: ../../source/ref-changelog.md:1004 msgid "" "[Strategies in Federated Learning](https://flower.ai/docs/framework" "/tutorial-use-a-federated-learning-strategy-pytorch.html)" msgstr "" -#: ../../source/ref-changelog.md:894 +#: ../../source/ref-changelog.md:1005 msgid "" "[Building a Strategy](https://flower.ai/docs/framework/tutorial-build-a" "-strategy-from-scratch-pytorch.html)" msgstr "" -#: ../../source/ref-changelog.md:895 +#: ../../source/ref-changelog.md:1006 msgid "" "[Client and NumPyClient](https://flower.ai/docs/framework/tutorial-" "customize-the-client-pytorch.html)" msgstr "" -#: ../../source/ref-changelog.md:897 +#: ../../source/ref-changelog.md:1008 msgid "" "**Introduce optional telemetry** " "([#1533](https://github.com/adap/flower/pull/1533), " @@ -19897,7 +20768,7 @@ msgid "" "[#1584](https://github.com/adap/flower/pull/1584))" msgstr "" -#: ../../source/ref-changelog.md:899 +#: ../../source/ref-changelog.md:1010 msgid "" "After a [request for " "feedback](https://github.com/adap/flower/issues/1534) from the community," @@ -19907,7 +20778,7 @@ msgid "" "used and what challenges users might face." msgstr "" -#: ../../source/ref-changelog.md:901 +#: ../../source/ref-changelog.md:1012 msgid "" "**Flower is a friendly framework for collaborative AI and data science.**" " Staying true to this statement, Flower makes it easy to disable " @@ -19915,7 +20786,7 @@ msgid "" "[Read more.](https://flower.ai/docs/telemetry.html)." msgstr "" -#: ../../source/ref-changelog.md:903 +#: ../../source/ref-changelog.md:1014 msgid "" "**Introduce (experimental) Driver API** " "([#1520](https://github.com/adap/flower/pull/1520), " @@ -19927,7 +20798,7 @@ msgid "" "[#1567](https://github.com/adap/flower/pull/1567))" msgstr "" -#: ../../source/ref-changelog.md:905 +#: ../../source/ref-changelog.md:1016 msgid "" "Flower now has a new (experimental) Driver API which will enable fully " "programmable, async, and multi-tenant Federated Learning and Federated " @@ -19936,7 +20807,7 @@ msgid "" "and you can start building those things now, too." msgstr "" -#: ../../source/ref-changelog.md:907 +#: ../../source/ref-changelog.md:1018 msgid "" "The Driver API also enables a new execution mode in which the server runs" " indefinitely. Multiple individual workloads can run concurrently and " @@ -19944,26 +20815,26 @@ msgid "" "especially useful for users who want to deploy Flower in production." msgstr "" -#: ../../source/ref-changelog.md:909 +#: ../../source/ref-changelog.md:1020 msgid "" "To learn more, check out the `mt-pytorch` code example. We look forward " "to you feedback!" msgstr "" -#: ../../source/ref-changelog.md:911 +#: ../../source/ref-changelog.md:1022 msgid "" "Please note: *The Driver API is still experimental and will likely change" " significantly over time.*" msgstr "" -#: ../../source/ref-changelog.md:913 +#: ../../source/ref-changelog.md:1024 msgid "" "**Add new Federated Analytics with Pandas example** " "([#1469](https://github.com/adap/flower/pull/1469), " "[#1535](https://github.com/adap/flower/pull/1535))" msgstr "" -#: ../../source/ref-changelog.md:915 +#: ../../source/ref-changelog.md:1026 msgid "" "A new code example (`quickstart-pandas`) demonstrates federated analytics" " with Pandas and Flower. You can find it here: [quickstart-" @@ -19971,32 +20842,32 @@ msgid "" "pandas)." msgstr "" -#: ../../source/ref-changelog.md:917 +#: ../../source/ref-changelog.md:1028 msgid "" "**Add new strategies: Krum and MultiKrum** " "([#1481](https://github.com/adap/flower/pull/1481))" msgstr "" -#: ../../source/ref-changelog.md:919 +#: ../../source/ref-changelog.md:1030 msgid "" "Edoardo, a computer science student at the Sapienza University of Rome, " "contributed a new `Krum` strategy that enables users to easily use Krum " "and MultiKrum in their workloads." msgstr "" -#: ../../source/ref-changelog.md:921 +#: ../../source/ref-changelog.md:1032 msgid "" "**Update C++ example to be compatible with Flower v1.2.0** " "([#1495](https://github.com/adap/flower/pull/1495))" msgstr "" -#: ../../source/ref-changelog.md:923 +#: ../../source/ref-changelog.md:1034 msgid "" "The C++ code example has received a substantial update to make it " "compatible with the latest version of Flower." msgstr "" -#: ../../source/ref-changelog.md:925 +#: ../../source/ref-changelog.md:1036 msgid "" "**General improvements** " "([#1491](https://github.com/adap/flower/pull/1491), " @@ -20014,7 +20885,7 @@ msgid "" "[#1566](https://github.com/adap/flower/pull/1566))" msgstr "" -#: ../../source/ref-changelog.md:929 +#: ../../source/ref-changelog.md:1040 msgid "" "**Updated documentation** " "([#1494](https://github.com/adap/flower/pull/1494), " @@ -20028,24 +20899,24 @@ msgid "" "[#1515](https://github.com/adap/flower/pull/1515))" msgstr "" -#: ../../source/ref-changelog.md:933 +#: ../../source/ref-changelog.md:1044 msgid "" "One highlight is the new [first time contributor " "guide](https://flower.ai/docs/first-time-contributors.html): if you've " "never contributed on GitHub before, this is the perfect place to start!" msgstr "" -#: ../../source/ref-changelog.md:939 +#: ../../source/ref-changelog.md:1050 msgid "v1.1.0 (2022-10-31)" msgstr "" -#: ../../source/ref-changelog.md:943 +#: ../../source/ref-changelog.md:1054 msgid "" "We would like to give our **special thanks** to all the contributors who " "made the new version of Flower possible (in `git shortlog` order):" msgstr "" -#: ../../source/ref-changelog.md:945 +#: ../../source/ref-changelog.md:1056 msgid "" "`Akis Linardos`, `Christopher S`, `Daniel J. Beutel`, `George`, `Jan " "Schlicht`, `Mohammad Fares`, `Pedro Porto Buarque de Gusmão`, `Philipp " @@ -20053,14 +20924,14 @@ msgid "" "`danielnugraha`, `edogab33`" msgstr "" -#: ../../source/ref-changelog.md:949 +#: ../../source/ref-changelog.md:1060 msgid "" "**Introduce Differential Privacy wrappers (preview)** " "([#1357](https://github.com/adap/flower/pull/1357), " "[#1460](https://github.com/adap/flower/pull/1460))" msgstr "" -#: ../../source/ref-changelog.md:951 +#: ../../source/ref-changelog.md:1062 msgid "" "The first (experimental) preview of pluggable Differential Privacy " "wrappers enables easy configuration and usage of differential privacy " @@ -20069,13 +20940,13 @@ msgid "" "over to the Flower docs, a new explainer goes into more detail." msgstr "" -#: ../../source/ref-changelog.md:953 +#: ../../source/ref-changelog.md:1064 msgid "" "**New iOS CoreML code example** " "([#1289](https://github.com/adap/flower/pull/1289))" msgstr "" -#: ../../source/ref-changelog.md:955 +#: ../../source/ref-changelog.md:1066 msgid "" "Flower goes iOS! A massive new code example shows how Flower clients can " "be built for iOS. The code example contains both Flower iOS SDK " @@ -20083,39 +20954,39 @@ msgid "" "on CoreML." msgstr "" -#: ../../source/ref-changelog.md:957 +#: ../../source/ref-changelog.md:1068 msgid "" "**New FedMedian strategy** " "([#1461](https://github.com/adap/flower/pull/1461))" msgstr "" -#: ../../source/ref-changelog.md:959 +#: ../../source/ref-changelog.md:1070 msgid "" "The new `FedMedian` strategy implements Federated Median (FedMedian) by " "[Yin et al., 2018](https://arxiv.org/pdf/1803.01498v1.pdf)." msgstr "" -#: ../../source/ref-changelog.md:961 +#: ../../source/ref-changelog.md:1072 msgid "" "**Log** `Client` **exceptions in Virtual Client Engine** " "([#1493](https://github.com/adap/flower/pull/1493))" msgstr "" -#: ../../source/ref-changelog.md:963 +#: ../../source/ref-changelog.md:1074 msgid "" "All `Client` exceptions happening in the VCE are now logged by default " "and not just exposed to the configured `Strategy` (via the `failures` " "argument)." msgstr "" -#: ../../source/ref-changelog.md:965 +#: ../../source/ref-changelog.md:1076 msgid "" "**Improve Virtual Client Engine internals** " "([#1401](https://github.com/adap/flower/pull/1401), " "[#1453](https://github.com/adap/flower/pull/1453))" msgstr "" -#: ../../source/ref-changelog.md:967 +#: ../../source/ref-changelog.md:1078 msgid "" "Some internals of the Virtual Client Engine have been revamped. The VCE " "now uses Ray 2.0 under the hood, the value type of the `client_resources`" @@ -20123,25 +20994,25 @@ msgid "" "allocated." msgstr "" -#: ../../source/ref-changelog.md:969 +#: ../../source/ref-changelog.md:1080 msgid "" "**Support optional** `Client`**/**`NumPyClient` **methods in Virtual " "Client Engine**" msgstr "" -#: ../../source/ref-changelog.md:971 +#: ../../source/ref-changelog.md:1082 msgid "" "The Virtual Client Engine now has full support for optional `Client` (and" " `NumPyClient`) methods." msgstr "" -#: ../../source/ref-changelog.md:973 +#: ../../source/ref-changelog.md:1084 msgid "" "**Provide type information to packages using** `flwr` " "([#1377](https://github.com/adap/flower/pull/1377))" msgstr "" -#: ../../source/ref-changelog.md:975 +#: ../../source/ref-changelog.md:1086 msgid "" "The package `flwr` is now bundled with a `py.typed` file indicating that " "the package is typed. This enables typing support for projects or " @@ -20149,20 +21020,20 @@ msgid "" "static type checkers like `mypy`." msgstr "" -#: ../../source/ref-changelog.md:977 +#: ../../source/ref-changelog.md:1088 msgid "" "**Updated code example** " "([#1344](https://github.com/adap/flower/pull/1344), " "[#1347](https://github.com/adap/flower/pull/1347))" msgstr "" -#: ../../source/ref-changelog.md:979 +#: ../../source/ref-changelog.md:1090 msgid "" "The code examples covering scikit-learn and PyTorch Lightning have been " "updated to work with the latest version of Flower." msgstr "" -#: ../../source/ref-changelog.md:981 +#: ../../source/ref-changelog.md:1092 msgid "" "**Updated documentation** " "([#1355](https://github.com/adap/flower/pull/1355), " @@ -20184,32 +21055,32 @@ msgid "" "[#1467](https://github.com/adap/flower/pull/1467))" msgstr "" -#: ../../source/ref-changelog.md:983 +#: ../../source/ref-changelog.md:1094 msgid "" "There have been so many documentation updates that it doesn't even make " "sense to list them individually." msgstr "" -#: ../../source/ref-changelog.md:985 +#: ../../source/ref-changelog.md:1096 msgid "" "**Restructured documentation** " "([#1387](https://github.com/adap/flower/pull/1387))" msgstr "" -#: ../../source/ref-changelog.md:987 +#: ../../source/ref-changelog.md:1098 msgid "" "The documentation has been restructured to make it easier to navigate. " "This is just the first step in a larger effort to make the Flower " "documentation the best documentation of any project ever. Stay tuned!" msgstr "" -#: ../../source/ref-changelog.md:989 +#: ../../source/ref-changelog.md:1100 msgid "" "**Open in Colab button** " "([#1389](https://github.com/adap/flower/pull/1389))" msgstr "" -#: ../../source/ref-changelog.md:991 +#: ../../source/ref-changelog.md:1102 msgid "" "The four parts of the Flower Federated Learning Tutorial now come with a " "new `Open in Colab` button. No need to install anything on your local " @@ -20217,7 +21088,7 @@ msgid "" "only a single click away." msgstr "" -#: ../../source/ref-changelog.md:993 +#: ../../source/ref-changelog.md:1104 msgid "" "**Improved tutorial** ([#1468](https://github.com/adap/flower/pull/1468)," " [#1470](https://github.com/adap/flower/pull/1470), " @@ -20227,7 +21098,7 @@ msgid "" "[#1475](https://github.com/adap/flower/pull/1475))" msgstr "" -#: ../../source/ref-changelog.md:995 +#: ../../source/ref-changelog.md:1106 msgid "" "The Flower Federated Learning Tutorial has two brand-new parts covering " "custom strategies (still WIP) and the distinction between `Client` and " @@ -20235,40 +21106,40 @@ msgid "" "(many small changes and fixes)." msgstr "" -#: ../../source/ref-changelog.md:1001 +#: ../../source/ref-changelog.md:1112 msgid "v1.0.0 (2022-07-28)" msgstr "" -#: ../../source/ref-changelog.md:1003 +#: ../../source/ref-changelog.md:1114 msgid "Highlights" msgstr "" -#: ../../source/ref-changelog.md:1005 +#: ../../source/ref-changelog.md:1116 msgid "Stable **Virtual Client Engine** (accessible via `start_simulation`)" msgstr "" -#: ../../source/ref-changelog.md:1006 +#: ../../source/ref-changelog.md:1117 msgid "All `Client`/`NumPyClient` methods are now optional" msgstr "" -#: ../../source/ref-changelog.md:1007 +#: ../../source/ref-changelog.md:1118 msgid "Configurable `get_parameters`" msgstr "" -#: ../../source/ref-changelog.md:1008 +#: ../../source/ref-changelog.md:1119 msgid "" "Tons of small API cleanups resulting in a more coherent developer " "experience" msgstr "" -#: ../../source/ref-changelog.md:1012 +#: ../../source/ref-changelog.md:1123 msgid "" "We would like to give our **special thanks** to all the contributors who " "made Flower 1.0 possible (in reverse [GitHub " "Contributors](https://github.com/adap/flower/graphs/contributors) order):" msgstr "" -#: ../../source/ref-changelog.md:1014 +#: ../../source/ref-changelog.md:1125 msgid "" "[@rtaiello](https://github.com/rtaiello), " "[@g-pichler](https://github.com/g-pichler), [@rob-" @@ -20308,13 +21179,13 @@ msgid "" "[@danieljanes](https://github.com/danieljanes)." msgstr "" -#: ../../source/ref-changelog.md:1018 +#: ../../source/ref-changelog.md:1129 msgid "" "**All arguments must be passed as keyword arguments** " "([#1338](https://github.com/adap/flower/pull/1338))" msgstr "" -#: ../../source/ref-changelog.md:1020 +#: ../../source/ref-changelog.md:1131 msgid "" "Pass all arguments as keyword arguments, positional arguments are not " "longer supported. Code that uses positional arguments (e.g., " @@ -20324,14 +21195,14 @@ msgid "" "client=FlowerClient())`)." msgstr "" -#: ../../source/ref-changelog.md:1022 +#: ../../source/ref-changelog.md:1133 msgid "" "**Introduce configuration object** `ServerConfig` **in** `start_server` " "**and** `start_simulation` " "([#1317](https://github.com/adap/flower/pull/1317))" msgstr "" -#: ../../source/ref-changelog.md:1024 +#: ../../source/ref-changelog.md:1135 msgid "" "Instead of a config dictionary `{\"num_rounds\": 3, \"round_timeout\": " "600.0}`, `start_server` and `start_simulation` now expect a configuration" @@ -20340,37 +21211,37 @@ msgid "" "safe code easier and the default parameters values more transparent." msgstr "" -#: ../../source/ref-changelog.md:1026 +#: ../../source/ref-changelog.md:1137 msgid "" "**Rename built-in strategy parameters for clarity** " "([#1334](https://github.com/adap/flower/pull/1334))" msgstr "" -#: ../../source/ref-changelog.md:1028 +#: ../../source/ref-changelog.md:1139 msgid "" "The following built-in strategy parameters were renamed to improve " "readability and consistency with other API's:" msgstr "" -#: ../../source/ref-changelog.md:1030 +#: ../../source/ref-changelog.md:1141 msgid "`fraction_eval` --> `fraction_evaluate`" msgstr "" -#: ../../source/ref-changelog.md:1031 +#: ../../source/ref-changelog.md:1142 msgid "`min_eval_clients` --> `min_evaluate_clients`" msgstr "" -#: ../../source/ref-changelog.md:1032 +#: ../../source/ref-changelog.md:1143 msgid "`eval_fn` --> `evaluate_fn`" msgstr "" -#: ../../source/ref-changelog.md:1034 +#: ../../source/ref-changelog.md:1145 msgid "" "**Update default arguments of built-in strategies** " "([#1278](https://github.com/adap/flower/pull/1278))" msgstr "" -#: ../../source/ref-changelog.md:1036 +#: ../../source/ref-changelog.md:1147 msgid "" "All built-in strategies now use `fraction_fit=1.0` and " "`fraction_evaluate=1.0`, which means they select *all* currently " @@ -20379,29 +21250,29 @@ msgid "" "initializing the strategy in the following way:" msgstr "" -#: ../../source/ref-changelog.md:1038 +#: ../../source/ref-changelog.md:1149 msgid "`strategy = FedAvg(fraction_fit=0.1, fraction_evaluate=0.1)`" msgstr "" -#: ../../source/ref-changelog.md:1040 +#: ../../source/ref-changelog.md:1151 msgid "" "**Add** `server_round` **to** `Strategy.evaluate` " "([#1334](https://github.com/adap/flower/pull/1334))" msgstr "" -#: ../../source/ref-changelog.md:1042 +#: ../../source/ref-changelog.md:1153 msgid "" "The `Strategy` method `evaluate` now receives the current round of " "federated learning/evaluation as the first parameter." msgstr "" -#: ../../source/ref-changelog.md:1044 +#: ../../source/ref-changelog.md:1155 msgid "" "**Add** `server_round` **and** `config` **parameters to** `evaluate_fn` " "([#1334](https://github.com/adap/flower/pull/1334))" msgstr "" -#: ../../source/ref-changelog.md:1046 +#: ../../source/ref-changelog.md:1157 msgid "" "The `evaluate_fn` passed to built-in strategies like `FedAvg` now takes " "three parameters: (1) The current round of federated learning/evaluation " @@ -20409,13 +21280,13 @@ msgid "" "and (3) a config dictionary (`config`)." msgstr "" -#: ../../source/ref-changelog.md:1048 +#: ../../source/ref-changelog.md:1159 msgid "" "**Rename** `rnd` **to** `server_round` " "([#1321](https://github.com/adap/flower/pull/1321))" msgstr "" -#: ../../source/ref-changelog.md:1050 +#: ../../source/ref-changelog.md:1161 msgid "" "Several Flower methods and functions (`evaluate_fn`, `configure_fit`, " "`aggregate_fit`, `configure_evaluate`, `aggregate_evaluate`) receive the " @@ -20424,73 +21295,73 @@ msgid "" "has been renamed from `rnd` to `server_round`." msgstr "" -#: ../../source/ref-changelog.md:1052 +#: ../../source/ref-changelog.md:1163 msgid "" "**Move** `flwr.dataset` **to** `flwr_baselines` " "([#1273](https://github.com/adap/flower/pull/1273))" msgstr "" -#: ../../source/ref-changelog.md:1054 +#: ../../source/ref-changelog.md:1165 msgid "The experimental package `flwr.dataset` was migrated to Flower Baselines." msgstr "" -#: ../../source/ref-changelog.md:1056 +#: ../../source/ref-changelog.md:1167 msgid "" "**Remove experimental strategies** " "([#1280](https://github.com/adap/flower/pull/1280))" msgstr "" -#: ../../source/ref-changelog.md:1058 +#: ../../source/ref-changelog.md:1169 msgid "" "Remove unmaintained experimental strategies (`FastAndSlow`, `FedFSv0`, " "`FedFSv1`)." msgstr "" -#: ../../source/ref-changelog.md:1060 +#: ../../source/ref-changelog.md:1171 msgid "" "**Rename** `Weights` **to** `NDArrays` " "([#1258](https://github.com/adap/flower/pull/1258), " "[#1259](https://github.com/adap/flower/pull/1259))" msgstr "" -#: ../../source/ref-changelog.md:1062 +#: ../../source/ref-changelog.md:1173 msgid "" "`flwr.common.Weights` was renamed to `flwr.common.NDArrays` to better " "capture what this type is all about." msgstr "" -#: ../../source/ref-changelog.md:1064 +#: ../../source/ref-changelog.md:1175 msgid "" "**Remove antiquated** `force_final_distributed_eval` **from** " "`start_server` ([#1258](https://github.com/adap/flower/pull/1258), " "[#1259](https://github.com/adap/flower/pull/1259))" msgstr "" -#: ../../source/ref-changelog.md:1066 +#: ../../source/ref-changelog.md:1177 msgid "" "The `start_server` parameter `force_final_distributed_eval` has long been" " a historic artefact, in this release it is finally gone for good." msgstr "" -#: ../../source/ref-changelog.md:1068 +#: ../../source/ref-changelog.md:1179 msgid "" "**Make** `get_parameters` **configurable** " "([#1242](https://github.com/adap/flower/pull/1242))" msgstr "" -#: ../../source/ref-changelog.md:1070 +#: ../../source/ref-changelog.md:1181 msgid "" "The `get_parameters` method now accepts a configuration dictionary, just " "like `get_properties`, `fit`, and `evaluate`." msgstr "" -#: ../../source/ref-changelog.md:1072 +#: ../../source/ref-changelog.md:1183 msgid "" "**Replace** `num_rounds` **in** `start_simulation` **with new** `config` " "**parameter** ([#1281](https://github.com/adap/flower/pull/1281))" msgstr "" -#: ../../source/ref-changelog.md:1074 +#: ../../source/ref-changelog.md:1185 msgid "" "The `start_simulation` function now accepts a configuration dictionary " "`config` instead of the `num_rounds` integer. This improves the " @@ -20498,26 +21369,26 @@ msgid "" "transitioning between the two easier." msgstr "" -#: ../../source/ref-changelog.md:1078 +#: ../../source/ref-changelog.md:1189 msgid "" "**Support Python 3.10** " "([#1320](https://github.com/adap/flower/pull/1320))" msgstr "" -#: ../../source/ref-changelog.md:1080 +#: ../../source/ref-changelog.md:1191 msgid "" "The previous Flower release introduced experimental support for Python " "3.10, this release declares Python 3.10 support as stable." msgstr "" -#: ../../source/ref-changelog.md:1082 +#: ../../source/ref-changelog.md:1193 msgid "" "**Make all** `Client` **and** `NumPyClient` **methods optional** " "([#1260](https://github.com/adap/flower/pull/1260), " "[#1277](https://github.com/adap/flower/pull/1277))" msgstr "" -#: ../../source/ref-changelog.md:1084 +#: ../../source/ref-changelog.md:1195 msgid "" "The `Client`/`NumPyClient` methods `get_properties`, `get_parameters`, " "`fit`, and `evaluate` are all optional. This enables writing clients that" @@ -20525,13 +21396,13 @@ msgid "" "implement `evaluate` when using centralized evaluation!" msgstr "" -#: ../../source/ref-changelog.md:1086 +#: ../../source/ref-changelog.md:1197 msgid "" "**Enable passing a** `Server` **instance to** `start_simulation` " "([#1281](https://github.com/adap/flower/pull/1281))" msgstr "" -#: ../../source/ref-changelog.md:1088 +#: ../../source/ref-changelog.md:1199 msgid "" "Similar to `start_server`, `start_simulation` now accepts a full `Server`" " instance. This enables users to heavily customize the execution of " @@ -20539,7 +21410,7 @@ msgid "" " Virtual Client Engine." msgstr "" -#: ../../source/ref-changelog.md:1090 +#: ../../source/ref-changelog.md:1201 msgid "" "**Update code examples** " "([#1291](https://github.com/adap/flower/pull/1291), " @@ -20547,50 +21418,50 @@ msgid "" "[#1282](https://github.com/adap/flower/pull/1282))" msgstr "" -#: ../../source/ref-changelog.md:1092 +#: ../../source/ref-changelog.md:1203 msgid "" "Many code examples received small or even large maintenance updates, " "among them are" msgstr "" -#: ../../source/ref-changelog.md:1094 +#: ../../source/ref-changelog.md:1205 msgid "`scikit-learn`" msgstr "" -#: ../../source/ref-changelog.md:1095 +#: ../../source/ref-changelog.md:1206 msgid "`simulation_pytorch`" msgstr "" -#: ../../source/ref-changelog.md:1096 +#: ../../source/ref-changelog.md:1207 msgid "`quickstart_pytorch`" msgstr "" -#: ../../source/ref-changelog.md:1097 +#: ../../source/ref-changelog.md:1208 msgid "`quickstart_simulation`" msgstr "" -#: ../../source/ref-changelog.md:1098 +#: ../../source/ref-changelog.md:1209 msgid "`quickstart_tensorflow`" msgstr "" -#: ../../source/ref-changelog.md:1099 +#: ../../source/ref-changelog.md:1210 msgid "`advanced_tensorflow`" msgstr "" -#: ../../source/ref-changelog.md:1101 +#: ../../source/ref-changelog.md:1212 msgid "" "**Remove the obsolete simulation example** " "([#1328](https://github.com/adap/flower/pull/1328))" msgstr "" -#: ../../source/ref-changelog.md:1103 +#: ../../source/ref-changelog.md:1214 msgid "" "Removes the obsolete `simulation` example and renames " "`quickstart_simulation` to `simulation_tensorflow` so it fits withs the " "naming of `simulation_pytorch`" msgstr "" -#: ../../source/ref-changelog.md:1105 +#: ../../source/ref-changelog.md:1216 msgid "" "**Update documentation** " "([#1223](https://github.com/adap/flower/pull/1223), " @@ -20605,7 +21476,7 @@ msgid "" "[#1307](https://github.com/adap/flower/pull/1307))" msgstr "" -#: ../../source/ref-changelog.md:1107 +#: ../../source/ref-changelog.md:1218 msgid "" "One substantial documentation update fixes multiple smaller rendering " "issues, makes titles more succinct to improve navigation, removes a " @@ -20615,24 +21486,24 @@ msgid "" "fixes a number of smaller details!" msgstr "" -#: ../../source/ref-changelog.md:1109 ../../source/ref-changelog.md:1164 -#: ../../source/ref-changelog.md:1233 ../../source/ref-changelog.md:1272 +#: ../../source/ref-changelog.md:1220 ../../source/ref-changelog.md:1275 +#: ../../source/ref-changelog.md:1344 ../../source/ref-changelog.md:1383 msgid "**Minor updates**" msgstr "" -#: ../../source/ref-changelog.md:1111 +#: ../../source/ref-changelog.md:1222 msgid "" "Add round number to fit and evaluate log messages " "([#1266](https://github.com/adap/flower/pull/1266))" msgstr "" -#: ../../source/ref-changelog.md:1112 +#: ../../source/ref-changelog.md:1223 msgid "" "Add secure gRPC connection to the `advanced_tensorflow` code example " "([#847](https://github.com/adap/flower/pull/847))" msgstr "" -#: ../../source/ref-changelog.md:1113 +#: ../../source/ref-changelog.md:1224 msgid "" "Update developer tooling " "([#1231](https://github.com/adap/flower/pull/1231), " @@ -20641,7 +21512,7 @@ msgid "" "[#1310](https://github.com/adap/flower/pull/1310))" msgstr "" -#: ../../source/ref-changelog.md:1114 +#: ../../source/ref-changelog.md:1225 msgid "" "Rename ProtoBuf messages to improve consistency " "([#1214](https://github.com/adap/flower/pull/1214), " @@ -20649,11 +21520,11 @@ msgid "" "[#1259](https://github.com/adap/flower/pull/1259))" msgstr "" -#: ../../source/ref-changelog.md:1116 +#: ../../source/ref-changelog.md:1227 msgid "v0.19.0 (2022-05-18)" msgstr "" -#: ../../source/ref-changelog.md:1120 +#: ../../source/ref-changelog.md:1231 msgid "" "**Flower Baselines (preview): FedOpt, FedBN, FedAvgM** " "([#919](https://github.com/adap/flower/pull/919), " @@ -20661,7 +21532,7 @@ msgid "" "[#914](https://github.com/adap/flower/pull/914))" msgstr "" -#: ../../source/ref-changelog.md:1122 +#: ../../source/ref-changelog.md:1233 msgid "" "The first preview release of Flower Baselines has arrived! We're " "kickstarting Flower Baselines with implementations of FedOpt (FedYogi, " @@ -20672,39 +21543,39 @@ msgid "" "contribute-baselines.html)." msgstr "" -#: ../../source/ref-changelog.md:1124 +#: ../../source/ref-changelog.md:1235 msgid "" "**C++ client SDK (preview) and code example** " "([#1111](https://github.com/adap/flower/pull/1111))" msgstr "" -#: ../../source/ref-changelog.md:1126 +#: ../../source/ref-changelog.md:1237 msgid "" "Preview support for Flower clients written in C++. The C++ preview " "includes a Flower client SDK and a quickstart code example that " "demonstrates a simple C++ client using the SDK." msgstr "" -#: ../../source/ref-changelog.md:1128 +#: ../../source/ref-changelog.md:1239 msgid "" "**Add experimental support for Python 3.10 and Python 3.11** " "([#1135](https://github.com/adap/flower/pull/1135))" msgstr "" -#: ../../source/ref-changelog.md:1130 +#: ../../source/ref-changelog.md:1241 msgid "" "Python 3.10 is the latest stable release of Python and Python 3.11 is due" " to be released in October. This Flower release adds experimental support" " for both Python versions." msgstr "" -#: ../../source/ref-changelog.md:1132 +#: ../../source/ref-changelog.md:1243 msgid "" "**Aggregate custom metrics through user-provided functions** " "([#1144](https://github.com/adap/flower/pull/1144))" msgstr "" -#: ../../source/ref-changelog.md:1134 +#: ../../source/ref-changelog.md:1245 msgid "" "Custom metrics (e.g., `accuracy`) can now be aggregated without having to" " customize the strategy. Built-in strategies support two new arguments, " @@ -20712,13 +21583,13 @@ msgid "" "allow passing custom metric aggregation functions." msgstr "" -#: ../../source/ref-changelog.md:1136 +#: ../../source/ref-changelog.md:1247 msgid "" "**User-configurable round timeout** " "([#1162](https://github.com/adap/flower/pull/1162))" msgstr "" -#: ../../source/ref-changelog.md:1138 +#: ../../source/ref-changelog.md:1249 msgid "" "A new configuration value allows the round timeout to be set for " "`start_server` and `start_simulation`. If the `config` dictionary " @@ -20727,14 +21598,14 @@ msgid "" "connection." msgstr "" -#: ../../source/ref-changelog.md:1140 +#: ../../source/ref-changelog.md:1251 msgid "" "**Enable both federated evaluation and centralized evaluation to be used " "at the same time in all built-in strategies** " "([#1091](https://github.com/adap/flower/pull/1091))" msgstr "" -#: ../../source/ref-changelog.md:1142 +#: ../../source/ref-changelog.md:1253 msgid "" "Built-in strategies can now perform both federated evaluation (i.e., " "client-side) and centralized evaluation (i.e., server-side) in the same " @@ -20742,82 +21613,82 @@ msgid "" " `0.0`." msgstr "" -#: ../../source/ref-changelog.md:1144 +#: ../../source/ref-changelog.md:1255 msgid "" "**Two new Jupyter Notebook tutorials** " "([#1141](https://github.com/adap/flower/pull/1141))" msgstr "" -#: ../../source/ref-changelog.md:1146 +#: ../../source/ref-changelog.md:1257 msgid "" "Two Jupyter Notebook tutorials (compatible with Google Colab) explain " "basic and intermediate Flower features:" msgstr "" -#: ../../source/ref-changelog.md:1148 +#: ../../source/ref-changelog.md:1259 msgid "" "*An Introduction to Federated Learning*: [Open in " "Colab](https://colab.research.google.com/github/adap/flower/blob/main/tutorials/Flower-1" "-Intro-to-FL-PyTorch.ipynb)" msgstr "" -#: ../../source/ref-changelog.md:1150 +#: ../../source/ref-changelog.md:1261 msgid "" "*Using Strategies in Federated Learning*: [Open in " "Colab](https://colab.research.google.com/github/adap/flower/blob/main/tutorials/Flower-2" "-Strategies-in-FL-PyTorch.ipynb)" msgstr "" -#: ../../source/ref-changelog.md:1152 +#: ../../source/ref-changelog.md:1263 msgid "" "**New FedAvgM strategy (Federated Averaging with Server Momentum)** " "([#1076](https://github.com/adap/flower/pull/1076))" msgstr "" -#: ../../source/ref-changelog.md:1154 +#: ../../source/ref-changelog.md:1265 msgid "" "The new `FedAvgM` strategy implements Federated Averaging with Server " "Momentum \\[Hsu et al., 2019\\]." msgstr "" -#: ../../source/ref-changelog.md:1156 +#: ../../source/ref-changelog.md:1267 msgid "" "**New advanced PyTorch code example** " "([#1007](https://github.com/adap/flower/pull/1007))" msgstr "" -#: ../../source/ref-changelog.md:1158 +#: ../../source/ref-changelog.md:1269 msgid "" "A new code example (`advanced_pytorch`) demonstrates advanced Flower " "concepts with PyTorch." msgstr "" -#: ../../source/ref-changelog.md:1160 +#: ../../source/ref-changelog.md:1271 msgid "" "**New JAX code example** " "([#906](https://github.com/adap/flower/pull/906), " "[#1143](https://github.com/adap/flower/pull/1143))" msgstr "" -#: ../../source/ref-changelog.md:1162 +#: ../../source/ref-changelog.md:1273 msgid "" "A new code example (`jax_from_centralized_to_federated`) shows federated " "learning with JAX and Flower." msgstr "" -#: ../../source/ref-changelog.md:1166 +#: ../../source/ref-changelog.md:1277 msgid "" "New option to keep Ray running if Ray was already initialized in " "`start_simulation` ([#1177](https://github.com/adap/flower/pull/1177))" msgstr "" -#: ../../source/ref-changelog.md:1167 +#: ../../source/ref-changelog.md:1278 msgid "" "Add support for custom `ClientManager` as a `start_simulation` parameter " "([#1171](https://github.com/adap/flower/pull/1171))" msgstr "" -#: ../../source/ref-changelog.md:1168 +#: ../../source/ref-changelog.md:1279 msgid "" "New documentation for [implementing " "strategies](https://flower.ai/docs/framework/how-to-implement-" @@ -20825,72 +21696,72 @@ msgid "" "[#1175](https://github.com/adap/flower/pull/1175))" msgstr "" -#: ../../source/ref-changelog.md:1169 +#: ../../source/ref-changelog.md:1280 msgid "" "New mobile-friendly documentation theme " "([#1174](https://github.com/adap/flower/pull/1174))" msgstr "" -#: ../../source/ref-changelog.md:1170 +#: ../../source/ref-changelog.md:1281 msgid "" "Limit version range for (optional) `ray` dependency to include only " "compatible releases (`>=1.9.2,<1.12.0`) " "([#1205](https://github.com/adap/flower/pull/1205))" msgstr "" -#: ../../source/ref-changelog.md:1174 +#: ../../source/ref-changelog.md:1285 msgid "" "**Remove deprecated support for Python 3.6** " "([#871](https://github.com/adap/flower/pull/871))" msgstr "" -#: ../../source/ref-changelog.md:1175 +#: ../../source/ref-changelog.md:1286 msgid "" "**Remove deprecated KerasClient** " "([#857](https://github.com/adap/flower/pull/857))" msgstr "" -#: ../../source/ref-changelog.md:1176 +#: ../../source/ref-changelog.md:1287 msgid "" "**Remove deprecated no-op extra installs** " "([#973](https://github.com/adap/flower/pull/973))" msgstr "" -#: ../../source/ref-changelog.md:1177 +#: ../../source/ref-changelog.md:1288 msgid "" "**Remove deprecated proto fields from** `FitRes` **and** `EvaluateRes` " "([#869](https://github.com/adap/flower/pull/869))" msgstr "" -#: ../../source/ref-changelog.md:1178 +#: ../../source/ref-changelog.md:1289 msgid "" "**Remove deprecated QffedAvg strategy (replaced by QFedAvg)** " "([#1107](https://github.com/adap/flower/pull/1107))" msgstr "" -#: ../../source/ref-changelog.md:1179 +#: ../../source/ref-changelog.md:1290 msgid "" "**Remove deprecated DefaultStrategy strategy** " "([#1142](https://github.com/adap/flower/pull/1142))" msgstr "" -#: ../../source/ref-changelog.md:1180 +#: ../../source/ref-changelog.md:1291 msgid "" "**Remove deprecated support for eval_fn accuracy return value** " "([#1142](https://github.com/adap/flower/pull/1142))" msgstr "" -#: ../../source/ref-changelog.md:1181 +#: ../../source/ref-changelog.md:1292 msgid "" "**Remove deprecated support for passing initial parameters as NumPy " "ndarrays** ([#1142](https://github.com/adap/flower/pull/1142))" msgstr "" -#: ../../source/ref-changelog.md:1183 +#: ../../source/ref-changelog.md:1294 msgid "v0.18.0 (2022-02-28)" msgstr "" -#: ../../source/ref-changelog.md:1187 +#: ../../source/ref-changelog.md:1298 msgid "" "**Improved Virtual Client Engine compatibility with Jupyter Notebook / " "Google Colab** ([#866](https://github.com/adap/flower/pull/866), " @@ -20899,7 +21770,7 @@ msgid "" "[#1036](https://github.com/adap/flower/pull/1036))" msgstr "" -#: ../../source/ref-changelog.md:1189 +#: ../../source/ref-changelog.md:1300 msgid "" "Simulations (using the Virtual Client Engine through `start_simulation`) " "now work more smoothly on Jupyter Notebooks (incl. Google Colab) after " @@ -20907,38 +21778,38 @@ msgid "" "'flwr[simulation]'`)." msgstr "" -#: ../../source/ref-changelog.md:1191 +#: ../../source/ref-changelog.md:1302 msgid "" "**New Jupyter Notebook code example** " "([#833](https://github.com/adap/flower/pull/833))" msgstr "" -#: ../../source/ref-changelog.md:1193 +#: ../../source/ref-changelog.md:1304 msgid "" "A new code example (`quickstart_simulation`) demonstrates Flower " "simulations using the Virtual Client Engine through Jupyter Notebook " "(incl. Google Colab)." msgstr "" -#: ../../source/ref-changelog.md:1195 +#: ../../source/ref-changelog.md:1306 msgid "" "**Client properties (feature preview)** " "([#795](https://github.com/adap/flower/pull/795))" msgstr "" -#: ../../source/ref-changelog.md:1197 +#: ../../source/ref-changelog.md:1308 msgid "" "Clients can implement a new method `get_properties` to enable server-side" " strategies to query client properties." msgstr "" -#: ../../source/ref-changelog.md:1199 +#: ../../source/ref-changelog.md:1310 msgid "" "**Experimental Android support with TFLite** " "([#865](https://github.com/adap/flower/pull/865))" msgstr "" -#: ../../source/ref-changelog.md:1201 +#: ../../source/ref-changelog.md:1312 msgid "" "Android support has finally arrived in `main`! Flower is both client-" "agnostic and framework-agnostic by design. One can integrate arbitrary " @@ -20946,7 +21817,7 @@ msgid "" "become a lot easier." msgstr "" -#: ../../source/ref-changelog.md:1203 +#: ../../source/ref-changelog.md:1314 msgid "" "The example uses TFLite on the client side, along with a new " "`FedAvgAndroid` strategy. The Android client and `FedAvgAndroid` are " @@ -20955,13 +21826,13 @@ msgid "" " functionality from `FedAvgAndroid`." msgstr "" -#: ../../source/ref-changelog.md:1205 +#: ../../source/ref-changelog.md:1316 msgid "" "**Make gRPC keepalive time user-configurable and decrease default " "keepalive time** ([#1069](https://github.com/adap/flower/pull/1069))" msgstr "" -#: ../../source/ref-changelog.md:1207 +#: ../../source/ref-changelog.md:1318 msgid "" "The default gRPC keepalive time has been reduced to increase the " "compatibility of Flower with more cloud environments (for example, " @@ -20969,31 +21840,31 @@ msgid "" " gRPC stack based on specific requirements." msgstr "" -#: ../../source/ref-changelog.md:1209 +#: ../../source/ref-changelog.md:1320 msgid "" "**New differential privacy example using Opacus and PyTorch** " "([#805](https://github.com/adap/flower/pull/805))" msgstr "" -#: ../../source/ref-changelog.md:1211 +#: ../../source/ref-changelog.md:1322 msgid "" "A new code example (`opacus`) demonstrates differentially-private " "federated learning with Opacus, PyTorch, and Flower." msgstr "" -#: ../../source/ref-changelog.md:1213 +#: ../../source/ref-changelog.md:1324 msgid "" "**New Hugging Face Transformers code example** " "([#863](https://github.com/adap/flower/pull/863))" msgstr "" -#: ../../source/ref-changelog.md:1215 +#: ../../source/ref-changelog.md:1326 msgid "" "A new code example (`quickstart_huggingface`) demonstrates usage of " "Hugging Face Transformers with Flower." msgstr "" -#: ../../source/ref-changelog.md:1217 +#: ../../source/ref-changelog.md:1328 msgid "" "**New MLCube code example** " "([#779](https://github.com/adap/flower/pull/779), " @@ -21002,13 +21873,13 @@ msgid "" "[#1090](https://github.com/adap/flower/pull/1090))" msgstr "" -#: ../../source/ref-changelog.md:1219 +#: ../../source/ref-changelog.md:1330 msgid "" "A new code example (`quickstart_mlcube`) demonstrates usage of MLCube " "with Flower." msgstr "" -#: ../../source/ref-changelog.md:1221 +#: ../../source/ref-changelog.md:1332 msgid "" "**SSL-enabled server and client** " "([#842](https://github.com/adap/flower/pull/842), " @@ -21019,33 +21890,33 @@ msgid "" "[#994](https://github.com/adap/flower/pull/994))" msgstr "" -#: ../../source/ref-changelog.md:1223 +#: ../../source/ref-changelog.md:1334 msgid "" "SSL enables secure encrypted connections between clients and servers. " "This release open-sources the Flower secure gRPC implementation to make " "encrypted communication channels accessible to all Flower users." msgstr "" -#: ../../source/ref-changelog.md:1225 +#: ../../source/ref-changelog.md:1336 msgid "" "**Updated** `FedAdam` **and** `FedYogi` **strategies** " "([#885](https://github.com/adap/flower/pull/885), " "[#895](https://github.com/adap/flower/pull/895))" msgstr "" -#: ../../source/ref-changelog.md:1227 +#: ../../source/ref-changelog.md:1338 msgid "" "`FedAdam` and `FedAdam` match the latest version of the Adaptive " "Federated Optimization paper." msgstr "" -#: ../../source/ref-changelog.md:1229 +#: ../../source/ref-changelog.md:1340 msgid "" "**Initialize** `start_simulation` **with a list of client IDs** " "([#860](https://github.com/adap/flower/pull/860))" msgstr "" -#: ../../source/ref-changelog.md:1231 +#: ../../source/ref-changelog.md:1342 msgid "" "`start_simulation` can now be called with a list of client IDs " "(`clients_ids`, type: `List[str]`). Those IDs will be passed to the " @@ -21054,55 +21925,55 @@ msgid "" "identifiers." msgstr "" -#: ../../source/ref-changelog.md:1235 +#: ../../source/ref-changelog.md:1346 msgid "" "Update `num_examples` calculation in PyTorch code examples in " "([#909](https://github.com/adap/flower/pull/909))" msgstr "" -#: ../../source/ref-changelog.md:1236 +#: ../../source/ref-changelog.md:1347 msgid "" "Expose Flower version through `flwr.__version__` " "([#952](https://github.com/adap/flower/pull/952))" msgstr "" -#: ../../source/ref-changelog.md:1237 +#: ../../source/ref-changelog.md:1348 msgid "" "`start_server` in `app.py` now returns a `History` object containing " "metrics from training ([#974](https://github.com/adap/flower/pull/974))" msgstr "" -#: ../../source/ref-changelog.md:1238 +#: ../../source/ref-changelog.md:1349 msgid "" "Make `max_workers` (used by `ThreadPoolExecutor`) configurable " "([#978](https://github.com/adap/flower/pull/978))" msgstr "" -#: ../../source/ref-changelog.md:1239 +#: ../../source/ref-changelog.md:1350 msgid "" "Increase sleep time after server start to three seconds in all code " "examples ([#1086](https://github.com/adap/flower/pull/1086))" msgstr "" -#: ../../source/ref-changelog.md:1240 +#: ../../source/ref-changelog.md:1351 msgid "" "Added a new FAQ section to the documentation " "([#948](https://github.com/adap/flower/pull/948))" msgstr "" -#: ../../source/ref-changelog.md:1241 +#: ../../source/ref-changelog.md:1352 msgid "" "And many more under-the-hood changes, library updates, documentation " "changes, and tooling improvements!" msgstr "" -#: ../../source/ref-changelog.md:1245 +#: ../../source/ref-changelog.md:1356 msgid "" "**Removed** `flwr_example` **and** `flwr_experimental` **from release " "build** ([#869](https://github.com/adap/flower/pull/869))" msgstr "" -#: ../../source/ref-changelog.md:1247 +#: ../../source/ref-changelog.md:1358 msgid "" "The packages `flwr_example` and `flwr_experimental` have been deprecated " "since Flower 0.12.0 and they are not longer included in Flower release " @@ -21111,11 +21982,11 @@ msgid "" "an upcoming release." msgstr "" -#: ../../source/ref-changelog.md:1249 +#: ../../source/ref-changelog.md:1360 msgid "v0.17.0 (2021-09-24)" msgstr "" -#: ../../source/ref-changelog.md:1253 +#: ../../source/ref-changelog.md:1364 msgid "" "**Experimental virtual client engine** " "([#781](https://github.com/adap/flower/pull/781) " @@ -21123,7 +21994,7 @@ msgid "" "[#791](https://github.com/adap/flower/pull/791))" msgstr "" -#: ../../source/ref-changelog.md:1255 +#: ../../source/ref-changelog.md:1366 msgid "" "One of Flower's goals is to enable research at scale. This release " "enables a first (experimental) peek at a major new feature, codenamed the" @@ -21133,7 +22004,7 @@ msgid "" "code examples called `quickstart_simulation` and `simulation_pytorch`." msgstr "" -#: ../../source/ref-changelog.md:1257 +#: ../../source/ref-changelog.md:1368 msgid "" "The feature is still experimental, so there's no stability guarantee for " "the API. It's also not quite ready for prime time and comes with a few " @@ -21141,86 +22012,86 @@ msgid "" "out and share their thoughts." msgstr "" -#: ../../source/ref-changelog.md:1259 +#: ../../source/ref-changelog.md:1370 msgid "" "**New built-in strategies** " "([#828](https://github.com/adap/flower/pull/828) " "[#822](https://github.com/adap/flower/pull/822))" msgstr "" -#: ../../source/ref-changelog.md:1261 +#: ../../source/ref-changelog.md:1372 msgid "" "FedYogi - Federated learning strategy using Yogi on server-side. " "Implementation based on https://arxiv.org/abs/2003.00295" msgstr "" -#: ../../source/ref-changelog.md:1262 +#: ../../source/ref-changelog.md:1373 msgid "" "FedAdam - Federated learning strategy using Adam on server-side. " "Implementation based on https://arxiv.org/abs/2003.00295" msgstr "" -#: ../../source/ref-changelog.md:1264 +#: ../../source/ref-changelog.md:1375 msgid "" "**New PyTorch Lightning code example** " "([#617](https://github.com/adap/flower/pull/617))" msgstr "" -#: ../../source/ref-changelog.md:1266 +#: ../../source/ref-changelog.md:1377 msgid "" "**New Variational Auto-Encoder code example** " "([#752](https://github.com/adap/flower/pull/752))" msgstr "" -#: ../../source/ref-changelog.md:1268 +#: ../../source/ref-changelog.md:1379 msgid "" "**New scikit-learn code example** " "([#748](https://github.com/adap/flower/pull/748))" msgstr "" -#: ../../source/ref-changelog.md:1270 +#: ../../source/ref-changelog.md:1381 msgid "" "**New experimental TensorBoard strategy** " "([#789](https://github.com/adap/flower/pull/789))" msgstr "" -#: ../../source/ref-changelog.md:1274 +#: ../../source/ref-changelog.md:1385 msgid "" "Improved advanced TensorFlow code example " "([#769](https://github.com/adap/flower/pull/769))" msgstr "" -#: ../../source/ref-changelog.md:1275 +#: ../../source/ref-changelog.md:1386 msgid "" "Warning when `min_available_clients` is misconfigured " "([#830](https://github.com/adap/flower/pull/830))" msgstr "" -#: ../../source/ref-changelog.md:1276 +#: ../../source/ref-changelog.md:1387 msgid "" "Improved gRPC server docs " "([#841](https://github.com/adap/flower/pull/841))" msgstr "" -#: ../../source/ref-changelog.md:1277 +#: ../../source/ref-changelog.md:1388 msgid "" "Improved error message in `NumPyClient` " "([#851](https://github.com/adap/flower/pull/851))" msgstr "" -#: ../../source/ref-changelog.md:1278 +#: ../../source/ref-changelog.md:1389 msgid "" "Improved PyTorch quickstart code example " "([#852](https://github.com/adap/flower/pull/852))" msgstr "" -#: ../../source/ref-changelog.md:1282 +#: ../../source/ref-changelog.md:1393 msgid "" "**Disabled final distributed evaluation** " "([#800](https://github.com/adap/flower/pull/800))" msgstr "" -#: ../../source/ref-changelog.md:1284 +#: ../../source/ref-changelog.md:1395 msgid "" "Prior behaviour was to perform a final round of distributed evaluation on" " all connected clients, which is often not required (e.g., when using " @@ -21228,13 +22099,13 @@ msgid "" "`force_final_distributed_eval=True` to `start_server`." msgstr "" -#: ../../source/ref-changelog.md:1286 +#: ../../source/ref-changelog.md:1397 msgid "" "**Renamed q-FedAvg strategy** " "([#802](https://github.com/adap/flower/pull/802))" msgstr "" -#: ../../source/ref-changelog.md:1288 +#: ../../source/ref-changelog.md:1399 msgid "" "The strategy named `QffedAvg` was renamed to `QFedAvg` to better reflect " "the notation given in the original paper (q-FFL is the optimization " @@ -21243,14 +22114,14 @@ msgid "" " (it will be removed in a future release)." msgstr "" -#: ../../source/ref-changelog.md:1290 +#: ../../source/ref-changelog.md:1401 msgid "" "**Deprecated and renamed code example** `simulation_pytorch` **to** " "`simulation_pytorch_legacy` " "([#791](https://github.com/adap/flower/pull/791))" msgstr "" -#: ../../source/ref-changelog.md:1292 +#: ../../source/ref-changelog.md:1403 msgid "" "This example has been replaced by a new example. The new example is based" " on the experimental virtual client engine, which will become the new " @@ -21259,27 +22130,27 @@ msgid "" "removed in the future." msgstr "" -#: ../../source/ref-changelog.md:1294 +#: ../../source/ref-changelog.md:1405 msgid "v0.16.0 (2021-05-11)" msgstr "" -#: ../../source/ref-changelog.md:1298 +#: ../../source/ref-changelog.md:1409 msgid "" "**New built-in strategies** " "([#549](https://github.com/adap/flower/pull/549))" msgstr "" -#: ../../source/ref-changelog.md:1300 +#: ../../source/ref-changelog.md:1411 msgid "(abstract) FedOpt" msgstr "" -#: ../../source/ref-changelog.md:1303 +#: ../../source/ref-changelog.md:1414 msgid "" "**Custom metrics for server and strategies** " "([#717](https://github.com/adap/flower/pull/717))" msgstr "" -#: ../../source/ref-changelog.md:1305 +#: ../../source/ref-changelog.md:1416 msgid "" "The Flower server is now fully task-agnostic, all remaining instances of " "task-specific metrics (such as `accuracy`) have been replaced by custom " @@ -21288,7 +22159,7 @@ msgid "" "release, custom metrics replace task-specific metrics on the server." msgstr "" -#: ../../source/ref-changelog.md:1307 +#: ../../source/ref-changelog.md:1418 msgid "" "Custom metric dictionaries are now used in two user-facing APIs: they are" " returned from Strategy methods `aggregate_fit`/`aggregate_evaluate` and " @@ -21298,7 +22169,7 @@ msgid "" "track of." msgstr "" -#: ../../source/ref-changelog.md:1309 +#: ../../source/ref-changelog.md:1420 msgid "" "Strategy implementations should migrate their `aggregate_fit` and " "`aggregate_evaluate` methods to the new return type (e.g., by simply " @@ -21306,19 +22177,19 @@ msgid "" " from `return loss, accuracy` to `return loss, {\"accuracy\": accuracy}`." msgstr "" -#: ../../source/ref-changelog.md:1311 +#: ../../source/ref-changelog.md:1422 msgid "" "Flower 0.15-style return types are deprecated (but still supported), " "compatibility will be removed in a future release." msgstr "" -#: ../../source/ref-changelog.md:1313 +#: ../../source/ref-changelog.md:1424 msgid "" "**Migration warnings for deprecated functionality** " "([#690](https://github.com/adap/flower/pull/690))" msgstr "" -#: ../../source/ref-changelog.md:1315 +#: ../../source/ref-changelog.md:1426 msgid "" "Earlier versions of Flower were often migrated to new APIs, while " "maintaining compatibility with legacy APIs. This release introduces " @@ -21327,7 +22198,7 @@ msgid "" "recent APIs, thus easing the transition from one release to another." msgstr "" -#: ../../source/ref-changelog.md:1317 +#: ../../source/ref-changelog.md:1428 msgid "" "Improved docs and docstrings " "([#691](https://github.com/adap/flower/pull/691) " @@ -21335,11 +22206,11 @@ msgid "" "[#713](https://github.com/adap/flower/pull/713))" msgstr "" -#: ../../source/ref-changelog.md:1319 +#: ../../source/ref-changelog.md:1430 msgid "MXNet example and documentation" msgstr "" -#: ../../source/ref-changelog.md:1321 +#: ../../source/ref-changelog.md:1432 msgid "" "FedBN implementation in example PyTorch: From Centralized To Federated " "([#696](https://github.com/adap/flower/pull/696) " @@ -21347,13 +22218,13 @@ msgid "" "[#705](https://github.com/adap/flower/pull/705))" msgstr "" -#: ../../source/ref-changelog.md:1325 +#: ../../source/ref-changelog.md:1436 msgid "" "**Serialization-agnostic server** " "([#721](https://github.com/adap/flower/pull/721))" msgstr "" -#: ../../source/ref-changelog.md:1327 +#: ../../source/ref-changelog.md:1438 msgid "" "The Flower server is now fully serialization-agnostic. Prior usage of " "class `Weights` (which represents parameters as deserialized NumPy " @@ -21364,7 +22235,7 @@ msgid "" "serialization/deserialization)." msgstr "" -#: ../../source/ref-changelog.md:1329 +#: ../../source/ref-changelog.md:1440 msgid "" "Built-in strategies implement this approach by handling serialization and" " deserialization to/from `Weights` internally. Custom/3rd-party Strategy " @@ -21374,31 +22245,31 @@ msgid "" " easily migrate to the new format." msgstr "" -#: ../../source/ref-changelog.md:1331 +#: ../../source/ref-changelog.md:1442 msgid "" "Deprecated `flwr.server.Server.evaluate`, use " "`flwr.server.Server.evaluate_round` instead " "([#717](https://github.com/adap/flower/pull/717))" msgstr "" -#: ../../source/ref-changelog.md:1333 +#: ../../source/ref-changelog.md:1444 msgid "v0.15.0 (2021-03-12)" msgstr "" -#: ../../source/ref-changelog.md:1337 +#: ../../source/ref-changelog.md:1448 msgid "" "**Server-side parameter initialization** " "([#658](https://github.com/adap/flower/pull/658))" msgstr "" -#: ../../source/ref-changelog.md:1339 +#: ../../source/ref-changelog.md:1450 msgid "" "Model parameters can now be initialized on the server-side. Server-side " "parameter initialization works via a new `Strategy` method called " "`initialize_parameters`." msgstr "" -#: ../../source/ref-changelog.md:1341 +#: ../../source/ref-changelog.md:1452 msgid "" "Built-in strategies support a new constructor argument called " "`initial_parameters` to set the initial parameters. Built-in strategies " @@ -21406,7 +22277,7 @@ msgid "" "delete them to free the memory afterwards." msgstr "" -#: ../../source/ref-changelog.md:1360 +#: ../../source/ref-changelog.md:1471 msgid "" "If no initial parameters are provided to the strategy, the server will " "continue to use the current behaviour (namely, it will ask one of the " @@ -21414,17 +22285,17 @@ msgid "" "parameters)." msgstr "" -#: ../../source/ref-changelog.md:1364 +#: ../../source/ref-changelog.md:1475 msgid "" "Deprecate `flwr.server.strategy.DefaultStrategy` (migrate to " "`flwr.server.strategy.FedAvg`, which is equivalent)" msgstr "" -#: ../../source/ref-changelog.md:1366 +#: ../../source/ref-changelog.md:1477 msgid "v0.14.0 (2021-02-18)" msgstr "" -#: ../../source/ref-changelog.md:1370 +#: ../../source/ref-changelog.md:1481 msgid "" "**Generalized** `Client.fit` **and** `Client.evaluate` **return values** " "([#610](https://github.com/adap/flower/pull/610) " @@ -21432,7 +22303,7 @@ msgid "" "[#633](https://github.com/adap/flower/pull/633))" msgstr "" -#: ../../source/ref-changelog.md:1372 +#: ../../source/ref-changelog.md:1483 msgid "" "Clients can now return an additional dictionary mapping `str` keys to " "values of the following types: `bool`, `bytes`, `float`, `int`, `str`. " @@ -21440,7 +22311,7 @@ msgid "" "and make use of them on the server side!" msgstr "" -#: ../../source/ref-changelog.md:1374 +#: ../../source/ref-changelog.md:1485 msgid "" "This improvement also allowed for more consistent return types between " "`fit` and `evaluate`: `evaluate` should now return a tuple `(float, int, " @@ -21448,7 +22319,7 @@ msgid "" "holding arbitrary problem-specific values like accuracy." msgstr "" -#: ../../source/ref-changelog.md:1376 +#: ../../source/ref-changelog.md:1487 msgid "" "In case you wondered: this feature is compatible with existing projects, " "the additional dictionary return value is optional. New code should " @@ -21458,19 +22329,19 @@ msgid "" "details." msgstr "" -#: ../../source/ref-changelog.md:1378 +#: ../../source/ref-changelog.md:1489 msgid "" "*Code example:* note the additional dictionary return values in both " "`FlwrClient.fit` and `FlwrClient.evaluate`:" msgstr "" -#: ../../source/ref-changelog.md:1393 +#: ../../source/ref-changelog.md:1504 msgid "" "**Generalized** `config` **argument in** `Client.fit` **and** " "`Client.evaluate` ([#595](https://github.com/adap/flower/pull/595))" msgstr "" -#: ../../source/ref-changelog.md:1395 +#: ../../source/ref-changelog.md:1506 msgid "" "The `config` argument used to be of type `Dict[str, str]`, which means " "that dictionary values were expected to be strings. The new release " @@ -21478,58 +22349,58 @@ msgid "" "`bytes`, `float`, `int`, `str`." msgstr "" -#: ../../source/ref-changelog.md:1397 +#: ../../source/ref-changelog.md:1508 msgid "" "This means one can now pass almost arbitrary values to `fit`/`evaluate` " "using the `config` dictionary. Yay, no more `str(epochs)` on the server-" "side and `int(config[\"epochs\"])` on the client side!" msgstr "" -#: ../../source/ref-changelog.md:1399 +#: ../../source/ref-changelog.md:1510 msgid "" "*Code example:* note that the `config` dictionary now contains non-`str` " "values in both `Client.fit` and `Client.evaluate`:" msgstr "" -#: ../../source/ref-changelog.md:1416 +#: ../../source/ref-changelog.md:1527 msgid "v0.13.0 (2021-01-08)" msgstr "" -#: ../../source/ref-changelog.md:1420 +#: ../../source/ref-changelog.md:1531 msgid "" "New example: PyTorch From Centralized To Federated " "([#549](https://github.com/adap/flower/pull/549))" msgstr "" -#: ../../source/ref-changelog.md:1421 +#: ../../source/ref-changelog.md:1532 msgid "Improved documentation" msgstr "" -#: ../../source/ref-changelog.md:1422 +#: ../../source/ref-changelog.md:1533 msgid "New documentation theme ([#551](https://github.com/adap/flower/pull/551))" msgstr "" -#: ../../source/ref-changelog.md:1423 +#: ../../source/ref-changelog.md:1534 msgid "New API reference ([#554](https://github.com/adap/flower/pull/554))" msgstr "" -#: ../../source/ref-changelog.md:1424 +#: ../../source/ref-changelog.md:1535 msgid "" "Updated examples documentation " "([#549](https://github.com/adap/flower/pull/549))" msgstr "" -#: ../../source/ref-changelog.md:1425 +#: ../../source/ref-changelog.md:1536 msgid "" "Removed obsolete documentation " "([#548](https://github.com/adap/flower/pull/548))" msgstr "" -#: ../../source/ref-changelog.md:1427 +#: ../../source/ref-changelog.md:1538 msgid "Bugfix:" msgstr "" -#: ../../source/ref-changelog.md:1429 +#: ../../source/ref-changelog.md:1540 msgid "" "`Server.fit` does not disconnect clients when finished, disconnecting the" " clients is now handled in `flwr.server.start_server` " @@ -21537,28 +22408,28 @@ msgid "" "[#540](https://github.com/adap/flower/issues/540))." msgstr "" -#: ../../source/ref-changelog.md:1431 +#: ../../source/ref-changelog.md:1542 msgid "v0.12.0 (2020-12-07)" msgstr "" -#: ../../source/ref-changelog.md:1433 ../../source/ref-changelog.md:1449 +#: ../../source/ref-changelog.md:1544 ../../source/ref-changelog.md:1560 msgid "Important changes:" msgstr "" -#: ../../source/ref-changelog.md:1435 +#: ../../source/ref-changelog.md:1546 msgid "" "Added an example for embedded devices " "([#507](https://github.com/adap/flower/pull/507))" msgstr "" -#: ../../source/ref-changelog.md:1436 +#: ../../source/ref-changelog.md:1547 msgid "" "Added a new NumPyClient (in addition to the existing KerasClient) " "([#504](https://github.com/adap/flower/pull/504) " "[#508](https://github.com/adap/flower/pull/508))" msgstr "" -#: ../../source/ref-changelog.md:1437 +#: ../../source/ref-changelog.md:1548 msgid "" "Deprecated `flwr_example` package and started to migrate examples into " "the top-level `examples` directory " @@ -21566,15 +22437,15 @@ msgid "" "[#512](https://github.com/adap/flower/pull/512))" msgstr "" -#: ../../source/ref-changelog.md:1439 +#: ../../source/ref-changelog.md:1550 msgid "v0.11.0 (2020-11-30)" msgstr "" -#: ../../source/ref-changelog.md:1441 +#: ../../source/ref-changelog.md:1552 msgid "Incompatible changes:" msgstr "" -#: ../../source/ref-changelog.md:1443 +#: ../../source/ref-changelog.md:1554 msgid "" "Renamed strategy methods " "([#486](https://github.com/adap/flower/pull/486)) to unify the naming of " @@ -21584,48 +22455,48 @@ msgid "" "migrate rename the following `Strategy` methods accordingly:" msgstr "" -#: ../../source/ref-changelog.md:1444 +#: ../../source/ref-changelog.md:1555 msgid "`on_configure_evaluate` => `configure_evaluate`" msgstr "" -#: ../../source/ref-changelog.md:1445 +#: ../../source/ref-changelog.md:1556 msgid "`on_aggregate_evaluate` => `aggregate_evaluate`" msgstr "" -#: ../../source/ref-changelog.md:1446 +#: ../../source/ref-changelog.md:1557 msgid "`on_configure_fit` => `configure_fit`" msgstr "" -#: ../../source/ref-changelog.md:1447 +#: ../../source/ref-changelog.md:1558 msgid "`on_aggregate_fit` => `aggregate_fit`" msgstr "" -#: ../../source/ref-changelog.md:1451 +#: ../../source/ref-changelog.md:1562 msgid "" "Deprecated `DefaultStrategy` " "([#479](https://github.com/adap/flower/pull/479)). To migrate use " "`FedAvg` instead." msgstr "" -#: ../../source/ref-changelog.md:1452 +#: ../../source/ref-changelog.md:1563 msgid "" "Simplified examples and baselines " "([#484](https://github.com/adap/flower/pull/484))." msgstr "" -#: ../../source/ref-changelog.md:1453 +#: ../../source/ref-changelog.md:1564 msgid "" "Removed presently unused `on_conclude_round` from strategy interface " "([#483](https://github.com/adap/flower/pull/483))." msgstr "" -#: ../../source/ref-changelog.md:1454 +#: ../../source/ref-changelog.md:1565 msgid "" "Set minimal Python version to 3.6.1 instead of 3.6.9 " "([#471](https://github.com/adap/flower/pull/471))." msgstr "" -#: ../../source/ref-changelog.md:1455 +#: ../../source/ref-changelog.md:1566 msgid "" "Improved `Strategy` docstrings " "([#470](https://github.com/adap/flower/pull/470))." @@ -25029,7 +25900,7 @@ msgstr "" " 수도 있습니다." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:41 -msgid "|c9344c3dfee24383908fabaac40a8504|" +msgid "|cf5fe148406b44b9a8b842fb01b5a7ea|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:109 @@ -25046,7 +25917,7 @@ msgstr "" " 바둑과 같은 게임을 하는 것일 수 있습니다." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:53 -msgid "|c10cd8f2177641bd8091c7b76d318ff9|" +msgid "|ba25c91426d64cc1ae2d3febc5715b35|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:111 @@ -25072,7 +25943,7 @@ msgstr "" "부르리는 것을 듣는 스마트 스피커에서 비롯됩니다." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:67 -msgid "|3c59c315e67945ea8b839381c5deb6c2|" +msgid "|fca67f83aaab4389aa9ebb4d9c5cd75e|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:113 @@ -25090,7 +25961,7 @@ msgstr "" "있습니다. 하지만 여러 조직이 모두 같은 작업을 위해 데이터를 생성하는 것일 수도 있습니다." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:79 -msgid "|eadf87e1e20549789512f7aa9199fcff|" +msgid "|6f2e8f95c95443379b0df00ca9824654|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:115 @@ -25109,7 +25980,7 @@ msgstr "" "서버는 데이터 센터 어딘가에 있을 수도 있고 클라우드 어딘가에 있을 수도 있습니다." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:91 -msgid "|66ce8f21aeb443fca1fc88f727458417|" +msgid "|c0ab3a1a733d4dbc9e1677aa608e8038|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:117 @@ -25126,7 +25997,7 @@ msgstr "" " 우리가 기본적으로 사용해 온 머신러닝 방법입니다." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:103 -msgid "|f5768015a1014396b4761bb6cb3677f5|" +msgid "|8f0491bde07341ab9f2e23d50593c0be|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:119 @@ -25149,7 +26020,7 @@ msgstr "" "트래픽을 분석하는 것이 있습니다. 이러한 사례에서 모든 데이터는 자연스럽게 중앙 서버에 존재합니다." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:138 -msgid "|a746aa3f56064617a4e00f4c6a0cb140|" +msgid "|762fc099899943688361562252c5e600|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:173 @@ -25166,7 +26037,7 @@ msgstr "" "좋은 모델을 훈련하기에 충분하지 않을 수 있습니다." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:150 -msgid "|cf8f676dd3534a44995c1b40910fd030|" +msgid "|f62d365fd0ae405b975d3ca01e7183fd|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:175 @@ -25345,7 +26216,7 @@ msgstr "" "체크포인트에서 모델 매개변수를 초기화합니다." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:210 -msgid "|d1c0e3a4c9dc4bfd88ee6f1fe626edaf|" +msgid "|2c78fc1816b143289f4d909388f92a80|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:307 @@ -25373,7 +26244,7 @@ msgstr "" "개의 연결 노드만 사용합니다. 그 이유는 점점 더 많은 클라이언트 노드를 선택하면 학습의 효율성이 감소하기 때문입니다." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:225 -msgid "|1d8d6298a4014ec3a717135bcc7a94f9|" +msgid "|4230725aeebe497d8ad84a3efc2a912b|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:309 @@ -25400,7 +26271,7 @@ msgstr "" "데이터에서 한 단계 정도로 짧거나 몇 단계(mini-batches)에 불과할 수 있습니다." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:240 -msgid "|e3ea79200ff44d459358b9f4713e582b|" +msgid "|64b66a88417240eabe52f5cc55d89d0b|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:311 @@ -25426,7 +26297,7 @@ msgstr "" "보냅니다. 보내는 모델 업데이트는 전체 모델 파라미터거나 로컬 교육 중에 누적된 그레디언트(gradient)일 수 있습니다." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:255 -msgid "|3e1061718a4a49d485764d30a4bfecdd|" +msgid "|726c8eca58bc4f859b06aa24a587b253|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:313 @@ -25476,7 +26347,7 @@ msgstr "" "많은 영향을 미칩니다." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:273 -msgid "|7750e597d1ea4e319f7e0a40539bf214|" +msgid "|f9d869e4b33c4093b29cf24ed8dff80a|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:315 @@ -25596,7 +26467,7 @@ msgstr "" "사용자는 모든 워크로드, 머신러닝 프레임워크 및 모든 프로그래밍 언어를 통합할 수 있습니다." #: ../../source/tutorial-series-what-is-federated-learning.ipynb:334 -msgid "|dd4434075f374e99ac07f509a883778f|" +msgid "|4ab50bc01a9f426a91a2c0cbc3ab7a84|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:340 @@ -27261,7 +28132,7 @@ msgstr "" #~ msgstr "|c00bf2750bc24d229737a0fe1395f0fc|" #~ msgid "run\\_client\\_app" -#~ msgstr "run\\_client\\_app" +#~ msgstr "클라이언트앱" #~ msgid "run\\_supernode" #~ msgstr "run\\_supernode" @@ -27287,13 +28158,13 @@ msgstr "" #~ msgstr "" #~ msgid "run\\_server\\_app" -#~ msgstr "" +#~ msgstr "Flower 서버앱" #~ msgid "run\\_superlink" -#~ msgstr "" +#~ msgstr "flower 초연결" #~ msgid "Start a Ray-based Flower simulation server." -#~ msgstr "" +#~ msgstr "멀티 노드 Flower 시뮬레이션" #~ msgid "" #~ "A function creating `Client` instances. " @@ -31933,3 +32804,495 @@ msgstr "" #~ msgid "|55472eef61274ba1b739408607e109df|" #~ msgstr "" +#~ msgid "" +#~ "When operating in a production " +#~ "environment, it is strongly recommended " +#~ "to enable Transport Layer Security (TLS)" +#~ " for each Flower Component to ensure" +#~ " secure communication." +#~ msgstr "" + +#~ msgid "" +#~ "Assuming all files we need are in" +#~ " the local ``certificates`` directory, we" +#~ " can use the flag ``--volume`` to " +#~ "mount the local directory into the " +#~ "``/app/certificates/`` directory of the " +#~ "container:" +#~ msgstr "" + +#~ msgid "" +#~ "``--volume ./certificates/:/app/certificates/:ro``: Mount" +#~ " the ``certificates`` directory in" +#~ msgstr "" + +#~ msgid "" +#~ "the current working directory of the " +#~ "host machine as a read-only volume" +#~ " at the" +#~ msgstr "" + +#~ msgid "``/app/certificates`` directory inside the container." +#~ msgstr "" + +#~ msgid "" +#~ "``--volume ./ca.crt:/app/ca.crt/:ro``: Mount the " +#~ "``ca.crt`` file from the" +#~ msgstr "" + +#~ msgid "" +#~ "current working directory of the host" +#~ " machine as a read-only volume " +#~ "at the ``/app/ca.crt``" +#~ msgstr "" + +#~ msgid "SuperExec" +#~ msgstr "" + +#~ msgid "" +#~ "Assuming all files we need are in" +#~ " the local ``certificates`` directory where" +#~ " the SuperExec will be executed from," +#~ " we can use the flag ``--volume`` " +#~ "to mount the local directory into " +#~ "the ``/app/certificates/`` directory of the" +#~ " container:" +#~ msgstr "" + +#~ msgid "" +#~ ":substitution-code:`flwr/superexec:|stable_flwr_version|`: " +#~ "The name of the image to be " +#~ "run and the specific" +#~ msgstr "" + +#~ msgid "SuperExec." +#~ msgstr "" + +#~ msgid "" +#~ "``--ssl-certfile certificates/server.pem``: Specify" +#~ " the location of the SuperExec's" +#~ msgstr "" + +#~ msgid "" +#~ "The ``certificates/server.pem`` file is used" +#~ " to identify the SuperExec and to " +#~ "encrypt the" +#~ msgstr "" + +#~ msgid "" +#~ "``--ssl-keyfile certificates/server.key``: Specify" +#~ " the location of the SuperExec's" +#~ msgstr "" + +#~ msgid "" +#~ "``--executor-config root-" +#~ "certificates=\\\"certificates/superlink_ca.crt\\\"``: Specify" +#~ " the" +#~ msgstr "" + +#~ msgid "" +#~ "location of the CA certificate file " +#~ "inside the container that the SuperExec" +#~ " executor" +#~ msgstr "" + +#~ msgid "should use to verify the SuperLink's identity." +#~ msgstr "" + +#~ msgid "" +#~ "In this mode, the ClientApp is " +#~ "executed as a subprocess within the " +#~ "SuperNode Docker container, rather than " +#~ "running in a separate container. This" +#~ " approach reduces the number of " +#~ "running containers, which can be " +#~ "beneficial for environments with limited " +#~ "resources. However, it also means that" +#~ " the ClientApp is no longer isolated" +#~ " from the SuperNode, which may " +#~ "introduce additional security concerns." +#~ msgstr "" + +#~ msgid "" +#~ "Before running the ClientApp as a " +#~ "subprocess, ensure that the FAB " +#~ "dependencies have been installed in the" +#~ " SuperNode images. This can be done" +#~ " by extending the SuperNode image:" +#~ msgstr "" + +#~ msgid "Dockerfile.supernode" +#~ msgstr "Flower SuperNode" + +#~ msgid "Run the ClientApp as a Subprocess" +#~ msgstr "" + +#~ msgid "" +#~ "Start the SuperNode with the flag " +#~ "``--isolation subprocess``, which tells the" +#~ " SuperNode to execute the ClientApp " +#~ "as a subprocess:" +#~ msgstr "" + +#~ msgid "Run the example and follow the logs of the ServerApp:" +#~ msgstr "" + +#~ msgid "" +#~ "That is all it takes! You can " +#~ "monitor the progress of the run " +#~ "through the logs of the SuperExec." +#~ msgstr "" + +#~ msgid "" +#~ "You will learn how to run the " +#~ "Flower client and server components on" +#~ " two separate machines, with Flower " +#~ "configured to use TLS encryption and " +#~ "persist SuperLink state across restarts. " +#~ "A server consists of a SuperLink " +#~ "and ``SuperExec``. For more details " +#~ "about the Flower architecture, refer to" +#~ " the :doc:`../explanation-flower-architecture`" +#~ " explainer page." +#~ msgstr "" + +#~ msgid "" +#~ "First, set the environment variables " +#~ "``SUPERLINK_IP`` and ``SUPEREXEC_IP`` with the" +#~ " IP address from the remote machine." +#~ " For example, if the IP is " +#~ "``192.168.2.33``, execute:" +#~ msgstr "" + +#~ msgid "" +#~ "Log into the remote machine using " +#~ "``ssh`` and run the following command" +#~ " to start the SuperLink and SuperExec" +#~ " services:" +#~ msgstr "" + +#~ msgid "" +#~ "Specify the remote SuperExec IP " +#~ "addresses and the path to the root" +#~ " certificate in the ``[tool.flwr.federations" +#~ ".remote-superexec]`` table in the " +#~ "``pyproject.toml`` file. Here, we have " +#~ "named our remote federation ``remote-" +#~ "superexec``:" +#~ msgstr "" + +#~ msgid "Run the project and follow the ServerApp logs:" +#~ msgstr "" + +#~ msgid "" +#~ "``-p 9091:9091 -p 9092:9092``: Map port" +#~ " ``9091`` and ``9092`` of the " +#~ "container to the same port of" +#~ msgstr "" + +#~ msgid "the host machine, allowing other services to access the Driver API on" +#~ msgstr "" + +#~ msgid "" +#~ "``http://localhost:9091`` and the Fleet API" +#~ " on ``http://localhost:9092``." +#~ msgstr "" + +#~ msgid "Step 3: Start the SuperNode" +#~ msgstr "" + +#~ msgid "" +#~ "``flwr/supernode:|stable_flwr_version|``: This is " +#~ "the name of the image to be " +#~ "run and the specific tag" +#~ msgstr "" + +#~ msgid "" +#~ "``--supernode-address 0.0.0.0:9094``: Set the" +#~ " address and port number that the " +#~ "SuperNode" +#~ msgstr "" + +#~ msgid "is listening on." +#~ msgstr "" + +#~ msgid "Step 4: Start the ClientApp" +#~ msgstr "" + +#~ msgid "" +#~ "The ClientApp Docker image comes with" +#~ " a pre-installed version of Flower" +#~ " and serves as a base for " +#~ "building your own ClientApp image. In" +#~ " order to install the FAB " +#~ "dependencies, you will need to create" +#~ " a Dockerfile that extends the " +#~ "ClientApp image and installs the " +#~ "required dependencies." +#~ msgstr "" + +#~ msgid "" +#~ "Create a ClientApp Dockerfile called " +#~ "``Dockerfile.clientapp`` and paste the " +#~ "following code into it:" +#~ msgstr "" + +#~ msgid "Dockerfile.clientapp" +#~ msgstr "flower 클라이언트 앱" + +#~ msgid "" +#~ "to be built from is the " +#~ "``flwr/clientapp image``, version :substitution-" +#~ "code:`|stable_flwr_version|`." +#~ msgstr "" + +#~ msgid "" +#~ "``--supernode supernode-1:9094``: Connect to " +#~ "the SuperNode's Fleet API at the " +#~ "address" +#~ msgstr "" + +#~ msgid "``supernode-1:9094``." +#~ msgstr "" + +#~ msgid "Step 5: Start the SuperExec" +#~ msgstr "" + +#~ msgid "" +#~ "Similar to the ClientApp image, you " +#~ "will need to create a Dockerfile " +#~ "that extends the SuperExec image and " +#~ "installs the required FAB dependencies." +#~ msgstr "" + +#~ msgid "" +#~ "Create a SuperExec Dockerfile called " +#~ "``Dockerfile.superexec`` and paste the " +#~ "following code in:" +#~ msgstr "" + +#~ msgid "Dockerfile.superexec" +#~ msgstr "" + +#~ msgid "" +#~ ":substitution-code:`FROM " +#~ "flwr/superexec:|stable_flwr_version|`: This line " +#~ "specifies that the Docker image" +#~ msgstr "" + +#~ msgid "" +#~ "to be built from is the " +#~ "``flwr/superexec image``, version :substitution-" +#~ "code:`|stable_flwr_version|`." +#~ msgstr "" + +#~ msgid "" +#~ "``ENTRYPOINT [\"flower-superexec\"``: Set the" +#~ " command ``flower-superexec`` to be" +#~ msgstr "" + +#~ msgid "``\"--executor\", \"flwr.superexec.deployment:executor\"]`` Use the" +#~ msgstr "" + +#~ msgid "``flwr.superexec.deployment:executor`` executor to run the ServerApps." +#~ msgstr "" + +#~ msgid "" +#~ "Afterward, in the directory that holds" +#~ " the Dockerfile, execute this Docker " +#~ "command to build the SuperExec image:" +#~ msgstr "" + +#~ msgid "Start the SuperExec container:" +#~ msgstr "" + +#~ msgid "" +#~ "``-p 9093:9093``: Map port ``9093`` of" +#~ " the container to the same port " +#~ "of" +#~ msgstr "" + +#~ msgid "" +#~ "the host machine, allowing you to " +#~ "access the SuperExec API on " +#~ "``http://localhost:9093``." +#~ msgstr "" + +#~ msgid "``--name superexec``: Assign the name ``superexec`` to the container." +#~ msgstr "" + +#~ msgid "" +#~ "``--executor-config superlink=\\\"superlink:9091\\\"``:" +#~ " Configure the SuperExec executor to" +#~ msgstr "" + +#~ msgid "connect to the SuperLink running on port ``9091``." +#~ msgstr "" + +#~ msgid "Launch two new ClientApp containers based on the newly built image:" +#~ msgstr "" + +#~ msgid "" +#~ "Setting the ``PROJECT_DIR`` helps Docker " +#~ "Compose locate the ``pyproject.toml`` file," +#~ " allowing it to install dependencies " +#~ "in the SuperExec and SuperNode images" +#~ " correctly." +#~ msgstr "" + +#~ msgid "" +#~ "To ensure the ``flwr`` CLI connects " +#~ "to the SuperExec, you need to " +#~ "specify the SuperExec addresses in the" +#~ " ``pyproject.toml`` file." +#~ msgstr "" + +#~ msgid "" +#~ "Run the quickstart example, monitor the" +#~ " ServerApp logs and wait for the " +#~ "summary to appear:" +#~ msgstr "" + +#~ msgid "In the SuperExec logs, you should find the ``Get weights`` line:" +#~ msgstr "" + +#~ msgid "Step 7: Add another SuperNode" +#~ msgstr "" + +#~ msgid "" +#~ "You can add more SuperNodes and " +#~ "ClientApps by duplicating their definitions" +#~ " in the ``compose.yml`` file." +#~ msgstr "" + +#~ msgid "" +#~ "Just give each new SuperNode and " +#~ "ClientApp service a unique service name" +#~ " like ``supernode-3``, ``clientapp-3``, etc." +#~ msgstr "" + +#~ msgid "In ``compose.yml``, add the following:" +#~ msgstr "" + +#~ msgid "" +#~ "If you also want to enable TLS " +#~ "for the new SuperNodes, duplicate the" +#~ " SuperNode definition for each new " +#~ "SuperNode service in the ``with-" +#~ "tls.yml`` file." +#~ msgstr "" + +#~ msgid "" +#~ "Make sure that the names of the" +#~ " services match with the one in " +#~ "the ``compose.yml`` file." +#~ msgstr "" + +#~ msgid "In ``with-tls.yml``, add the following:" +#~ msgstr "" + +#~ msgid "Comment out the lines 2-4 and uncomment the lines 5-9:" +#~ msgstr "" + +#~ msgid "" +#~ "This guide is for users who have" +#~ " already worked with Flower 0.x and" +#~ " want to upgrade to Flower 1.0. " +#~ "Newer versions of Flower (1.12+) are " +#~ "based on a new architecture (previously" +#~ " called Flower Next) and not covered" +#~ " in this guide. After upgrading " +#~ "Flower 0.x projects to Flower 1.0, " +#~ "please refer to :doc:`Upgrade to Flower" +#~ " Next ` to make your project compatible" +#~ " with the lastest version of Flower." +#~ msgstr "" + +#~ msgid "Upgrade to Flower Next" +#~ msgstr "Flower Next 업그레이드" + +#~ msgid "" +#~ "This guide shows how to reuse " +#~ "pre-``1.8`` Flower code with minimum " +#~ "code changes by using the *compatibility" +#~ " layer* in Flower Next. In another" +#~ " guide, we will show how to run" +#~ " Flower Next end-to-end with " +#~ "pure Flower Next APIs." +#~ msgstr "" +#~ "이 가이드에서는 Flower Next의 *호환성 레이어*를 " +#~ "사용하여 최소한의 코드 변경으로 ``1.8`` 이전의 " +#~ "Flower 코드를 재사용하는 방법을 보여줍니다. 다른 " +#~ "가이드에서는 순수한 Flower Next API로 Flower " +#~ "Next를 end-to-end로 실행하는 방법을 " +#~ "보여드리겠습니다." + +#~ msgid "Using Poetry" +#~ msgstr "Poetry 사용" + +#~ msgid "" +#~ "Update the ``flwr`` dependency in " +#~ "``pyproject.toml`` and then reinstall (don't" +#~ " forget to delete ``poetry.lock`` via " +#~ "``rm poetry.lock`` before running ``poetry " +#~ "install``)." +#~ msgstr "" +#~ "``pyproject.toml``에서 ``flwr`` 의존성를 업데이트한 다음" +#~ " 다시 설치하세요(``poetry install``을 실행하기 전에 " +#~ "``rm poetry.lock``을 통해 ``poetry.lock``을 삭제하는" +#~ " 것을 잊지 마세요)." + +#~ msgid "" +#~ "Ensure you set the following version " +#~ "constraint in your ``pyproject.toml``:" +#~ msgstr "``pyproject.toml``에 다음 버전 제약 조건을 설정했는지 확인하세요:" + +#~ msgid "" +#~ "This function is deprecated since " +#~ "1.13.0. Use :code: `flwr run` to " +#~ "start a Flower simulation." +#~ msgstr "" + +#~ msgid "|c9344c3dfee24383908fabaac40a8504|" +#~ msgstr "" + +#~ msgid "|c10cd8f2177641bd8091c7b76d318ff9|" +#~ msgstr "" + +#~ msgid "|3c59c315e67945ea8b839381c5deb6c2|" +#~ msgstr "" + +#~ msgid "|eadf87e1e20549789512f7aa9199fcff|" +#~ msgstr "" + +#~ msgid "|66ce8f21aeb443fca1fc88f727458417|" +#~ msgstr "" + +#~ msgid "|f5768015a1014396b4761bb6cb3677f5|" +#~ msgstr "" + +#~ msgid "|a746aa3f56064617a4e00f4c6a0cb140|" +#~ msgstr "" + +#~ msgid "|cf8f676dd3534a44995c1b40910fd030|" +#~ msgstr "" + +#~ msgid "|d1c0e3a4c9dc4bfd88ee6f1fe626edaf|" +#~ msgstr "" + +#~ msgid "|1d8d6298a4014ec3a717135bcc7a94f9|" +#~ msgstr "" + +#~ msgid "|e3ea79200ff44d459358b9f4713e582b|" +#~ msgstr "" + +#~ msgid "|3e1061718a4a49d485764d30a4bfecdd|" +#~ msgstr "" + +#~ msgid "|7750e597d1ea4e319f7e0a40539bf214|" +#~ msgstr "" + +#~ msgid "|dd4434075f374e99ac07f509a883778f|" +#~ msgstr "" + diff --git a/doc/locales/pt_BR/LC_MESSAGES/framework-docs.po b/doc/locales/pt_BR/LC_MESSAGES/framework-docs.po index 56fc2b3cc00d..c2670e8f6b0f 100644 --- a/doc/locales/pt_BR/LC_MESSAGES/framework-docs.po +++ b/doc/locales/pt_BR/LC_MESSAGES/framework-docs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Flower main\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-20 09:07+0100\n" +"POT-Creation-Date: 2024-11-22 08:46+0000\n" "PO-Revision-Date: 2024-05-25 11:09+0000\n" "Last-Translator: Gustavo Bertoli \n" "Language: pt_BR\n" @@ -949,9 +949,9 @@ msgstr "" #: ../../source/contributor-how-to-release-flower.rst:13 msgid "" -"Run ``python3 src/py/flwr_tool/update_changelog.py `` in " -"order to add every new change to the changelog (feel free to make manual " -"changes to the changelog afterwards until it looks good)." +"Run ``python3 ./dev/update_changelog.py `` in order to add" +" every new change to the changelog (feel free to make manual changes to " +"the changelog afterwards until it looks good)." msgstr "" #: ../../source/contributor-how-to-release-flower.rst:16 @@ -2053,7 +2053,6 @@ msgid "Get started as a contributor" msgstr "" #: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:5 -#: ../../source/docker/run-as-subprocess.rst:11 #: ../../source/docker/run-quickstart-examples-docker-compose.rst:16 #: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:18 #: ../../source/docker/tutorial-quickstart-docker-compose.rst:13 @@ -2289,17 +2288,11 @@ msgstr "" #: ../../source/docker/enable-tls.rst:4 msgid "" "When operating in a production environment, it is strongly recommended to" -" enable Transport Layer Security (TLS) for each Flower Component to " +" enable Transport Layer Security (TLS) for each Flower component to " "ensure secure communication." msgstr "" -#: ../../source/docker/enable-tls.rst:7 -msgid "" -"To enable TLS, you will need a PEM-encoded root certificate, a PEM-" -"encoded private key and a PEM-encoded certificate chain." -msgstr "" - -#: ../../source/docker/enable-tls.rst:12 +#: ../../source/docker/enable-tls.rst:9 msgid "" "For testing purposes, you can generate your own self-signed certificates." " The `Enable SSL connections ``: The name of your SuperLink image to be run." msgstr "" #: ../../source/docker/enable-tls.rst @@ -2459,18 +2468,11 @@ msgstr "" msgid "the network." msgstr "" -#: ../../source/docker/enable-tls.rst:72 -msgid "SuperNode" -msgstr "" - -#: ../../source/docker/enable-tls.rst:74 -msgid "" -"Assuming that the ``ca.crt`` certificate already exists locally, we can " -"use the flag ``--volume`` to mount the local certificate into the " -"container's ``/app/`` directory." +#: ../../source/docker/enable-tls.rst:79 +msgid "**SuperNode**" msgstr "" -#: ../../source/docker/enable-tls.rst:79 +#: ../../source/docker/enable-tls.rst:83 ../../source/docker/enable-tls.rst:189 msgid "" "If you're generating self-signed certificates and the ``ca.crt`` " "certificate doesn't exist on the SuperNode, you can copy it over after " @@ -2478,23 +2480,23 @@ msgid "" msgstr "" #: ../../source/docker/enable-tls.rst -msgid "``--volume ./ca.crt:/app/ca.crt/:ro``: Mount the ``ca.crt`` file from the" +msgid "" +"``--volume ./superlink-certificates/ca.crt:/app/ca.crt/:ro``: Mount the " +"``ca.crt``" msgstr "" #: ../../source/docker/enable-tls.rst msgid "" -"current working directory of the host machine as a read-only volume at " -"the ``/app/ca.crt``" +"file from the ``superlink-certificates`` directory of the host machine as" +" a read-only" msgstr "" #: ../../source/docker/enable-tls.rst -msgid "directory inside the container." +msgid "volume at the ``/app/ca.crt`` directory inside the container." msgstr "" -#: ../../source/docker/enable-tls.rst -msgid "" -":substitution-code:`flwr/supernode:|stable_flwr_version|`: The name of " -"the image to be run and the specific" +#: ../../source/docker/enable-tls.rst:101 +msgid "````: The name of your SuperNode image to be run." msgstr "" #: ../../source/docker/enable-tls.rst @@ -2507,60 +2509,188 @@ msgstr "" msgid "The ``ca.crt`` file is used to verify the identity of the SuperLink." msgstr "" -#: ../../source/docker/enable-tls.rst:105 -msgid "SuperExec" +#: ../../source/docker/enable-tls.rst +msgid "Isolation Mode ``process``" +msgstr "" + +#: ../../source/docker/enable-tls.rst:109 +msgid "" +"In isolation mode ``process``, the ServerApp and ClientApp run in their " +"own processes. Unlike in isolation mode ``subprocess``, the SuperLink or " +"SuperNode does not attempt to create the respective processes; instead, " +"they must be created externally." +msgstr "" + +#: ../../source/docker/enable-tls.rst:113 +msgid "" +"It is possible to run only the SuperLink in isolation mode ``subprocess``" +" and the SuperNode in isolation mode ``process``, or vice versa, or even " +"both with isolation mode ``process``." +msgstr "" + +#: ../../source/docker/enable-tls.rst:117 +msgid "**SuperLink and ServerApp**" +msgstr "" + +#: ../../source/docker/enable-tls.rst:122 +msgid "" +"Assuming all files we need are in the local ``superlink-certificates`` " +"directory, we can use the flag ``--volume`` to mount the local directory " +"into the SuperLink container:" +msgstr "" + +#: ../../source/docker/enable-tls.rst +msgid "``--volume ./superlink-certificates/:/app/certificates/:ro``: Mount the" +msgstr "" + +#: ../../source/docker/enable-tls.rst +msgid "" +"``superlink-certificates`` directory in the current working directory of " +"the host" msgstr "" -#: ../../source/docker/enable-tls.rst:107 +#: ../../source/docker/enable-tls.rst msgid "" -"Assuming all files we need are in the local ``certificates`` directory " -"where the SuperExec will be executed from, we can use the flag " -"``--volume`` to mount the local directory into the ``/app/certificates/``" -" directory of the container:" +"machine as a read-only volume at the ``/app/certificates`` directory " +"inside the container." msgstr "" #: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -":substitution-code:`flwr/superexec:|stable_flwr_version|`: The name of " +":substitution-code:`flwr/superlink:|stable_flwr_version|`: The name of " "the image to be run and the specific" msgstr "" #: ../../source/docker/enable-tls.rst -msgid "SuperExec." +msgid "" +"tag of the image. The tag :substitution-code:`|stable_flwr_version|` " +"represents a specific version of the image." msgstr "" #: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``--ssl-certfile certificates/server.pem``: Specify the location of the " -"SuperExec's" +"``--isolation process``: Tells the SuperLink that the ServerApp is " +"created by separate" +msgstr "" + +#: ../../source/docker/enable-tls.rst +msgid "independent process. The SuperLink does not attempt to create it." +msgstr "" + +#: ../../source/docker/enable-tls.rst:168 +#: ../../source/docker/tutorial-quickstart-docker.rst:207 +msgid "Start the ServerApp container:" +msgstr "" + +#: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker-compose.rst +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "Understand the command" +msgstr "" + +#: ../../source/docker/enable-tls.rst:181 +msgid "````: The name of your ServerApp image to be run." msgstr "" #: ../../source/docker/enable-tls.rst msgid "" -"The ``certificates/server.pem`` file is used to identify the SuperExec " -"and to encrypt the" +"``--insecure``: This flag tells the container to operate in an insecure " +"mode, allowing" msgstr "" #: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``--ssl-keyfile certificates/server.key``: Specify the location of the " -"SuperExec's" +"unencrypted communication. Secure connections will be added in future " +"releases." +msgstr "" + +#: ../../source/docker/enable-tls.rst:185 +msgid "**SuperNode and ClientApp**" +msgstr "" + +#: ../../source/docker/enable-tls.rst:192 +msgid "Start the SuperNode container:" +msgstr "" + +#: ../../source/docker/enable-tls.rst +msgid "" +"``--volume ./superlink-certificates/ca.crt:/app/ca.crt/:ro``: Mount the " +"``ca.crt`` file from the" +msgstr "" + +#: ../../source/docker/enable-tls.rst +msgid "" +"``superlink-certificates`` directory of the host machine as a read-only " +"volume at the ``/app/ca.crt``" +msgstr "" + +#: ../../source/docker/enable-tls.rst +msgid "directory inside the container." msgstr "" #: ../../source/docker/enable-tls.rst msgid "" -"``--executor-config root-" -"certificates=\\\"certificates/superlink_ca.crt\\\"``: Specify the" +":substitution-code:`flwr/supernode:|stable_flwr_version|`: The name of " +"the image to be run and the specific" msgstr "" #: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"location of the CA certificate file inside the container that the " -"SuperExec executor" +"``--isolation process``: Tells the SuperNode that the ClientApp is " +"created by separate" msgstr "" #: ../../source/docker/enable-tls.rst -msgid "should use to verify the SuperLink's identity." +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "independent process. The SuperNode does not attempt to create it." +msgstr "" + +#: ../../source/docker/enable-tls.rst:220 +msgid "Start the ClientApp container:" +msgstr "" + +#: ../../source/docker/enable-tls.rst:233 +msgid "````: The name of your ClientApp image to be run." +msgstr "" + +#: ../../source/docker/enable-tls.rst:237 +#: ../../source/docker/run-quickstart-examples-docker-compose.rst:54 +msgid "" +"Append the following lines to the end of the ``pyproject.toml`` file and " +"save it:" +msgstr "" + +#: ../../source/docker/enable-tls.rst:239 +#: ../../source/docker/run-quickstart-examples-docker-compose.rst:56 +#: ../../source/docker/tutorial-quickstart-docker.rst:330 +msgid "pyproject.toml" +msgstr "" + +#: ../../source/docker/enable-tls.rst:246 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:152 +msgid "" +"The path of the ``root-certificates`` should be relative to the location " +"of the ``pyproject.toml`` file." +msgstr "" + +#: ../../source/docker/enable-tls.rst:251 +#: ../../source/docker/run-quickstart-examples-docker-compose.rst:65 +msgid "" +"You can customize the string that follows ``tool.flwr.federations.`` to " +"fit your needs. However, please note that the string cannot contain a dot" +" (``.``)." +msgstr "" + +#: ../../source/docker/enable-tls.rst:254 +msgid "" +"In this example, ``local-deployment-tls`` has been used. Just remember to" +" replace ``local-deployment-tls`` with your chosen name in both the " +"``tool.flwr.federations.`` string and the corresponding ``flwr run .`` " +"command." msgstr "" #: ../../source/docker/index.rst:2 @@ -2725,44 +2855,126 @@ msgid "SuperNode Dockerfile" msgstr "Construindo a imagem do servidor" #: ../../source/docker/run-as-subprocess.rst:2 -msgid "Run ClientApp as a Subprocess" +msgid "Run ServerApp or ClientApp as a Subprocess" msgstr "" #: ../../source/docker/run-as-subprocess.rst:4 msgid "" -"In this mode, the ClientApp is executed as a subprocess within the " -"SuperNode Docker container, rather than running in a separate container. " -"This approach reduces the number of running containers, which can be " -"beneficial for environments with limited resources. However, it also " -"means that the ClientApp is no longer isolated from the SuperNode, which " -"may introduce additional security concerns." +"The SuperLink and SuperNode components support two distinct isolation " +"modes, allowing for flexible deployment and control:" msgstr "" -#: ../../source/docker/run-as-subprocess.rst:13 +#: ../../source/docker/run-as-subprocess.rst:7 msgid "" -"Before running the ClientApp as a subprocess, ensure that the FAB " -"dependencies have been installed in the SuperNode images. This can be " -"done by extending the SuperNode image:" +"Subprocess Mode: In this configuration (default), the SuperLink and " +"SuperNode take responsibility for launching the ServerApp and ClientApp " +"processes internally. This differs from the ``process`` isolation-mode " +"which uses separate containers, as demonstrated in the :doc:`tutorial-" +"quickstart-docker` guide." +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:12 +msgid "" +"Using the ``subprocess`` approach reduces the number of running " +"containers, which can be beneficial for environments with limited " +"resources. However, it also means that the applications are not isolated " +"from their parent containers, which may introduce additional security " +"concerns." msgstr "" #: ../../source/docker/run-as-subprocess.rst:17 -msgid "Dockerfile.supernode" +msgid "" +"Process Mode: In this mode, the ServerApp and ClientApps run in " +"completely separate processes. Unlike the alternative Subprocess mode, " +"the SuperLink or SuperNode does not attempt to create or manage these " +"processes. Instead, they must be started externally." +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:22 +msgid "" +"Both modes can be mixed for added flexibility. For instance, you can run " +"the SuperLink in ``subprocess`` mode while keeping the SuperNode in " +"``process`` mode, or vice versa." +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:25 +msgid "" +"To run the SuperLink and SuperNode in isolation mode ``process``, refer " +"to the :doc:`tutorial-quickstart-docker` guide. To run them in " +"``subprocess`` mode, follow the instructions below." msgstr "" -#: ../../source/docker/run-as-subprocess.rst:31 +#: ../../source/docker/run-as-subprocess.rst +#: ../../source/ref-api/flwr.server.ServerApp.rst:2 +msgid "ServerApp" +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:33 +#: ../../source/docker/run-as-subprocess.rst:74 +msgid "**Prerequisites**" +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:35 +msgid "" +"1. Before running the ServerApp as a subprocess, ensure that the FAB " +"dependencies have been installed in the SuperLink images. This can be " +"done by extending the SuperLink image:" +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:38 +#, fuzzy +msgid "superlink.Dockerfile" +msgstr "Construindo a imagem do servidor" + +#: ../../source/docker/run-as-subprocess.rst:52 +msgid "" +"2. Next, build the SuperLink Docker image by running the following " +"command in the directory where Dockerfile is located:" +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:59 +msgid "**Run the ServerApp as a Subprocess**" +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:61 +msgid "" +"Start the SuperLink and run the ServerApp as a subprocess (note that the " +"subprocess mode is the default, so you do not have to explicitly set the " +"``--isolation`` flag):" +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst +#: ../../source/ref-api/flwr.client.ClientApp.rst:2 +msgid "ClientApp" +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:76 msgid "" -"Next, build the SuperNode Docker image by running the following command " -"in the directory where Dockerfile is located:" +"1. Before running the ClientApp as a subprocess, ensure that the FAB " +"dependencies have been installed in the SuperNode images. This can be " +"done by extending the SuperNode image:" msgstr "" -#: ../../source/docker/run-as-subprocess.rst:39 -msgid "Run the ClientApp as a Subprocess" +#: ../../source/docker/run-as-subprocess.rst:80 +#, fuzzy +msgid "supernode.Dockerfile" +msgstr "Construindo a imagem do servidor" + +#: ../../source/docker/run-as-subprocess.rst:94 +msgid "" +"2. Next, build the SuperNode Docker image by running the following " +"command in the directory where Dockerfile is located:" +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:101 +msgid "**Run the ClientApp as a Subprocess**" msgstr "" -#: ../../source/docker/run-as-subprocess.rst:41 +#: ../../source/docker/run-as-subprocess.rst:103 msgid "" -"Start the SuperNode with the flag ``--isolation subprocess``, which tells" -" the SuperNode to execute the ClientApp as a subprocess:" +"Start the SuperNode and run the ClientApp as a subprocess (note that the " +"subprocess mode is the default, so you do not have to explicitly set the " +"``--isolation`` flag):" msgstr "" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:2 @@ -2836,24 +3048,6 @@ msgid "" "start the services using the following command:" msgstr "" -#: ../../source/docker/run-quickstart-examples-docker-compose.rst:54 -msgid "" -"Append the following lines to the end of the ``pyproject.toml`` file and " -"save it:" -msgstr "" - -#: ../../source/docker/run-quickstart-examples-docker-compose.rst:56 -#: ../../source/docker/tutorial-quickstart-docker.rst:323 -msgid "pyproject.toml" -msgstr "" - -#: ../../source/docker/run-quickstart-examples-docker-compose.rst:65 -msgid "" -"You can customize the string that follows ``tool.flwr.federations.`` to " -"fit your needs. However, please note that the string cannot contain a dot" -" (``.``)." -msgstr "" - #: ../../source/docker/run-quickstart-examples-docker-compose.rst:68 msgid "" "In this example, ``local-deployment`` has been used. Just remember to " @@ -2863,13 +3057,13 @@ msgid "" msgstr "" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:72 -msgid "Run the example and follow the logs of the ServerApp:" +msgid "Run the example and follow the logs of the ``ServerApp`` :" msgstr "" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:78 msgid "" "That is all it takes! You can monitor the progress of the run through the" -" logs of the SuperExec." +" logs of the ``ServerApp``." msgstr "" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:82 @@ -2907,10 +3101,10 @@ msgstr "" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:119 #: ../../source/docker/run-quickstart-examples-docker-compose.rst:121 #: ../../source/docker/run-quickstart-examples-docker-compose.rst:125 -#: ../../source/ref-changelog.md:103 ../../source/ref-changelog.md:469 -#: ../../source/ref-changelog.md:746 ../../source/ref-changelog.md:810 -#: ../../source/ref-changelog.md:868 ../../source/ref-changelog.md:937 -#: ../../source/ref-changelog.md:999 +#: ../../source/ref-changelog.md:214 ../../source/ref-changelog.md:580 +#: ../../source/ref-changelog.md:857 ../../source/ref-changelog.md:921 +#: ../../source/ref-changelog.md:979 ../../source/ref-changelog.md:1048 +#: ../../source/ref-changelog.md:1110 msgid "None" msgstr "" @@ -3003,8 +3197,8 @@ msgid "" "You will learn how to run the Flower client and server components on two " "separate machines, with Flower configured to use TLS encryption and " "persist SuperLink state across restarts. A server consists of a SuperLink" -" and ``SuperExec``. For more details about the Flower architecture, refer" -" to the :doc:`../explanation-flower-architecture` explainer page." +" and a ``ServerApp``. For more details about the Flower architecture, " +"refer to the :doc:`../explanation-flower-architecture` explainer page." msgstr "" #: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:13 @@ -3059,70 +3253,70 @@ msgstr "" msgid "Clone the Flower repository and change to the ``distributed`` directory:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:45 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:46 msgid "Get the IP address from the remote machine and save it for later." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:46 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:47 msgid "" "Use the ``certs.yml`` Compose file to generate your own self-signed " "certificates. If you have certificates, you can continue with Step 2." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:51 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:214 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:52 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:212 msgid "These certificates should be used only for development purposes." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:53 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:54 msgid "" "For production environments, you may have to use dedicated services to " "obtain your certificates." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:56 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:57 msgid "" -"First, set the environment variables ``SUPERLINK_IP`` and " -"``SUPEREXEC_IP`` with the IP address from the remote machine. For " -"example, if the IP is ``192.168.2.33``, execute:" +"First, set the environment variable ``SUPERLINK_IP`` with the IP address " +"from the remote machine. For example, if the IP is ``192.168.2.33``, " +"execute:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:65 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:64 msgid "Next, generate the self-signed certificates:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:72 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:71 msgid "Step 2: Copy the Server Compose Files" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:74 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:73 msgid "" "Use the method that works best for you to copy the ``server`` directory, " "the certificates, and the ``pyproject.toml`` file of your Flower project " "to the remote machine." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:78 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:77 msgid "For example, you can use ``scp`` to copy the directories:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:88 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:86 msgid "Step 3: Start the Flower Server Components" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:90 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:88 msgid "" "Log into the remote machine using ``ssh`` and run the following command " -"to start the SuperLink and SuperExec services:" +"to start the SuperLink and ``ServerApp`` services:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:104 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:102 msgid "" "The path to the ``PROJECT_DIR`` containing the ``pyproject.toml`` file " "should be relative to the location of the server ``compose.yml`` file." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:109 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:107 msgid "" "When working with Docker Compose on Linux, you may need to create the " "``state`` directory first and change its ownership to ensure proper " @@ -3130,74 +3324,68 @@ msgid "" "4), run the following commands:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:118 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:167 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:116 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:165 msgid "" "For more information, consult the following page: :doc:`persist-" "superlink-state`." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:120 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:118 msgid "Go back to your terminal on your local machine." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:123 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:121 msgid "Step 4: Start the Flower Client Components" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:125 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:123 msgid "" "On your local machine, run the following command to start the client " "components:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:135 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:133 msgid "" "The path to the ``PROJECT_DIR`` containing the ``pyproject.toml`` file " "should be relative to the location of the client ``compose.yml`` file." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:139 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:137 msgid "Step 5: Run Your Flower Project" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:141 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:139 msgid "" -"Specify the remote SuperExec IP addresses and the path to the root " -"certificate in the ``[tool.flwr.federations.remote-superexec]`` table in " -"the ``pyproject.toml`` file. Here, we have named our remote federation " -"``remote-superexec``:" +"Specify the remote SuperLink IP addresses and the path to the root " +"certificate in the ``[tool.flwr.federations.remote-deployment]`` table in" +" the ``pyproject.toml`` file. Here, we have named our remote federation " +"``remote-deployment``:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:145 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:143 msgid "examples/quickstart-sklearn-tabular/pyproject.toml" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:154 -msgid "" -"The path of the ``root-certificates`` should be relative to the location " -"of the ``pyproject.toml`` file." -msgstr "" - -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:157 -msgid "Run the project and follow the ServerApp logs:" +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:155 +msgid "Run the project and follow the ``ServerApp`` logs:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:163 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:161 msgid "" "That's it! With these steps, you've set up Flower on two separate " "machines and are ready to start using it." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:167 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:165 msgid "Step 6: Clean Up" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:169 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:167 msgid "Shut down the Flower client components:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:176 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:174 msgid "Shut down the Flower server components and delete the SuperLink state:" msgstr "" @@ -3218,7 +3406,7 @@ msgid "" " understanding the basic workflow that uses the minimum configurations." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:32 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:33 #: ../../source/docker/tutorial-quickstart-docker.rst:21 msgid "Create a new Flower project (PyTorch):" msgstr "" @@ -3239,47 +3427,50 @@ msgstr "" msgid "Step 2: Start the SuperLink" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:62 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:64 #: ../../source/docker/tutorial-quickstart-docker.rst:51 msgid "Open your terminal and run:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "Understand the command" +msgid "" +"``-p 9091:9091 -p 9092:9092 -p 9093:9093``: Map port ``9091``, ``9092`` " +"and ``9093`` of the" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``-p 9091:9091 -p 9092:9092``: Map port ``9091`` and ``9092`` of the " -"container to the same port of" +"container to the same port of the host machine, allowing other services " +"to access the" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "the host machine, allowing other services to access the Driver API on" +msgid "" +"ServerAppIO API on ``http://localhost:9091``, the Fleet API on " +"``http://localhost:9092`` and" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``http://localhost:9091`` and the Fleet API on ``http://localhost:9092``." +msgid "the Exec API on ``http://localhost:9093``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:70 -#: ../../source/docker/tutorial-quickstart-docker.rst:107 -#: ../../source/docker/tutorial-quickstart-docker.rst:218 -#: ../../source/docker/tutorial-quickstart-docker.rst:308 +#: ../../source/docker/tutorial-quickstart-docker.rst:74 +#: ../../source/docker/tutorial-quickstart-docker.rst:114 +#: ../../source/docker/tutorial-quickstart-docker.rst:223 +#: ../../source/docker/tutorial-quickstart-docker.rst:305 msgid "" "``--network flwr-network``: Make the container join the network named " "``flwr-network``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:71 +#: ../../source/docker/tutorial-quickstart-docker.rst:75 msgid "``--name superlink``: Assign the name ``superlink`` to the container." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:72 -#: ../../source/docker/tutorial-quickstart-docker.rst:109 -#: ../../source/docker/tutorial-quickstart-docker.rst:219 -#: ../../source/docker/tutorial-quickstart-docker.rst:310 +#: ../../source/docker/tutorial-quickstart-docker.rst:76 +#: ../../source/docker/tutorial-quickstart-docker.rst:116 +#: ../../source/docker/tutorial-quickstart-docker.rst:225 +#: ../../source/docker/tutorial-quickstart-docker.rst:306 msgid "" "``--detach``: Run the container in the background, freeing up the " "terminal." @@ -3301,15 +3492,25 @@ msgstr "" msgid "unencrypted communication." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:79 -msgid "Step 3: Start the SuperNode" +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "" +"independent process. The SuperLink does not attempt to create it. You can" +" learn more about" +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "the different process modes here: :doc:`run-as-subprocess`." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:81 +#: ../../source/docker/tutorial-quickstart-docker.rst:86 +msgid "Step 3: Start the SuperNodes" +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:88 msgid "Start two SuperNode containers." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:83 +#: ../../source/docker/tutorial-quickstart-docker.rst:90 msgid "Start the first container:" msgstr "" @@ -3325,18 +3526,18 @@ msgstr "" msgid "``http://localhost:9094``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:108 +#: ../../source/docker/tutorial-quickstart-docker.rst:115 msgid "``--name supernode-1``: Assign the name ``supernode-1`` to the container." msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``flwr/supernode:|stable_flwr_version|``: This is the name of the image " -"to be run and the specific tag" +":substitution-code:`flwr/supernode:|stable_flwr_version|`: This is the " +"name of the" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "of the image." +msgid "image to be run and the specific tag of the image." msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst @@ -3361,49 +3562,52 @@ msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``--supernode-address 0.0.0.0:9094``: Set the address and port number " -"that the SuperNode" +"``--clientappio-api-address 0.0.0.0:9094``: Set the address and port " +"number that the" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "is listening on." +msgid "SuperNode is listening on to communicate with the ClientApp. If" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``--isolation process``: Tells the SuperNode that the ClientApp is " -"created by separate" +"two SuperNodes are started on the same machine, set two different port " +"numbers for each SuperNode." msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "independent process. The SuperNode does not attempt to create it." +msgid "" +"(E.g. In the next step, we set the second SuperNode container to listen " +"on port 9095)" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:123 +#: ../../source/docker/tutorial-quickstart-docker.rst:132 msgid "Start the second container:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:141 -msgid "Step 4: Start the ClientApp" +#: ../../source/docker/tutorial-quickstart-docker.rst:150 +msgid "Step 4: Start a ServerApp" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:143 +#: ../../source/docker/tutorial-quickstart-docker.rst:152 msgid "" -"The ClientApp Docker image comes with a pre-installed version of Flower " -"and serves as a base for building your own ClientApp image. In order to " +"The ServerApp Docker image comes with a pre-installed version of Flower " +"and serves as a base for building your own ServerApp image. In order to " "install the FAB dependencies, you will need to create a Dockerfile that " -"extends the ClientApp image and installs the required dependencies." +"extends the ServerApp image and installs the required dependencies." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:148 +#: ../../source/docker/tutorial-quickstart-docker.rst:157 msgid "" -"Create a ClientApp Dockerfile called ``Dockerfile.clientapp`` and paste " -"the following code into it:" +"Create a ServerApp Dockerfile called ``serverapp.Dockerfile`` and paste " +"the following code in:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:151 -msgid "Dockerfile.clientapp" -msgstr "" +#: ../../source/docker/tutorial-quickstart-docker.rst:160 +#, fuzzy +msgid "serverapp.Dockerfile" +msgstr "Construindo a imagem do servidor" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "Understand the Dockerfile" @@ -3411,13 +3615,13 @@ msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -":substitution-code:`FROM flwr/clientapp:|stable_flwr_version|`: This line" +":substitution-code:`FROM flwr/serverapp:|stable_flwr_version|`: This line" " specifies that the Docker image" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"to be built from is the ``flwr/clientapp image``, version :substitution-" +"to be built from is the ``flwr/serverapp`` image, version :substitution-" "code:`|stable_flwr_version|`." msgstr "" @@ -3475,7 +3679,7 @@ msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``ENTRYPOINT [\"flwr-clientapp\"]``: Set the command ``flwr-clientapp`` " +"``ENTRYPOINT [\"flwr-serverapp\"]``: Set the command ``flwr-serverapp`` " "to be" msgstr "" @@ -3483,7 +3687,7 @@ msgstr "" msgid "the default command run when the container is started." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:185 +#: ../../source/docker/tutorial-quickstart-docker.rst:194 msgid "" "Note that `flwr `__ is already installed " "in the ``flwr/clientapp`` base image, so only other package dependencies " @@ -3492,20 +3696,94 @@ msgid "" "after it has been copied into the Docker image (see line 5)." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:191 +#: ../../source/docker/tutorial-quickstart-docker.rst:200 +msgid "" +"Afterward, in the directory that holds the Dockerfile, execute this " +"Docker command to build the ServerApp image:" +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:224 +msgid "``--name serverapp``: Assign the name ``serverapp`` to the container." +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "" +"``flwr_serverapp:0.0.1``: This is the name of the image to be run and the" +" specific tag" +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "of the image." +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "" +"``--serverappio-api-address superlink:9091``: Connect to the SuperLink's " +"ServerAppIO API" +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "at the address ``superlink:9091``." +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:234 +msgid "Step 5: Start the ClientApp" +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:236 +msgid "" +"The procedure for building and running a ClientApp image is almost " +"identical to the ServerApp image." +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:239 +msgid "" +"Similar to the ServerApp image, you will need to create a Dockerfile that" +" extends the ClientApp image and installs the required FAB dependencies." +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:242 +msgid "" +"Create a ClientApp Dockerfile called ``clientapp.Dockerfile`` and paste " +"the following code into it:" +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:245 +msgid "clientapp.Dockerfile" +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "" +":substitution-code:`FROM flwr/clientapp:|stable_flwr_version|`: This line" +" specifies that the Docker image" +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "" +"to be built from is the ``flwr/clientapp`` image, version :substitution-" +"code:`|stable_flwr_version|`." +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "" +"``ENTRYPOINT [\"flwr-clientapp\"]``: Set the command ``flwr-clientapp`` " +"to be" +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:277 msgid "" "Next, build the ClientApp Docker image by running the following command " "in the directory where the Dockerfile is located:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:200 +#: ../../source/docker/tutorial-quickstart-docker.rst:286 msgid "" "The image name was set as ``flwr_clientapp`` with the tag ``0.0.1``. " "Remember that these values are merely examples, and you can customize " "them according to your requirements." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:204 +#: ../../source/docker/tutorial-quickstart-docker.rst:290 msgid "Start the first ClientApp container:" msgstr "" @@ -3517,177 +3795,98 @@ msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``--supernode supernode-1:9094``: Connect to the SuperNode's Fleet API at" -" the address" +"``--clientappio-api-address supernode-1:9094``: Connect to the " +"SuperNode's ClientAppIO" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``supernode-1:9094``." +msgid "API at the address ``supernode-1:9094``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:225 +#: ../../source/docker/tutorial-quickstart-docker.rst:314 msgid "Start the second ClientApp container:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:236 -msgid "Step 5: Start the SuperExec" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst:238 -msgid "" -"The procedure for building and running a SuperExec image is almost " -"identical to the ClientApp image." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst:241 -msgid "" -"Similar to the ClientApp image, you will need to create a Dockerfile that" -" extends the SuperExec image and installs the required FAB dependencies." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst:244 -msgid "" -"Create a SuperExec Dockerfile called ``Dockerfile.superexec`` and paste " -"the following code in:" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst:247 -msgid "Dockerfile.superexec" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "" -":substitution-code:`FROM flwr/superexec:|stable_flwr_version|`: This line" -" specifies that the Docker image" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "" -"to be built from is the ``flwr/superexec image``, version :substitution-" -"code:`|stable_flwr_version|`." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "" -"``ENTRYPOINT [\"flower-superexec\"``: Set the command ``flower-" -"superexec`` to be" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``\"--executor\", \"flwr.superexec.deployment:executor\"]`` Use the" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``flwr.superexec.deployment:executor`` executor to run the ServerApps." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst:282 -msgid "" -"Afterward, in the directory that holds the Dockerfile, execute this " -"Docker command to build the SuperExec image:" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst:289 -msgid "Start the SuperExec container:" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``-p 9093:9093``: Map port ``9093`` of the container to the same port of" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "" -"the host machine, allowing you to access the SuperExec API on " -"``http://localhost:9093``." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst:309 -msgid "``--name superexec``: Assign the name ``superexec`` to the container." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "" -"``flwr_superexec:0.0.1``: This is the name of the image to be run and the" -" specific tag" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "" -"``--executor-config superlink=\\\"superlink:9091\\\"``: Configure the " -"SuperExec executor to" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "connect to the SuperLink running on port ``9091``." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst:319 +#: ../../source/docker/tutorial-quickstart-docker.rst:326 msgid "Step 6: Run the Quickstart Project" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:321 +#: ../../source/docker/tutorial-quickstart-docker.rst:328 msgid "Add the following lines to the ``pyproject.toml``:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:330 +#: ../../source/docker/tutorial-quickstart-docker.rst:337 msgid "" "Run the ``quickstart-docker`` project and follow the ServerApp logs to " "track the execution of the run:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:338 +#: ../../source/docker/tutorial-quickstart-docker.rst:345 msgid "Step 7: Update the Application" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:340 +#: ../../source/docker/tutorial-quickstart-docker.rst:347 msgid "" "Change the application code. For example, change the ``seed`` in " "``quickstart_docker/task.py`` to ``43`` and save it:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:343 +#: ../../source/docker/tutorial-quickstart-docker.rst:350 msgid "quickstart_docker/task.py" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:350 -msgid "Stop the current ClientApp containers:" +#: ../../source/docker/tutorial-quickstart-docker.rst:357 +msgid "Stop the current ServerApp and ClientApp containers:" +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:125 +#: ../../source/docker/tutorial-quickstart-docker.rst:361 +msgid "" +"If you have modified the dependencies listed in your ``pyproject.toml`` " +"file, it is essential to rebuild images." +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:364 +msgid "If you haven’t made any changes, you can skip steps 2 through 4." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:356 +#: ../../source/docker/tutorial-quickstart-docker.rst:370 #, fuzzy -msgid "Rebuild the FAB and ClientApp image:" +msgid "Rebuild ServerApp and ClientApp images:" msgstr "Construindo a imagem base" -#: ../../source/docker/tutorial-quickstart-docker.rst:362 -msgid "Launch two new ClientApp containers based on the newly built image:" +#: ../../source/docker/tutorial-quickstart-docker.rst:377 +msgid "" +"Launch one new ServerApp and two new ClientApp containers based on the " +"newly built image:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:377 +#: ../../source/docker/tutorial-quickstart-docker.rst:402 msgid "Run the updated project:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:384 +#: ../../source/docker/tutorial-quickstart-docker.rst:409 msgid "Step 8: Clean Up" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:386 +#: ../../source/docker/tutorial-quickstart-docker.rst:411 msgid "Remove the containers and the bridge network:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:398 -#: ../../source/docker/tutorial-quickstart-docker.rst:398 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:400 +#: ../../source/docker/tutorial-quickstart-docker.rst:423 msgid "Where to Go Next" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:400 +#: ../../source/docker/tutorial-quickstart-docker.rst:425 msgid ":doc:`enable-tls`" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:401 +#: ../../source/docker/tutorial-quickstart-docker.rst:426 msgid ":doc:`persist-superlink-state`" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:402 +#: ../../source/docker/tutorial-quickstart-docker.rst:427 msgid ":doc:`tutorial-quickstart-docker-compose`" msgstr "" @@ -3713,161 +3912,155 @@ msgstr "" msgid "Clone the Docker Compose ``complete`` directory:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:38 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:39 msgid "" "Export the path of the newly created project. The path should be relative" " to the location of the Docker Compose files:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:45 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:46 msgid "" "Setting the ``PROJECT_DIR`` helps Docker Compose locate the " "``pyproject.toml`` file, allowing it to install dependencies in the " -"SuperExec and SuperNode images correctly." +"``ServerApp`` and ``ClientApp`` images correctly." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:49 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:51 msgid "Step 2: Run Flower in Insecure Mode" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:51 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:53 msgid "" "To begin, start Flower with the most basic configuration. In this setup, " "Flower will run without TLS and without persisting the state." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:56 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:58 msgid "" "Without TLS, the data sent between the services remains **unencrypted**. " "Use it only for development purposes." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:59 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:61 msgid "" "For production-oriented use cases, :ref:`enable TLS` for secure data" " transmission." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:70 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:177 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:72 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:175 msgid "``docker compose``: The Docker command to run the Docker Compose tool." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:71 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:183 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:73 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:181 msgid "" "``--build``: Rebuild the images for each service if they don't already " "exist." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:72 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:184 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:74 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:182 msgid "" "``-d``: Detach the containers from the terminal and run them in the " "background." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:75 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:77 msgid "Step 3: Run the Quickstart Project" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:77 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:79 msgid "" "Now that the Flower services have been started via Docker Compose, it is " "time to run the quickstart example." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:80 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:82 msgid "" -"To ensure the ``flwr`` CLI connects to the SuperExec, you need to specify" -" the SuperExec addresses in the ``pyproject.toml`` file." +"To ensure the ``flwr`` CLI connects to the SuperLink, you need to specify" +" the SuperLink addresses in the ``pyproject.toml`` file." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:83 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:225 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:85 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:223 msgid "Add the following lines to the ``quickstart-compose/pyproject.toml``:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:85 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:227 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:87 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:225 msgid "quickstart-compose/pyproject.toml" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:92 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:94 msgid "" -"Run the quickstart example, monitor the ServerApp logs and wait for the " -"summary to appear:" +"Run the quickstart example, monitor the ``ServerApp`` logs and wait for " +"the summary to appear:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:100 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:102 msgid "Step 4: Update the Application" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:102 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:104 msgid "In the next step, change the application code." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:104 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:106 msgid "" "For example, go to the ``task.py`` file in the ``quickstart-" "compose/quickstart_compose/`` directory and add a ``print`` call in the " "``get_weights`` function:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:108 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:110 msgid "quickstart-compose/quickstart_compose/task.py" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:119 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:121 msgid "Rebuild and restart the services." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:123 -msgid "" -"If you have modified the dependencies listed in your ``pyproject.toml`` " -"file, it is essential to rebuild images." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:126 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:128 msgid "If you haven't made any changes, you can skip this step." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:128 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:130 msgid "Run the following command to rebuild and restart the services:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:134 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:136 msgid "Run the updated quickstart example:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:140 -msgid "In the SuperExec logs, you should find the ``Get weights`` line:" +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:142 +msgid "In the ``ServerApp`` logs, you should find the ``Get weights`` line:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:157 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:155 msgid "Step 5: Persisting the SuperLink State" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:159 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:157 msgid "" "In this step, Flower services are configured to persist the state of the " "SuperLink service, ensuring that it maintains its state even after a " "restart." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:164 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:162 msgid "" "When working with Docker Compose on Linux, you may need to create the " "``state`` directory first and change its ownership to ensure proper " "access and permissions." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:169 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:219 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:167 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:217 msgid "Run the command:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:178 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:176 msgid "" "``-f compose.yml``: Specify the YAML file that contains the basic Flower " "service definitions." @@ -3890,17 +4083,17 @@ msgid "" "rules>`_." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:186 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:240 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:367 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:184 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:238 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:369 msgid "Rerun the ``quickstart-compose`` project:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:192 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:190 msgid "Check the content of the ``state`` directory:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:199 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:197 msgid "" "You should see a ``state.db`` file in the ``state`` directory. If you " "restart the service, the state file will be used to restore the state " @@ -3908,119 +4101,102 @@ msgid "" "if the containers are stopped and started again." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:207 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:205 msgid "Step 6: Run Flower with TLS" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:209 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:207 msgid "" "To demonstrate how to enable TLS, generate self-signed certificates using" " the ``certs.yml`` Compose file." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:216 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:214 msgid "" "For production environments, use a service like `Let's Encrypt " "`_ to obtain your certificates." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:234 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:232 msgid "Restart the services with TLS enabled:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:247 -msgid "Step 7: Add another SuperNode" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:249 -msgid "" -"You can add more SuperNodes and ClientApps by duplicating their " -"definitions in the ``compose.yml`` file." +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:245 +msgid "Step 7: Add another SuperNode and ClientApp" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:252 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:247 msgid "" -"Just give each new SuperNode and ClientApp service a unique service name " -"like ``supernode-3``, ``clientapp-3``, etc." +"You can add more SuperNodes and ClientApps by uncommenting their " +"definitions in the ``compose.yml`` file:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:255 -msgid "In ``compose.yml``, add the following:" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:257 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:250 msgid "compose.yml" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:308 -msgid "" -"If you also want to enable TLS for the new SuperNodes, duplicate the " -"SuperNode definition for each new SuperNode service in the ``with-" -"tls.yml`` file." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:311 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:302 msgid "" -"Make sure that the names of the services match with the one in the " -"``compose.yml`` file." +"If you also want to enable TLS for the new SuperNode, uncomment the " +"definition in the ``with-tls.yml`` file:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:313 -msgid "In ``with-tls.yml``, add the following:" +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:305 +msgid "with-tls.yml" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:315 -msgid "with-tls.yml" +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:326 +msgid "Restart the services with:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:337 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:335 msgid "Step 8: Persisting the SuperLink State and Enabling TLS" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:339 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:337 msgid "" "To run Flower with persisted SuperLink state and enabled TLS, a slight " "change in the ``with-state.yml`` file is required:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:342 -msgid "Comment out the lines 2-4 and uncomment the lines 5-9:" +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:340 +msgid "Comment out the lines 2-6 and uncomment the lines 7-13:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:344 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:342 msgid "with-state.yml" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:361 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:363 msgid "Restart the services:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:374 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:376 msgid "Step 9: Merge Multiple Compose Files" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:376 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:378 msgid "" "You can merge multiple Compose files into a single file. For instance, if" " you wish to combine the basic configuration with the TLS configuration, " "execute the following command:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:385 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:387 msgid "" "This will merge the contents of ``compose.yml`` and ``with-tls.yml`` into" " a new file called ``my_compose.yml``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:389 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:391 msgid "Step 10: Clean Up" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:391 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:393 msgid "Remove all services and volumes:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:400 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:402 msgid ":doc:`run-quickstart-examples-docker-compose`" msgstr "" @@ -4830,7 +5006,7 @@ msgid "" msgstr "" #: ../../source/how-to-authenticate-supernodes.rst:100 -#: ../../source/how-to-enable-ssl-connections.rst:71 +#: ../../source/how-to-enable-tls-connections.rst:108 #: ../../source/how-to-use-built-in-mods.rst:95 #: ../../source/tutorial-series-what-is-federated-learning.ipynb:287 msgid "Conclusion" @@ -5243,39 +5419,39 @@ msgid "" " to apply the new parameters to a model." msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:2 -msgid "Enable SSL connections" +#: ../../source/how-to-enable-tls-connections.rst:2 +msgid "Enable TLS connections" msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:4 +#: ../../source/how-to-enable-tls-connections.rst:4 msgid "" -"This guide describes how to a SSL-enabled secure Flower server " +"This guide describes how to a TLS-enabled secure Flower server " "(``SuperLink``) can be started and how a Flower client (``SuperNode``) " "can establish a secure connections to it." msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:8 +#: ../../source/how-to-enable-tls-connections.rst:8 msgid "" "A complete code example demonstrating a secure connection can be found " "`here `_." msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:11 +#: ../../source/how-to-enable-tls-connections.rst:11 msgid "" "The code example comes with a ``README.md`` file which explains how to " -"start it. Although it is already SSL-enabled, it might be less " +"start it. Although it is already TLS-enabled, it might be less " "descriptive on how it does so. Stick to this guide for a deeper " "introduction to the topic." msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:16 +#: ../../source/how-to-enable-tls-connections.rst:16 msgid "Certificates" msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:18 +#: ../../source/how-to-enable-tls-connections.rst:18 msgid "" -"Using SSL-enabled connections requires certificates to be passed to the " +"Using TLS-enabled connections requires certificates to be passed to the " "server and client. For the purpose of this guide we are going to generate" " self-signed certificates. As this can become quite complex we are going " "to ask you to run the script in ``examples/advanced-" @@ -5283,15 +5459,15 @@ msgid "" "sequence:" msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:29 +#: ../../source/how-to-enable-tls-connections.rst:29 msgid "" "This will generate the certificates in ``examples/advanced-" "tensorflow/.cache/certificates``." msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:32 +#: ../../source/how-to-enable-tls-connections.rst:32 msgid "" -"The approach for generating SSL certificates in the context of this " +"The approach for generating TLS certificates in the context of this " "example can serve as an inspiration and starting point, but it should not" " be used as a reference for production environments. Please refer to " "other sources regarding the issue of correctly generating certificates " @@ -5300,61 +5476,99 @@ msgid "" "generated using the scripts mentioned in this guide." msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:40 +#: ../../source/how-to-enable-tls-connections.rst:40 msgid "Server (SuperLink)" msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:42 +#: ../../source/how-to-enable-tls-connections.rst:42 msgid "" -"Use the following terminal command to start a sever (SuperLink) that uses" -" the previously generated certificates:" +"Navigate to the ``examples/advanced-tensorflow`` folder (`here " +"`_) and use the following terminal command to start a server " +"(SuperLink) that uses the previously generated certificates:" msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:52 +#: ../../source/how-to-enable-tls-connections.rst:54 msgid "" "When providing certificates, the server expects a tuple of three " "certificates paths: CA certificate, server certificate and server private" " key." msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:56 -msgid "Client (SuperNode)" +#: ../../source/how-to-enable-tls-connections.rst:58 +msgid "Clients (SuperNode)" msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:58 +#: ../../source/how-to-enable-tls-connections.rst:60 msgid "" "Use the following terminal command to start a client (SuperNode) that " "uses the previously generated certificates:" msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:67 +#: ../../source/how-to-enable-tls-connections.rst:71 msgid "" "When setting ``root_certificates``, the client expects a file path to " "PEM-encoded root certificates." msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:73 +#: ../../source/how-to-enable-tls-connections.rst:74 +msgid "" +"In another terminal, start a second SuperNode that uses the same " +"certificates:" +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:84 +msgid "" +"Note that in the second SuperNode, if you run both on the same machine, " +"you must specify a different port for the ``ClientAppIO`` API address to " +"avoid clashing with the first SuperNode." +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:89 +msgid "Executing ``flwr run`` with TLS" +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:91 +msgid "" +"The root certificates used for executing ``flwr run`` is specified in the" +" ``pyproject.toml`` of your app." +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:100 +msgid "" +"Note that the path to the ``root-certificates`` is relative to the root " +"of the project. Now, you can run the example by executing the following:" +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:110 msgid "" "You should now have learned how to generate self-signed certificates " -"using the given script, start an SSL-enabled server and have a client " -"establish a secure connection to it." +"using the given script, start an TLS-enabled server and have two clients " +"establish secure connections to it. You should also have learned how to " +"run your Flower project using ``flwr run`` with TLS enabled." msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:78 +#: ../../source/how-to-enable-tls-connections.rst:117 +msgid "" +"For running a Docker setup with TLS enabled, please refer to :doc:`docker" +"/enable-tls`." +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:121 msgid "Additional resources" msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:80 +#: ../../source/how-to-enable-tls-connections.rst:123 msgid "" "These additional sources might be relevant if you would like to dive " "deeper into the topic of certificates:" msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:83 +#: ../../source/how-to-enable-tls-connections.rst:126 msgid "`Let's Encrypt `_" msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:84 +#: ../../source/how-to-enable-tls-connections.rst:127 msgid "`certbot `_" msgstr "" @@ -5704,7 +5918,6 @@ msgid "Install stable release" msgstr "" #: ../../source/how-to-install-flower.rst:14 -#: ../../source/how-to-upgrade-to-flower-next.rst:66 msgid "Using pip" msgstr "" @@ -6464,10 +6677,10 @@ msgstr "" #: ../../source/how-to-upgrade-to-flower-1.0.rst:6 msgid "" "This guide is for users who have already worked with Flower 0.x and want " -"to upgrade to Flower 1.0. Newer versions of Flower (1.12+) are based on a" -" new architecture (previously called Flower Next) and not covered in this" -" guide. After upgrading Flower 0.x projects to Flower 1.0, please refer " -"to :doc:`Upgrade to Flower Next ` to make " +"to upgrade to Flower 1.0. Newer versions of Flower (1.13 and later) are " +"based on a new architecture and not covered in this guide. After " +"upgrading Flower 0.x projects to Flower 1.0, please refer to " +":doc:`Upgrade to Flower 1.13 ` to make " "your project compatible with the lastest version of Flower." msgstr "" @@ -6480,7 +6693,7 @@ msgid "" msgstr "" #: ../../source/how-to-upgrade-to-flower-1.0.rst:19 -#: ../../source/how-to-upgrade-to-flower-next.rst:63 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:49 msgid "Install update" msgstr "" @@ -6524,7 +6737,7 @@ msgid "" msgstr "" #: ../../source/how-to-upgrade-to-flower-1.0.rst:37 -#: ../../source/how-to-upgrade-to-flower-next.rst:121 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:88 msgid "Required changes" msgstr "" @@ -6728,7 +6941,7 @@ msgid "" msgstr "" #: ../../source/how-to-upgrade-to-flower-1.0.rst:130 -#: ../../source/how-to-upgrade-to-flower-next.rst:349 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:451 msgid "Further help" msgstr "" @@ -6741,186 +6954,245 @@ msgid "" "`_ and use the channel ``#questions``." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:2 -msgid "Upgrade to Flower Next" +#: ../../source/how-to-upgrade-to-flower-1.13.rst:2 +msgid "Upgrade to Flower 1.13" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:4 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:4 msgid "" -"Welcome to the migration guide for updating Flower to Flower Next! " +"Welcome to the migration guide for updating Flower to Flower 1.13! " "Whether you're a seasoned user or just getting started, this guide will " "help you smoothly transition your existing setup to take advantage of the" -" latest features and improvements in Flower Next, starting from version " -"1.8." +" latest features and improvements in Flower 1.13." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:11 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:10 msgid "" -"This guide shows how to reuse pre-``1.8`` Flower code with minimum code " -"changes by using the *compatibility layer* in Flower Next. In another " -"guide, we will show how to run Flower Next end-to-end with pure Flower " -"Next APIs." +"This guide shows how to make pre-``1.13`` Flower code compatible with " +"Flower 1.13 (and later) with only minimal code changes." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:15 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:13 msgid "Let's dive in!" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:68 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:51 msgid "" -"Here's how to update an existing installation of Flower to Flower Next " +"Here's how to update an existing installation of Flower to Flower 1.13 " "with ``pip``:" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:74 -msgid "or if you need Flower Next with simulation:" +#: ../../source/how-to-upgrade-to-flower-1.13.rst:57 +msgid "or if you need Flower 1.13 with simulation:" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:80 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:63 msgid "" "Ensure you set the following version constraint in your " "``requirements.txt``" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:90 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:73 msgid "or ``pyproject.toml``:" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:101 -msgid "Using Poetry" +#: ../../source/how-to-upgrade-to-flower-1.13.rst:90 +msgid "" +"Starting with Flower 1.8, the *infrastructure* and *application layers* " +"have been decoupled. Flower 1.13 enforces this separation further. Among " +"other things, this allows you to run the exact same code in a simulation " +"as in a real deployment." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:103 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:94 msgid "" -"Update the ``flwr`` dependency in ``pyproject.toml`` and then reinstall " -"(don't forget to delete ``poetry.lock`` via ``rm poetry.lock`` before " -"running ``poetry install``)." +"Instead of starting a client in code via ``start_client()``, you create a" +" |clientapp_link|_. Instead of starting a server in code via " +"``start_server()``, you create a |serverapp_link|_. Both ``ClientApp`` " +"and ``ServerApp`` are started by the long-running components of the " +"server and client: the `SuperLink` and `SuperNode`, respectively." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:106 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:102 msgid "" -"Ensure you set the following version constraint in your " -"``pyproject.toml``:" +"For more details on SuperLink and SuperNode, please see the " +"|flower_architecture_link|_ ." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:123 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:105 msgid "" -"In Flower Next, the *infrastructure* and *application layers* have been " -"decoupled. Instead of starting a client in code via ``start_client()``, " -"you create a |clientapp_link|_ and start it via the command line. Instead" -" of starting a server in code via ``start_server()``, you create a " -"|serverapp_link|_ and start it via the command line. The long-running " -"components of server and client are called SuperLink and SuperNode. The " -"following non-breaking changes that require manual updates and allow you " -"to run your project both in the traditional way and in the Flower Next " -"way:" +"The following non-breaking changes require manual updates and allow you " +"to run your project both in the traditional (now deprecated) way and in " +"the new (recommended) Flower 1.13 way:" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:132 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:110 msgid "|clientapp_link|_" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:134 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:112 msgid "" "Wrap your existing client with |clientapp_link|_ instead of launching it " -"via |startclient_link|_. Here's an example:" +"via ``start_client()``. Here's an example:" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:157 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:146 msgid "|serverapp_link|_" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:159 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:148 msgid "" "Wrap your existing strategy with |serverapp_link|_ instead of starting " -"the server via |startserver_link|_. Here's an example:" +"the server via ``start_server()``. Here's an example:" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:180 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:185 msgid "Deployment" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:182 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:187 msgid "" -"Run the ``SuperLink`` using |flowernext_superlink_link|_ before running, " -"in sequence, |flowernext_clientapp_link|_ (2x) and " -"|flowernext_serverapp_link|_. There is no need to execute `client.py` and" -" `server.py` as Python scripts." +"In a terminal window, start the SuperLink using |flower_superlink_link|_." +" Then, in two additional terminal windows, start two SuperNodes using " +"|flower_supernode_link|_ (2x). There is no need to directly run " +"``client.py`` and ``server.py`` as Python scripts." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:185 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:190 msgid "" -"Here's an example to start the server without HTTPS (only for " -"prototyping):" +"Here's an example to start the server without HTTPS (insecure mode, only " +"for prototyping):" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:201 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:195 msgid "" -"Here's another example to start with HTTPS. Use the ``--ssl-ca-" -"certfile``, ``--ssl-certfile``, and ``--ssl-keyfile`` command line " -"options to pass paths to (CA certificate, server certificate, and server " -"private key)." +"For a comprehensive walk-through on how to deploy Flower using Docker, " +"please refer to the :doc:`docker/index` guide." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:229 -msgid "Simulation in CLI" +#: ../../source/how-to-upgrade-to-flower-1.13.rst:218 +msgid "" +"Here's another example to start both SuperLink and SuperNodes with HTTPS." +" Use the ``--ssl-ca-certfile``, ``--ssl-certfile``, and ``--ssl-keyfile``" +" command line options to pass paths to (CA certificate, server " +"certificate, and server private key)." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:246 +msgid "Simulation (CLI)" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:231 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:248 msgid "" "Wrap your existing client and strategy with |clientapp_link|_ and " -"|serverapp_link|_, respectively. There is no need to use |startsim_link|_" -" anymore. Here's an example:" +"|serverapp_link|_, respectively. There is no need to use " +"``start_simulation()`` anymore. Here's an example:" +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:253 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:389 +msgid "" +"For a comprehensive guide on how to setup and run Flower simulations " +"please read the |flower_how_to_run_simulations_link|_ guide." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:264 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:310 +msgid "Depending on your Flower version, you can run your simulation as follows:" +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:312 msgid "" -"Run |flower_simulation_link|_ in CLI and point to the ``server_app`` / " +"For Flower 1.11 and later, run ``flwr run`` in the terminal. This is the " +"recommended way to start simulations, other ways are deprecated and no " +"longer recommended." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:314 +msgid "" +"DEPRECATED For Flower versions between 1.8 and 1.10, run ``flower-" +"simulation`` in the terminal and point to the ``server_app`` / " "``client_app`` object in the code instead of executing the Python script." -" Here's an example (assuming the ``server_app`` and ``client_app`` " -"objects are in a ``sim.py`` module):" +" In the code snippet below, there is an example (assuming the " +"``server_app`` and ``client_app`` objects are in a ``sim.py`` module)." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:318 +msgid "DEPRECATED For Flower versions before 1.8, run the Python script directly." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:281 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:337 msgid "" -"Set default resources for each |clientapp_link|_ using the ``--backend-" -"config`` command line argument instead of setting the " -"``client_resources`` argument in |startsim_link|_. Here's an example:" +"Depending on your Flower version, you can also define the default " +"resources as follows:" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:305 -msgid "Simulation in a Notebook" +#: ../../source/how-to-upgrade-to-flower-1.13.rst:339 +msgid "" +"For Flower 1.11 and later, you can edit your ``pyproject.toml`` file and " +"then run ``flwr run`` in the terminal as shown in the example below." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:341 +msgid "" +"DEPRECATED For Flower versions between 1.8 and 1.10, you can adjust the " +"resources for each |clientapp_link|_ using the ``--backend-config`` " +"command line argument instead of setting the ``client_resources`` " +"argument in ``start_simulation()``." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:344 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:384 +msgid "" +"DEPRECATED For Flower versions before 1.8, you need to run " +"``start_simulation()`` and pass a dictionary of the required resources to" +" the ``client_resources`` argument." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:375 +msgid "Simulation (Notebook)" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:307 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:377 msgid "" -"Run |runsim_link|_ in your notebook instead of |startsim_link|_. Here's " -"an example:" +"To run your simulation from within a notebook, please consider the " +"following examples depending on your Flower version:" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:351 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:380 msgid "" -"Some official `Flower code examples `_ " -"are already updated to Flower Next so they can serve as a reference for " -"using the Flower Next API. If there are further questions, `join the " -"Flower Slack `_ and use the channel " -"``#questions``. You can also `participate in Flower Discuss " -"`_ where you can find us answering questions," -" or share and learn from others about migrating to Flower Next." +"For Flower 1.11 and later, you need to run |runsim_link|_ in your " +"notebook instead of ``start_simulation()``." msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:358 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:382 +msgid "" +"DEPRECATED For Flower versions between 1.8 and 1.10, you need to run " +"|runsim_link|_ in your notebook instead of ``start_simulation()`` and " +"configure the resources." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:453 +msgid "" +"Most official `Flower code examples `_ " +"are already updated to Flower 1.13 so they can serve as a reference for " +"using the Flower 1.13 API. If there are further questions, `join the " +"Flower Slack `_ (and use the channel " +"``#questions``) or post them on `Flower Discuss " +"`_ where you can find the community posting " +"and answering questions." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:460 msgid "Important" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:360 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:462 msgid "" -"As we continuously enhance Flower Next at a rapid pace, we'll be " -"periodically updating this guide. Please feel free to share any feedback " -"with us!" +"As we continuously enhance Flower at a rapid pace, we'll be periodically " +"updating this guide. Please feel free to share any feedback with us!" msgstr "" -#: ../../source/how-to-upgrade-to-flower-next.rst:366 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:465 msgid "Happy migrating! 🚀" msgstr "" @@ -7467,6 +7739,221 @@ msgstr "" msgid "``flwr`` CLI" msgstr "``FLWR_VERSION``" +#: ../../flwr:1 +msgid "flwr is the Flower command line interface." +msgstr "" + +#: ../../source/ref-api-cli.rst +msgid "Options" +msgstr "" + +#: ../../flwr:1 +msgid "Install completion for the current shell." +msgstr "" + +#: ../../flwr:1 +msgid "" +"Show completion for the current shell, to copy it or customize the " +"installation." +msgstr "" + +#: ../../flwr build:1 +msgid "Build a Flower App into a Flower App Bundle (FAB)." +msgstr "" + +#: ../../flwr build:1 +msgid "" +"You can run ``flwr build`` without any arguments to bundle the app " +"located in the current directory. Alternatively, you can you can specify " +"a path using the ``--app`` option to bundle an app located at the " +"provided path. For example:" +msgstr "" + +#: ../../flwr build:1 +msgid "``flwr build --app ./apps/flower-hello-world``." +msgstr "" + +#: ../../flwr build:1 +msgid "Path of the Flower App to bundle into a FAB" +msgstr "" + +#: ../../flwr install:1 +msgid "Install a Flower App Bundle." +msgstr "" + +#: ../../flwr install:1 +msgid "It can be ran with a single FAB file argument:" +msgstr "" + +#: ../../flwr install:1 +msgid "``flwr install ./target_project.fab``" +msgstr "" + +#: ../../flwr install:1 +msgid "The target install directory can be specified with ``--flwr-dir``:" +msgstr "" + +#: ../../flwr install:1 +msgid "``flwr install ./target_project.fab --flwr-dir ./docs/flwr``" +msgstr "" + +#: ../../flwr install:1 +msgid "" +"This will install ``target_project`` to ``./docs/flwr/``. By default, " +"``flwr-dir`` is equal to:" +msgstr "" + +#: ../../flwr install:1 +msgid "``$FLWR_HOME/`` if ``$FLWR_HOME`` is defined" +msgstr "" + +#: ../../flwr install:1 +msgid "``$XDG_DATA_HOME/.flwr/`` if ``$XDG_DATA_HOME`` is defined" +msgstr "" + +#: ../../flwr install:1 +msgid "``$HOME/.flwr/`` in all other cases" +msgstr "" + +#: ../../flwr install:1 +msgid "The desired install path." +msgstr "" + +#: ../../source/ref-api-cli.rst +#, fuzzy +msgid "Arguments" +msgstr "Argumento de compilação" + +#: ../../flwr install:1 log:1 ls:1 new:1 run:1 +#, fuzzy +msgid "Optional argument" +msgstr "Argumento de compilação" + +#: ../../flwr install:1 +msgid "The source FAB file to install." +msgstr "" + +#: ../../flwr log:1 +msgid "Get logs from a Flower project run." +msgstr "" + +#: ../../flwr log:1 +msgid "Flag to stream or print logs from the Flower run" +msgstr "" + +#: ../../flwr log ls run +msgid "default" +msgstr "" + +#: ../../flwr log:1 +msgid "``True``" +msgstr "" + +#: ../../flwr log:1 +#, fuzzy +msgid "Required argument" +msgstr "Argumento de compilação" + +#: ../../flwr log:1 +msgid "The Flower run ID to query" +msgstr "" + +#: ../../flwr log:1 +msgid "Path of the Flower project to run" +msgstr "" + +#: ../../flwr log:1 +msgid "Name of the federation to run the app on" +msgstr "" + +#: ../../flwr ls:1 +msgid "List runs." +msgstr "" + +#: ../../flwr ls:1 +msgid "List all runs" +msgstr "" + +#: ../../flwr ls:1 run:1 +#, fuzzy +msgid "``False``" +msgstr "``FLWR_VERSION``" + +#: ../../flwr ls:1 +msgid "Specific run ID to display" +msgstr "" + +#: ../../flwr ls:1 +#, fuzzy +msgid "Path of the Flower project" +msgstr "O nome do repositório da imagem base." + +#: ../../flwr ls:1 +msgid "Name of the federation" +msgstr "" + +#: ../../flwr new:1 +msgid "Create new Flower App." +msgstr "" + +#: ../../flwr new:1 +msgid "The ML framework to use" +msgstr "" + +#: ../../flwr new +msgid "options" +msgstr "" + +#: ../../flwr new:1 +msgid "" +"PyTorch | TensorFlow | sklearn | HuggingFace | JAX | MLX | NumPy | " +"FlowerTune | Flower Baseline" +msgstr "" + +#: ../../flwr new:1 +msgid "The Flower username of the author" +msgstr "" + +#: ../../flwr new:1 +#, fuzzy +msgid "The name of the Flower App" +msgstr "O nome do repositório da imagem base." + +#: ../../flwr run:1 +msgid "Run Flower App." +msgstr "" + +#: ../../flwr run:1 +msgid "Override configuration key-value pairs, should be of the format:" +msgstr "" + +#: ../../flwr run:1 +msgid "" +"`--run-config 'key1=\"value1\" key2=\"value2\"' --run-config " +"'key3=\"value3\"'`" +msgstr "" + +#: ../../flwr run:1 +msgid "" +"Note that `key1`, `key2`, and `key3` in this example need to exist inside" +" the `pyproject.toml` in order to be properly overriden." +msgstr "" + +#: ../../flwr run:1 +msgid "" +"Use `--stream` with `flwr run` to display logs; logs are not streamed by " +"default." +msgstr "" + +#: ../../flwr run:1 +#, fuzzy +msgid "Path of the Flower App to run." +msgstr "O nome do repositório da imagem base." + +#: ../../flwr run:1 +msgid "Name of the federation to run the app on." +msgstr "" + #: ../../source/ref-api-cli.rst:19 #, fuzzy msgid "``flower-superlink``" @@ -7535,7 +8022,7 @@ msgid "Modules" msgstr "" #: ../../source/ref-api/flwr.rst:35::1 -msgid ":py:obj:`client `\\" +msgid ":py:obj:`flwr.client `\\" msgstr "" #: ../../source/ref-api/flwr.rst:35::1 flwr.client:1 of @@ -7543,7 +8030,7 @@ msgid "Flower client." msgstr "" #: ../../source/ref-api/flwr.rst:35::1 -msgid ":py:obj:`common `\\" +msgid ":py:obj:`flwr.common `\\" msgstr "" #: ../../source/ref-api/flwr.rst:35::1 flwr.common:1 of @@ -7551,7 +8038,7 @@ msgid "Common components shared between server and client." msgstr "" #: ../../source/ref-api/flwr.rst:35::1 -msgid ":py:obj:`server `\\" +msgid ":py:obj:`flwr.server `\\" msgstr "" #: ../../source/ref-api/flwr.rst:35::1 @@ -7561,7 +8048,7 @@ msgid "Flower server." msgstr "" #: ../../source/ref-api/flwr.rst:35::1 -msgid ":py:obj:`simulation `\\" +msgid ":py:obj:`flwr.simulation `\\" msgstr "" #: ../../source/ref-api/flwr.rst:35::1 flwr.simulation:1 of @@ -7642,7 +8129,7 @@ msgid "Abstract base class for Flower clients using NumPy." msgstr "" #: ../../source/ref-api/flwr.client.rst:50::1 -msgid ":py:obj:`mod `\\" +msgid ":py:obj:`flwr.client.mod `\\" msgstr "" #: ../../source/ref-api/flwr.client.rst:50::1 flwr.client.mod:1 of @@ -7840,49 +8327,59 @@ msgstr "" msgid "Getter for `Context` client attribute." msgstr "" -#: ../../source/ref-api/flwr.client.Client.rst -#: ../../source/ref-api/flwr.client.NumPyClient.rst -#: ../../source/ref-api/flwr.client.mod.LocalDpMod.rst -#: ../../source/ref-api/flwr.common.Array.rst -#: ../../source/ref-api/flwr.common.ConfigsRecord.rst -#: ../../source/ref-api/flwr.common.Context.rst -#: ../../source/ref-api/flwr.common.Error.rst -#: ../../source/ref-api/flwr.common.Message.rst -#: ../../source/ref-api/flwr.common.Metadata.rst -#: ../../source/ref-api/flwr.common.MetricsRecord.rst #: ../../source/ref-api/flwr.common.Parameters.rst:2 -#: ../../source/ref-api/flwr.common.ParametersRecord.rst -#: ../../source/ref-api/flwr.common.RecordSet.rst -#: ../../source/ref-api/flwr.server.ClientManager.rst -#: ../../source/ref-api/flwr.server.Driver.rst -#: ../../source/ref-api/flwr.server.ServerAppComponents.rst -#: ../../source/ref-api/flwr.server.SimpleClientManager.rst -#: ../../source/ref-api/flwr.server.strategy.Bulyan.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgAdaptive.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgFixed.rst -#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyClientSideAdaptiveClipping.rst -#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyClientSideFixedClipping.rst -#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyServerSideAdaptiveClipping.rst -#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyServerSideFixedClipping.rst -#: ../../source/ref-api/flwr.server.strategy.FedAdagrad.rst -#: ../../source/ref-api/flwr.server.strategy.FedAdam.rst -#: ../../source/ref-api/flwr.server.strategy.FedAvg.rst -#: ../../source/ref-api/flwr.server.strategy.FedAvgAndroid.rst -#: ../../source/ref-api/flwr.server.strategy.FedAvgM.rst -#: ../../source/ref-api/flwr.server.strategy.FedOpt.rst -#: ../../source/ref-api/flwr.server.strategy.FedProx.rst -#: ../../source/ref-api/flwr.server.strategy.FedTrimmedAvg.rst -#: ../../source/ref-api/flwr.server.strategy.FedYogi.rst -#: ../../source/ref-api/flwr.server.strategy.Krum.rst -#: ../../source/ref-api/flwr.server.strategy.Strategy.rst -#: ../../source/ref-api/flwr.server.workflow.SecAggPlusWorkflow.rst -#: ../../source/ref-api/flwr.server.workflow.SecAggWorkflow.rst -#: ../../source/ref-api/flwr.simulation.SimulationIoConnection.rst -#: ../../source/ref-api/flwr.simulation.run_simulation.rst -#: ../../source/ref-api/flwr.simulation.start_simulation.rst #: flwr.client.app.start_client flwr.client.app.start_numpy_client -#: flwr.server.app.start_server -#: flwr.server.driver.driver.Driver.send_and_receive of +#: flwr.client.client.Client.evaluate flwr.client.client.Client.fit +#: flwr.client.client.Client.get_parameters +#: flwr.client.client.Client.get_properties +#: flwr.client.mod.localdp_mod.LocalDpMod +#: flwr.client.numpy_client.NumPyClient.evaluate +#: flwr.client.numpy_client.NumPyClient.fit +#: flwr.client.numpy_client.NumPyClient.get_parameters +#: flwr.client.numpy_client.NumPyClient.get_properties +#: flwr.common.context.Context flwr.common.message.Error +#: flwr.common.message.Message flwr.common.message.Message.create_error_reply +#: flwr.common.message.Message.create_reply flwr.common.message.Metadata +#: flwr.common.record.configsrecord.ConfigsRecord +#: flwr.common.record.metricsrecord.MetricsRecord +#: flwr.common.record.parametersrecord.Array +#: flwr.common.record.parametersrecord.ParametersRecord +#: flwr.common.record.recordset.RecordSet flwr.server.app.start_server +#: flwr.server.client_manager.ClientManager.register +#: flwr.server.client_manager.ClientManager.unregister +#: flwr.server.client_manager.SimpleClientManager.register +#: flwr.server.client_manager.SimpleClientManager.unregister +#: flwr.server.client_manager.SimpleClientManager.wait_for +#: flwr.server.driver.driver.Driver.create_message +#: flwr.server.driver.driver.Driver.pull_messages +#: flwr.server.driver.driver.Driver.push_messages +#: flwr.server.driver.driver.Driver.send_and_receive +#: flwr.server.driver.driver.Driver.set_run +#: flwr.server.serverapp_components.ServerAppComponents +#: flwr.server.strategy.bulyan.Bulyan +#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping +#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping +#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping +#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit +#: flwr.server.strategy.fedadagrad.FedAdagrad +#: flwr.server.strategy.fedadam.FedAdam flwr.server.strategy.fedavg.FedAvg +#: flwr.server.strategy.fedavg_android.FedAvgAndroid +#: flwr.server.strategy.fedavgm.FedAvgM flwr.server.strategy.fedopt.FedOpt +#: flwr.server.strategy.fedprox.FedProx +#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg +#: flwr.server.strategy.fedyogi.FedYogi flwr.server.strategy.krum.Krum +#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate +#: flwr.server.strategy.strategy.Strategy.aggregate_fit +#: flwr.server.strategy.strategy.Strategy.configure_evaluate +#: flwr.server.strategy.strategy.Strategy.configure_fit +#: flwr.server.strategy.strategy.Strategy.evaluate +#: flwr.server.strategy.strategy.Strategy.initialize_parameters +#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow +#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow +#: flwr.simulation.run_simulation.run_simulation +#: flwr.simulation.simulationio_connection.SimulationIoConnection of msgid "Parameters" msgstr "" @@ -7893,21 +8390,32 @@ msgid "" "customize the local evaluation process." msgstr "" -#: ../../source/ref-api/flwr.client.Client.rst -#: ../../source/ref-api/flwr.client.NumPyClient.rst -#: ../../source/ref-api/flwr.common.ConfigsRecord.rst -#: ../../source/ref-api/flwr.common.Message.rst -#: ../../source/ref-api/flwr.common.MetricsRecord.rst -#: ../../source/ref-api/flwr.common.ParametersRecord.rst -#: ../../source/ref-api/flwr.server.ClientManager.rst -#: ../../source/ref-api/flwr.server.Driver.rst -#: ../../source/ref-api/flwr.server.SimpleClientManager.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgAdaptive.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgFixed.rst -#: ../../source/ref-api/flwr.server.strategy.Strategy.rst -#: ../../source/ref-api/flwr.simulation.start_simulation.rst -#: flwr.server.app.start_server -#: flwr.server.driver.driver.Driver.send_and_receive of +#: flwr.client.client.Client.evaluate flwr.client.client.Client.fit +#: flwr.client.client.Client.get_parameters +#: flwr.client.client.Client.get_properties +#: flwr.client.numpy_client.NumPyClient.evaluate +#: flwr.client.numpy_client.NumPyClient.fit +#: flwr.client.numpy_client.NumPyClient.get_parameters +#: flwr.client.numpy_client.NumPyClient.get_properties +#: flwr.common.message.Message.create_error_reply +#: flwr.common.message.Message.create_reply flwr.server.app.start_server +#: flwr.server.client_manager.ClientManager.num_available +#: flwr.server.client_manager.ClientManager.register +#: flwr.server.client_manager.SimpleClientManager.num_available +#: flwr.server.client_manager.SimpleClientManager.register +#: flwr.server.client_manager.SimpleClientManager.wait_for +#: flwr.server.driver.driver.Driver.create_message +#: flwr.server.driver.driver.Driver.pull_messages +#: flwr.server.driver.driver.Driver.push_messages +#: flwr.server.driver.driver.Driver.send_and_receive +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit +#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate +#: flwr.server.strategy.strategy.Strategy.aggregate_fit +#: flwr.server.strategy.strategy.Strategy.configure_evaluate +#: flwr.server.strategy.strategy.Strategy.configure_fit +#: flwr.server.strategy.strategy.Strategy.evaluate +#: flwr.server.strategy.strategy.Strategy.initialize_parameters of msgid "Returns" msgstr "" @@ -7917,18 +8425,30 @@ msgid "" "details such as the number of local data examples used for evaluation." msgstr "" -#: ../../source/ref-api/flwr.client.Client.rst -#: ../../source/ref-api/flwr.client.NumPyClient.rst -#: ../../source/ref-api/flwr.common.Message.rst -#: ../../source/ref-api/flwr.server.ClientManager.rst -#: ../../source/ref-api/flwr.server.Driver.rst -#: ../../source/ref-api/flwr.server.SimpleClientManager.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgAdaptive.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgFixed.rst -#: ../../source/ref-api/flwr.server.strategy.Strategy.rst -#: ../../source/ref-api/flwr.simulation.start_simulation.rst -#: flwr.server.app.start_server -#: flwr.server.driver.driver.Driver.send_and_receive of +#: flwr.client.client.Client.evaluate flwr.client.client.Client.fit +#: flwr.client.client.Client.get_parameters +#: flwr.client.client.Client.get_properties +#: flwr.client.numpy_client.NumPyClient.get_parameters +#: flwr.client.numpy_client.NumPyClient.get_properties +#: flwr.common.message.Message.create_error_reply +#: flwr.common.message.Message.create_reply flwr.server.app.start_server +#: flwr.server.client_manager.ClientManager.num_available +#: flwr.server.client_manager.ClientManager.register +#: flwr.server.client_manager.SimpleClientManager.num_available +#: flwr.server.client_manager.SimpleClientManager.register +#: flwr.server.client_manager.SimpleClientManager.wait_for +#: flwr.server.driver.driver.Driver.create_message +#: flwr.server.driver.driver.Driver.pull_messages +#: flwr.server.driver.driver.Driver.push_messages +#: flwr.server.driver.driver.Driver.send_and_receive +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit +#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate +#: flwr.server.strategy.strategy.Strategy.aggregate_fit +#: flwr.server.strategy.strategy.Strategy.configure_evaluate +#: flwr.server.strategy.strategy.Strategy.configure_fit +#: flwr.server.strategy.strategy.Strategy.evaluate +#: flwr.server.strategy.strategy.Strategy.initialize_parameters of msgid "Return type" msgstr "" @@ -7965,10 +8485,6 @@ msgstr "" msgid "The current client properties." msgstr "" -#: ../../source/ref-api/flwr.client.ClientApp.rst:2 -msgid "ClientApp" -msgstr "" - #: flwr.client.client_app.ClientApp:1 flwr.client.mod.localdp_mod.LocalDpMod:1 #: flwr.common.constant.MessageType:1 flwr.common.constant.MessageTypeLegacy:1 #: flwr.common.context.Context:1 flwr.common.message.Error:1 @@ -8247,6 +8763,11 @@ msgstr "" msgid ":py:obj:`make_ffn `\\ \\(ffn\\, mods\\)" msgstr "" +#: ../../source/ref-api/flwr.client.mod.rst:28::1 +#: flwr.client.mod.utils.make_ffn:1 of +msgid "." +msgstr "" + #: ../../source/ref-api/flwr.client.mod.rst:28::1 msgid "" ":py:obj:`message_size_mod `\\ \\(msg\\," @@ -8411,10 +8932,6 @@ msgstr "" msgid "make\\_ffn" msgstr "" -#: flwr.client.mod.utils.make_ffn:1 of -msgid "." -msgstr "" - #: ../../source/ref-api/flwr.client.mod.message_size_mod.rst:2 msgid "message\\_size\\_mod" msgstr "" @@ -8441,14 +8958,6 @@ msgstr "" msgid "secaggplus\\_mod" msgstr "" -#: ../../source/ref-api/flwr.client.run_client_app.rst:2 -msgid "run\\_client\\_app" -msgstr "" - -#: ../../source/ref-api/flwr.client.run_supernode.rst:2 -msgid "run\\_supernode" -msgstr "" - #: ../../source/ref-api/flwr.client.start_client.rst:2 msgid "start\\_client" msgstr "" @@ -9168,12 +9677,7 @@ msgid "Return number of Bytes stored in this object." msgstr "" #: collections.abc.MutableMapping.clear:1::1 of -msgid ":py:obj:`get `\\ \\(key\\[\\, default\\]\\)" -msgstr "" - -#: collections.abc.Mapping.get:1 -#: collections.abc.MutableMapping.clear:1::1 of -msgid "Retrieve the corresponding layout by the string key." +msgid ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" msgstr "" #: collections.abc.MutableMapping.clear:1::1 of @@ -9230,22 +9734,6 @@ msgstr "" msgid "This function counts booleans as occupying 1 Byte." msgstr "" -#: collections.abc.Mapping.get:3 of -msgid "" -"When there isn't an exact match, all the existing keys in the layout map " -"will be treated as a regex and map against the input key again. The first" -" match will be returned, based on the key insertion order. Return None if" -" there isn't any match found." -msgstr "" - -#: collections.abc.Mapping.get:8 of -msgid "the string key as the query for the layout." -msgstr "" - -#: collections.abc.Mapping.get:10 of -msgid "Corresponding layout based on the query." -msgstr "" - #: ../../source/ref-api/flwr.common.Context.rst:2 msgid "Context" msgstr "" @@ -10645,7 +11133,7 @@ msgid ":py:obj:`count_bytes `\\ \\(\\)" msgstr "" #: collections.abc.MutableMapping.clear:1::1 of -msgid ":py:obj:`get `\\ \\(key\\[\\, default\\]\\)" +msgid ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" msgstr "" #: collections.abc.MutableMapping.clear:1::1 of @@ -10777,9 +11265,7 @@ msgid ":py:obj:`count_bytes `\\ \\(\\) msgstr "" #: collections.abc.MutableMapping.clear:1::1 of -msgid "" -":py:obj:`get `\\ \\(key\\[\\, " -"default\\]\\)" +msgid ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" msgstr "" #: collections.abc.MutableMapping.clear:1::1 of @@ -11106,7 +11592,7 @@ msgid "Provides a pool of available clients." msgstr "" #: ../../source/ref-api/flwr.server.rst:56::1 -msgid ":py:obj:`strategy `\\" +msgid ":py:obj:`flwr.server.strategy `\\" msgstr "" #: ../../source/ref-api/flwr.server.rst:56::1 @@ -11115,7 +11601,7 @@ msgid "Contains the strategy abstraction and different implementations." msgstr "" #: ../../source/ref-api/flwr.server.rst:56::1 -msgid ":py:obj:`workflow `\\" +msgid ":py:obj:`flwr.server.workflow `\\" msgstr "" #: ../../source/ref-api/flwr.server.rst:56::1 @@ -11592,10 +12078,6 @@ msgstr "" msgid "Replace server strategy." msgstr "" -#: ../../source/ref-api/flwr.server.ServerApp.rst:2 -msgid "ServerApp" -msgstr "" - #: flwr.server.server_app.ServerApp:5 of msgid "Use the `ServerApp` with an existing `Strategy`:" msgstr "" @@ -11624,8 +12106,7 @@ msgid "" msgstr "" #: flwr.server.app.start_server:14 -#: flwr.server.serverapp_components.ServerAppComponents:6 -#: flwr.simulation.legacy_app.start_simulation:34 of +#: flwr.server.serverapp_components.ServerAppComponents:6 of msgid "" "Currently supported values are `num_rounds` (int, default: 1) and " "`round_timeout` in seconds (float, default: None)." @@ -11741,14 +12222,6 @@ msgstr "" msgid "**success**" msgstr "" -#: ../../source/ref-api/flwr.server.run_server_app.rst:2 -msgid "run\\_server\\_app" -msgstr "" - -#: ../../source/ref-api/flwr.server.run_superlink.rst:2 -msgid "run\\_superlink" -msgstr "" - #: ../../source/ref-api/flwr.server.start_server.rst:2 msgid "start\\_server" msgstr "" @@ -13115,7 +13588,7 @@ msgid "" msgstr "" #: ../../source/ref-api/flwr.server.strategy.FedAdagrad.rst:2 -#: ../../source/ref-changelog.md:1301 +#: ../../source/ref-changelog.md:1412 msgid "FedAdagrad" msgstr "" @@ -14793,13 +15266,13 @@ msgstr "" #: ../../source/ref-api/flwr.simulation.rst:24::1 msgid "" -":py:obj:`start_simulation `\\ \\(\\*\\," -" client\\_fn\\, num\\_clients\\)" +":py:obj:`start_simulation `\\ " +"\\(\\*args\\, \\*\\*kwargs\\)" msgstr "" #: ../../source/ref-api/flwr.simulation.rst:24::1 -#: flwr.simulation.legacy_app.start_simulation:1 of -msgid "Start a Ray-based Flower simulation server." +#: flwr.simulation.start_simulation:1 of +msgid "Log error stating that module `ray` could not be imported." msgstr "" #: ../../source/ref-api/flwr.simulation.rst:31::1 @@ -14890,156 +15363,548 @@ msgstr "" msgid "start\\_simulation" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:5 of +#: ../../source/ref-changelog.md:1 +msgid "Changelog" +msgstr "" + +#: ../../source/ref-changelog.md:3 +msgid "Unreleased" +msgstr "" + +#: ../../source/ref-changelog.md:5 ../../source/ref-changelog.md:21 +#: ../../source/ref-changelog.md:122 ../../source/ref-changelog.md:224 +#: ../../source/ref-changelog.md:328 ../../source/ref-changelog.md:426 +#: ../../source/ref-changelog.md:526 ../../source/ref-changelog.md:590 +#: ../../source/ref-changelog.md:683 ../../source/ref-changelog.md:783 +#: ../../source/ref-changelog.md:867 ../../source/ref-changelog.md:931 +#: ../../source/ref-changelog.md:989 ../../source/ref-changelog.md:1058 +#: ../../source/ref-changelog.md:1187 ../../source/ref-changelog.md:1229 +#: ../../source/ref-changelog.md:1296 ../../source/ref-changelog.md:1362 +#: ../../source/ref-changelog.md:1407 ../../source/ref-changelog.md:1446 +#: ../../source/ref-changelog.md:1479 ../../source/ref-changelog.md:1529 +msgid "What's new?" +msgstr "" + +#: ../../source/ref-changelog.md:7 +msgid "Other changes" +msgstr "" + +#: ../../source/ref-changelog.md:9 ../../source/ref-changelog.md:388 +msgid "Documentation improvements" +msgstr "" + +#: ../../source/ref-changelog.md:11 ../../source/ref-changelog.md:88 +#: ../../source/ref-changelog.md:178 ../../source/ref-changelog.md:212 +#: ../../source/ref-changelog.md:292 ../../source/ref-changelog.md:408 +#: ../../source/ref-changelog.md:504 ../../source/ref-changelog.md:578 +#: ../../source/ref-changelog.md:653 ../../source/ref-changelog.md:765 +#: ../../source/ref-changelog.md:855 ../../source/ref-changelog.md:919 +#: ../../source/ref-changelog.md:977 ../../source/ref-changelog.md:1046 +#: ../../source/ref-changelog.md:1108 ../../source/ref-changelog.md:1127 +#: ../../source/ref-changelog.md:1283 ../../source/ref-changelog.md:1354 +#: ../../source/ref-changelog.md:1391 ../../source/ref-changelog.md:1434 +msgid "Incompatible changes" +msgstr "" + +#: ../../source/ref-changelog.md:13 +msgid "v1.13.0 (2024-11-20)" +msgstr "" + +#: ../../source/ref-changelog.md:15 ../../source/ref-changelog.md:116 +#: ../../source/ref-changelog.md:186 ../../source/ref-changelog.md:218 +#: ../../source/ref-changelog.md:322 ../../source/ref-changelog.md:420 +#: ../../source/ref-changelog.md:520 ../../source/ref-changelog.md:584 +#: ../../source/ref-changelog.md:677 ../../source/ref-changelog.md:777 +#: ../../source/ref-changelog.md:861 ../../source/ref-changelog.md:925 +#: ../../source/ref-changelog.md:983 ../../source/ref-changelog.md:1052 +#: ../../source/ref-changelog.md:1121 +msgid "Thanks to our contributors" +msgstr "" + +#: ../../source/ref-changelog.md:17 ../../source/ref-changelog.md:118 +#: ../../source/ref-changelog.md:188 ../../source/ref-changelog.md:220 +#: ../../source/ref-changelog.md:324 ../../source/ref-changelog.md:422 +#: ../../source/ref-changelog.md:522 ../../source/ref-changelog.md:586 +#: ../../source/ref-changelog.md:679 ../../source/ref-changelog.md:779 +#: ../../source/ref-changelog.md:863 ../../source/ref-changelog.md:927 +#: ../../source/ref-changelog.md:985 msgid "" -"This function is deprecated since 1.13.0. Use :code: `flwr run` to start " -"a Flower simulation." +"We would like to give our special thanks to all the contributors who made" +" the new version of Flower possible (in `git shortlog` order):" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:8 of +#: ../../source/ref-changelog.md:19 msgid "" -"A function creating `Client` instances. The function must have the " -"signature `client_fn(context: Context). It should return a single client " -"instance of type `Client`. Note that the created client instances are " -"ephemeral and will often be destroyed after a single method invocation. " -"Since client instances are not long-lived, they should not attempt to " -"carry state over method invocations. Any state required by the instance " -"(model, dataset, hyperparameters, ...) should be (re-)created in either " -"the call to `client_fn` or the call to any of the client methods (e.g., " -"load evaluation data in the `evaluate` method itself)." +"`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. " +"Beutel`, `Daniel Nata Nugraha`, `Dimitris Stripelis`, `Heng Pan`, " +"`Javier`, `Mohammad Naseri`, `Robert Steiner`, `Waris Gill`, `William " +"Lindskog`, `Yan Gao`, `Yao Xu`, `wwjang` " msgstr "" -#: flwr.simulation.legacy_app.start_simulation:18 of -msgid "The total number of clients in this simulation." +#: ../../source/ref-changelog.md:23 +msgid "" +"**Introduce `flwr ls` command** " +"([#4460](https://github.com/adap/flower/pull/4460), " +"[#4459](https://github.com/adap/flower/pull/4459), " +"[#4477](https://github.com/adap/flower/pull/4477))" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:20 of +#: ../../source/ref-changelog.md:25 msgid "" -"UNSUPPORTED, WILL BE REMOVED. USE `num_clients` INSTEAD. List " -"`client_id`s for each client. This is only required if `num_clients` is " -"not set. Setting both `num_clients` and `clients_ids` with " -"`len(clients_ids)` not equal to `num_clients` generates an error. Using " -"this argument will raise an error." +"The `flwr ls` command is now available to display details about all runs " +"(or one specific run). It supports the following usage options:" +msgstr "" + +#: ../../source/ref-changelog.md:27 +msgid "`flwr ls --runs [] []`: Lists all runs." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:26 of +#: ../../source/ref-changelog.md:28 msgid "" -"CPU and GPU resources for a single client. Supported keys are `num_cpus` " -"and `num_gpus`. To understand the GPU utilization caused by `num_gpus`, " -"as well as using custom resources, please consult the Ray documentation." +"`flwr ls --run-id [] []`: Displays details for " +"a specific run." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:31 of +#: ../../source/ref-changelog.md:30 msgid "" -"An implementation of the abstract base class `flwr.server.Server`. If no " -"instance is provided, then `start_server` will create one." +"This command provides information including the run ID, FAB ID and " +"version, run status, elapsed time, and timestamps for when the run was " +"created, started running, and finished." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:37 of +#: ../../source/ref-changelog.md:32 msgid "" -"An implementation of the abstract base class `flwr.server.Strategy`. If " -"no strategy is provided, then `start_server` will use " -"`flwr.server.strategy.FedAvg`." +"**Fuse SuperLink and SuperExec** " +"([#4358](https://github.com/adap/flower/pull/4358), " +"[#4403](https://github.com/adap/flower/pull/4403), " +"[#4406](https://github.com/adap/flower/pull/4406), " +"[#4357](https://github.com/adap/flower/pull/4357), " +"[#4359](https://github.com/adap/flower/pull/4359), " +"[#4354](https://github.com/adap/flower/pull/4354), " +"[#4229](https://github.com/adap/flower/pull/4229), " +"[#4283](https://github.com/adap/flower/pull/4283), " +"[#4352](https://github.com/adap/flower/pull/4352))" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:41 of +#: ../../source/ref-changelog.md:34 msgid "" -"An implementation of the abstract base class `flwr.server.ClientManager`." -" If no implementation is provided, then `start_simulation` will use " -"`flwr.server.client_manager.SimpleClientManager`." +"SuperExec has been integrated into SuperLink, enabling SuperLink to " +"directly manage ServerApp processes (`flwr-serverapp`). The `flwr` CLI " +"now targets SuperLink's Exec API. Additionally, SuperLink introduces two " +"isolation modes for running ServerApps: `subprocess` (default) and " +"`process`, which can be specified using the `--isolation " +"{subprocess,process}` flag." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:45 of +#: ../../source/ref-changelog.md:36 msgid "" -"Optional dictionary containing arguments for the call to `ray.init`. If " -"ray_init_args is None (the default), Ray will be initialized with the " -"following default args: { \"ignore_reinit_error\": True, " -"\"include_dashboard\": False } An empty dictionary can be used " -"(ray_init_args={}) to prevent any arguments from being passed to " -"ray.init." +"**Introduce `flwr-serverapp` command** " +"([#4394](https://github.com/adap/flower/pull/4394), " +"[#4370](https://github.com/adap/flower/pull/4370), " +"[#4367](https://github.com/adap/flower/pull/4367), " +"[#4350](https://github.com/adap/flower/pull/4350), " +"[#4364](https://github.com/adap/flower/pull/4364), " +"[#4400](https://github.com/adap/flower/pull/4400), " +"[#4363](https://github.com/adap/flower/pull/4363), " +"[#4401](https://github.com/adap/flower/pull/4401), " +"[#4388](https://github.com/adap/flower/pull/4388), " +"[#4402](https://github.com/adap/flower/pull/4402))" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:45 of +#: ../../source/ref-changelog.md:38 msgid "" -"Optional dictionary containing arguments for the call to `ray.init`. If " -"ray_init_args is None (the default), Ray will be initialized with the " -"following default args:" +"The `flwr-serverapp` command has been introduced as a CLI entry point " +"that runs a `ServerApp` process. This process communicates with SuperLink" +" to load and execute the `ServerApp` object, enabling isolated execution " +"and more flexible deployment." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:49 of -msgid "{ \"ignore_reinit_error\": True, \"include_dashboard\": False }" +#: ../../source/ref-changelog.md:40 +msgid "" +"**Improve simulation engine and introduce `flwr-simulation` command** " +"([#4433](https://github.com/adap/flower/pull/4433), " +"[#4486](https://github.com/adap/flower/pull/4486), " +"[#4448](https://github.com/adap/flower/pull/4448), " +"[#4427](https://github.com/adap/flower/pull/4427), " +"[#4438](https://github.com/adap/flower/pull/4438), " +"[#4421](https://github.com/adap/flower/pull/4421), " +"[#4430](https://github.com/adap/flower/pull/4430), " +"[#4462](https://github.com/adap/flower/pull/4462))" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:51 of +#: ../../source/ref-changelog.md:42 msgid "" -"An empty dictionary can be used (ray_init_args={}) to prevent any " -"arguments from being passed to ray.init." +"The simulation engine has been significantly improved, resulting in " +"dramatically faster simulations. Additionally, the `flwr-simulation` " +"command has been introduced to enhance maintainability and provide a " +"dedicated entry point for running simulations." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:54 of +#: ../../source/ref-changelog.md:44 msgid "" -"Set to True to prevent `ray.shutdown()` in case " -"`ray.is_initialized()=True`." +"**Improve SuperLink message management** " +"([#4378](https://github.com/adap/flower/pull/4378), " +"[#4369](https://github.com/adap/flower/pull/4369))" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:56 of +#: ../../source/ref-changelog.md:46 msgid "" -"Optionally specify the type of actor to use. The actor object, which " -"persists throughout the simulation, will be the process in charge of " -"executing a ClientApp wrapping input argument `client_fn`." +"SuperLink now validates the destination node ID of instruction messages " +"and checks the TTL (time-to-live) for reply messages. When pulling reply " +"messages, an error reply will be generated and returned if the " +"corresponding instruction message does not exist, has expired, or if the " +"reply message exists but has expired." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:60 of +#: ../../source/ref-changelog.md:48 msgid "" -"If you want to create your own Actor classes, you might need to pass some" -" input argument. You can use this dictionary for such purpose." +"**Introduce FedDebug baseline** " +"([#3783](https://github.com/adap/flower/pull/3783))" msgstr "" -#: flwr.simulation.legacy_app.start_simulation:63 of +#: ../../source/ref-changelog.md:50 msgid "" -"(default: \"DEFAULT\") Optional string (\"DEFAULT\" or \"SPREAD\") for " -"the VCE to choose in which node the actor is placed. If you are an " -"advanced user needed more control you can use lower-level scheduling " -"strategies to pin actors to specific compute nodes (e.g. via " -"NodeAffinitySchedulingStrategy). Please note this is an advanced feature." -" For all details, please refer to the Ray documentation: " -"https://docs.ray.io/en/latest/ray-core/scheduling/index.html" +"FedDebug is a framework that enhances debugging in Federated Learning by " +"enabling interactive inspection of the training process and automatically" +" identifying clients responsible for degrading the global model's " +"performance—all without requiring testing data or labels. Learn more in " +"the [FedDebug baseline " +"documentation](https://flower.ai/docs/baselines/feddebug.html)." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:72 of -msgid "**hist** -- Object containing metrics from training." +#: ../../source/ref-changelog.md:52 +msgid "" +"**Update documentation** " +"([#4511](https://github.com/adap/flower/pull/4511), " +"[#4010](https://github.com/adap/flower/pull/4010), " +"[#4396](https://github.com/adap/flower/pull/4396), " +"[#4499](https://github.com/adap/flower/pull/4499), " +"[#4269](https://github.com/adap/flower/pull/4269), " +"[#3340](https://github.com/adap/flower/pull/3340), " +"[#4482](https://github.com/adap/flower/pull/4482), " +"[#4387](https://github.com/adap/flower/pull/4387), " +"[#4342](https://github.com/adap/flower/pull/4342), " +"[#4492](https://github.com/adap/flower/pull/4492), " +"[#4474](https://github.com/adap/flower/pull/4474), " +"[#4500](https://github.com/adap/flower/pull/4500), " +"[#4514](https://github.com/adap/flower/pull/4514), " +"[#4236](https://github.com/adap/flower/pull/4236), " +"[#4112](https://github.com/adap/flower/pull/4112), " +"[#3367](https://github.com/adap/flower/pull/3367), " +"[#4501](https://github.com/adap/flower/pull/4501), " +"[#4373](https://github.com/adap/flower/pull/4373), " +"[#4409](https://github.com/adap/flower/pull/4409), " +"[#4356](https://github.com/adap/flower/pull/4356), " +"[#4520](https://github.com/adap/flower/pull/4520), " +"[#4524](https://github.com/adap/flower/pull/4524), " +"[#4525](https://github.com/adap/flower/pull/4525), " +"[#4526](https://github.com/adap/flower/pull/4526), " +"[#4527](https://github.com/adap/flower/pull/4527), " +"[#4528](https://github.com/adap/flower/pull/4528), " +"[#4545](https://github.com/adap/flower/pull/4545), " +"[#4522](https://github.com/adap/flower/pull/4522), " +"[#4534](https://github.com/adap/flower/pull/4534), " +"[#4513](https://github.com/adap/flower/pull/4513), " +"[#4529](https://github.com/adap/flower/pull/4529), " +"[#4441](https://github.com/adap/flower/pull/4441), " +"[#4530](https://github.com/adap/flower/pull/4530), " +"[#4470](https://github.com/adap/flower/pull/4470), " +"[#4553](https://github.com/adap/flower/pull/4553), " +"[#4531](https://github.com/adap/flower/pull/4531), " +"[#4554](https://github.com/adap/flower/pull/4554), " +"[#4555](https://github.com/adap/flower/pull/4555), " +"[#4552](https://github.com/adap/flower/pull/4552), " +"[#4533](https://github.com/adap/flower/pull/4533))" +msgstr "" + +#: ../../source/ref-changelog.md:54 +msgid "" +"Many documentation pages and tutorials have been updated to improve " +"clarity, fix typos, incorporate user feedback, and stay aligned with the " +"latest features in the framework. Key updates include adding a guide for " +"designing stateful `ClientApp` objects, updating the comprehensive guide " +"for setting up and running Flower's `Simulation Engine`, updating the " +"XGBoost, scikit-learn, and JAX quickstart tutorials to use `flwr run`, " +"updating DP guide, removing outdated pages, updating Docker docs, and " +"marking legacy functions as deprecated. The [Secure Aggregation " +"Protocols](https://flower.ai/docs/framework/contributor-ref-secure-" +"aggregation-protocols.html) page has also been updated." +msgstr "" + +#: ../../source/ref-changelog.md:56 +msgid "" +"**Update examples and templates** " +"([#4510](https://github.com/adap/flower/pull/4510), " +"[#4368](https://github.com/adap/flower/pull/4368), " +"[#4121](https://github.com/adap/flower/pull/4121), " +"[#4329](https://github.com/adap/flower/pull/4329), " +"[#4382](https://github.com/adap/flower/pull/4382), " +"[#4248](https://github.com/adap/flower/pull/4248), " +"[#4395](https://github.com/adap/flower/pull/4395), " +"[#4386](https://github.com/adap/flower/pull/4386), " +"[#4408](https://github.com/adap/flower/pull/4408))" +msgstr "" + +#: ../../source/ref-changelog.md:58 +msgid "" +"Multiple examples and templates have been updated to enhance usability " +"and correctness. The updates include the `30-minute-tutorial`, " +"`quickstart-jax`, `quickstart-pytorch`, `advanced-tensorflow` examples, " +"and the FlowerTune template." +msgstr "" + +#: ../../source/ref-changelog.md:60 +msgid "" +"**Improve Docker support** " +"([#4506](https://github.com/adap/flower/pull/4506), " +"[#4424](https://github.com/adap/flower/pull/4424), " +"[#4224](https://github.com/adap/flower/pull/4224), " +"[#4413](https://github.com/adap/flower/pull/4413), " +"[#4414](https://github.com/adap/flower/pull/4414), " +"[#4336](https://github.com/adap/flower/pull/4336), " +"[#4420](https://github.com/adap/flower/pull/4420), " +"[#4407](https://github.com/adap/flower/pull/4407), " +"[#4422](https://github.com/adap/flower/pull/4422), " +"[#4532](https://github.com/adap/flower/pull/4532), " +"[#4540](https://github.com/adap/flower/pull/4540))" +msgstr "" + +#: ../../source/ref-changelog.md:62 +msgid "" +"Docker images and configurations have been updated, including updating " +"Docker Compose files to version 1.13.0, refactoring the Docker build " +"matrix for better maintainability, updating `docker/build-push-action` to" +" 6.9.0, and improving Docker documentation." +msgstr "" + +#: ../../source/ref-changelog.md:64 +msgid "" +"**Allow app installation without internet access** " +"([#4479](https://github.com/adap/flower/pull/4479), " +"[#4475](https://github.com/adap/flower/pull/4475))" +msgstr "" + +#: ../../source/ref-changelog.md:66 +msgid "" +"The `flwr build` command now includes a wheel file in the FAB, enabling " +"Flower app installation in environments without internet access via `flwr" +" install`." msgstr "" -#: ../../source/ref-changelog.md:1 -msgid "Changelog" +#: ../../source/ref-changelog.md:68 +msgid "" +"**Improve `flwr log` command** " +"([#4391](https://github.com/adap/flower/pull/4391), " +"[#4411](https://github.com/adap/flower/pull/4411), " +"[#4390](https://github.com/adap/flower/pull/4390), " +"[#4397](https://github.com/adap/flower/pull/4397))" msgstr "" -#: ../../source/ref-changelog.md:3 -msgid "v1.12.0 (2024-10-14)" +#: ../../source/ref-changelog.md:70 +msgid "" +"**Refactor SuperNode for better maintainability and efficiency** " +"([#4439](https://github.com/adap/flower/pull/4439), " +"[#4348](https://github.com/adap/flower/pull/4348), " +"[#4512](https://github.com/adap/flower/pull/4512), " +"[#4485](https://github.com/adap/flower/pull/4485))" msgstr "" -#: ../../source/ref-changelog.md:5 ../../source/ref-changelog.md:75 -#: ../../source/ref-changelog.md:107 ../../source/ref-changelog.md:211 -#: ../../source/ref-changelog.md:309 ../../source/ref-changelog.md:409 -#: ../../source/ref-changelog.md:473 ../../source/ref-changelog.md:566 -#: ../../source/ref-changelog.md:666 ../../source/ref-changelog.md:750 -#: ../../source/ref-changelog.md:814 ../../source/ref-changelog.md:872 -#: ../../source/ref-changelog.md:941 ../../source/ref-changelog.md:1010 -msgid "Thanks to our contributors" +#: ../../source/ref-changelog.md:72 +msgid "" +"**Support NumPy `2.0`** " +"([#4440](https://github.com/adap/flower/pull/4440))" msgstr "" -#: ../../source/ref-changelog.md:7 ../../source/ref-changelog.md:77 -#: ../../source/ref-changelog.md:109 ../../source/ref-changelog.md:213 -#: ../../source/ref-changelog.md:311 ../../source/ref-changelog.md:411 -#: ../../source/ref-changelog.md:475 ../../source/ref-changelog.md:568 -#: ../../source/ref-changelog.md:668 ../../source/ref-changelog.md:752 -#: ../../source/ref-changelog.md:816 ../../source/ref-changelog.md:874 +#: ../../source/ref-changelog.md:74 msgid "" -"We would like to give our special thanks to all the contributors who made" -" the new version of Flower possible (in `git shortlog` order):" +"**Update infrastructure and CI/CD** " +"([#4466](https://github.com/adap/flower/pull/4466), " +"[#4419](https://github.com/adap/flower/pull/4419), " +"[#4338](https://github.com/adap/flower/pull/4338), " +"[#4334](https://github.com/adap/flower/pull/4334), " +"[#4456](https://github.com/adap/flower/pull/4456), " +"[#4446](https://github.com/adap/flower/pull/4446), " +"[#4415](https://github.com/adap/flower/pull/4415))" +msgstr "" + +#: ../../source/ref-changelog.md:76 +msgid "" +"**Bugfixes** ([#4404](https://github.com/adap/flower/pull/4404), " +"[#4518](https://github.com/adap/flower/pull/4518), " +"[#4452](https://github.com/adap/flower/pull/4452), " +"[#4376](https://github.com/adap/flower/pull/4376), " +"[#4493](https://github.com/adap/flower/pull/4493), " +"[#4436](https://github.com/adap/flower/pull/4436), " +"[#4410](https://github.com/adap/flower/pull/4410), " +"[#4442](https://github.com/adap/flower/pull/4442), " +"[#4375](https://github.com/adap/flower/pull/4375), " +"[#4515](https://github.com/adap/flower/pull/4515))" +msgstr "" + +#: ../../source/ref-changelog.md:78 +msgid "" +"**General improvements** " +"([#4454](https://github.com/adap/flower/pull/4454), " +"[#4365](https://github.com/adap/flower/pull/4365), " +"[#4423](https://github.com/adap/flower/pull/4423), " +"[#4516](https://github.com/adap/flower/pull/4516), " +"[#4509](https://github.com/adap/flower/pull/4509), " +"[#4498](https://github.com/adap/flower/pull/4498), " +"[#4371](https://github.com/adap/flower/pull/4371), " +"[#4449](https://github.com/adap/flower/pull/4449), " +"[#4488](https://github.com/adap/flower/pull/4488), " +"[#4478](https://github.com/adap/flower/pull/4478), " +"[#4392](https://github.com/adap/flower/pull/4392), " +"[#4483](https://github.com/adap/flower/pull/4483), " +"[#4517](https://github.com/adap/flower/pull/4517), " +"[#4330](https://github.com/adap/flower/pull/4330), " +"[#4458](https://github.com/adap/flower/pull/4458), " +"[#4347](https://github.com/adap/flower/pull/4347), " +"[#4429](https://github.com/adap/flower/pull/4429), " +"[#4463](https://github.com/adap/flower/pull/4463), " +"[#4496](https://github.com/adap/flower/pull/4496), " +"[#4508](https://github.com/adap/flower/pull/4508), " +"[#4444](https://github.com/adap/flower/pull/4444), " +"[#4417](https://github.com/adap/flower/pull/4417), " +"[#4504](https://github.com/adap/flower/pull/4504), " +"[#4418](https://github.com/adap/flower/pull/4418), " +"[#4480](https://github.com/adap/flower/pull/4480), " +"[#4455](https://github.com/adap/flower/pull/4455), " +"[#4468](https://github.com/adap/flower/pull/4468), " +"[#4385](https://github.com/adap/flower/pull/4385), " +"[#4487](https://github.com/adap/flower/pull/4487), " +"[#4393](https://github.com/adap/flower/pull/4393), " +"[#4489](https://github.com/adap/flower/pull/4489), " +"[#4389](https://github.com/adap/flower/pull/4389), " +"[#4507](https://github.com/adap/flower/pull/4507), " +"[#4469](https://github.com/adap/flower/pull/4469), " +"[#4340](https://github.com/adap/flower/pull/4340), " +"[#4353](https://github.com/adap/flower/pull/4353), " +"[#4494](https://github.com/adap/flower/pull/4494), " +"[#4461](https://github.com/adap/flower/pull/4461), " +"[#4362](https://github.com/adap/flower/pull/4362), " +"[#4473](https://github.com/adap/flower/pull/4473), " +"[#4405](https://github.com/adap/flower/pull/4405), " +"[#4416](https://github.com/adap/flower/pull/4416), " +"[#4453](https://github.com/adap/flower/pull/4453), " +"[#4491](https://github.com/adap/flower/pull/4491), " +"[#4539](https://github.com/adap/flower/pull/4539), " +"[#4542](https://github.com/adap/flower/pull/4542), " +"[#4538](https://github.com/adap/flower/pull/4538), " +"[#4543](https://github.com/adap/flower/pull/4543), " +"[#4541](https://github.com/adap/flower/pull/4541), " +"[#4550](https://github.com/adap/flower/pull/4550), " +"[#4481](https://github.com/adap/flower/pull/4481))" +msgstr "" + +#: ../../source/ref-changelog.md:80 ../../source/ref-changelog.md:176 +#: ../../source/ref-changelog.md:279 ../../source/ref-changelog.md:386 +msgid "" +"As always, many parts of the Flower framework and quality infrastructure " +"were improved and updated." +msgstr "" + +#: ../../source/ref-changelog.md:82 ../../source/ref-changelog.md:281 +#: ../../source/ref-changelog.md:398 ../../source/ref-changelog.md:490 +#: ../../source/ref-changelog.md:1473 +msgid "Deprecations" +msgstr "" + +#: ../../source/ref-changelog.md:84 +msgid "**Deprecate Python 3.9**" +msgstr "" + +#: ../../source/ref-changelog.md:86 +msgid "" +"Flower is deprecating support for Python 3.9 as several of its " +"dependencies are phasing out compatibility with this version. While no " +"immediate changes have been made, users are encouraged to plan for " +"upgrading to a supported Python version." +msgstr "" + +#: ../../source/ref-changelog.md:90 +msgid "" +"**Remove `flower-superexec` command** " +"([#4351](https://github.com/adap/flower/pull/4351))" +msgstr "" + +#: ../../source/ref-changelog.md:92 +msgid "" +"The `flower-superexec` command, previously used to launch SuperExec, is " +"no longer functional as SuperExec has been merged into SuperLink. " +"Starting an additional SuperExec is no longer necessary when SuperLink is" +" initiated." +msgstr "" + +#: ../../source/ref-changelog.md:94 +msgid "" +"**Remove `flower-server-app` command** " +"([#4490](https://github.com/adap/flower/pull/4490))" +msgstr "" + +#: ../../source/ref-changelog.md:96 +msgid "" +"The `flower-server-app` command has been removed. To start a Flower app, " +"please use the `flwr run` command instead." +msgstr "" + +#: ../../source/ref-changelog.md:98 +msgid "" +"**Remove `app` argument from `flower-supernode` command** " +"([#4497](https://github.com/adap/flower/pull/4497))" +msgstr "" + +#: ../../source/ref-changelog.md:100 +msgid "" +"The usage of `flower-supernode ` has been removed. SuperNode " +"will now load the FAB delivered by SuperLink, and it is no longer " +"possible to directly specify an app directory." msgstr "" -#: ../../source/ref-changelog.md:9 +#: ../../source/ref-changelog.md:102 +msgid "" +"**Remove support for non-app simulations** " +"([#4431](https://github.com/adap/flower/pull/4431))" +msgstr "" + +#: ../../source/ref-changelog.md:104 +msgid "" +"The simulation engine (via `flower-simulation`) now exclusively supports " +"passing an app." +msgstr "" + +#: ../../source/ref-changelog.md:106 +msgid "" +"**Rename CLI arguments for `flower-superlink` command** " +"([#4412](https://github.com/adap/flower/pull/4412))" +msgstr "" + +#: ../../source/ref-changelog.md:108 +msgid "" +"The `--driver-api-address` argument has been renamed to `--serverappio-" +"api-address` in the `flower-superlink` command to reflect the renaming of" +" the `Driver` service to the `ServerAppIo` service." +msgstr "" + +#: ../../source/ref-changelog.md:110 +msgid "" +"**Rename CLI arguments for `flwr-serverapp` and `flwr-clientapp` " +"commands** ([#4495](https://github.com/adap/flower/pull/4495))" +msgstr "" + +#: ../../source/ref-changelog.md:112 +msgid "" +"The CLI arguments have been renamed for clarity and consistency. " +"Specifically, `--superlink` for `flwr-serverapp` is now `--serverappio-" +"api-address`, and `--supernode` for `flwr-clientapp` is now " +"`--clientappio-api-address`." +msgstr "" + +#: ../../source/ref-changelog.md:114 +msgid "v1.12.0 (2024-10-14)" +msgstr "" + +#: ../../source/ref-changelog.md:120 msgid "" "`Adam Narozniak`, `Audris`, `Charles Beauville`, `Chong Shen Ng`, `Daniel" " J. Beutel`, `Daniel Nata Nugraha`, `Heng Pan`, `Javier`, `Jiahao Tan`, " @@ -15047,20 +15912,7 @@ msgid "" "Gao`, `xiliguguagua` " msgstr "" -#: ../../source/ref-changelog.md:11 ../../source/ref-changelog.md:113 -#: ../../source/ref-changelog.md:217 ../../source/ref-changelog.md:315 -#: ../../source/ref-changelog.md:415 ../../source/ref-changelog.md:479 -#: ../../source/ref-changelog.md:572 ../../source/ref-changelog.md:672 -#: ../../source/ref-changelog.md:756 ../../source/ref-changelog.md:820 -#: ../../source/ref-changelog.md:878 ../../source/ref-changelog.md:947 -#: ../../source/ref-changelog.md:1076 ../../source/ref-changelog.md:1118 -#: ../../source/ref-changelog.md:1185 ../../source/ref-changelog.md:1251 -#: ../../source/ref-changelog.md:1296 ../../source/ref-changelog.md:1335 -#: ../../source/ref-changelog.md:1368 ../../source/ref-changelog.md:1418 -msgid "What's new?" -msgstr "" - -#: ../../source/ref-changelog.md:13 +#: ../../source/ref-changelog.md:124 msgid "" "**Introduce SuperExec log streaming** " "([#3577](https://github.com/adap/flower/pull/3577), " @@ -15070,7 +15922,7 @@ msgid "" "[#3613](https://github.com/adap/flower/pull/3613))" msgstr "" -#: ../../source/ref-changelog.md:15 +#: ../../source/ref-changelog.md:126 msgid "" "Flower now supports log streaming from a remote SuperExec using the `flwr" " log` command. This new feature allows you to monitor logs from SuperExec" @@ -15078,7 +15930,7 @@ msgid "" "`)." msgstr "" -#: ../../source/ref-changelog.md:17 +#: ../../source/ref-changelog.md:128 msgid "" "**Improve `flwr new` templates** " "([#4291](https://github.com/adap/flower/pull/4291), " @@ -15088,14 +15940,14 @@ msgid "" "[#4295](https://github.com/adap/flower/pull/4295))" msgstr "" -#: ../../source/ref-changelog.md:19 +#: ../../source/ref-changelog.md:130 msgid "" "The `flwr new` command templates for MLX, NumPy, sklearn, JAX, and " "PyTorch have been updated to improve usability and consistency across " "frameworks." msgstr "" -#: ../../source/ref-changelog.md:21 +#: ../../source/ref-changelog.md:132 msgid "" "**Migrate ID handling to use unsigned 64-bit integers** " "([#4170](https://github.com/adap/flower/pull/4170), " @@ -15103,7 +15955,7 @@ msgid "" "[#4243](https://github.com/adap/flower/pull/4243))" msgstr "" -#: ../../source/ref-changelog.md:23 +#: ../../source/ref-changelog.md:134 msgid "" "Node IDs, run IDs, and related fields have been migrated from signed " "64-bit integers (`sint64`) to unsigned 64-bit integers (`uint64`). To " @@ -15114,13 +15966,13 @@ msgid "" "`uint64`." msgstr "" -#: ../../source/ref-changelog.md:25 +#: ../../source/ref-changelog.md:136 msgid "" "**Add Flower architecture explanation** " "([#3270](https://github.com/adap/flower/pull/3270))" msgstr "" -#: ../../source/ref-changelog.md:27 +#: ../../source/ref-changelog.md:138 msgid "" "A new [Flower architecture explainer](https://flower.ai/docs/framework" "/explanation-flower-architecture.html) page introduces Flower components " @@ -15128,13 +15980,13 @@ msgid "" "documentation if you're interested." msgstr "" -#: ../../source/ref-changelog.md:29 +#: ../../source/ref-changelog.md:140 msgid "" "**Introduce FedRep baseline** " "([#3790](https://github.com/adap/flower/pull/3790))" msgstr "" -#: ../../source/ref-changelog.md:31 +#: ../../source/ref-changelog.md:142 msgid "" "FedRep is a federated learning algorithm that learns shared data " "representations across clients while allowing each to maintain " @@ -15144,7 +15996,7 @@ msgid "" "([arxiv](https://arxiv.org/abs/2102.07078))" msgstr "" -#: ../../source/ref-changelog.md:33 +#: ../../source/ref-changelog.md:144 msgid "" "**Improve FlowerTune template and LLM evaluation pipelines** " "([#4286](https://github.com/adap/flower/pull/4286), " @@ -15165,7 +16017,7 @@ msgid "" "[#4327](https://github.com/adap/flower/pull/4327))" msgstr "" -#: ../../source/ref-changelog.md:35 +#: ../../source/ref-changelog.md:146 msgid "" "Refined evaluation pipelines, metrics, and documentation for the upcoming" " FlowerTune LLM Leaderboard across multiple domains including Finance, " @@ -15174,7 +16026,7 @@ msgid "" "exciting challenge!" msgstr "" -#: ../../source/ref-changelog.md:37 +#: ../../source/ref-changelog.md:148 msgid "" "**Enhance Docker Support and Documentation** " "([#4191](https://github.com/adap/flower/pull/4191), " @@ -15193,7 +16045,7 @@ msgid "" "[#4226](https://github.com/adap/flower/pull/4226))" msgstr "" -#: ../../source/ref-changelog.md:39 +#: ../../source/ref-changelog.md:150 msgid "" "Upgraded Ubuntu base image to 24.04, added SBOM and gcc to Docker images," " and comprehensively updated [Docker " @@ -15201,14 +16053,14 @@ msgid "" "including quickstart guides and distributed Docker Compose instructions." msgstr "" -#: ../../source/ref-changelog.md:41 +#: ../../source/ref-changelog.md:152 msgid "" "**Introduce Flower glossary** " "([#4165](https://github.com/adap/flower/pull/4165), " "[#4235](https://github.com/adap/flower/pull/4235))" msgstr "" -#: ../../source/ref-changelog.md:43 +#: ../../source/ref-changelog.md:154 msgid "" "Added the [Federated Learning glossary](https://flower.ai/glossary/) to " "the Flower repository, located under the `flower/glossary/` directory. " @@ -15218,7 +16070,7 @@ msgid "" "become a Flower contributor!" msgstr "" -#: ../../source/ref-changelog.md:45 +#: ../../source/ref-changelog.md:156 msgid "" "**Implement Message Time-to-Live (TTL)** " "([#3620](https://github.com/adap/flower/pull/3620), " @@ -15228,7 +16080,7 @@ msgid "" "[#3635](https://github.com/adap/flower/pull/3635))" msgstr "" -#: ../../source/ref-changelog.md:47 +#: ../../source/ref-changelog.md:158 msgid "" "Added comprehensive TTL support for messages in Flower's SuperLink. " "Messages are now automatically expired and cleaned up based on " @@ -15236,7 +16088,7 @@ msgid "" " default in the high-level API)." msgstr "" -#: ../../source/ref-changelog.md:49 +#: ../../source/ref-changelog.md:160 msgid "" "**Improve FAB handling** " "([#4303](https://github.com/adap/flower/pull/4303), " @@ -15245,14 +16097,14 @@ msgid "" "[#4304](https://github.com/adap/flower/pull/4304))" msgstr "" -#: ../../source/ref-changelog.md:51 +#: ../../source/ref-changelog.md:162 msgid "" "An 8-character hash is now appended to the FAB file name. The `flwr " "install` command installs FABs with a more flattened folder structure, " "reducing it from 3 levels to 1." msgstr "" -#: ../../source/ref-changelog.md:53 +#: ../../source/ref-changelog.md:164 msgid "" "**Update documentation** " "([#3341](https://github.com/adap/flower/pull/3341), " @@ -15263,7 +16115,7 @@ msgid "" "[#3993](https://github.com/adap/flower/pull/3993))" msgstr "" -#: ../../source/ref-changelog.md:55 +#: ../../source/ref-changelog.md:166 msgid "" "Updated quickstart tutorials (PyTorch Lightning, TensorFlow, Hugging " "Face, Fastai) to use the new `flwr run` command and removed default title" @@ -15271,7 +16123,7 @@ msgid "" "added to FAQ." msgstr "" -#: ../../source/ref-changelog.md:57 +#: ../../source/ref-changelog.md:168 msgid "" "**Update example projects** " "([#3716](https://github.com/adap/flower/pull/3716), " @@ -15284,7 +16136,7 @@ msgid "" "[#4331](https://github.com/adap/flower/pull/4331))" msgstr "" -#: ../../source/ref-changelog.md:59 +#: ../../source/ref-changelog.md:170 msgid "" "Refreshed multiple example projects including vertical FL, PyTorch " "(advanced), Pandas, Secure Aggregation, and XGBoost examples. Optimized " @@ -15292,7 +16144,7 @@ msgid "" "simulation examples." msgstr "" -#: ../../source/ref-changelog.md:61 +#: ../../source/ref-changelog.md:172 msgid "" "**Update translations** " "([#4070](https://github.com/adap/flower/pull/4070), " @@ -15304,7 +16156,7 @@ msgid "" "[#4259](https://github.com/adap/flower/pull/4259))" msgstr "" -#: ../../source/ref-changelog.md:63 +#: ../../source/ref-changelog.md:174 msgid "" "**General improvements** " "([#4239](https://github.com/adap/flower/pull/4239), " @@ -15351,26 +16203,7 @@ msgid "" "[#4333](https://github.com/adap/flower/pull/4333))" msgstr "" -#: ../../source/ref-changelog.md:65 ../../source/ref-changelog.md:168 -#: ../../source/ref-changelog.md:275 -msgid "" -"As always, many parts of the Flower framework and quality infrastructure " -"were improved and updated." -msgstr "" - -#: ../../source/ref-changelog.md:67 ../../source/ref-changelog.md:101 -#: ../../source/ref-changelog.md:181 ../../source/ref-changelog.md:297 -#: ../../source/ref-changelog.md:393 ../../source/ref-changelog.md:467 -#: ../../source/ref-changelog.md:542 ../../source/ref-changelog.md:654 -#: ../../source/ref-changelog.md:744 ../../source/ref-changelog.md:808 -#: ../../source/ref-changelog.md:866 ../../source/ref-changelog.md:935 -#: ../../source/ref-changelog.md:997 ../../source/ref-changelog.md:1016 -#: ../../source/ref-changelog.md:1172 ../../source/ref-changelog.md:1243 -#: ../../source/ref-changelog.md:1280 ../../source/ref-changelog.md:1323 -msgid "Incompatible changes" -msgstr "" - -#: ../../source/ref-changelog.md:69 +#: ../../source/ref-changelog.md:180 msgid "" "**Drop Python 3.8 support and update minimum version to 3.9** " "([#4180](https://github.com/adap/flower/pull/4180), " @@ -15383,7 +16216,7 @@ msgid "" "[#4194](https://github.com/adap/flower/pull/4194))" msgstr "" -#: ../../source/ref-changelog.md:71 +#: ../../source/ref-changelog.md:182 msgid "" "Python 3.8 support was deprecated in Flower 1.9, and this release removes" " support. Flower now requires Python 3.9 or later (Python 3.11 is " @@ -15391,79 +16224,79 @@ msgid "" "minimum supported version. Flower now supports Python 3.9 to 3.12." msgstr "" -#: ../../source/ref-changelog.md:73 +#: ../../source/ref-changelog.md:184 msgid "v1.11.1 (2024-09-11)" msgstr "" -#: ../../source/ref-changelog.md:79 +#: ../../source/ref-changelog.md:190 msgid "" "`Charles Beauville`, `Chong Shen Ng`, `Daniel J. Beutel`, `Heng Pan`, " "`Javier`, `Robert Steiner`, `Yan Gao` " msgstr "" -#: ../../source/ref-changelog.md:81 +#: ../../source/ref-changelog.md:192 msgid "Improvements" msgstr "" -#: ../../source/ref-changelog.md:83 +#: ../../source/ref-changelog.md:194 msgid "" "**Implement** `keys/values/items` **methods for** `TypedDict` " "([#4146](https://github.com/adap/flower/pull/4146))" msgstr "" -#: ../../source/ref-changelog.md:85 +#: ../../source/ref-changelog.md:196 msgid "" "**Fix parsing of** `--executor-config` **if present** " "([#4125](https://github.com/adap/flower/pull/4125))" msgstr "" -#: ../../source/ref-changelog.md:87 +#: ../../source/ref-changelog.md:198 msgid "" "**Adjust framework name in templates docstrings** " "([#4127](https://github.com/adap/flower/pull/4127))" msgstr "" -#: ../../source/ref-changelog.md:89 +#: ../../source/ref-changelog.md:200 msgid "" "**Update** `flwr new` **Hugging Face template** " "([#4169](https://github.com/adap/flower/pull/4169))" msgstr "" -#: ../../source/ref-changelog.md:91 +#: ../../source/ref-changelog.md:202 msgid "" "**Fix** `flwr new` **FlowerTune template** " "([#4123](https://github.com/adap/flower/pull/4123))" msgstr "" -#: ../../source/ref-changelog.md:93 +#: ../../source/ref-changelog.md:204 msgid "" "**Add buffer time after** `ServerApp` **thread initialization** " "([#4119](https://github.com/adap/flower/pull/4119))" msgstr "" -#: ../../source/ref-changelog.md:95 +#: ../../source/ref-changelog.md:206 msgid "" "**Handle unsuitable resources for simulation** " "([#4143](https://github.com/adap/flower/pull/4143))" msgstr "" -#: ../../source/ref-changelog.md:97 +#: ../../source/ref-changelog.md:208 msgid "" "**Update example READMEs** " "([#4117](https://github.com/adap/flower/pull/4117))" msgstr "" -#: ../../source/ref-changelog.md:99 +#: ../../source/ref-changelog.md:210 msgid "" "**Update SuperNode authentication docs** " "([#4160](https://github.com/adap/flower/pull/4160))" msgstr "" -#: ../../source/ref-changelog.md:105 +#: ../../source/ref-changelog.md:216 msgid "v1.11.0 (2024-08-30)" msgstr "" -#: ../../source/ref-changelog.md:111 +#: ../../source/ref-changelog.md:222 msgid "" "`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. " "Beutel`, `Daniel Nata Nugraha`, `Danny`, `Edoardo Gabrielli`, `Heng Pan`," @@ -15472,7 +16305,7 @@ msgid "" "TOKEN_v1.11.0-->" msgstr "" -#: ../../source/ref-changelog.md:115 +#: ../../source/ref-changelog.md:226 msgid "" "**Deliver Flower App Bundle (FAB) to SuperLink and SuperNodes** " "([#4006](https://github.com/adap/flower/pull/4006), " @@ -15499,14 +16332,14 @@ msgid "" "[#3619](https://github.com/adap/flower/pull/3619))" msgstr "" -#: ../../source/ref-changelog.md:117 +#: ../../source/ref-changelog.md:228 msgid "" "Dynamic code updates are here! `flwr run` can now ship and install the " "latest version of your `ServerApp` and `ClientApp` to an already-running " "federation (SuperLink and SuperNodes)." msgstr "" -#: ../../source/ref-changelog.md:119 +#: ../../source/ref-changelog.md:230 msgid "" "How does it work? `flwr run` bundles your Flower app into a single FAB " "(Flower App Bundle) file. It then ships this FAB file, via the SuperExec," @@ -15516,11 +16349,11 @@ msgid "" "projects!) dynamically." msgstr "" -#: ../../source/ref-changelog.md:121 +#: ../../source/ref-changelog.md:232 msgid "`flwr run` is all you need." msgstr "" -#: ../../source/ref-changelog.md:123 +#: ../../source/ref-changelog.md:234 msgid "" "**Introduce isolated** `ClientApp` **execution** " "([#3970](https://github.com/adap/flower/pull/3970), " @@ -15540,30 +16373,30 @@ msgid "" "[#4032](https://github.com/adap/flower/pull/4032))" msgstr "" -#: ../../source/ref-changelog.md:125 +#: ../../source/ref-changelog.md:236 msgid "" "The SuperNode can now run your `ClientApp` in a fully isolated way. In an" " enterprise deployment, this allows you to set strict limits on what the " "`ClientApp` can and cannot do." msgstr "" -#: ../../source/ref-changelog.md:127 +#: ../../source/ref-changelog.md:238 msgid "`flower-supernode` supports three `--isolation` modes:" msgstr "" -#: ../../source/ref-changelog.md:129 +#: ../../source/ref-changelog.md:240 msgid "" "Unset: The SuperNode runs the `ClientApp` in the same process (as in " "previous versions of Flower). This is the default mode." msgstr "" -#: ../../source/ref-changelog.md:130 +#: ../../source/ref-changelog.md:241 msgid "" "`--isolation=subprocess`: The SuperNode starts a subprocess to run the " "`ClientApp`." msgstr "" -#: ../../source/ref-changelog.md:131 +#: ../../source/ref-changelog.md:242 msgid "" "`--isolation=process`: The SuperNode expects an externally-managed " "process to run the `ClientApp`. This external process is not managed by " @@ -15572,7 +16405,7 @@ msgid "" "`flwr/clientapp` Docker image." msgstr "" -#: ../../source/ref-changelog.md:133 +#: ../../source/ref-changelog.md:244 msgid "" "**Improve Docker support for enterprise deployments** " "([#4050](https://github.com/adap/flower/pull/4050), " @@ -15583,17 +16416,17 @@ msgid "" "[#3722](https://github.com/adap/flower/pull/3722))" msgstr "" -#: ../../source/ref-changelog.md:135 +#: ../../source/ref-changelog.md:246 msgid "" "Flower 1.11 ships many Docker improvements that are especially useful for" " enterprise deployments:" msgstr "" -#: ../../source/ref-changelog.md:137 +#: ../../source/ref-changelog.md:248 msgid "`flwr/supernode` comes with a new Alpine Docker image." msgstr "" -#: ../../source/ref-changelog.md:138 +#: ../../source/ref-changelog.md:249 msgid "" "`flwr/clientapp` is a new image to be used with the `--isolation=process`" " option. In this mode, SuperNode and `ClientApp` run in two different " @@ -15603,19 +16436,19 @@ msgid "" "enterprise settings." msgstr "" -#: ../../source/ref-changelog.md:139 +#: ../../source/ref-changelog.md:250 msgid "" "New all-in-one Docker Compose enables you to easily start a full Flower " "Deployment Engine on a single machine." msgstr "" -#: ../../source/ref-changelog.md:140 +#: ../../source/ref-changelog.md:251 msgid "" "Completely new Docker documentation: " "https://flower.ai/docs/framework/docker/index.html" msgstr "" -#: ../../source/ref-changelog.md:142 +#: ../../source/ref-changelog.md:253 msgid "" "**Improve SuperNode authentication** " "([#4043](https://github.com/adap/flower/pull/4043), " @@ -15623,13 +16456,13 @@ msgid "" "[#4074](https://github.com/adap/flower/pull/4074))" msgstr "" -#: ../../source/ref-changelog.md:144 +#: ../../source/ref-changelog.md:255 msgid "" "SuperNode auth has been improved in several ways, including improved " "logging, improved testing, and improved error handling." msgstr "" -#: ../../source/ref-changelog.md:146 +#: ../../source/ref-changelog.md:257 msgid "" "**Update** `flwr new` **templates** " "([#3933](https://github.com/adap/flower/pull/3933), " @@ -15643,13 +16476,13 @@ msgid "" "[#4064](https://github.com/adap/flower/pull/4064))" msgstr "" -#: ../../source/ref-changelog.md:148 +#: ../../source/ref-changelog.md:259 msgid "" "All `flwr new` templates have been updated to show the latest recommended" " use of Flower APIs." msgstr "" -#: ../../source/ref-changelog.md:150 +#: ../../source/ref-changelog.md:261 msgid "" "**Improve Simulation Engine** " "([#4095](https://github.com/adap/flower/pull/4095), " @@ -15661,14 +16494,14 @@ msgid "" "[#3988](https://github.com/adap/flower/pull/3988))" msgstr "" -#: ../../source/ref-changelog.md:152 +#: ../../source/ref-changelog.md:263 msgid "" "The Flower Simulation Engine comes with several updates, including " "improved run config support, verbose logging, simulation backend " "configuration via `flwr run`, and more." msgstr "" -#: ../../source/ref-changelog.md:154 +#: ../../source/ref-changelog.md:265 msgid "" "**Improve** `RecordSet` " "([#4052](https://github.com/adap/flower/pull/4052), " @@ -15676,7 +16509,7 @@ msgid "" "[#4016](https://github.com/adap/flower/pull/4016))" msgstr "" -#: ../../source/ref-changelog.md:156 +#: ../../source/ref-changelog.md:267 msgid "" "`RecordSet` is the core object to exchange model parameters, " "configuration values and metrics between `ClientApp` and `ServerApp`. " @@ -15684,7 +16517,7 @@ msgid "" "related `*Record` types." msgstr "" -#: ../../source/ref-changelog.md:158 +#: ../../source/ref-changelog.md:269 msgid "" "**Update documentation** " "([#3972](https://github.com/adap/flower/pull/3972), " @@ -15703,14 +16536,14 @@ msgid "" "[#3916](https://github.com/adap/flower/pull/3916))" msgstr "" -#: ../../source/ref-changelog.md:160 +#: ../../source/ref-changelog.md:271 msgid "" "Many parts of the documentation, including the main tutorial, have been " "migrated to show new Flower APIs and other new Flower features like the " "improved Docker support." msgstr "" -#: ../../source/ref-changelog.md:162 +#: ../../source/ref-changelog.md:273 msgid "" "**Migrate code example to use new Flower APIs** " "([#3758](https://github.com/adap/flower/pull/3758), " @@ -15736,11 +16569,11 @@ msgid "" "[#3313](https://github.com/adap/flower/pull/3313))" msgstr "" -#: ../../source/ref-changelog.md:164 +#: ../../source/ref-changelog.md:275 msgid "Many code examples have been migrated to use new Flower APIs." msgstr "" -#: ../../source/ref-changelog.md:166 +#: ../../source/ref-changelog.md:277 msgid "" "**Update Flower framework, framework internals and quality " "infrastructure** ([#4018](https://github.com/adap/flower/pull/4018), " @@ -15782,18 +16615,13 @@ msgid "" "[#4038](https://github.com/adap/flower/pull/4038))" msgstr "" -#: ../../source/ref-changelog.md:170 ../../source/ref-changelog.md:287 -#: ../../source/ref-changelog.md:379 ../../source/ref-changelog.md:1362 -msgid "Deprecations" -msgstr "" - -#: ../../source/ref-changelog.md:172 +#: ../../source/ref-changelog.md:283 msgid "" "**Deprecate accessing `Context` via `Client.context`** " "([#3797](https://github.com/adap/flower/pull/3797))" msgstr "" -#: ../../source/ref-changelog.md:174 +#: ../../source/ref-changelog.md:285 msgid "" "Now that both `client_fn` and `server_fn` receive a `Context` object, " "accessing `Context` via `Client.context` is deprecated. `Client.context` " @@ -15802,7 +16630,7 @@ msgid "" " instance in `client_fn`:" msgstr "" -#: ../../source/ref-changelog.md:183 +#: ../../source/ref-changelog.md:294 msgid "" "**Update CLIs to accept an app directory instead of** `ClientApp` **and**" " `ServerApp` ([#3952](https://github.com/adap/flower/pull/3952), " @@ -15810,7 +16638,7 @@ msgid "" "[#3850](https://github.com/adap/flower/pull/3850))" msgstr "" -#: ../../source/ref-changelog.md:185 +#: ../../source/ref-changelog.md:296 msgid "" "The CLI commands `flower-supernode` and `flower-server-app` now accept an" " app directory as argument (instead of references to a `ClientApp` or " @@ -15820,49 +16648,49 @@ msgid "" "`flwr new`." msgstr "" -#: ../../source/ref-changelog.md:187 +#: ../../source/ref-changelog.md:298 msgid "" "**Disable** `flower-client-app` **CLI command** " "([#4022](https://github.com/adap/flower/pull/4022))" msgstr "" -#: ../../source/ref-changelog.md:189 +#: ../../source/ref-changelog.md:300 msgid "`flower-client-app` has been disabled. Use `flower-supernode` instead." msgstr "" -#: ../../source/ref-changelog.md:191 +#: ../../source/ref-changelog.md:302 msgid "" "**Use spaces instead of commas for separating config args** " "([#4000](https://github.com/adap/flower/pull/4000))" msgstr "" -#: ../../source/ref-changelog.md:193 +#: ../../source/ref-changelog.md:304 msgid "" "When passing configs (run config, node config) to Flower, you now need to" " separate key-value pairs using spaces instead of commas. For example:" msgstr "" -#: ../../source/ref-changelog.md:199 +#: ../../source/ref-changelog.md:310 msgid "Previously, you could pass configs using commas, like this:" msgstr "" -#: ../../source/ref-changelog.md:205 +#: ../../source/ref-changelog.md:316 msgid "" "**Remove** `flwr example` **CLI command** " "([#4084](https://github.com/adap/flower/pull/4084))" msgstr "" -#: ../../source/ref-changelog.md:207 +#: ../../source/ref-changelog.md:318 msgid "" "The experimental `flwr example` CLI command has been removed. Use `flwr " "new` to generate a project and then run it using `flwr run`." msgstr "" -#: ../../source/ref-changelog.md:209 +#: ../../source/ref-changelog.md:320 msgid "v1.10.0 (2024-07-24)" msgstr "" -#: ../../source/ref-changelog.md:215 +#: ../../source/ref-changelog.md:326 msgid "" "`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. " "Beutel`, `Daniel Nata Nugraha`, `Danny`, `Gustavo Bertoli`, `Heng Pan`, " @@ -15871,7 +16699,7 @@ msgid "" "---TOKEN_v1.10.0-->" msgstr "" -#: ../../source/ref-changelog.md:219 +#: ../../source/ref-changelog.md:330 msgid "" "**Introduce** `flwr run` **(beta)** " "([#3810](https://github.com/adap/flower/pull/3810), " @@ -15885,7 +16713,7 @@ msgid "" "[#3819](https://github.com/adap/flower/pull/3819))" msgstr "" -#: ../../source/ref-changelog.md:221 +#: ../../source/ref-changelog.md:332 msgid "" "Flower 1.10 ships the first beta release of the new `flwr run` command. " "`flwr run` can run different projects using `flwr run path/to/project`, " @@ -15898,7 +16726,7 @@ msgid "" "`flwr new` to generate a project and then run it using `flwr run`." msgstr "" -#: ../../source/ref-changelog.md:223 +#: ../../source/ref-changelog.md:334 msgid "" "**Introduce run config** " "([#3751](https://github.com/adap/flower/pull/3751), " @@ -15918,7 +16746,7 @@ msgid "" "[#3815](https://github.com/adap/flower/pull/3815))" msgstr "" -#: ../../source/ref-changelog.md:225 +#: ../../source/ref-changelog.md:336 msgid "" "The new run config feature allows you to run your Flower project in " "different configurations without having to change a single line of code. " @@ -15931,7 +16759,7 @@ msgid "" "new project using `flwr new` to see run config in action." msgstr "" -#: ../../source/ref-changelog.md:227 +#: ../../source/ref-changelog.md:338 msgid "" "**Generalize** `client_fn` **signature to** `client_fn(context: Context) " "-> Client` ([#3779](https://github.com/adap/flower/pull/3779), " @@ -15940,7 +16768,7 @@ msgid "" "[#3696](https://github.com/adap/flower/pull/3696))" msgstr "" -#: ../../source/ref-changelog.md:229 +#: ../../source/ref-changelog.md:340 msgid "" "The `client_fn` signature has been generalized to `client_fn(context: " "Context) -> Client`. It now receives a `Context` object instead of the " @@ -15950,14 +16778,14 @@ msgid "" "system." msgstr "" -#: ../../source/ref-changelog.md:231 +#: ../../source/ref-changelog.md:342 msgid "" "The previous signature `client_fn(cid: str)` is now deprecated and " "support for it will be removed in a future release. Use " "`client_fn(context: Context) -> Client` everywhere." msgstr "" -#: ../../source/ref-changelog.md:233 +#: ../../source/ref-changelog.md:344 msgid "" "**Introduce new** `server_fn(context)` " "([#3773](https://github.com/adap/flower/pull/3773), " @@ -15965,7 +16793,7 @@ msgid "" "[#3771](https://github.com/adap/flower/pull/3771))" msgstr "" -#: ../../source/ref-changelog.md:235 +#: ../../source/ref-changelog.md:346 msgid "" "In addition to the new `client_fn(context:Context)`, a new " "`server_fn(context: Context) -> ServerAppComponents` can now be passed to" @@ -15974,7 +16802,7 @@ msgid "" "build a configurable `ServerApp`." msgstr "" -#: ../../source/ref-changelog.md:237 +#: ../../source/ref-changelog.md:348 msgid "" "**Relaunch all** `flwr new` **templates** " "([#3877](https://github.com/adap/flower/pull/3877), " @@ -15986,7 +16814,7 @@ msgid "" "[#3760](https://github.com/adap/flower/pull/3760))" msgstr "" -#: ../../source/ref-changelog.md:239 +#: ../../source/ref-changelog.md:350 msgid "" "All `flwr new` templates have been significantly updated to showcase new " "Flower features and best practices. This includes using `flwr run` and " @@ -15995,13 +16823,13 @@ msgid "" "run` it." msgstr "" -#: ../../source/ref-changelog.md:241 +#: ../../source/ref-changelog.md:352 msgid "" "**Introduce** `flower-supernode` **(preview)** " "([#3353](https://github.com/adap/flower/pull/3353))" msgstr "" -#: ../../source/ref-changelog.md:243 +#: ../../source/ref-changelog.md:354 msgid "" "The new `flower-supernode` CLI is here to replace `flower-client-app`. " "`flower-supernode` brings full multi-app support to the Flower client-" @@ -16010,7 +16838,7 @@ msgid "" "`client_fn(context: Context)` signature)." msgstr "" -#: ../../source/ref-changelog.md:245 +#: ../../source/ref-changelog.md:356 msgid "" "**Introduce node config** " "([#3782](https://github.com/adap/flower/pull/3782), " @@ -16019,7 +16847,7 @@ msgid "" "[#3886](https://github.com/adap/flower/pull/3886))" msgstr "" -#: ../../source/ref-changelog.md:247 +#: ../../source/ref-changelog.md:358 msgid "" "A new node config feature allows you to pass a static configuration to " "the SuperNode. This configuration is read-only and available to every " @@ -16027,7 +16855,7 @@ msgid "" "config via `Context` (`context.node_config`)." msgstr "" -#: ../../source/ref-changelog.md:249 +#: ../../source/ref-changelog.md:360 msgid "" "**Introduce SuperExec (experimental)** " "([#3605](https://github.com/adap/flower/pull/3605), " @@ -16048,26 +16876,26 @@ msgid "" "[#3629](https://github.com/adap/flower/pull/3629))" msgstr "" -#: ../../source/ref-changelog.md:251 +#: ../../source/ref-changelog.md:362 msgid "" "This is the first experimental release of Flower SuperExec, a new service" " that executes your runs. It's not ready for production deployment just " "yet, but don't hesitate to give it a try if you're interested." msgstr "" -#: ../../source/ref-changelog.md:253 +#: ../../source/ref-changelog.md:364 msgid "" "**Add new federated learning with tabular data example** " "([#3568](https://github.com/adap/flower/pull/3568))" msgstr "" -#: ../../source/ref-changelog.md:255 +#: ../../source/ref-changelog.md:366 msgid "" "A new code example exemplifies a federated learning setup using the " "Flower framework on the Adult Census Income tabular dataset." msgstr "" -#: ../../source/ref-changelog.md:257 +#: ../../source/ref-changelog.md:368 msgid "" "**Create generic adapter layer (preview)** " "([#3538](https://github.com/adap/flower/pull/3538), " @@ -16075,7 +16903,7 @@ msgid "" "[#3540](https://github.com/adap/flower/pull/3540))" msgstr "" -#: ../../source/ref-changelog.md:259 +#: ../../source/ref-changelog.md:370 msgid "" "A new generic gRPC adapter layer allows 3rd-party frameworks to integrate" " with Flower in a transparent way. This makes Flower more modular and " @@ -16083,7 +16911,7 @@ msgid "" "platforms." msgstr "" -#: ../../source/ref-changelog.md:261 +#: ../../source/ref-changelog.md:372 msgid "" "**Refactor Flower Simulation Engine** " "([#3581](https://github.com/adap/flower/pull/3581), " @@ -16099,7 +16927,7 @@ msgid "" "[#3469](https://github.com/adap/flower/pull/3469))" msgstr "" -#: ../../source/ref-changelog.md:263 +#: ../../source/ref-changelog.md:374 msgid "" "The Simulation Engine was significantly refactored. This results in " "faster and more stable simulations. It is also the foundation for " @@ -16107,31 +16935,31 @@ msgid "" "configurability in federated learning simulations." msgstr "" -#: ../../source/ref-changelog.md:265 +#: ../../source/ref-changelog.md:376 msgid "" "**Optimize Docker containers** " "([#3591](https://github.com/adap/flower/pull/3591))" msgstr "" -#: ../../source/ref-changelog.md:267 +#: ../../source/ref-changelog.md:378 msgid "" "Flower Docker containers were optimized and updated to use that latest " "Flower framework features." msgstr "" -#: ../../source/ref-changelog.md:269 +#: ../../source/ref-changelog.md:380 msgid "" "**Improve logging** ([#3776](https://github.com/adap/flower/pull/3776), " "[#3789](https://github.com/adap/flower/pull/3789))" msgstr "" -#: ../../source/ref-changelog.md:271 +#: ../../source/ref-changelog.md:382 msgid "" "Improved logging aims to be more concise and helpful to show you the " "details you actually care about." msgstr "" -#: ../../source/ref-changelog.md:273 +#: ../../source/ref-changelog.md:384 msgid "" "**Refactor framework internals** " "([#3621](https://github.com/adap/flower/pull/3621), " @@ -16145,17 +16973,13 @@ msgid "" "[#3569](https://github.com/adap/flower/pull/3569))" msgstr "" -#: ../../source/ref-changelog.md:277 -msgid "Documentation improvements" -msgstr "" - -#: ../../source/ref-changelog.md:279 +#: ../../source/ref-changelog.md:390 msgid "" "**Add 🇰🇷 Korean translations** " "([#3680](https://github.com/adap/flower/pull/3680))" msgstr "" -#: ../../source/ref-changelog.md:281 +#: ../../source/ref-changelog.md:392 msgid "" "**Update translations** " "([#3586](https://github.com/adap/flower/pull/3586), " @@ -16169,7 +16993,7 @@ msgid "" "[#3631](https://github.com/adap/flower/pull/3631))" msgstr "" -#: ../../source/ref-changelog.md:283 +#: ../../source/ref-changelog.md:394 msgid "" "**Update documentation** " "([#3864](https://github.com/adap/flower/pull/3864), " @@ -16183,18 +17007,18 @@ msgid "" "[#3707](https://github.com/adap/flower/pull/3707))" msgstr "" -#: ../../source/ref-changelog.md:285 +#: ../../source/ref-changelog.md:396 msgid "" "Updated documentation includes new install instructions for different " "shells, a new Flower Code Examples documentation landing page, new `flwr`" " CLI docs and an updated federated XGBoost code example." msgstr "" -#: ../../source/ref-changelog.md:289 +#: ../../source/ref-changelog.md:400 msgid "**Deprecate** `client_fn(cid: str)`" msgstr "" -#: ../../source/ref-changelog.md:291 +#: ../../source/ref-changelog.md:402 msgid "" "`client_fn` used to have a signature `client_fn(cid: str) -> Client`. " "This signature is now deprecated. Use the new signature " @@ -16207,13 +17031,13 @@ msgid "" " the dataset on each simulated or deployed SuperNode." msgstr "" -#: ../../source/ref-changelog.md:293 +#: ../../source/ref-changelog.md:404 msgid "" "**Deprecate passing** `Server/ServerConfig/Strategy/ClientManager` **to**" " `ServerApp` **directly**" msgstr "" -#: ../../source/ref-changelog.md:295 +#: ../../source/ref-changelog.md:406 msgid "" "Creating `ServerApp` using `ServerApp(config=config, strategy=strategy)` " "is now deprecated. Instead of passing " @@ -16226,13 +17050,13 @@ msgid "" " the `run_config`)." msgstr "" -#: ../../source/ref-changelog.md:299 +#: ../../source/ref-changelog.md:410 msgid "" "**Remove support for `client_ids` in `start_simulation`** " "([#3699](https://github.com/adap/flower/pull/3699))" msgstr "" -#: ../../source/ref-changelog.md:301 +#: ../../source/ref-changelog.md:412 msgid "" "The (rarely used) feature that allowed passing custom `client_ids` to the" " `start_simulation` function was removed. This removal is part of a " @@ -16240,24 +17064,24 @@ msgid "" "internals work in simulation and deployment." msgstr "" -#: ../../source/ref-changelog.md:303 +#: ../../source/ref-changelog.md:414 msgid "" "**Remove `flower-driver-api` and `flower-fleet-api`** " "([#3418](https://github.com/adap/flower/pull/3418))" msgstr "" -#: ../../source/ref-changelog.md:305 +#: ../../source/ref-changelog.md:416 msgid "" "The two deprecated CLI commands `flower-driver-api` and `flower-fleet-" "api` were removed in an effort to streamline the SuperLink developer " "experience. Use `flower-superlink` instead." msgstr "" -#: ../../source/ref-changelog.md:307 +#: ../../source/ref-changelog.md:418 msgid "v1.9.0 (2024-06-10)" msgstr "" -#: ../../source/ref-changelog.md:313 +#: ../../source/ref-changelog.md:424 msgid "" "`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. " "Beutel`, `Daniel Nata Nugraha`, `Heng Pan`, `Javier`, `Mahdi Beitollahi`," @@ -16265,7 +17089,7 @@ msgid "" "---TOKEN_v1.9.0-->" msgstr "" -#: ../../source/ref-changelog.md:317 +#: ../../source/ref-changelog.md:428 msgid "" "**Introduce built-in authentication (preview)** " "([#2946](https://github.com/adap/flower/pull/2946), " @@ -16284,7 +17108,7 @@ msgid "" "[#3357](https://github.com/adap/flower/pull/3357))" msgstr "" -#: ../../source/ref-changelog.md:319 +#: ../../source/ref-changelog.md:430 msgid "" "Flower 1.9 introduces the first build-in version of client node " "authentication. In previous releases, users often wrote glue code to " @@ -16296,14 +17120,14 @@ msgid "" "authentication) help you to get started." msgstr "" -#: ../../source/ref-changelog.md:321 +#: ../../source/ref-changelog.md:432 msgid "" "This is the first preview release of the Flower-native authentication " "system. Many additional features are on the roadmap for upcoming Flower " "releases - stay tuned." msgstr "" -#: ../../source/ref-changelog.md:323 +#: ../../source/ref-changelog.md:434 msgid "" "**Introduce end-to-end Docker support** " "([#3483](https://github.com/adap/flower/pull/3483), " @@ -16320,7 +17144,7 @@ msgid "" "[#3290](https://github.com/adap/flower/pull/3290))" msgstr "" -#: ../../source/ref-changelog.md:325 +#: ../../source/ref-changelog.md:436 msgid "" "Full Flower Next Docker support is here! With the release of Flower 1.9, " "Flower provides stable Docker images for the Flower SuperLink, the Flower" @@ -16330,7 +17154,7 @@ msgid "" "docker.html) to get stated." msgstr "" -#: ../../source/ref-changelog.md:327 +#: ../../source/ref-changelog.md:438 msgid "" "**Re-architect Flower Next simulation engine** " "([#3307](https://github.com/adap/flower/pull/3307), " @@ -16343,7 +17167,7 @@ msgid "" "[#3326](https://github.com/adap/flower/pull/3326))" msgstr "" -#: ../../source/ref-changelog.md:329 +#: ../../source/ref-changelog.md:440 msgid "" "Flower Next simulations now use a new in-memory `Driver` that improves " "the reliability of simulations, especially in notebook environments. This" @@ -16351,7 +17175,7 @@ msgid "" "simulation architecture." msgstr "" -#: ../../source/ref-changelog.md:331 +#: ../../source/ref-changelog.md:442 msgid "" "**Upgrade simulation engine** " "([#3354](https://github.com/adap/flower/pull/3354), " @@ -16363,20 +17187,20 @@ msgid "" "[#3494](https://github.com/adap/flower/pull/3494))" msgstr "" -#: ../../source/ref-changelog.md:333 +#: ../../source/ref-changelog.md:444 msgid "" "The Flower Next simulation engine comes with improved and configurable " "logging. The Ray-based simulation backend in Flower 1.9 was updated to " "use Ray 2.10." msgstr "" -#: ../../source/ref-changelog.md:335 +#: ../../source/ref-changelog.md:446 msgid "" "**Introduce FedPFT baseline** " "([#3268](https://github.com/adap/flower/pull/3268))" msgstr "" -#: ../../source/ref-changelog.md:337 +#: ../../source/ref-changelog.md:448 msgid "" "FedPFT allows you to perform one-shot Federated Learning by leveraging " "widely available foundational models, dramatically reducing communication" @@ -16387,7 +17211,7 @@ msgid "" "([arxiv](https://arxiv.org/abs/2402.01862))" msgstr "" -#: ../../source/ref-changelog.md:339 +#: ../../source/ref-changelog.md:450 msgid "" "**Launch additional** `flwr new` **templates for Apple MLX, Hugging Face " "Transformers, scikit-learn and TensorFlow** " @@ -16399,7 +17223,7 @@ msgid "" "[#3287](https://github.com/adap/flower/pull/3287))" msgstr "" -#: ../../source/ref-changelog.md:341 +#: ../../source/ref-changelog.md:452 msgid "" "The `flwr` CLI's `flwr new` command is starting to become everone's " "favorite way of creating new Flower projects. This release introduces " @@ -16408,7 +17232,7 @@ msgid "" "also received updates." msgstr "" -#: ../../source/ref-changelog.md:343 +#: ../../source/ref-changelog.md:454 msgid "" "**Refine** `RecordSet` **API** " "([#3209](https://github.com/adap/flower/pull/3209), " @@ -16419,14 +17243,14 @@ msgid "" "[#3368](https://github.com/adap/flower/pull/3368))" msgstr "" -#: ../../source/ref-changelog.md:345 +#: ../../source/ref-changelog.md:456 msgid "" "`RecordSet` is part of the Flower Next low-level API preview release. In " "Flower 1.9, `RecordSet` received a number of usability improvements that " "make it easier to build `RecordSet`-based `ServerApp`s and `ClientApp`s." msgstr "" -#: ../../source/ref-changelog.md:347 +#: ../../source/ref-changelog.md:458 msgid "" "**Beautify logging** ([#3379](https://github.com/adap/flower/pull/3379), " "[#3430](https://github.com/adap/flower/pull/3430), " @@ -16435,13 +17259,13 @@ msgid "" "[#3433](https://github.com/adap/flower/pull/3433))" msgstr "" -#: ../../source/ref-changelog.md:349 +#: ../../source/ref-changelog.md:460 msgid "" "Logs received a substantial update. Not only are logs now much nicer to " "look at, but they are also more configurable." msgstr "" -#: ../../source/ref-changelog.md:351 +#: ../../source/ref-changelog.md:462 msgid "" "**Improve reliability** " "([#3564](https://github.com/adap/flower/pull/3564), " @@ -16454,27 +17278,27 @@ msgid "" "[#3372](https://github.com/adap/flower/pull/3372))" msgstr "" -#: ../../source/ref-changelog.md:353 +#: ../../source/ref-changelog.md:464 msgid "" "Flower 1.9 includes reliability improvements across many parts of the " "system. One example is a much improved SuperNode shutdown procedure." msgstr "" -#: ../../source/ref-changelog.md:355 +#: ../../source/ref-changelog.md:466 msgid "" "**Update Swift and C++ SDKs** " "([#3321](https://github.com/adap/flower/pull/3321), " "[#2763](https://github.com/adap/flower/pull/2763))" msgstr "" -#: ../../source/ref-changelog.md:357 +#: ../../source/ref-changelog.md:468 msgid "" "In the C++ SDK, communication-related code is now separate from main " "client logic. A new abstract class `Communicator` has been introduced " "alongside a gRPC implementation of it." msgstr "" -#: ../../source/ref-changelog.md:359 +#: ../../source/ref-changelog.md:470 msgid "" "**Improve testing, tooling and CI/CD infrastructure** " "([#3294](https://github.com/adap/flower/pull/3294), " @@ -16508,13 +17332,13 @@ msgid "" "[#3271](https://github.com/adap/flower/pull/3271))" msgstr "" -#: ../../source/ref-changelog.md:361 +#: ../../source/ref-changelog.md:472 msgid "" "As always, the Flower tooling, testing, and CI/CD infrastructure has " "received many updates." msgstr "" -#: ../../source/ref-changelog.md:363 +#: ../../source/ref-changelog.md:474 msgid "" "**Improve documentation** " "([#3530](https://github.com/adap/flower/pull/3530), " @@ -16539,32 +17363,32 @@ msgid "" "[#3274](https://github.com/adap/flower/pull/3274))" msgstr "" -#: ../../source/ref-changelog.md:365 +#: ../../source/ref-changelog.md:476 msgid "" "As always, the Flower documentation has received many updates. Notable " "new pages include:" msgstr "" -#: ../../source/ref-changelog.md:367 +#: ../../source/ref-changelog.md:478 msgid "" "[How-to upgrate to Flower Next (Flower Next migration " "guide)](https://flower.ai/docs/framework/how-to-upgrade-to-flower-" "next.html)" msgstr "" -#: ../../source/ref-changelog.md:369 +#: ../../source/ref-changelog.md:480 msgid "" "[How-to run Flower using Docker](https://flower.ai/docs/framework/how-to-" "run-flower-using-docker.html)" msgstr "" -#: ../../source/ref-changelog.md:371 +#: ../../source/ref-changelog.md:482 msgid "" "[Flower Mods reference](https://flower.ai/docs/framework/ref-" "api/flwr.client.mod.html#module-flwr.client.mod)" msgstr "" -#: ../../source/ref-changelog.md:373 +#: ../../source/ref-changelog.md:484 msgid "" "**General updates to Flower Examples** " "([#3205](https://github.com/adap/flower/pull/3205), " @@ -16587,11 +17411,11 @@ msgid "" "[#3269](https://github.com/adap/flower/pull/3269))" msgstr "" -#: ../../source/ref-changelog.md:375 +#: ../../source/ref-changelog.md:486 msgid "As always, Flower code examples have received many updates." msgstr "" -#: ../../source/ref-changelog.md:377 +#: ../../source/ref-changelog.md:488 msgid "" "**General improvements** " "([#3532](https://github.com/adap/flower/pull/3532), " @@ -16630,45 +17454,45 @@ msgid "" "[#3261](https://github.com/adap/flower/pull/3261))" msgstr "" -#: ../../source/ref-changelog.md:381 +#: ../../source/ref-changelog.md:492 msgid "**Deprecate Python 3.8 support**" msgstr "" -#: ../../source/ref-changelog.md:383 +#: ../../source/ref-changelog.md:494 msgid "" "Python 3.8 will stop receiving security fixes in [October " "2024](https://devguide.python.org/versions/). Support for Python 3.8 is " "now deprecated and will be removed in an upcoming release." msgstr "" -#: ../../source/ref-changelog.md:385 +#: ../../source/ref-changelog.md:496 msgid "" "**Deprecate (experimental)** `flower-driver-api` **and** `flower-fleet-" "api` ([#3416](https://github.com/adap/flower/pull/3416), " "[#3420](https://github.com/adap/flower/pull/3420))" msgstr "" -#: ../../source/ref-changelog.md:387 +#: ../../source/ref-changelog.md:498 msgid "" "Flower 1.9 deprecates the two (experimental) commands `flower-driver-api`" " and `flower-fleet-api`. Both commands will be removed in an upcoming " "release. Use `flower-superlink` instead." msgstr "" -#: ../../source/ref-changelog.md:389 +#: ../../source/ref-changelog.md:500 msgid "" "**Deprecate** `--server` **in favor of** `--superlink` " "([#3518](https://github.com/adap/flower/pull/3518))" msgstr "" -#: ../../source/ref-changelog.md:391 +#: ../../source/ref-changelog.md:502 msgid "" "The commands `flower-server-app` and `flower-client-app` should use " "`--superlink` instead of the now deprecated `--server`. Support for " "`--server` will be removed in a future release." msgstr "" -#: ../../source/ref-changelog.md:395 +#: ../../source/ref-changelog.md:506 msgid "" "**Replace** `flower-superlink` **CLI option** `--certificates` **with** " "`--ssl-ca-certfile` **,** `--ssl-certfile` **and** `--ssl-keyfile` " @@ -16676,7 +17500,7 @@ msgid "" "[#3408](https://github.com/adap/flower/pull/3408))" msgstr "" -#: ../../source/ref-changelog.md:397 +#: ../../source/ref-changelog.md:508 msgid "" "SSL-related `flower-superlink` CLI arguments were restructured in an " "incompatible way. Instead of passing a single `--certificates` flag with " @@ -16686,26 +17510,26 @@ msgid "" "connections.html) documentation page for details." msgstr "" -#: ../../source/ref-changelog.md:399 +#: ../../source/ref-changelog.md:510 msgid "" "**Remove SuperLink** `--vce` **option** " "([#3513](https://github.com/adap/flower/pull/3513))" msgstr "" -#: ../../source/ref-changelog.md:401 +#: ../../source/ref-changelog.md:512 msgid "" "Instead of separately starting a SuperLink and a `ServerApp` for " "simulation, simulations must now be started using the single `flower-" "simulation` command." msgstr "" -#: ../../source/ref-changelog.md:403 +#: ../../source/ref-changelog.md:514 msgid "" "**Merge** `--grpc-rere` **and** `--rest` **SuperLink options** " "([#3527](https://github.com/adap/flower/pull/3527))" msgstr "" -#: ../../source/ref-changelog.md:405 +#: ../../source/ref-changelog.md:516 msgid "" "To simplify the usage of `flower-superlink`, previously separate sets of " "CLI options for gRPC and REST were merged into one unified set of " @@ -16714,11 +17538,11 @@ msgid "" "details." msgstr "" -#: ../../source/ref-changelog.md:407 +#: ../../source/ref-changelog.md:518 msgid "v1.8.0 (2024-04-03)" msgstr "" -#: ../../source/ref-changelog.md:413 +#: ../../source/ref-changelog.md:524 msgid "" "`Adam Narozniak`, `Charles Beauville`, `Daniel J. Beutel`, `Daniel Nata " "Nugraha`, `Danny`, `Gustavo Bertoli`, `Heng Pan`, `Ikko Eltociear " @@ -16727,7 +17551,7 @@ msgid "" "`tabdar-khan` " msgstr "" -#: ../../source/ref-changelog.md:417 +#: ../../source/ref-changelog.md:528 msgid "" "**Introduce Flower Next high-level API (stable)** " "([#3002](https://github.com/adap/flower/pull/3002), " @@ -16757,7 +17581,7 @@ msgid "" "[#3197](https://github.com/adap/flower/pull/3197))" msgstr "" -#: ../../source/ref-changelog.md:419 +#: ../../source/ref-changelog.md:530 msgid "" "The Flower Next high-level API is stable! Flower Next is the future of " "Flower - all new features (like Flower Mods) will be built on top of it. " @@ -16771,7 +17595,7 @@ msgid "" "projects that use `Strategy`, `NumPyClient` & co." msgstr "" -#: ../../source/ref-changelog.md:421 +#: ../../source/ref-changelog.md:532 msgid "" "**Introduce Flower Next low-level API (preview)** " "([#3062](https://github.com/adap/flower/pull/3062), " @@ -16779,7 +17603,7 @@ msgid "" "[#3069](https://github.com/adap/flower/pull/3069))" msgstr "" -#: ../../source/ref-changelog.md:423 +#: ../../source/ref-changelog.md:534 msgid "" "In addition to the Flower Next *high-level* API that uses `Strategy`, " "`NumPyClient` & co, Flower 1.8 also comes with a preview version of the " @@ -16796,7 +17620,7 @@ msgid "" "custom SMPC protocols, to name just a few." msgstr "" -#: ../../source/ref-changelog.md:425 +#: ../../source/ref-changelog.md:536 msgid "" "**Introduce Flower Mods (preview)** " "([#3054](https://github.com/adap/flower/pull/3054), " @@ -16804,7 +17628,7 @@ msgid "" "[#3083](https://github.com/adap/flower/pull/3083))" msgstr "" -#: ../../source/ref-changelog.md:427 +#: ../../source/ref-changelog.md:538 msgid "" "Flower Modifiers (we call them Mods) can intercept messages and analyze, " "edit or handle them directly. Mods can be used to develop pluggable " @@ -16816,7 +17640,7 @@ msgid "" "can already use it to experiment with arbirtrary SMPC protocols." msgstr "" -#: ../../source/ref-changelog.md:429 +#: ../../source/ref-changelog.md:540 msgid "" "**Fine-tune LLMs with LLM FlowerTune** " "([#3029](https://github.com/adap/flower/pull/3029), " @@ -16828,7 +17652,7 @@ msgid "" "[#3172](https://github.com/adap/flower/pull/3172))" msgstr "" -#: ../../source/ref-changelog.md:431 +#: ../../source/ref-changelog.md:542 msgid "" "We are introducing LLM FlowerTune, an introductory example that " "demonstrates federated LLM fine-tuning of pre-trained Llama2 models on " @@ -16838,7 +17662,7 @@ msgid "" "-llm-flowertune-federated-llm-finetuning-with-flower/) for more details." msgstr "" -#: ../../source/ref-changelog.md:433 +#: ../../source/ref-changelog.md:544 msgid "" "**Introduce built-in Differential Privacy (preview)** " "([#2798](https://github.com/adap/flower/pull/2798), " @@ -16852,7 +17676,7 @@ msgid "" "[#3074](https://github.com/adap/flower/pull/3074))" msgstr "" -#: ../../source/ref-changelog.md:435 +#: ../../source/ref-changelog.md:546 msgid "" "Built-in Differential Privacy is here! Flower supports both central and " "local differential privacy (DP). Central DP can be configured with either" @@ -16865,7 +17689,7 @@ msgid "" "/how-to-use-differential-privacy.html) in Flower." msgstr "" -#: ../../source/ref-changelog.md:437 +#: ../../source/ref-changelog.md:548 msgid "" "**Introduce built-in Secure Aggregation (preview)** " "([#3120](https://github.com/adap/flower/pull/3120), " @@ -16873,7 +17697,7 @@ msgid "" "[#3108](https://github.com/adap/flower/pull/3108))" msgstr "" -#: ../../source/ref-changelog.md:439 +#: ../../source/ref-changelog.md:550 msgid "" "Built-in Secure Aggregation is here! Flower now supports different secure" " aggregation protocols out-of-the-box. The best part? You can add secure " @@ -16886,7 +17710,7 @@ msgid "" "in the same project." msgstr "" -#: ../../source/ref-changelog.md:441 +#: ../../source/ref-changelog.md:552 msgid "" "**Introduce** `flwr` **CLI (preview)** " "([#2942](https://github.com/adap/flower/pull/2942), " @@ -16900,13 +17724,13 @@ msgid "" "[#3142](https://github.com/adap/flower/pull/3142))" msgstr "" -#: ../../source/ref-changelog.md:443 +#: ../../source/ref-changelog.md:554 msgid "" "A new `flwr` CLI command allows creating new Flower projects (`flwr new`)" " and then running them using the Simulation Engine (`flwr run`)." msgstr "" -#: ../../source/ref-changelog.md:445 +#: ../../source/ref-changelog.md:556 msgid "" "**Introduce Flower Next Simulation Engine** " "([#3024](https://github.com/adap/flower/pull/3024), " @@ -16921,20 +17745,20 @@ msgid "" "[#3008](https://github.com/adap/flower/pull/3008))" msgstr "" -#: ../../source/ref-changelog.md:447 +#: ../../source/ref-changelog.md:558 msgid "" "The Flower Simulation Engine can now run Flower Next projects. For " "notebook environments, there's also a new `run_simulation` function that " "can run `ServerApp` and `ClientApp`." msgstr "" -#: ../../source/ref-changelog.md:449 +#: ../../source/ref-changelog.md:560 msgid "" "**Handle SuperNode connection errors** " "([#2969](https://github.com/adap/flower/pull/2969))" msgstr "" -#: ../../source/ref-changelog.md:451 +#: ../../source/ref-changelog.md:562 msgid "" "A SuperNode will now try to reconnect indefinitely to the SuperLink in " "case of connection errors. The arguments `--max-retries` and `--max-wait-" @@ -16945,7 +17769,7 @@ msgid "" "reconnect to the SuperLink." msgstr "" -#: ../../source/ref-changelog.md:453 +#: ../../source/ref-changelog.md:564 msgid "" "**General updates to Flower Baselines** " "([#2904](https://github.com/adap/flower/pull/2904), " @@ -16954,13 +17778,13 @@ msgid "" "[#2968](https://github.com/adap/flower/pull/2968))" msgstr "" -#: ../../source/ref-changelog.md:455 +#: ../../source/ref-changelog.md:566 msgid "" "There's a new [FedStar](https://flower.ai/docs/baselines/fedstar.html) " "baseline. Several other baselined have been updated as well." msgstr "" -#: ../../source/ref-changelog.md:457 +#: ../../source/ref-changelog.md:568 msgid "" "**Improve documentation and translations** " "([#3050](https://github.com/adap/flower/pull/3050), " @@ -16981,14 +17805,14 @@ msgid "" "[#2989](https://github.com/adap/flower/pull/2989))" msgstr "" -#: ../../source/ref-changelog.md:459 +#: ../../source/ref-changelog.md:570 msgid "" "As usual, we merged many smaller and larger improvements to the " "documentation. A special thank you goes to [Sebastian van der " "Voort](https://github.com/svdvoort) for landing a big documentation PR!" msgstr "" -#: ../../source/ref-changelog.md:461 +#: ../../source/ref-changelog.md:572 msgid "" "**General updates to Flower Examples** " "([3134](https://github.com/adap/flower/pull/3134), " @@ -17004,7 +17828,7 @@ msgid "" "[#3117](https://github.com/adap/flower/pull/3117))" msgstr "" -#: ../../source/ref-changelog.md:463 +#: ../../source/ref-changelog.md:574 msgid "" "Two new examples show federated training of a Vision Transformer (ViT) " "and federated learning in a medical context using the popular MONAI " @@ -17013,7 +17837,7 @@ msgid "" "received considerable updates as well." msgstr "" -#: ../../source/ref-changelog.md:465 +#: ../../source/ref-changelog.md:576 msgid "" "**General improvements** " "([#3171](https://github.com/adap/flower/pull/3171), " @@ -17091,11 +17915,11 @@ msgid "" "[#2954](https://github.com/adap/flower/pull/2954))" msgstr "" -#: ../../source/ref-changelog.md:471 +#: ../../source/ref-changelog.md:582 msgid "v1.7.0 (2024-02-05)" msgstr "" -#: ../../source/ref-changelog.md:477 +#: ../../source/ref-changelog.md:588 msgid "" "`Aasheesh Singh`, `Adam Narozniak`, `Aml Hassan Esmil`, `Charles " "Beauville`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Edoardo " @@ -17105,7 +17929,7 @@ msgid "" "Shaaban`, `Yan Gao`, `Yasar Abbas` " msgstr "" -#: ../../source/ref-changelog.md:481 +#: ../../source/ref-changelog.md:592 msgid "" "**Introduce stateful clients (experimental)** " "([#2770](https://github.com/adap/flower/pull/2770), " @@ -17115,7 +17939,7 @@ msgid "" "[#2769](https://github.com/adap/flower/pull/2769))" msgstr "" -#: ../../source/ref-changelog.md:483 +#: ../../source/ref-changelog.md:594 msgid "" "Subclasses of `Client` and `NumPyClient` can now store local state that " "remains on the client. Let's start with the highlight first: this new " @@ -17128,13 +17952,13 @@ msgid "" "unified way across simulation and deployment." msgstr "" -#: ../../source/ref-changelog.md:485 +#: ../../source/ref-changelog.md:596 msgid "" "**Improve performance** " "([#2293](https://github.com/adap/flower/pull/2293))" msgstr "" -#: ../../source/ref-changelog.md:487 +#: ../../source/ref-changelog.md:598 msgid "" "Flower is faster than ever. All `FedAvg`-derived strategies now use in-" "place aggregation to reduce memory consumption. The Flower client " @@ -17143,27 +17967,27 @@ msgid "" "training time is short." msgstr "" -#: ../../source/ref-changelog.md:489 +#: ../../source/ref-changelog.md:600 msgid "" "**Support Federated Learning with Apple MLX and Flower** " "([#2693](https://github.com/adap/flower/pull/2693))" msgstr "" -#: ../../source/ref-changelog.md:491 +#: ../../source/ref-changelog.md:602 msgid "" "Flower has official support for federated learning using [Apple " "MLX](https://ml-explore.github.io/mlx) via the new `quickstart-mlx` code " "example." msgstr "" -#: ../../source/ref-changelog.md:493 +#: ../../source/ref-changelog.md:604 msgid "" "**Introduce new XGBoost cyclic strategy** " "([#2666](https://github.com/adap/flower/pull/2666), " "[#2668](https://github.com/adap/flower/pull/2668))" msgstr "" -#: ../../source/ref-changelog.md:495 +#: ../../source/ref-changelog.md:606 msgid "" "A new strategy called `FedXgbCyclic` supports a client-by-client style of" " training (often called cyclic). The `xgboost-comprehensive` code example" @@ -17172,31 +17996,31 @@ msgid "" "offers best-in-class XGBoost support." msgstr "" -#: ../../source/ref-changelog.md:497 +#: ../../source/ref-changelog.md:608 msgid "" "**Support Python 3.11** " "([#2394](https://github.com/adap/flower/pull/2394))" msgstr "" -#: ../../source/ref-changelog.md:499 +#: ../../source/ref-changelog.md:610 msgid "" "Framework tests now run on Python 3.8, 3.9, 3.10, and 3.11. This will " "ensure better support for users using more recent Python versions." msgstr "" -#: ../../source/ref-changelog.md:501 +#: ../../source/ref-changelog.md:612 msgid "" "**Update gRPC and ProtoBuf dependencies** " "([#2814](https://github.com/adap/flower/pull/2814))" msgstr "" -#: ../../source/ref-changelog.md:503 +#: ../../source/ref-changelog.md:614 msgid "" "The `grpcio` and `protobuf` dependencies were updated to their latest " "versions for improved security and performance." msgstr "" -#: ../../source/ref-changelog.md:505 +#: ../../source/ref-changelog.md:616 msgid "" "**Introduce Docker image for Flower server** " "([#2700](https://github.com/adap/flower/pull/2700), " @@ -17210,7 +18034,7 @@ msgid "" "[#2701](https://github.com/adap/flower/pull/2701))" msgstr "" -#: ../../source/ref-changelog.md:507 +#: ../../source/ref-changelog.md:618 msgid "" "The Flower server can now be run using an official Docker image. A new " "how-to guide explains [how to run Flower using " @@ -17218,25 +18042,25 @@ msgid "" "docker.html). An official Flower client Docker image will follow." msgstr "" -#: ../../source/ref-changelog.md:509 +#: ../../source/ref-changelog.md:620 msgid "" "**Introduce** `flower-via-docker-compose` **example** " "([#2626](https://github.com/adap/flower/pull/2626))" msgstr "" -#: ../../source/ref-changelog.md:511 +#: ../../source/ref-changelog.md:622 msgid "" "**Introduce** `quickstart-sklearn-tabular` **example** " "([#2719](https://github.com/adap/flower/pull/2719))" msgstr "" -#: ../../source/ref-changelog.md:513 +#: ../../source/ref-changelog.md:624 msgid "" "**Introduce** `custom-metrics` **example** " "([#1958](https://github.com/adap/flower/pull/1958))" msgstr "" -#: ../../source/ref-changelog.md:515 +#: ../../source/ref-changelog.md:626 msgid "" "**Update code examples to use Flower Datasets** " "([#2450](https://github.com/adap/flower/pull/2450), " @@ -17245,13 +18069,13 @@ msgid "" "[#2712](https://github.com/adap/flower/pull/2712))" msgstr "" -#: ../../source/ref-changelog.md:517 +#: ../../source/ref-changelog.md:628 msgid "" "Several code examples were updated to use [Flower " "Datasets](https://flower.ai/docs/datasets/)." msgstr "" -#: ../../source/ref-changelog.md:519 +#: ../../source/ref-changelog.md:630 msgid "" "**General updates to Flower Examples** " "([#2381](https://github.com/adap/flower/pull/2381), " @@ -17266,41 +18090,41 @@ msgid "" "[#2655](https://github.com/adap/flower/pull/2655))" msgstr "" -#: ../../source/ref-changelog.md:521 +#: ../../source/ref-changelog.md:632 msgid "Many Flower code examples received substantial updates." msgstr "" -#: ../../source/ref-changelog.md:523 ../../source/ref-changelog.md:616 +#: ../../source/ref-changelog.md:634 ../../source/ref-changelog.md:727 msgid "**Update Flower Baselines**" msgstr "" -#: ../../source/ref-changelog.md:525 +#: ../../source/ref-changelog.md:636 msgid "" "HFedXGBoost ([#2226](https://github.com/adap/flower/pull/2226), " "[#2771](https://github.com/adap/flower/pull/2771))" msgstr "" -#: ../../source/ref-changelog.md:526 +#: ../../source/ref-changelog.md:637 msgid "FedVSSL ([#2412](https://github.com/adap/flower/pull/2412))" msgstr "" -#: ../../source/ref-changelog.md:527 +#: ../../source/ref-changelog.md:638 msgid "FedNova ([#2179](https://github.com/adap/flower/pull/2179))" msgstr "" -#: ../../source/ref-changelog.md:528 +#: ../../source/ref-changelog.md:639 msgid "HeteroFL ([#2439](https://github.com/adap/flower/pull/2439))" msgstr "" -#: ../../source/ref-changelog.md:529 +#: ../../source/ref-changelog.md:640 msgid "FedAvgM ([#2246](https://github.com/adap/flower/pull/2246))" msgstr "" -#: ../../source/ref-changelog.md:530 +#: ../../source/ref-changelog.md:641 msgid "FedPara ([#2722](https://github.com/adap/flower/pull/2722))" msgstr "" -#: ../../source/ref-changelog.md:532 +#: ../../source/ref-changelog.md:643 msgid "" "**Improve documentation** " "([#2674](https://github.com/adap/flower/pull/2674), " @@ -17311,7 +18135,7 @@ msgid "" "[#2900](https://github.com/adap/flower/pull/2900))" msgstr "" -#: ../../source/ref-changelog.md:534 +#: ../../source/ref-changelog.md:645 msgid "" "**Improved testing and development infrastructure** " "([#2797](https://github.com/adap/flower/pull/2797), " @@ -17345,13 +18169,13 @@ msgid "" "[#2398](https://github.com/adap/flower/pull/2398))" msgstr "" -#: ../../source/ref-changelog.md:536 +#: ../../source/ref-changelog.md:647 msgid "" "The Flower testing and development infrastructure has received " "substantial updates. This makes Flower 1.7 the most tested release ever." msgstr "" -#: ../../source/ref-changelog.md:538 +#: ../../source/ref-changelog.md:649 msgid "" "**Update dependencies** " "([#2753](https://github.com/adap/flower/pull/2753), " @@ -17375,7 +18199,7 @@ msgid "" "[#2789](https://github.com/adap/flower/pull/2789))" msgstr "" -#: ../../source/ref-changelog.md:540 +#: ../../source/ref-changelog.md:651 msgid "" "**General improvements** " "([#2803](https://github.com/adap/flower/pull/2803), " @@ -17416,14 +18240,14 @@ msgid "" "[#2759](https://github.com/adap/flower/pull/2759))" msgstr "" -#: ../../source/ref-changelog.md:544 +#: ../../source/ref-changelog.md:655 msgid "" "**Deprecate** `start_numpy_client` " "([#2563](https://github.com/adap/flower/pull/2563), " "[#2718](https://github.com/adap/flower/pull/2718))" msgstr "" -#: ../../source/ref-changelog.md:546 +#: ../../source/ref-changelog.md:657 msgid "" "Until now, clients of type `NumPyClient` needed to be started via " "`start_numpy_client`. In our efforts to consolidate framework APIs, we " @@ -17434,63 +18258,63 @@ msgid "" "updated accordingly." msgstr "" -#: ../../source/ref-changelog.md:548 +#: ../../source/ref-changelog.md:659 msgid "" "**Deprecate legacy DP wrappers** " "([#2749](https://github.com/adap/flower/pull/2749))" msgstr "" -#: ../../source/ref-changelog.md:550 +#: ../../source/ref-changelog.md:661 msgid "" "Legacy DP wrapper classes are deprecated, but still functional. This is " "in preparation for an all-new pluggable version of differential privacy " "support in Flower." msgstr "" -#: ../../source/ref-changelog.md:552 +#: ../../source/ref-changelog.md:663 msgid "" "**Make optional arg** `--callable` **in** `flower-client` **a required " "positional arg** ([#2673](https://github.com/adap/flower/pull/2673))" msgstr "" -#: ../../source/ref-changelog.md:554 +#: ../../source/ref-changelog.md:665 msgid "" "**Rename** `certificates` **to** `root_certificates` **in** `Driver` " "([#2890](https://github.com/adap/flower/pull/2890))" msgstr "" -#: ../../source/ref-changelog.md:556 +#: ../../source/ref-changelog.md:667 msgid "" "**Drop experimental** `Task` **fields** " "([#2866](https://github.com/adap/flower/pull/2866), " "[#2865](https://github.com/adap/flower/pull/2865))" msgstr "" -#: ../../source/ref-changelog.md:558 +#: ../../source/ref-changelog.md:669 msgid "" "Experimental fields `sa`, `legacy_server_message` and " "`legacy_client_message` were removed from `Task` message. The removed " "fields are superseded by the new `RecordSet` abstraction." msgstr "" -#: ../../source/ref-changelog.md:560 +#: ../../source/ref-changelog.md:671 msgid "" "**Retire MXNet examples** " "([#2724](https://github.com/adap/flower/pull/2724))" msgstr "" -#: ../../source/ref-changelog.md:562 +#: ../../source/ref-changelog.md:673 msgid "" "The development of the MXNet fremework has ended and the project is now " "[archived on GitHub](https://github.com/apache/mxnet). Existing MXNet " "examples won't receive updates." msgstr "" -#: ../../source/ref-changelog.md:564 +#: ../../source/ref-changelog.md:675 msgid "v1.6.0 (2023-11-28)" msgstr "" -#: ../../source/ref-changelog.md:570 +#: ../../source/ref-changelog.md:681 msgid "" "`Aashish Kolluri`, `Adam Narozniak`, `Alessio Mora`, `Barathwaja S`, " "`Charles Beauville`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Gabriel " @@ -17500,13 +18324,13 @@ msgid "" "`cnxdeveloper`, `k3nfalt` " msgstr "" -#: ../../source/ref-changelog.md:574 +#: ../../source/ref-changelog.md:685 msgid "" "**Add experimental support for Python 3.12** " "([#2565](https://github.com/adap/flower/pull/2565))" msgstr "" -#: ../../source/ref-changelog.md:576 +#: ../../source/ref-changelog.md:687 msgid "" "**Add new XGBoost examples** " "([#2612](https://github.com/adap/flower/pull/2612), " @@ -17517,19 +18341,19 @@ msgid "" "[#2567](https://github.com/adap/flower/pull/2567))" msgstr "" -#: ../../source/ref-changelog.md:578 +#: ../../source/ref-changelog.md:689 msgid "" "We have added a new `xgboost-quickstart` example alongside a new " "`xgboost-comprehensive` example that goes more in-depth." msgstr "" -#: ../../source/ref-changelog.md:580 +#: ../../source/ref-changelog.md:691 msgid "" "**Add Vertical FL example** " "([#2598](https://github.com/adap/flower/pull/2598))" msgstr "" -#: ../../source/ref-changelog.md:582 +#: ../../source/ref-changelog.md:693 msgid "" "We had many questions about Vertical Federated Learning using Flower, so " "we decided to add an simple example for it on the [Titanic " @@ -17537,29 +18361,29 @@ msgid "" "tutorial (in the README)." msgstr "" -#: ../../source/ref-changelog.md:584 +#: ../../source/ref-changelog.md:695 msgid "" "**Support custom** `ClientManager` **in** `start_driver()` " "([#2292](https://github.com/adap/flower/pull/2292))" msgstr "" -#: ../../source/ref-changelog.md:586 +#: ../../source/ref-changelog.md:697 msgid "" "**Update REST API to support create and delete nodes** " "([#2283](https://github.com/adap/flower/pull/2283))" msgstr "" -#: ../../source/ref-changelog.md:588 +#: ../../source/ref-changelog.md:699 msgid "" "**Update the Android SDK** " "([#2187](https://github.com/adap/flower/pull/2187))" msgstr "" -#: ../../source/ref-changelog.md:590 +#: ../../source/ref-changelog.md:701 msgid "Add gRPC request-response capability to the Android SDK." msgstr "" -#: ../../source/ref-changelog.md:592 +#: ../../source/ref-changelog.md:703 msgid "" "**Update the C++ SDK** " "([#2537](https://github.com/adap/flower/pull/2537), " @@ -17568,18 +18392,18 @@ msgid "" "[#2522](https://github.com/adap/flower/pull/2522))" msgstr "" -#: ../../source/ref-changelog.md:594 +#: ../../source/ref-changelog.md:705 msgid "Add gRPC request-response capability to the C++ SDK." msgstr "" -#: ../../source/ref-changelog.md:596 +#: ../../source/ref-changelog.md:707 msgid "" "**Make HTTPS the new default** " "([#2591](https://github.com/adap/flower/pull/2591), " "[#2636](https://github.com/adap/flower/pull/2636))" msgstr "" -#: ../../source/ref-changelog.md:598 +#: ../../source/ref-changelog.md:709 msgid "" "Flower is moving to HTTPS by default. The new `flower-server` requires " "passing `--certificates`, but users can enable `--insecure` to use HTTP " @@ -17589,21 +18413,21 @@ msgid "" "enable insecure HTTP connections." msgstr "" -#: ../../source/ref-changelog.md:600 +#: ../../source/ref-changelog.md:711 msgid "" "For backward compatibility, `start_client()` and `start_numpy_client()` " "will still start in insecure mode by default. In a future release, " "insecure connections will require user opt-in by passing `insecure=True`." msgstr "" -#: ../../source/ref-changelog.md:602 +#: ../../source/ref-changelog.md:713 msgid "" "**Unify client API** ([#2303](https://github.com/adap/flower/pull/2303), " "[#2390](https://github.com/adap/flower/pull/2390), " "[#2493](https://github.com/adap/flower/pull/2493))" msgstr "" -#: ../../source/ref-changelog.md:604 +#: ../../source/ref-changelog.md:715 msgid "" "Using the `client_fn`, Flower clients can interchangeably run as " "standalone processes (i.e. via `start_client`) or in simulation (i.e. via" @@ -17612,92 +18436,92 @@ msgid "" "convert a `NumPyClient` to a `Client`." msgstr "" -#: ../../source/ref-changelog.md:606 +#: ../../source/ref-changelog.md:717 msgid "" "**Add new** `Bulyan` **strategy** " "([#1817](https://github.com/adap/flower/pull/1817), " "[#1891](https://github.com/adap/flower/pull/1891))" msgstr "" -#: ../../source/ref-changelog.md:608 +#: ../../source/ref-changelog.md:719 msgid "" "The new `Bulyan` strategy implements Bulyan by [El Mhamdi et al., " "2018](https://arxiv.org/abs/1802.07927)" msgstr "" -#: ../../source/ref-changelog.md:610 +#: ../../source/ref-changelog.md:721 msgid "" "**Add new** `XGB Bagging` **strategy** " "([#2611](https://github.com/adap/flower/pull/2611))" msgstr "" -#: ../../source/ref-changelog.md:612 ../../source/ref-changelog.md:614 +#: ../../source/ref-changelog.md:723 ../../source/ref-changelog.md:725 msgid "" "**Introduce `WorkloadState`** " "([#2564](https://github.com/adap/flower/pull/2564), " "[#2632](https://github.com/adap/flower/pull/2632))" msgstr "" -#: ../../source/ref-changelog.md:618 +#: ../../source/ref-changelog.md:729 msgid "" "FedProx ([#2210](https://github.com/adap/flower/pull/2210), " "[#2286](https://github.com/adap/flower/pull/2286), " "[#2509](https://github.com/adap/flower/pull/2509))" msgstr "" -#: ../../source/ref-changelog.md:620 +#: ../../source/ref-changelog.md:731 msgid "" "Baselines Docs ([#2290](https://github.com/adap/flower/pull/2290), " "[#2400](https://github.com/adap/flower/pull/2400))" msgstr "" -#: ../../source/ref-changelog.md:622 +#: ../../source/ref-changelog.md:733 msgid "" "FedMLB ([#2340](https://github.com/adap/flower/pull/2340), " "[#2507](https://github.com/adap/flower/pull/2507))" msgstr "" -#: ../../source/ref-changelog.md:624 +#: ../../source/ref-changelog.md:735 msgid "" "TAMUNA ([#2254](https://github.com/adap/flower/pull/2254), " "[#2508](https://github.com/adap/flower/pull/2508))" msgstr "" -#: ../../source/ref-changelog.md:626 +#: ../../source/ref-changelog.md:737 msgid "FedMeta [#2438](https://github.com/adap/flower/pull/2438)" msgstr "" -#: ../../source/ref-changelog.md:628 +#: ../../source/ref-changelog.md:739 msgid "FjORD [#2431](https://github.com/adap/flower/pull/2431)" msgstr "" -#: ../../source/ref-changelog.md:630 +#: ../../source/ref-changelog.md:741 msgid "MOON [#2421](https://github.com/adap/flower/pull/2421)" msgstr "" -#: ../../source/ref-changelog.md:632 +#: ../../source/ref-changelog.md:743 msgid "DepthFL [#2295](https://github.com/adap/flower/pull/2295)" msgstr "" -#: ../../source/ref-changelog.md:634 +#: ../../source/ref-changelog.md:745 msgid "FedPer [#2266](https://github.com/adap/flower/pull/2266)" msgstr "" -#: ../../source/ref-changelog.md:636 +#: ../../source/ref-changelog.md:747 msgid "FedWav2vec [#2551](https://github.com/adap/flower/pull/2551)" msgstr "" -#: ../../source/ref-changelog.md:638 +#: ../../source/ref-changelog.md:749 msgid "niid-Bench [#2428](https://github.com/adap/flower/pull/2428)" msgstr "" -#: ../../source/ref-changelog.md:640 +#: ../../source/ref-changelog.md:751 msgid "" "FedBN ([#2608](https://github.com/adap/flower/pull/2608), " "[#2615](https://github.com/adap/flower/pull/2615))" msgstr "" -#: ../../source/ref-changelog.md:642 +#: ../../source/ref-changelog.md:753 msgid "" "**General updates to Flower Examples** " "([#2384](https://github.com/adap/flower/pull/2384), " @@ -17707,7 +18531,7 @@ msgid "" "[#2545](https://github.com/adap/flower/pull/2545))" msgstr "" -#: ../../source/ref-changelog.md:644 +#: ../../source/ref-changelog.md:755 msgid "" "**General updates to Flower Baselines** " "([#2301](https://github.com/adap/flower/pull/2301), " @@ -17725,7 +18549,7 @@ msgid "" "[#2470](https://github.com/adap/flower/pull/2470))" msgstr "" -#: ../../source/ref-changelog.md:646 +#: ../../source/ref-changelog.md:757 msgid "" "**General updates to the simulation engine** " "([#2331](https://github.com/adap/flower/pull/2331), " @@ -17734,7 +18558,7 @@ msgid "" "[#2294](https://github.com/adap/flower/pull/2294))" msgstr "" -#: ../../source/ref-changelog.md:648 +#: ../../source/ref-changelog.md:759 msgid "" "**General updates to Flower SDKs** " "([#2288](https://github.com/adap/flower/pull/2288), " @@ -17746,7 +18570,7 @@ msgid "" "[#2623](https://github.com/adap/flower/pull/2623))" msgstr "" -#: ../../source/ref-changelog.md:650 +#: ../../source/ref-changelog.md:761 msgid "" "**General improvements** " "([#2309](https://github.com/adap/flower/pull/2309), " @@ -17778,13 +18602,13 @@ msgid "" "[#2596](https://github.com/adap/flower/pull/2596))" msgstr "" -#: ../../source/ref-changelog.md:652 ../../source/ref-changelog.md:742 -#: ../../source/ref-changelog.md:806 ../../source/ref-changelog.md:860 -#: ../../source/ref-changelog.md:927 +#: ../../source/ref-changelog.md:763 ../../source/ref-changelog.md:853 +#: ../../source/ref-changelog.md:917 ../../source/ref-changelog.md:971 +#: ../../source/ref-changelog.md:1038 msgid "Flower received many improvements under the hood, too many to list here." msgstr "" -#: ../../source/ref-changelog.md:656 +#: ../../source/ref-changelog.md:767 msgid "" "**Remove support for Python 3.7** " "([#2280](https://github.com/adap/flower/pull/2280), " @@ -17795,30 +18619,30 @@ msgid "" "[#2356](https://github.com/adap/flower/pull/2356))" msgstr "" -#: ../../source/ref-changelog.md:658 +#: ../../source/ref-changelog.md:769 msgid "" "Python 3.7 support was deprecated in Flower 1.5, and this release removes" " support. Flower now requires Python 3.8." msgstr "" -#: ../../source/ref-changelog.md:660 +#: ../../source/ref-changelog.md:771 msgid "" "**Remove experimental argument** `rest` **from** `start_client` " "([#2324](https://github.com/adap/flower/pull/2324))" msgstr "" -#: ../../source/ref-changelog.md:662 +#: ../../source/ref-changelog.md:773 msgid "" "The (still experimental) argument `rest` was removed from `start_client` " "and `start_numpy_client`. Use `transport=\"rest\"` to opt into the " "experimental REST API instead." msgstr "" -#: ../../source/ref-changelog.md:664 +#: ../../source/ref-changelog.md:775 msgid "v1.5.0 (2023-08-31)" msgstr "" -#: ../../source/ref-changelog.md:670 +#: ../../source/ref-changelog.md:781 msgid "" "`Adam Narozniak`, `Anass Anhari`, `Charles Beauville`, `Dana-Farber`, " "`Daniel J. Beutel`, `Daniel Nata Nugraha`, `Edoardo Gabrielli`, `Gustavo " @@ -17827,7 +18651,7 @@ msgid "" "TOKEN_v1.5.0-->" msgstr "" -#: ../../source/ref-changelog.md:674 +#: ../../source/ref-changelog.md:785 msgid "" "**Introduce new simulation engine** " "([#1969](https://github.com/adap/flower/pull/1969), " @@ -17835,7 +18659,7 @@ msgid "" "[#2248](https://github.com/adap/flower/pull/2248))" msgstr "" -#: ../../source/ref-changelog.md:676 +#: ../../source/ref-changelog.md:787 msgid "" "The new simulation engine has been rewritten from the ground up, yet it " "remains fully backwards compatible. It offers much improved stability and" @@ -17844,7 +18668,7 @@ msgid "" "only, CPU+GPU, multi-GPU, or multi-node multi-GPU environments." msgstr "" -#: ../../source/ref-changelog.md:678 +#: ../../source/ref-changelog.md:789 msgid "" "Comprehensive documentation includes a new [how-to run " "simulations](https://flower.ai/docs/framework/how-to-run-" @@ -17855,7 +18679,7 @@ msgid "" "series](https://www.youtube.com/watch?v=cRebUIGB5RU&list=PLNG4feLHqCWlnj8a_E1A_n5zr2-8pafTB)." msgstr "" -#: ../../source/ref-changelog.md:680 +#: ../../source/ref-changelog.md:791 msgid "" "**Restructure Flower Docs** " "([#1824](https://github.com/adap/flower/pull/1824), " @@ -17887,7 +18711,7 @@ msgid "" "[#2227](https://github.com/adap/flower/pull/2227))" msgstr "" -#: ../../source/ref-changelog.md:682 +#: ../../source/ref-changelog.md:793 msgid "" "Much effort went into a completely restructured Flower docs experience. " "The documentation on [flower.ai/docs](https://flower.ai/docs) is now " @@ -17895,34 +18719,34 @@ msgid "" "Flower iOS SDK, and code example projects." msgstr "" -#: ../../source/ref-changelog.md:684 +#: ../../source/ref-changelog.md:795 msgid "" "**Introduce Flower Swift SDK** " "([#1858](https://github.com/adap/flower/pull/1858), " "[#1897](https://github.com/adap/flower/pull/1897))" msgstr "" -#: ../../source/ref-changelog.md:686 +#: ../../source/ref-changelog.md:797 msgid "" "This is the first preview release of the Flower Swift SDK. Flower support" " on iOS is improving, and alongside the Swift SDK and code example, there" " is now also an iOS quickstart tutorial." msgstr "" -#: ../../source/ref-changelog.md:688 +#: ../../source/ref-changelog.md:799 msgid "" "**Introduce Flower Android SDK** " "([#2131](https://github.com/adap/flower/pull/2131))" msgstr "" -#: ../../source/ref-changelog.md:690 +#: ../../source/ref-changelog.md:801 msgid "" "This is the first preview release of the Flower Kotlin SDK. Flower " "support on Android is improving, and alongside the Kotlin SDK and code " "example, there is now also an Android quickstart tutorial." msgstr "" -#: ../../source/ref-changelog.md:692 +#: ../../source/ref-changelog.md:803 msgid "" "**Introduce new end-to-end testing infrastructure** " "([#1842](https://github.com/adap/flower/pull/1842), " @@ -17944,42 +18768,42 @@ msgid "" "[#2165](https://github.com/adap/flower/pull/2165))" msgstr "" -#: ../../source/ref-changelog.md:694 +#: ../../source/ref-changelog.md:805 msgid "" "A new testing infrastructure ensures that new changes stay compatible " "with existing framework integrations or strategies." msgstr "" -#: ../../source/ref-changelog.md:696 +#: ../../source/ref-changelog.md:807 msgid "**Deprecate Python 3.7**" msgstr "" -#: ../../source/ref-changelog.md:698 +#: ../../source/ref-changelog.md:809 msgid "" "Since Python 3.7 reached its end of life (EOL) on 2023-06-27, support for" " Python 3.7 is now deprecated and will be removed in an upcoming release." msgstr "" -#: ../../source/ref-changelog.md:700 +#: ../../source/ref-changelog.md:811 msgid "" "**Add new** `FedTrimmedAvg` **strategy** " "([#1769](https://github.com/adap/flower/pull/1769), " "[#1853](https://github.com/adap/flower/pull/1853))" msgstr "" -#: ../../source/ref-changelog.md:702 +#: ../../source/ref-changelog.md:813 msgid "" "The new `FedTrimmedAvg` strategy implements Trimmed Mean by [Dong Yin, " "2018](https://arxiv.org/abs/1803.01498)." msgstr "" -#: ../../source/ref-changelog.md:704 +#: ../../source/ref-changelog.md:815 msgid "" "**Introduce start_driver** " "([#1697](https://github.com/adap/flower/pull/1697))" msgstr "" -#: ../../source/ref-changelog.md:706 +#: ../../source/ref-changelog.md:817 msgid "" "In addition to `start_server` and using the raw Driver API, there is a " "new `start_driver` function that allows for running `start_server` " @@ -17988,13 +18812,13 @@ msgid "" "`start_driver`." msgstr "" -#: ../../source/ref-changelog.md:708 +#: ../../source/ref-changelog.md:819 msgid "" "**Add parameter aggregation to** `mt-pytorch` **code example** " "([#1785](https://github.com/adap/flower/pull/1785))" msgstr "" -#: ../../source/ref-changelog.md:710 +#: ../../source/ref-changelog.md:821 msgid "" "The `mt-pytorch` example shows how to aggregate parameters when writing a" " driver script. The included `driver.py` and `server.py` have been " @@ -18002,53 +18826,53 @@ msgid "" "building server-side logic." msgstr "" -#: ../../source/ref-changelog.md:712 +#: ../../source/ref-changelog.md:823 msgid "" "**Migrate experimental REST API to Starlette** " "([2171](https://github.com/adap/flower/pull/2171))" msgstr "" -#: ../../source/ref-changelog.md:714 +#: ../../source/ref-changelog.md:825 msgid "" "The (experimental) REST API used to be implemented in " "[FastAPI](https://fastapi.tiangolo.com/), but it has now been migrated to" " use [Starlette](https://www.starlette.io/) directly." msgstr "" -#: ../../source/ref-changelog.md:716 +#: ../../source/ref-changelog.md:827 msgid "" "Please note: The REST request-response API is still experimental and will" " likely change significantly over time." msgstr "" -#: ../../source/ref-changelog.md:718 +#: ../../source/ref-changelog.md:829 msgid "" "**Introduce experimental gRPC request-response API** " "([#1867](https://github.com/adap/flower/pull/1867), " "[#1901](https://github.com/adap/flower/pull/1901))" msgstr "" -#: ../../source/ref-changelog.md:720 +#: ../../source/ref-changelog.md:831 msgid "" "In addition to the existing gRPC API (based on bidirectional streaming) " "and the experimental REST API, there is now a new gRPC API that uses a " "request-response model to communicate with client nodes." msgstr "" -#: ../../source/ref-changelog.md:722 +#: ../../source/ref-changelog.md:833 msgid "" "Please note: The gRPC request-response API is still experimental and will" " likely change significantly over time." msgstr "" -#: ../../source/ref-changelog.md:724 +#: ../../source/ref-changelog.md:835 msgid "" "**Replace the experimental** `start_client(rest=True)` **with the new** " "`start_client(transport=\"rest\")` " "([#1880](https://github.com/adap/flower/pull/1880))" msgstr "" -#: ../../source/ref-changelog.md:726 +#: ../../source/ref-changelog.md:837 msgid "" "The (experimental) `start_client` argument `rest` was deprecated in " "favour of a new argument `transport`. `start_client(transport=\"rest\")` " @@ -18057,30 +18881,30 @@ msgid "" "argument `rest` will be removed in a future release." msgstr "" -#: ../../source/ref-changelog.md:728 +#: ../../source/ref-changelog.md:839 msgid "" "**Add a new gRPC option** " "([#2197](https://github.com/adap/flower/pull/2197))" msgstr "" -#: ../../source/ref-changelog.md:730 +#: ../../source/ref-changelog.md:841 msgid "" "We now start a gRPC server with the `grpc.keepalive_permit_without_calls`" " option set to 0 by default. This prevents the clients from sending " "keepalive pings when there is no outstanding stream." msgstr "" -#: ../../source/ref-changelog.md:732 +#: ../../source/ref-changelog.md:843 msgid "" "**Improve example notebooks** " "([#2005](https://github.com/adap/flower/pull/2005))" msgstr "" -#: ../../source/ref-changelog.md:734 +#: ../../source/ref-changelog.md:845 msgid "There's a new 30min Federated Learning PyTorch tutorial!" msgstr "" -#: ../../source/ref-changelog.md:736 +#: ../../source/ref-changelog.md:847 msgid "" "**Example updates** ([#1772](https://github.com/adap/flower/pull/1772), " "[#1873](https://github.com/adap/flower/pull/1873), " @@ -18095,7 +18919,7 @@ msgid "" "[#2183](https://github.com/adap/flower/pull/2183))" msgstr "" -#: ../../source/ref-changelog.md:738 +#: ../../source/ref-changelog.md:849 msgid "" "Many examples have received significant updates, including simplified " "advanced-tensorflow and advanced-pytorch examples, improved macOS " @@ -18104,7 +18928,7 @@ msgid "" "(in addition to `pyproject.toml`)." msgstr "" -#: ../../source/ref-changelog.md:740 +#: ../../source/ref-changelog.md:851 msgid "" "**General improvements** " "([#1872](https://github.com/adap/flower/pull/1872), " @@ -18115,11 +18939,11 @@ msgid "" "[#2171](https://github.com/adap/flower/pull/2171))" msgstr "" -#: ../../source/ref-changelog.md:748 +#: ../../source/ref-changelog.md:859 msgid "v1.4.0 (2023-04-21)" msgstr "" -#: ../../source/ref-changelog.md:754 +#: ../../source/ref-changelog.md:865 msgid "" "`Adam Narozniak`, `Alexander Viala Bellander`, `Charles Beauville`, " "`Chenyang Ma (Danny)`, `Daniel J. Beutel`, `Edoardo`, `Gautam Jajoo`, " @@ -18129,7 +18953,7 @@ msgid "" "`Steve Laskaridis`, `Steven Hé (Sīchàng)`, `Taner Topal`" msgstr "" -#: ../../source/ref-changelog.md:758 +#: ../../source/ref-changelog.md:869 msgid "" "**Introduce support for XGBoost (**`FedXgbNnAvg` **strategy and " "example)** ([#1694](https://github.com/adap/flower/pull/1694), " @@ -18140,7 +18964,7 @@ msgid "" "[#1795](https://github.com/adap/flower/pull/1795))" msgstr "" -#: ../../source/ref-changelog.md:760 +#: ../../source/ref-changelog.md:871 msgid "" "XGBoost is a tree-based ensemble machine learning algorithm that uses " "gradient boosting to improve model accuracy. We added a new `FedXgbNnAvg`" @@ -18151,14 +18975,14 @@ msgid "" "an XGBoost project." msgstr "" -#: ../../source/ref-changelog.md:762 +#: ../../source/ref-changelog.md:873 msgid "" "**Introduce iOS SDK (preview)** " "([#1621](https://github.com/adap/flower/pull/1621), " "[#1764](https://github.com/adap/flower/pull/1764))" msgstr "" -#: ../../source/ref-changelog.md:764 +#: ../../source/ref-changelog.md:875 msgid "" "This is a major update for anyone wanting to implement Federated Learning" " on iOS mobile devices. We now have a swift iOS SDK present under " @@ -18169,14 +18993,14 @@ msgid "" "been updated!" msgstr "" -#: ../../source/ref-changelog.md:766 +#: ../../source/ref-changelog.md:877 msgid "" "**Introduce new \"What is Federated Learning?\" tutorial** " "([#1657](https://github.com/adap/flower/pull/1657), " "[#1721](https://github.com/adap/flower/pull/1721))" msgstr "" -#: ../../source/ref-changelog.md:768 +#: ../../source/ref-changelog.md:879 msgid "" "A new [entry-level tutorial](https://flower.ai/docs/framework/tutorial-" "what-is-federated-learning.html) in our documentation explains the basics" @@ -18185,7 +19009,7 @@ msgid "" "interested in Federated Learning!" msgstr "" -#: ../../source/ref-changelog.md:770 +#: ../../source/ref-changelog.md:881 msgid "" "**Introduce new Flower Baseline: FedProx MNIST** " "([#1513](https://github.com/adap/flower/pull/1513), " @@ -18194,7 +19018,7 @@ msgid "" "[#1679](https://github.com/adap/flower/pull/1679))" msgstr "" -#: ../../source/ref-changelog.md:772 +#: ../../source/ref-changelog.md:883 msgid "" "This new baseline replicates the MNIST+CNN task from the paper [Federated" " Optimization in Heterogeneous Networks (Li et al., " @@ -18202,13 +19026,13 @@ msgid "" " which aims at making convergence more robust in heterogeneous settings." msgstr "" -#: ../../source/ref-changelog.md:774 +#: ../../source/ref-changelog.md:885 msgid "" "**Introduce new Flower Baseline: FedAvg FEMNIST** " "([#1655](https://github.com/adap/flower/pull/1655))" msgstr "" -#: ../../source/ref-changelog.md:776 +#: ../../source/ref-changelog.md:887 msgid "" "This new baseline replicates an experiment evaluating the performance of " "the FedAvg algorithm on the FEMNIST dataset from the paper [LEAF: A " @@ -18216,7 +19040,7 @@ msgid "" "2018)](https://arxiv.org/abs/1812.01097)." msgstr "" -#: ../../source/ref-changelog.md:778 +#: ../../source/ref-changelog.md:889 msgid "" "**Introduce (experimental) REST API** " "([#1594](https://github.com/adap/flower/pull/1594), " @@ -18228,20 +19052,20 @@ msgid "" "[#1733](https://github.com/adap/flower/pull/1733))" msgstr "" -#: ../../source/ref-changelog.md:780 +#: ../../source/ref-changelog.md:891 msgid "" "A new REST API has been introduced as an alternative to the gRPC-based " "communication stack. In this initial version, the REST API only supports " "anonymous clients." msgstr "" -#: ../../source/ref-changelog.md:782 +#: ../../source/ref-changelog.md:893 msgid "" "Please note: The REST API is still experimental and will likely change " "significantly over time." msgstr "" -#: ../../source/ref-changelog.md:784 +#: ../../source/ref-changelog.md:895 msgid "" "**Improve the (experimental) Driver API** " "([#1663](https://github.com/adap/flower/pull/1663), " @@ -18255,7 +19079,7 @@ msgid "" "[#1794](https://github.com/adap/flower/pull/1794))" msgstr "" -#: ../../source/ref-changelog.md:786 +#: ../../source/ref-changelog.md:897 msgid "" "The Driver API is still an experimental feature, but this release " "introduces some major upgrades. One of the main improvements is the " @@ -18265,26 +19089,26 @@ msgid "" "improves the memory efficiency of a long-running Flower server." msgstr "" -#: ../../source/ref-changelog.md:788 +#: ../../source/ref-changelog.md:899 msgid "" "**Fix spilling issues related to Ray during simulations** " "([#1698](https://github.com/adap/flower/pull/1698))" msgstr "" -#: ../../source/ref-changelog.md:790 +#: ../../source/ref-changelog.md:901 msgid "" "While running long simulations, `ray` was sometimes spilling huge amounts" " of data that would make the training unable to continue. This is now " "fixed! 🎉" msgstr "" -#: ../../source/ref-changelog.md:792 +#: ../../source/ref-changelog.md:903 msgid "" "**Add new example using** `TabNet` **and Flower** " "([#1725](https://github.com/adap/flower/pull/1725))" msgstr "" -#: ../../source/ref-changelog.md:794 +#: ../../source/ref-changelog.md:905 msgid "" "TabNet is a powerful and flexible framework for training machine learning" " models on tabular data. We now have a federated example using Flower: " @@ -18292,32 +19116,32 @@ msgid "" "/quickstart-tabnet)." msgstr "" -#: ../../source/ref-changelog.md:796 +#: ../../source/ref-changelog.md:907 msgid "" "**Add new how-to guide for monitoring simulations** " "([#1649](https://github.com/adap/flower/pull/1649))" msgstr "" -#: ../../source/ref-changelog.md:798 +#: ../../source/ref-changelog.md:909 msgid "" "We now have a documentation guide to help users monitor their performance" " during simulations." msgstr "" -#: ../../source/ref-changelog.md:800 +#: ../../source/ref-changelog.md:911 msgid "" "**Add training metrics to** `History` **object during simulations** " "([#1696](https://github.com/adap/flower/pull/1696))" msgstr "" -#: ../../source/ref-changelog.md:802 +#: ../../source/ref-changelog.md:913 msgid "" "The `fit_metrics_aggregation_fn` can be used to aggregate training " "metrics, but previous releases did not save the results in the `History` " "object. This is now the case!" msgstr "" -#: ../../source/ref-changelog.md:804 +#: ../../source/ref-changelog.md:915 msgid "" "**General improvements** " "([#1659](https://github.com/adap/flower/pull/1659), " @@ -18371,23 +19195,23 @@ msgid "" "[#1805](https://github.com/adap/flower/pull/1805))" msgstr "" -#: ../../source/ref-changelog.md:812 +#: ../../source/ref-changelog.md:923 msgid "v1.3.0 (2023-02-06)" msgstr "" -#: ../../source/ref-changelog.md:818 +#: ../../source/ref-changelog.md:929 msgid "" "`Adam Narozniak`, `Alexander Viala Bellander`, `Charles Beauville`, " "`Daniel J. Beutel`, `JDRanpariya`, `Lennart Behme`, `Taner Topal`" msgstr "" -#: ../../source/ref-changelog.md:822 +#: ../../source/ref-changelog.md:933 msgid "" "**Add support for** `workload_id` **and** `group_id` **in Driver API** " "([#1595](https://github.com/adap/flower/pull/1595))" msgstr "" -#: ../../source/ref-changelog.md:824 +#: ../../source/ref-changelog.md:935 msgid "" "The (experimental) Driver API now supports a `workload_id` that can be " "used to identify which workload a task belongs to. It also supports a new" @@ -18396,36 +19220,36 @@ msgid "" " to decide whether they want to handle a task or not." msgstr "" -#: ../../source/ref-changelog.md:826 +#: ../../source/ref-changelog.md:937 msgid "" "**Make Driver API and Fleet API address configurable** " "([#1637](https://github.com/adap/flower/pull/1637))" msgstr "" -#: ../../source/ref-changelog.md:828 +#: ../../source/ref-changelog.md:939 msgid "" "The (experimental) long-running Flower server (Driver API and Fleet API) " "can now configure the server address of both Driver API (via `--driver-" "api-address`) and Fleet API (via `--fleet-api-address`) when starting:" msgstr "" -#: ../../source/ref-changelog.md:830 +#: ../../source/ref-changelog.md:941 msgid "" "`flower-server --driver-api-address \"0.0.0.0:8081\" --fleet-api-address " "\"0.0.0.0:8086\"`" msgstr "" -#: ../../source/ref-changelog.md:832 +#: ../../source/ref-changelog.md:943 msgid "Both IPv4 and IPv6 addresses are supported." msgstr "" -#: ../../source/ref-changelog.md:834 +#: ../../source/ref-changelog.md:945 msgid "" "**Add new example of Federated Learning using fastai and Flower** " "([#1598](https://github.com/adap/flower/pull/1598))" msgstr "" -#: ../../source/ref-changelog.md:836 +#: ../../source/ref-changelog.md:947 msgid "" "A new code example (`quickstart-fastai`) demonstrates federated learning " "with [fastai](https://www.fast.ai/) and Flower. You can find it here: " @@ -18433,14 +19257,14 @@ msgid "" "/quickstart-fastai)." msgstr "" -#: ../../source/ref-changelog.md:838 +#: ../../source/ref-changelog.md:949 msgid "" "**Make Android example compatible with** `flwr >= 1.0.0` **and the latest" " versions of Android** " "([#1603](https://github.com/adap/flower/pull/1603))" msgstr "" -#: ../../source/ref-changelog.md:840 +#: ../../source/ref-changelog.md:951 msgid "" "The Android code example has received a substantial update: the project " "is compatible with Flower 1.0 (and later), the UI received a full " @@ -18448,13 +19272,13 @@ msgid "" "tooling." msgstr "" -#: ../../source/ref-changelog.md:842 +#: ../../source/ref-changelog.md:953 msgid "" "**Add new `FedProx` strategy** " "([#1619](https://github.com/adap/flower/pull/1619))" msgstr "" -#: ../../source/ref-changelog.md:844 +#: ../../source/ref-changelog.md:955 msgid "" "This " "[strategy](https://github.com/adap/flower/blob/main/src/py/flwr/server/strategy/fedprox.py)" @@ -18466,25 +19290,25 @@ msgid "" "respect to the global models." msgstr "" -#: ../../source/ref-changelog.md:846 +#: ../../source/ref-changelog.md:957 msgid "" "**Add new metrics to telemetry events** " "([#1640](https://github.com/adap/flower/pull/1640))" msgstr "" -#: ../../source/ref-changelog.md:848 +#: ../../source/ref-changelog.md:959 msgid "" "An updated event structure allows, for example, the clustering of events " "within the same workload." msgstr "" -#: ../../source/ref-changelog.md:850 +#: ../../source/ref-changelog.md:961 msgid "" "**Add new custom strategy tutorial section** " "[#1623](https://github.com/adap/flower/pull/1623)" msgstr "" -#: ../../source/ref-changelog.md:852 +#: ../../source/ref-changelog.md:963 msgid "" "The Flower tutorial now has a new section that covers implementing a " "custom strategy from scratch: [Open in " @@ -18492,13 +19316,13 @@ msgid "" "/tutorial-build-a-strategy-from-scratch-pytorch.ipynb)" msgstr "" -#: ../../source/ref-changelog.md:854 +#: ../../source/ref-changelog.md:965 msgid "" "**Add new custom serialization tutorial section** " "([#1622](https://github.com/adap/flower/pull/1622))" msgstr "" -#: ../../source/ref-changelog.md:856 +#: ../../source/ref-changelog.md:967 msgid "" "The Flower tutorial now has a new section that covers custom " "serialization: [Open in " @@ -18506,7 +19330,7 @@ msgid "" "/tutorial-customize-the-client-pytorch.ipynb)" msgstr "" -#: ../../source/ref-changelog.md:858 +#: ../../source/ref-changelog.md:969 msgid "" "**General improvements** " "([#1638](https://github.com/adap/flower/pull/1638), " @@ -18544,7 +19368,7 @@ msgid "" "[#1586](https://github.com/adap/flower/pull/1586))" msgstr "" -#: ../../source/ref-changelog.md:862 +#: ../../source/ref-changelog.md:973 msgid "" "**Updated documentation** " "([#1629](https://github.com/adap/flower/pull/1629), " @@ -18556,31 +19380,31 @@ msgid "" "[#1614](https://github.com/adap/flower/pull/1614))" msgstr "" -#: ../../source/ref-changelog.md:864 ../../source/ref-changelog.md:931 +#: ../../source/ref-changelog.md:975 ../../source/ref-changelog.md:1042 msgid "" "As usual, the documentation has improved quite a bit. It is another step " "in our effort to make the Flower documentation the best documentation of " "any project. Stay tuned and as always, feel free to provide feedback!" msgstr "" -#: ../../source/ref-changelog.md:870 +#: ../../source/ref-changelog.md:981 msgid "v1.2.0 (2023-01-13)" msgstr "" -#: ../../source/ref-changelog.md:876 +#: ../../source/ref-changelog.md:987 msgid "" "`Adam Narozniak`, `Charles Beauville`, `Daniel J. Beutel`, `Edoardo`, `L." " Jiang`, `Ragy`, `Taner Topal`, `dannymcy`" msgstr "" -#: ../../source/ref-changelog.md:880 +#: ../../source/ref-changelog.md:991 msgid "" "**Introduce new Flower Baseline: FedAvg MNIST** " "([#1497](https://github.com/adap/flower/pull/1497), " "[#1552](https://github.com/adap/flower/pull/1552))" msgstr "" -#: ../../source/ref-changelog.md:882 +#: ../../source/ref-changelog.md:993 msgid "" "Over the coming weeks, we will be releasing a number of new reference " "implementations useful especially to FL newcomers. They will typically " @@ -18591,13 +19415,13 @@ msgid "" "pack-fedavg-mnist-cnn/)" msgstr "" -#: ../../source/ref-changelog.md:884 +#: ../../source/ref-changelog.md:995 msgid "" "**Improve GPU support in simulations** " "([#1555](https://github.com/adap/flower/pull/1555))" msgstr "" -#: ../../source/ref-changelog.md:886 +#: ../../source/ref-changelog.md:997 msgid "" "The Ray-based Virtual Client Engine (`start_simulation`) has been updated" " to improve GPU support. The update includes some of the hard-earned " @@ -18605,45 +19429,45 @@ msgid "" "defaults make running GPU-based simulations substantially more robust." msgstr "" -#: ../../source/ref-changelog.md:888 +#: ../../source/ref-changelog.md:999 msgid "" "**Improve GPU support in Jupyter Notebook tutorials** " "([#1527](https://github.com/adap/flower/pull/1527), " "[#1558](https://github.com/adap/flower/pull/1558))" msgstr "" -#: ../../source/ref-changelog.md:890 +#: ../../source/ref-changelog.md:1001 msgid "" "Some users reported that Jupyter Notebooks have not always been easy to " "use on GPU instances. We listened and made improvements to all of our " "Jupyter notebooks! Check out the updated notebooks here:" msgstr "" -#: ../../source/ref-changelog.md:892 +#: ../../source/ref-changelog.md:1003 msgid "" "[An Introduction to Federated Learning](https://flower.ai/docs/framework" "/tutorial-get-started-with-flower-pytorch.html)" msgstr "" -#: ../../source/ref-changelog.md:893 +#: ../../source/ref-changelog.md:1004 msgid "" "[Strategies in Federated Learning](https://flower.ai/docs/framework" "/tutorial-use-a-federated-learning-strategy-pytorch.html)" msgstr "" -#: ../../source/ref-changelog.md:894 +#: ../../source/ref-changelog.md:1005 msgid "" "[Building a Strategy](https://flower.ai/docs/framework/tutorial-build-a" "-strategy-from-scratch-pytorch.html)" msgstr "" -#: ../../source/ref-changelog.md:895 +#: ../../source/ref-changelog.md:1006 msgid "" "[Client and NumPyClient](https://flower.ai/docs/framework/tutorial-" "customize-the-client-pytorch.html)" msgstr "" -#: ../../source/ref-changelog.md:897 +#: ../../source/ref-changelog.md:1008 msgid "" "**Introduce optional telemetry** " "([#1533](https://github.com/adap/flower/pull/1533), " @@ -18651,7 +19475,7 @@ msgid "" "[#1584](https://github.com/adap/flower/pull/1584))" msgstr "" -#: ../../source/ref-changelog.md:899 +#: ../../source/ref-changelog.md:1010 msgid "" "After a [request for " "feedback](https://github.com/adap/flower/issues/1534) from the community," @@ -18661,7 +19485,7 @@ msgid "" "used and what challenges users might face." msgstr "" -#: ../../source/ref-changelog.md:901 +#: ../../source/ref-changelog.md:1012 msgid "" "**Flower is a friendly framework for collaborative AI and data science.**" " Staying true to this statement, Flower makes it easy to disable " @@ -18669,7 +19493,7 @@ msgid "" "[Read more.](https://flower.ai/docs/telemetry.html)." msgstr "" -#: ../../source/ref-changelog.md:903 +#: ../../source/ref-changelog.md:1014 msgid "" "**Introduce (experimental) Driver API** " "([#1520](https://github.com/adap/flower/pull/1520), " @@ -18681,7 +19505,7 @@ msgid "" "[#1567](https://github.com/adap/flower/pull/1567))" msgstr "" -#: ../../source/ref-changelog.md:905 +#: ../../source/ref-changelog.md:1016 msgid "" "Flower now has a new (experimental) Driver API which will enable fully " "programmable, async, and multi-tenant Federated Learning and Federated " @@ -18690,7 +19514,7 @@ msgid "" "and you can start building those things now, too." msgstr "" -#: ../../source/ref-changelog.md:907 +#: ../../source/ref-changelog.md:1018 msgid "" "The Driver API also enables a new execution mode in which the server runs" " indefinitely. Multiple individual workloads can run concurrently and " @@ -18698,26 +19522,26 @@ msgid "" "especially useful for users who want to deploy Flower in production." msgstr "" -#: ../../source/ref-changelog.md:909 +#: ../../source/ref-changelog.md:1020 msgid "" "To learn more, check out the `mt-pytorch` code example. We look forward " "to you feedback!" msgstr "" -#: ../../source/ref-changelog.md:911 +#: ../../source/ref-changelog.md:1022 msgid "" "Please note: *The Driver API is still experimental and will likely change" " significantly over time.*" msgstr "" -#: ../../source/ref-changelog.md:913 +#: ../../source/ref-changelog.md:1024 msgid "" "**Add new Federated Analytics with Pandas example** " "([#1469](https://github.com/adap/flower/pull/1469), " "[#1535](https://github.com/adap/flower/pull/1535))" msgstr "" -#: ../../source/ref-changelog.md:915 +#: ../../source/ref-changelog.md:1026 msgid "" "A new code example (`quickstart-pandas`) demonstrates federated analytics" " with Pandas and Flower. You can find it here: [quickstart-" @@ -18725,32 +19549,32 @@ msgid "" "pandas)." msgstr "" -#: ../../source/ref-changelog.md:917 +#: ../../source/ref-changelog.md:1028 msgid "" "**Add new strategies: Krum and MultiKrum** " "([#1481](https://github.com/adap/flower/pull/1481))" msgstr "" -#: ../../source/ref-changelog.md:919 +#: ../../source/ref-changelog.md:1030 msgid "" "Edoardo, a computer science student at the Sapienza University of Rome, " "contributed a new `Krum` strategy that enables users to easily use Krum " "and MultiKrum in their workloads." msgstr "" -#: ../../source/ref-changelog.md:921 +#: ../../source/ref-changelog.md:1032 msgid "" "**Update C++ example to be compatible with Flower v1.2.0** " "([#1495](https://github.com/adap/flower/pull/1495))" msgstr "" -#: ../../source/ref-changelog.md:923 +#: ../../source/ref-changelog.md:1034 msgid "" "The C++ code example has received a substantial update to make it " "compatible with the latest version of Flower." msgstr "" -#: ../../source/ref-changelog.md:925 +#: ../../source/ref-changelog.md:1036 msgid "" "**General improvements** " "([#1491](https://github.com/adap/flower/pull/1491), " @@ -18768,7 +19592,7 @@ msgid "" "[#1566](https://github.com/adap/flower/pull/1566))" msgstr "" -#: ../../source/ref-changelog.md:929 +#: ../../source/ref-changelog.md:1040 msgid "" "**Updated documentation** " "([#1494](https://github.com/adap/flower/pull/1494), " @@ -18782,24 +19606,24 @@ msgid "" "[#1515](https://github.com/adap/flower/pull/1515))" msgstr "" -#: ../../source/ref-changelog.md:933 +#: ../../source/ref-changelog.md:1044 msgid "" "One highlight is the new [first time contributor " "guide](https://flower.ai/docs/first-time-contributors.html): if you've " "never contributed on GitHub before, this is the perfect place to start!" msgstr "" -#: ../../source/ref-changelog.md:939 +#: ../../source/ref-changelog.md:1050 msgid "v1.1.0 (2022-10-31)" msgstr "" -#: ../../source/ref-changelog.md:943 +#: ../../source/ref-changelog.md:1054 msgid "" "We would like to give our **special thanks** to all the contributors who " "made the new version of Flower possible (in `git shortlog` order):" msgstr "" -#: ../../source/ref-changelog.md:945 +#: ../../source/ref-changelog.md:1056 msgid "" "`Akis Linardos`, `Christopher S`, `Daniel J. Beutel`, `George`, `Jan " "Schlicht`, `Mohammad Fares`, `Pedro Porto Buarque de Gusmão`, `Philipp " @@ -18807,14 +19631,14 @@ msgid "" "`danielnugraha`, `edogab33`" msgstr "" -#: ../../source/ref-changelog.md:949 +#: ../../source/ref-changelog.md:1060 msgid "" "**Introduce Differential Privacy wrappers (preview)** " "([#1357](https://github.com/adap/flower/pull/1357), " "[#1460](https://github.com/adap/flower/pull/1460))" msgstr "" -#: ../../source/ref-changelog.md:951 +#: ../../source/ref-changelog.md:1062 msgid "" "The first (experimental) preview of pluggable Differential Privacy " "wrappers enables easy configuration and usage of differential privacy " @@ -18823,13 +19647,13 @@ msgid "" "over to the Flower docs, a new explainer goes into more detail." msgstr "" -#: ../../source/ref-changelog.md:953 +#: ../../source/ref-changelog.md:1064 msgid "" "**New iOS CoreML code example** " "([#1289](https://github.com/adap/flower/pull/1289))" msgstr "" -#: ../../source/ref-changelog.md:955 +#: ../../source/ref-changelog.md:1066 msgid "" "Flower goes iOS! A massive new code example shows how Flower clients can " "be built for iOS. The code example contains both Flower iOS SDK " @@ -18837,39 +19661,39 @@ msgid "" "on CoreML." msgstr "" -#: ../../source/ref-changelog.md:957 +#: ../../source/ref-changelog.md:1068 msgid "" "**New FedMedian strategy** " "([#1461](https://github.com/adap/flower/pull/1461))" msgstr "" -#: ../../source/ref-changelog.md:959 +#: ../../source/ref-changelog.md:1070 msgid "" "The new `FedMedian` strategy implements Federated Median (FedMedian) by " "[Yin et al., 2018](https://arxiv.org/pdf/1803.01498v1.pdf)." msgstr "" -#: ../../source/ref-changelog.md:961 +#: ../../source/ref-changelog.md:1072 msgid "" "**Log** `Client` **exceptions in Virtual Client Engine** " "([#1493](https://github.com/adap/flower/pull/1493))" msgstr "" -#: ../../source/ref-changelog.md:963 +#: ../../source/ref-changelog.md:1074 msgid "" "All `Client` exceptions happening in the VCE are now logged by default " "and not just exposed to the configured `Strategy` (via the `failures` " "argument)." msgstr "" -#: ../../source/ref-changelog.md:965 +#: ../../source/ref-changelog.md:1076 msgid "" "**Improve Virtual Client Engine internals** " "([#1401](https://github.com/adap/flower/pull/1401), " "[#1453](https://github.com/adap/flower/pull/1453))" msgstr "" -#: ../../source/ref-changelog.md:967 +#: ../../source/ref-changelog.md:1078 msgid "" "Some internals of the Virtual Client Engine have been revamped. The VCE " "now uses Ray 2.0 under the hood, the value type of the `client_resources`" @@ -18877,25 +19701,25 @@ msgid "" "allocated." msgstr "" -#: ../../source/ref-changelog.md:969 +#: ../../source/ref-changelog.md:1080 msgid "" "**Support optional** `Client`**/**`NumPyClient` **methods in Virtual " "Client Engine**" msgstr "" -#: ../../source/ref-changelog.md:971 +#: ../../source/ref-changelog.md:1082 msgid "" "The Virtual Client Engine now has full support for optional `Client` (and" " `NumPyClient`) methods." msgstr "" -#: ../../source/ref-changelog.md:973 +#: ../../source/ref-changelog.md:1084 msgid "" "**Provide type information to packages using** `flwr` " "([#1377](https://github.com/adap/flower/pull/1377))" msgstr "" -#: ../../source/ref-changelog.md:975 +#: ../../source/ref-changelog.md:1086 msgid "" "The package `flwr` is now bundled with a `py.typed` file indicating that " "the package is typed. This enables typing support for projects or " @@ -18903,20 +19727,20 @@ msgid "" "static type checkers like `mypy`." msgstr "" -#: ../../source/ref-changelog.md:977 +#: ../../source/ref-changelog.md:1088 msgid "" "**Updated code example** " "([#1344](https://github.com/adap/flower/pull/1344), " "[#1347](https://github.com/adap/flower/pull/1347))" msgstr "" -#: ../../source/ref-changelog.md:979 +#: ../../source/ref-changelog.md:1090 msgid "" "The code examples covering scikit-learn and PyTorch Lightning have been " "updated to work with the latest version of Flower." msgstr "" -#: ../../source/ref-changelog.md:981 +#: ../../source/ref-changelog.md:1092 msgid "" "**Updated documentation** " "([#1355](https://github.com/adap/flower/pull/1355), " @@ -18938,32 +19762,32 @@ msgid "" "[#1467](https://github.com/adap/flower/pull/1467))" msgstr "" -#: ../../source/ref-changelog.md:983 +#: ../../source/ref-changelog.md:1094 msgid "" "There have been so many documentation updates that it doesn't even make " "sense to list them individually." msgstr "" -#: ../../source/ref-changelog.md:985 +#: ../../source/ref-changelog.md:1096 msgid "" "**Restructured documentation** " "([#1387](https://github.com/adap/flower/pull/1387))" msgstr "" -#: ../../source/ref-changelog.md:987 +#: ../../source/ref-changelog.md:1098 msgid "" "The documentation has been restructured to make it easier to navigate. " "This is just the first step in a larger effort to make the Flower " "documentation the best documentation of any project ever. Stay tuned!" msgstr "" -#: ../../source/ref-changelog.md:989 +#: ../../source/ref-changelog.md:1100 msgid "" "**Open in Colab button** " "([#1389](https://github.com/adap/flower/pull/1389))" msgstr "" -#: ../../source/ref-changelog.md:991 +#: ../../source/ref-changelog.md:1102 msgid "" "The four parts of the Flower Federated Learning Tutorial now come with a " "new `Open in Colab` button. No need to install anything on your local " @@ -18971,7 +19795,7 @@ msgid "" "only a single click away." msgstr "" -#: ../../source/ref-changelog.md:993 +#: ../../source/ref-changelog.md:1104 msgid "" "**Improved tutorial** ([#1468](https://github.com/adap/flower/pull/1468)," " [#1470](https://github.com/adap/flower/pull/1470), " @@ -18981,7 +19805,7 @@ msgid "" "[#1475](https://github.com/adap/flower/pull/1475))" msgstr "" -#: ../../source/ref-changelog.md:995 +#: ../../source/ref-changelog.md:1106 msgid "" "The Flower Federated Learning Tutorial has two brand-new parts covering " "custom strategies (still WIP) and the distinction between `Client` and " @@ -18989,40 +19813,40 @@ msgid "" "(many small changes and fixes)." msgstr "" -#: ../../source/ref-changelog.md:1001 +#: ../../source/ref-changelog.md:1112 msgid "v1.0.0 (2022-07-28)" msgstr "" -#: ../../source/ref-changelog.md:1003 +#: ../../source/ref-changelog.md:1114 msgid "Highlights" msgstr "" -#: ../../source/ref-changelog.md:1005 +#: ../../source/ref-changelog.md:1116 msgid "Stable **Virtual Client Engine** (accessible via `start_simulation`)" msgstr "" -#: ../../source/ref-changelog.md:1006 +#: ../../source/ref-changelog.md:1117 msgid "All `Client`/`NumPyClient` methods are now optional" msgstr "" -#: ../../source/ref-changelog.md:1007 +#: ../../source/ref-changelog.md:1118 msgid "Configurable `get_parameters`" msgstr "" -#: ../../source/ref-changelog.md:1008 +#: ../../source/ref-changelog.md:1119 msgid "" "Tons of small API cleanups resulting in a more coherent developer " "experience" msgstr "" -#: ../../source/ref-changelog.md:1012 +#: ../../source/ref-changelog.md:1123 msgid "" "We would like to give our **special thanks** to all the contributors who " "made Flower 1.0 possible (in reverse [GitHub " "Contributors](https://github.com/adap/flower/graphs/contributors) order):" msgstr "" -#: ../../source/ref-changelog.md:1014 +#: ../../source/ref-changelog.md:1125 msgid "" "[@rtaiello](https://github.com/rtaiello), " "[@g-pichler](https://github.com/g-pichler), [@rob-" @@ -19062,13 +19886,13 @@ msgid "" "[@danieljanes](https://github.com/danieljanes)." msgstr "" -#: ../../source/ref-changelog.md:1018 +#: ../../source/ref-changelog.md:1129 msgid "" "**All arguments must be passed as keyword arguments** " "([#1338](https://github.com/adap/flower/pull/1338))" msgstr "" -#: ../../source/ref-changelog.md:1020 +#: ../../source/ref-changelog.md:1131 msgid "" "Pass all arguments as keyword arguments, positional arguments are not " "longer supported. Code that uses positional arguments (e.g., " @@ -19078,14 +19902,14 @@ msgid "" "client=FlowerClient())`)." msgstr "" -#: ../../source/ref-changelog.md:1022 +#: ../../source/ref-changelog.md:1133 msgid "" "**Introduce configuration object** `ServerConfig` **in** `start_server` " "**and** `start_simulation` " "([#1317](https://github.com/adap/flower/pull/1317))" msgstr "" -#: ../../source/ref-changelog.md:1024 +#: ../../source/ref-changelog.md:1135 msgid "" "Instead of a config dictionary `{\"num_rounds\": 3, \"round_timeout\": " "600.0}`, `start_server` and `start_simulation` now expect a configuration" @@ -19094,37 +19918,37 @@ msgid "" "safe code easier and the default parameters values more transparent." msgstr "" -#: ../../source/ref-changelog.md:1026 +#: ../../source/ref-changelog.md:1137 msgid "" "**Rename built-in strategy parameters for clarity** " "([#1334](https://github.com/adap/flower/pull/1334))" msgstr "" -#: ../../source/ref-changelog.md:1028 +#: ../../source/ref-changelog.md:1139 msgid "" "The following built-in strategy parameters were renamed to improve " "readability and consistency with other API's:" msgstr "" -#: ../../source/ref-changelog.md:1030 +#: ../../source/ref-changelog.md:1141 msgid "`fraction_eval` --> `fraction_evaluate`" msgstr "" -#: ../../source/ref-changelog.md:1031 +#: ../../source/ref-changelog.md:1142 msgid "`min_eval_clients` --> `min_evaluate_clients`" msgstr "" -#: ../../source/ref-changelog.md:1032 +#: ../../source/ref-changelog.md:1143 msgid "`eval_fn` --> `evaluate_fn`" msgstr "" -#: ../../source/ref-changelog.md:1034 +#: ../../source/ref-changelog.md:1145 msgid "" "**Update default arguments of built-in strategies** " "([#1278](https://github.com/adap/flower/pull/1278))" msgstr "" -#: ../../source/ref-changelog.md:1036 +#: ../../source/ref-changelog.md:1147 msgid "" "All built-in strategies now use `fraction_fit=1.0` and " "`fraction_evaluate=1.0`, which means they select *all* currently " @@ -19133,29 +19957,29 @@ msgid "" "initializing the strategy in the following way:" msgstr "" -#: ../../source/ref-changelog.md:1038 +#: ../../source/ref-changelog.md:1149 msgid "`strategy = FedAvg(fraction_fit=0.1, fraction_evaluate=0.1)`" msgstr "" -#: ../../source/ref-changelog.md:1040 +#: ../../source/ref-changelog.md:1151 msgid "" "**Add** `server_round` **to** `Strategy.evaluate` " "([#1334](https://github.com/adap/flower/pull/1334))" msgstr "" -#: ../../source/ref-changelog.md:1042 +#: ../../source/ref-changelog.md:1153 msgid "" "The `Strategy` method `evaluate` now receives the current round of " "federated learning/evaluation as the first parameter." msgstr "" -#: ../../source/ref-changelog.md:1044 +#: ../../source/ref-changelog.md:1155 msgid "" "**Add** `server_round` **and** `config` **parameters to** `evaluate_fn` " "([#1334](https://github.com/adap/flower/pull/1334))" msgstr "" -#: ../../source/ref-changelog.md:1046 +#: ../../source/ref-changelog.md:1157 msgid "" "The `evaluate_fn` passed to built-in strategies like `FedAvg` now takes " "three parameters: (1) The current round of federated learning/evaluation " @@ -19163,13 +19987,13 @@ msgid "" "and (3) a config dictionary (`config`)." msgstr "" -#: ../../source/ref-changelog.md:1048 +#: ../../source/ref-changelog.md:1159 msgid "" "**Rename** `rnd` **to** `server_round` " "([#1321](https://github.com/adap/flower/pull/1321))" msgstr "" -#: ../../source/ref-changelog.md:1050 +#: ../../source/ref-changelog.md:1161 msgid "" "Several Flower methods and functions (`evaluate_fn`, `configure_fit`, " "`aggregate_fit`, `configure_evaluate`, `aggregate_evaluate`) receive the " @@ -19178,73 +20002,73 @@ msgid "" "has been renamed from `rnd` to `server_round`." msgstr "" -#: ../../source/ref-changelog.md:1052 +#: ../../source/ref-changelog.md:1163 msgid "" "**Move** `flwr.dataset` **to** `flwr_baselines` " "([#1273](https://github.com/adap/flower/pull/1273))" msgstr "" -#: ../../source/ref-changelog.md:1054 +#: ../../source/ref-changelog.md:1165 msgid "The experimental package `flwr.dataset` was migrated to Flower Baselines." msgstr "" -#: ../../source/ref-changelog.md:1056 +#: ../../source/ref-changelog.md:1167 msgid "" "**Remove experimental strategies** " "([#1280](https://github.com/adap/flower/pull/1280))" msgstr "" -#: ../../source/ref-changelog.md:1058 +#: ../../source/ref-changelog.md:1169 msgid "" "Remove unmaintained experimental strategies (`FastAndSlow`, `FedFSv0`, " "`FedFSv1`)." msgstr "" -#: ../../source/ref-changelog.md:1060 +#: ../../source/ref-changelog.md:1171 msgid "" "**Rename** `Weights` **to** `NDArrays` " "([#1258](https://github.com/adap/flower/pull/1258), " "[#1259](https://github.com/adap/flower/pull/1259))" msgstr "" -#: ../../source/ref-changelog.md:1062 +#: ../../source/ref-changelog.md:1173 msgid "" "`flwr.common.Weights` was renamed to `flwr.common.NDArrays` to better " "capture what this type is all about." msgstr "" -#: ../../source/ref-changelog.md:1064 +#: ../../source/ref-changelog.md:1175 msgid "" "**Remove antiquated** `force_final_distributed_eval` **from** " "`start_server` ([#1258](https://github.com/adap/flower/pull/1258), " "[#1259](https://github.com/adap/flower/pull/1259))" msgstr "" -#: ../../source/ref-changelog.md:1066 +#: ../../source/ref-changelog.md:1177 msgid "" "The `start_server` parameter `force_final_distributed_eval` has long been" " a historic artefact, in this release it is finally gone for good." msgstr "" -#: ../../source/ref-changelog.md:1068 +#: ../../source/ref-changelog.md:1179 msgid "" "**Make** `get_parameters` **configurable** " "([#1242](https://github.com/adap/flower/pull/1242))" msgstr "" -#: ../../source/ref-changelog.md:1070 +#: ../../source/ref-changelog.md:1181 msgid "" "The `get_parameters` method now accepts a configuration dictionary, just " "like `get_properties`, `fit`, and `evaluate`." msgstr "" -#: ../../source/ref-changelog.md:1072 +#: ../../source/ref-changelog.md:1183 msgid "" "**Replace** `num_rounds` **in** `start_simulation` **with new** `config` " "**parameter** ([#1281](https://github.com/adap/flower/pull/1281))" msgstr "" -#: ../../source/ref-changelog.md:1074 +#: ../../source/ref-changelog.md:1185 msgid "" "The `start_simulation` function now accepts a configuration dictionary " "`config` instead of the `num_rounds` integer. This improves the " @@ -19252,26 +20076,26 @@ msgid "" "transitioning between the two easier." msgstr "" -#: ../../source/ref-changelog.md:1078 +#: ../../source/ref-changelog.md:1189 msgid "" "**Support Python 3.10** " "([#1320](https://github.com/adap/flower/pull/1320))" msgstr "" -#: ../../source/ref-changelog.md:1080 +#: ../../source/ref-changelog.md:1191 msgid "" "The previous Flower release introduced experimental support for Python " "3.10, this release declares Python 3.10 support as stable." msgstr "" -#: ../../source/ref-changelog.md:1082 +#: ../../source/ref-changelog.md:1193 msgid "" "**Make all** `Client` **and** `NumPyClient` **methods optional** " "([#1260](https://github.com/adap/flower/pull/1260), " "[#1277](https://github.com/adap/flower/pull/1277))" msgstr "" -#: ../../source/ref-changelog.md:1084 +#: ../../source/ref-changelog.md:1195 msgid "" "The `Client`/`NumPyClient` methods `get_properties`, `get_parameters`, " "`fit`, and `evaluate` are all optional. This enables writing clients that" @@ -19279,13 +20103,13 @@ msgid "" "implement `evaluate` when using centralized evaluation!" msgstr "" -#: ../../source/ref-changelog.md:1086 +#: ../../source/ref-changelog.md:1197 msgid "" "**Enable passing a** `Server` **instance to** `start_simulation` " "([#1281](https://github.com/adap/flower/pull/1281))" msgstr "" -#: ../../source/ref-changelog.md:1088 +#: ../../source/ref-changelog.md:1199 msgid "" "Similar to `start_server`, `start_simulation` now accepts a full `Server`" " instance. This enables users to heavily customize the execution of " @@ -19293,7 +20117,7 @@ msgid "" " Virtual Client Engine." msgstr "" -#: ../../source/ref-changelog.md:1090 +#: ../../source/ref-changelog.md:1201 msgid "" "**Update code examples** " "([#1291](https://github.com/adap/flower/pull/1291), " @@ -19301,50 +20125,50 @@ msgid "" "[#1282](https://github.com/adap/flower/pull/1282))" msgstr "" -#: ../../source/ref-changelog.md:1092 +#: ../../source/ref-changelog.md:1203 msgid "" "Many code examples received small or even large maintenance updates, " "among them are" msgstr "" -#: ../../source/ref-changelog.md:1094 +#: ../../source/ref-changelog.md:1205 msgid "`scikit-learn`" msgstr "" -#: ../../source/ref-changelog.md:1095 +#: ../../source/ref-changelog.md:1206 msgid "`simulation_pytorch`" msgstr "" -#: ../../source/ref-changelog.md:1096 +#: ../../source/ref-changelog.md:1207 msgid "`quickstart_pytorch`" msgstr "" -#: ../../source/ref-changelog.md:1097 +#: ../../source/ref-changelog.md:1208 msgid "`quickstart_simulation`" msgstr "" -#: ../../source/ref-changelog.md:1098 +#: ../../source/ref-changelog.md:1209 msgid "`quickstart_tensorflow`" msgstr "" -#: ../../source/ref-changelog.md:1099 +#: ../../source/ref-changelog.md:1210 msgid "`advanced_tensorflow`" msgstr "" -#: ../../source/ref-changelog.md:1101 +#: ../../source/ref-changelog.md:1212 msgid "" "**Remove the obsolete simulation example** " "([#1328](https://github.com/adap/flower/pull/1328))" msgstr "" -#: ../../source/ref-changelog.md:1103 +#: ../../source/ref-changelog.md:1214 msgid "" "Removes the obsolete `simulation` example and renames " "`quickstart_simulation` to `simulation_tensorflow` so it fits withs the " "naming of `simulation_pytorch`" msgstr "" -#: ../../source/ref-changelog.md:1105 +#: ../../source/ref-changelog.md:1216 msgid "" "**Update documentation** " "([#1223](https://github.com/adap/flower/pull/1223), " @@ -19359,7 +20183,7 @@ msgid "" "[#1307](https://github.com/adap/flower/pull/1307))" msgstr "" -#: ../../source/ref-changelog.md:1107 +#: ../../source/ref-changelog.md:1218 msgid "" "One substantial documentation update fixes multiple smaller rendering " "issues, makes titles more succinct to improve navigation, removes a " @@ -19369,24 +20193,24 @@ msgid "" "fixes a number of smaller details!" msgstr "" -#: ../../source/ref-changelog.md:1109 ../../source/ref-changelog.md:1164 -#: ../../source/ref-changelog.md:1233 ../../source/ref-changelog.md:1272 +#: ../../source/ref-changelog.md:1220 ../../source/ref-changelog.md:1275 +#: ../../source/ref-changelog.md:1344 ../../source/ref-changelog.md:1383 msgid "**Minor updates**" msgstr "" -#: ../../source/ref-changelog.md:1111 +#: ../../source/ref-changelog.md:1222 msgid "" "Add round number to fit and evaluate log messages " "([#1266](https://github.com/adap/flower/pull/1266))" msgstr "" -#: ../../source/ref-changelog.md:1112 +#: ../../source/ref-changelog.md:1223 msgid "" "Add secure gRPC connection to the `advanced_tensorflow` code example " "([#847](https://github.com/adap/flower/pull/847))" msgstr "" -#: ../../source/ref-changelog.md:1113 +#: ../../source/ref-changelog.md:1224 msgid "" "Update developer tooling " "([#1231](https://github.com/adap/flower/pull/1231), " @@ -19395,7 +20219,7 @@ msgid "" "[#1310](https://github.com/adap/flower/pull/1310))" msgstr "" -#: ../../source/ref-changelog.md:1114 +#: ../../source/ref-changelog.md:1225 msgid "" "Rename ProtoBuf messages to improve consistency " "([#1214](https://github.com/adap/flower/pull/1214), " @@ -19403,11 +20227,11 @@ msgid "" "[#1259](https://github.com/adap/flower/pull/1259))" msgstr "" -#: ../../source/ref-changelog.md:1116 +#: ../../source/ref-changelog.md:1227 msgid "v0.19.0 (2022-05-18)" msgstr "" -#: ../../source/ref-changelog.md:1120 +#: ../../source/ref-changelog.md:1231 msgid "" "**Flower Baselines (preview): FedOpt, FedBN, FedAvgM** " "([#919](https://github.com/adap/flower/pull/919), " @@ -19415,7 +20239,7 @@ msgid "" "[#914](https://github.com/adap/flower/pull/914))" msgstr "" -#: ../../source/ref-changelog.md:1122 +#: ../../source/ref-changelog.md:1233 msgid "" "The first preview release of Flower Baselines has arrived! We're " "kickstarting Flower Baselines with implementations of FedOpt (FedYogi, " @@ -19426,39 +20250,39 @@ msgid "" "contribute-baselines.html)." msgstr "" -#: ../../source/ref-changelog.md:1124 +#: ../../source/ref-changelog.md:1235 msgid "" "**C++ client SDK (preview) and code example** " "([#1111](https://github.com/adap/flower/pull/1111))" msgstr "" -#: ../../source/ref-changelog.md:1126 +#: ../../source/ref-changelog.md:1237 msgid "" "Preview support for Flower clients written in C++. The C++ preview " "includes a Flower client SDK and a quickstart code example that " "demonstrates a simple C++ client using the SDK." msgstr "" -#: ../../source/ref-changelog.md:1128 +#: ../../source/ref-changelog.md:1239 msgid "" "**Add experimental support for Python 3.10 and Python 3.11** " "([#1135](https://github.com/adap/flower/pull/1135))" msgstr "" -#: ../../source/ref-changelog.md:1130 +#: ../../source/ref-changelog.md:1241 msgid "" "Python 3.10 is the latest stable release of Python and Python 3.11 is due" " to be released in October. This Flower release adds experimental support" " for both Python versions." msgstr "" -#: ../../source/ref-changelog.md:1132 +#: ../../source/ref-changelog.md:1243 msgid "" "**Aggregate custom metrics through user-provided functions** " "([#1144](https://github.com/adap/flower/pull/1144))" msgstr "" -#: ../../source/ref-changelog.md:1134 +#: ../../source/ref-changelog.md:1245 msgid "" "Custom metrics (e.g., `accuracy`) can now be aggregated without having to" " customize the strategy. Built-in strategies support two new arguments, " @@ -19466,13 +20290,13 @@ msgid "" "allow passing custom metric aggregation functions." msgstr "" -#: ../../source/ref-changelog.md:1136 +#: ../../source/ref-changelog.md:1247 msgid "" "**User-configurable round timeout** " "([#1162](https://github.com/adap/flower/pull/1162))" msgstr "" -#: ../../source/ref-changelog.md:1138 +#: ../../source/ref-changelog.md:1249 msgid "" "A new configuration value allows the round timeout to be set for " "`start_server` and `start_simulation`. If the `config` dictionary " @@ -19481,14 +20305,14 @@ msgid "" "connection." msgstr "" -#: ../../source/ref-changelog.md:1140 +#: ../../source/ref-changelog.md:1251 msgid "" "**Enable both federated evaluation and centralized evaluation to be used " "at the same time in all built-in strategies** " "([#1091](https://github.com/adap/flower/pull/1091))" msgstr "" -#: ../../source/ref-changelog.md:1142 +#: ../../source/ref-changelog.md:1253 msgid "" "Built-in strategies can now perform both federated evaluation (i.e., " "client-side) and centralized evaluation (i.e., server-side) in the same " @@ -19496,82 +20320,82 @@ msgid "" " `0.0`." msgstr "" -#: ../../source/ref-changelog.md:1144 +#: ../../source/ref-changelog.md:1255 msgid "" "**Two new Jupyter Notebook tutorials** " "([#1141](https://github.com/adap/flower/pull/1141))" msgstr "" -#: ../../source/ref-changelog.md:1146 +#: ../../source/ref-changelog.md:1257 msgid "" "Two Jupyter Notebook tutorials (compatible with Google Colab) explain " "basic and intermediate Flower features:" msgstr "" -#: ../../source/ref-changelog.md:1148 +#: ../../source/ref-changelog.md:1259 msgid "" "*An Introduction to Federated Learning*: [Open in " "Colab](https://colab.research.google.com/github/adap/flower/blob/main/tutorials/Flower-1" "-Intro-to-FL-PyTorch.ipynb)" msgstr "" -#: ../../source/ref-changelog.md:1150 +#: ../../source/ref-changelog.md:1261 msgid "" "*Using Strategies in Federated Learning*: [Open in " "Colab](https://colab.research.google.com/github/adap/flower/blob/main/tutorials/Flower-2" "-Strategies-in-FL-PyTorch.ipynb)" msgstr "" -#: ../../source/ref-changelog.md:1152 +#: ../../source/ref-changelog.md:1263 msgid "" "**New FedAvgM strategy (Federated Averaging with Server Momentum)** " "([#1076](https://github.com/adap/flower/pull/1076))" msgstr "" -#: ../../source/ref-changelog.md:1154 +#: ../../source/ref-changelog.md:1265 msgid "" "The new `FedAvgM` strategy implements Federated Averaging with Server " "Momentum \\[Hsu et al., 2019\\]." msgstr "" -#: ../../source/ref-changelog.md:1156 +#: ../../source/ref-changelog.md:1267 msgid "" "**New advanced PyTorch code example** " "([#1007](https://github.com/adap/flower/pull/1007))" msgstr "" -#: ../../source/ref-changelog.md:1158 +#: ../../source/ref-changelog.md:1269 msgid "" "A new code example (`advanced_pytorch`) demonstrates advanced Flower " "concepts with PyTorch." msgstr "" -#: ../../source/ref-changelog.md:1160 +#: ../../source/ref-changelog.md:1271 msgid "" "**New JAX code example** " "([#906](https://github.com/adap/flower/pull/906), " "[#1143](https://github.com/adap/flower/pull/1143))" msgstr "" -#: ../../source/ref-changelog.md:1162 +#: ../../source/ref-changelog.md:1273 msgid "" "A new code example (`jax_from_centralized_to_federated`) shows federated " "learning with JAX and Flower." msgstr "" -#: ../../source/ref-changelog.md:1166 +#: ../../source/ref-changelog.md:1277 msgid "" "New option to keep Ray running if Ray was already initialized in " "`start_simulation` ([#1177](https://github.com/adap/flower/pull/1177))" msgstr "" -#: ../../source/ref-changelog.md:1167 +#: ../../source/ref-changelog.md:1278 msgid "" "Add support for custom `ClientManager` as a `start_simulation` parameter " "([#1171](https://github.com/adap/flower/pull/1171))" msgstr "" -#: ../../source/ref-changelog.md:1168 +#: ../../source/ref-changelog.md:1279 msgid "" "New documentation for [implementing " "strategies](https://flower.ai/docs/framework/how-to-implement-" @@ -19579,72 +20403,72 @@ msgid "" "[#1175](https://github.com/adap/flower/pull/1175))" msgstr "" -#: ../../source/ref-changelog.md:1169 +#: ../../source/ref-changelog.md:1280 msgid "" "New mobile-friendly documentation theme " "([#1174](https://github.com/adap/flower/pull/1174))" msgstr "" -#: ../../source/ref-changelog.md:1170 +#: ../../source/ref-changelog.md:1281 msgid "" "Limit version range for (optional) `ray` dependency to include only " "compatible releases (`>=1.9.2,<1.12.0`) " "([#1205](https://github.com/adap/flower/pull/1205))" msgstr "" -#: ../../source/ref-changelog.md:1174 +#: ../../source/ref-changelog.md:1285 msgid "" "**Remove deprecated support for Python 3.6** " "([#871](https://github.com/adap/flower/pull/871))" msgstr "" -#: ../../source/ref-changelog.md:1175 +#: ../../source/ref-changelog.md:1286 msgid "" "**Remove deprecated KerasClient** " "([#857](https://github.com/adap/flower/pull/857))" msgstr "" -#: ../../source/ref-changelog.md:1176 +#: ../../source/ref-changelog.md:1287 msgid "" "**Remove deprecated no-op extra installs** " "([#973](https://github.com/adap/flower/pull/973))" msgstr "" -#: ../../source/ref-changelog.md:1177 +#: ../../source/ref-changelog.md:1288 msgid "" "**Remove deprecated proto fields from** `FitRes` **and** `EvaluateRes` " "([#869](https://github.com/adap/flower/pull/869))" msgstr "" -#: ../../source/ref-changelog.md:1178 +#: ../../source/ref-changelog.md:1289 msgid "" "**Remove deprecated QffedAvg strategy (replaced by QFedAvg)** " "([#1107](https://github.com/adap/flower/pull/1107))" msgstr "" -#: ../../source/ref-changelog.md:1179 +#: ../../source/ref-changelog.md:1290 msgid "" "**Remove deprecated DefaultStrategy strategy** " "([#1142](https://github.com/adap/flower/pull/1142))" msgstr "" -#: ../../source/ref-changelog.md:1180 +#: ../../source/ref-changelog.md:1291 msgid "" "**Remove deprecated support for eval_fn accuracy return value** " "([#1142](https://github.com/adap/flower/pull/1142))" msgstr "" -#: ../../source/ref-changelog.md:1181 +#: ../../source/ref-changelog.md:1292 msgid "" "**Remove deprecated support for passing initial parameters as NumPy " "ndarrays** ([#1142](https://github.com/adap/flower/pull/1142))" msgstr "" -#: ../../source/ref-changelog.md:1183 +#: ../../source/ref-changelog.md:1294 msgid "v0.18.0 (2022-02-28)" msgstr "" -#: ../../source/ref-changelog.md:1187 +#: ../../source/ref-changelog.md:1298 msgid "" "**Improved Virtual Client Engine compatibility with Jupyter Notebook / " "Google Colab** ([#866](https://github.com/adap/flower/pull/866), " @@ -19653,7 +20477,7 @@ msgid "" "[#1036](https://github.com/adap/flower/pull/1036))" msgstr "" -#: ../../source/ref-changelog.md:1189 +#: ../../source/ref-changelog.md:1300 msgid "" "Simulations (using the Virtual Client Engine through `start_simulation`) " "now work more smoothly on Jupyter Notebooks (incl. Google Colab) after " @@ -19661,38 +20485,38 @@ msgid "" "'flwr[simulation]'`)." msgstr "" -#: ../../source/ref-changelog.md:1191 +#: ../../source/ref-changelog.md:1302 msgid "" "**New Jupyter Notebook code example** " "([#833](https://github.com/adap/flower/pull/833))" msgstr "" -#: ../../source/ref-changelog.md:1193 +#: ../../source/ref-changelog.md:1304 msgid "" "A new code example (`quickstart_simulation`) demonstrates Flower " "simulations using the Virtual Client Engine through Jupyter Notebook " "(incl. Google Colab)." msgstr "" -#: ../../source/ref-changelog.md:1195 +#: ../../source/ref-changelog.md:1306 msgid "" "**Client properties (feature preview)** " "([#795](https://github.com/adap/flower/pull/795))" msgstr "" -#: ../../source/ref-changelog.md:1197 +#: ../../source/ref-changelog.md:1308 msgid "" "Clients can implement a new method `get_properties` to enable server-side" " strategies to query client properties." msgstr "" -#: ../../source/ref-changelog.md:1199 +#: ../../source/ref-changelog.md:1310 msgid "" "**Experimental Android support with TFLite** " "([#865](https://github.com/adap/flower/pull/865))" msgstr "" -#: ../../source/ref-changelog.md:1201 +#: ../../source/ref-changelog.md:1312 msgid "" "Android support has finally arrived in `main`! Flower is both client-" "agnostic and framework-agnostic by design. One can integrate arbitrary " @@ -19700,7 +20524,7 @@ msgid "" "become a lot easier." msgstr "" -#: ../../source/ref-changelog.md:1203 +#: ../../source/ref-changelog.md:1314 msgid "" "The example uses TFLite on the client side, along with a new " "`FedAvgAndroid` strategy. The Android client and `FedAvgAndroid` are " @@ -19709,13 +20533,13 @@ msgid "" " functionality from `FedAvgAndroid`." msgstr "" -#: ../../source/ref-changelog.md:1205 +#: ../../source/ref-changelog.md:1316 msgid "" "**Make gRPC keepalive time user-configurable and decrease default " "keepalive time** ([#1069](https://github.com/adap/flower/pull/1069))" msgstr "" -#: ../../source/ref-changelog.md:1207 +#: ../../source/ref-changelog.md:1318 msgid "" "The default gRPC keepalive time has been reduced to increase the " "compatibility of Flower with more cloud environments (for example, " @@ -19723,31 +20547,31 @@ msgid "" " gRPC stack based on specific requirements." msgstr "" -#: ../../source/ref-changelog.md:1209 +#: ../../source/ref-changelog.md:1320 msgid "" "**New differential privacy example using Opacus and PyTorch** " "([#805](https://github.com/adap/flower/pull/805))" msgstr "" -#: ../../source/ref-changelog.md:1211 +#: ../../source/ref-changelog.md:1322 msgid "" "A new code example (`opacus`) demonstrates differentially-private " "federated learning with Opacus, PyTorch, and Flower." msgstr "" -#: ../../source/ref-changelog.md:1213 +#: ../../source/ref-changelog.md:1324 msgid "" "**New Hugging Face Transformers code example** " "([#863](https://github.com/adap/flower/pull/863))" msgstr "" -#: ../../source/ref-changelog.md:1215 +#: ../../source/ref-changelog.md:1326 msgid "" "A new code example (`quickstart_huggingface`) demonstrates usage of " "Hugging Face Transformers with Flower." msgstr "" -#: ../../source/ref-changelog.md:1217 +#: ../../source/ref-changelog.md:1328 msgid "" "**New MLCube code example** " "([#779](https://github.com/adap/flower/pull/779), " @@ -19756,13 +20580,13 @@ msgid "" "[#1090](https://github.com/adap/flower/pull/1090))" msgstr "" -#: ../../source/ref-changelog.md:1219 +#: ../../source/ref-changelog.md:1330 msgid "" "A new code example (`quickstart_mlcube`) demonstrates usage of MLCube " "with Flower." msgstr "" -#: ../../source/ref-changelog.md:1221 +#: ../../source/ref-changelog.md:1332 msgid "" "**SSL-enabled server and client** " "([#842](https://github.com/adap/flower/pull/842), " @@ -19773,33 +20597,33 @@ msgid "" "[#994](https://github.com/adap/flower/pull/994))" msgstr "" -#: ../../source/ref-changelog.md:1223 +#: ../../source/ref-changelog.md:1334 msgid "" "SSL enables secure encrypted connections between clients and servers. " "This release open-sources the Flower secure gRPC implementation to make " "encrypted communication channels accessible to all Flower users." msgstr "" -#: ../../source/ref-changelog.md:1225 +#: ../../source/ref-changelog.md:1336 msgid "" "**Updated** `FedAdam` **and** `FedYogi` **strategies** " "([#885](https://github.com/adap/flower/pull/885), " "[#895](https://github.com/adap/flower/pull/895))" msgstr "" -#: ../../source/ref-changelog.md:1227 +#: ../../source/ref-changelog.md:1338 msgid "" "`FedAdam` and `FedAdam` match the latest version of the Adaptive " "Federated Optimization paper." msgstr "" -#: ../../source/ref-changelog.md:1229 +#: ../../source/ref-changelog.md:1340 msgid "" "**Initialize** `start_simulation` **with a list of client IDs** " "([#860](https://github.com/adap/flower/pull/860))" msgstr "" -#: ../../source/ref-changelog.md:1231 +#: ../../source/ref-changelog.md:1342 msgid "" "`start_simulation` can now be called with a list of client IDs " "(`clients_ids`, type: `List[str]`). Those IDs will be passed to the " @@ -19808,55 +20632,55 @@ msgid "" "identifiers." msgstr "" -#: ../../source/ref-changelog.md:1235 +#: ../../source/ref-changelog.md:1346 msgid "" "Update `num_examples` calculation in PyTorch code examples in " "([#909](https://github.com/adap/flower/pull/909))" msgstr "" -#: ../../source/ref-changelog.md:1236 +#: ../../source/ref-changelog.md:1347 msgid "" "Expose Flower version through `flwr.__version__` " "([#952](https://github.com/adap/flower/pull/952))" msgstr "" -#: ../../source/ref-changelog.md:1237 +#: ../../source/ref-changelog.md:1348 msgid "" "`start_server` in `app.py` now returns a `History` object containing " "metrics from training ([#974](https://github.com/adap/flower/pull/974))" msgstr "" -#: ../../source/ref-changelog.md:1238 +#: ../../source/ref-changelog.md:1349 msgid "" "Make `max_workers` (used by `ThreadPoolExecutor`) configurable " "([#978](https://github.com/adap/flower/pull/978))" msgstr "" -#: ../../source/ref-changelog.md:1239 +#: ../../source/ref-changelog.md:1350 msgid "" "Increase sleep time after server start to three seconds in all code " "examples ([#1086](https://github.com/adap/flower/pull/1086))" msgstr "" -#: ../../source/ref-changelog.md:1240 +#: ../../source/ref-changelog.md:1351 msgid "" "Added a new FAQ section to the documentation " "([#948](https://github.com/adap/flower/pull/948))" msgstr "" -#: ../../source/ref-changelog.md:1241 +#: ../../source/ref-changelog.md:1352 msgid "" "And many more under-the-hood changes, library updates, documentation " "changes, and tooling improvements!" msgstr "" -#: ../../source/ref-changelog.md:1245 +#: ../../source/ref-changelog.md:1356 msgid "" "**Removed** `flwr_example` **and** `flwr_experimental` **from release " "build** ([#869](https://github.com/adap/flower/pull/869))" msgstr "" -#: ../../source/ref-changelog.md:1247 +#: ../../source/ref-changelog.md:1358 msgid "" "The packages `flwr_example` and `flwr_experimental` have been deprecated " "since Flower 0.12.0 and they are not longer included in Flower release " @@ -19865,11 +20689,11 @@ msgid "" "an upcoming release." msgstr "" -#: ../../source/ref-changelog.md:1249 +#: ../../source/ref-changelog.md:1360 msgid "v0.17.0 (2021-09-24)" msgstr "" -#: ../../source/ref-changelog.md:1253 +#: ../../source/ref-changelog.md:1364 msgid "" "**Experimental virtual client engine** " "([#781](https://github.com/adap/flower/pull/781) " @@ -19877,7 +20701,7 @@ msgid "" "[#791](https://github.com/adap/flower/pull/791))" msgstr "" -#: ../../source/ref-changelog.md:1255 +#: ../../source/ref-changelog.md:1366 msgid "" "One of Flower's goals is to enable research at scale. This release " "enables a first (experimental) peek at a major new feature, codenamed the" @@ -19887,7 +20711,7 @@ msgid "" "code examples called `quickstart_simulation` and `simulation_pytorch`." msgstr "" -#: ../../source/ref-changelog.md:1257 +#: ../../source/ref-changelog.md:1368 msgid "" "The feature is still experimental, so there's no stability guarantee for " "the API. It's also not quite ready for prime time and comes with a few " @@ -19895,86 +20719,86 @@ msgid "" "out and share their thoughts." msgstr "" -#: ../../source/ref-changelog.md:1259 +#: ../../source/ref-changelog.md:1370 msgid "" "**New built-in strategies** " "([#828](https://github.com/adap/flower/pull/828) " "[#822](https://github.com/adap/flower/pull/822))" msgstr "" -#: ../../source/ref-changelog.md:1261 +#: ../../source/ref-changelog.md:1372 msgid "" "FedYogi - Federated learning strategy using Yogi on server-side. " "Implementation based on https://arxiv.org/abs/2003.00295" msgstr "" -#: ../../source/ref-changelog.md:1262 +#: ../../source/ref-changelog.md:1373 msgid "" "FedAdam - Federated learning strategy using Adam on server-side. " "Implementation based on https://arxiv.org/abs/2003.00295" msgstr "" -#: ../../source/ref-changelog.md:1264 +#: ../../source/ref-changelog.md:1375 msgid "" "**New PyTorch Lightning code example** " "([#617](https://github.com/adap/flower/pull/617))" msgstr "" -#: ../../source/ref-changelog.md:1266 +#: ../../source/ref-changelog.md:1377 msgid "" "**New Variational Auto-Encoder code example** " "([#752](https://github.com/adap/flower/pull/752))" msgstr "" -#: ../../source/ref-changelog.md:1268 +#: ../../source/ref-changelog.md:1379 msgid "" "**New scikit-learn code example** " "([#748](https://github.com/adap/flower/pull/748))" msgstr "" -#: ../../source/ref-changelog.md:1270 +#: ../../source/ref-changelog.md:1381 msgid "" "**New experimental TensorBoard strategy** " "([#789](https://github.com/adap/flower/pull/789))" msgstr "" -#: ../../source/ref-changelog.md:1274 +#: ../../source/ref-changelog.md:1385 msgid "" "Improved advanced TensorFlow code example " "([#769](https://github.com/adap/flower/pull/769))" msgstr "" -#: ../../source/ref-changelog.md:1275 +#: ../../source/ref-changelog.md:1386 msgid "" "Warning when `min_available_clients` is misconfigured " "([#830](https://github.com/adap/flower/pull/830))" msgstr "" -#: ../../source/ref-changelog.md:1276 +#: ../../source/ref-changelog.md:1387 msgid "" "Improved gRPC server docs " "([#841](https://github.com/adap/flower/pull/841))" msgstr "" -#: ../../source/ref-changelog.md:1277 +#: ../../source/ref-changelog.md:1388 msgid "" "Improved error message in `NumPyClient` " "([#851](https://github.com/adap/flower/pull/851))" msgstr "" -#: ../../source/ref-changelog.md:1278 +#: ../../source/ref-changelog.md:1389 msgid "" "Improved PyTorch quickstart code example " "([#852](https://github.com/adap/flower/pull/852))" msgstr "" -#: ../../source/ref-changelog.md:1282 +#: ../../source/ref-changelog.md:1393 msgid "" "**Disabled final distributed evaluation** " "([#800](https://github.com/adap/flower/pull/800))" msgstr "" -#: ../../source/ref-changelog.md:1284 +#: ../../source/ref-changelog.md:1395 msgid "" "Prior behaviour was to perform a final round of distributed evaluation on" " all connected clients, which is often not required (e.g., when using " @@ -19982,13 +20806,13 @@ msgid "" "`force_final_distributed_eval=True` to `start_server`." msgstr "" -#: ../../source/ref-changelog.md:1286 +#: ../../source/ref-changelog.md:1397 msgid "" "**Renamed q-FedAvg strategy** " "([#802](https://github.com/adap/flower/pull/802))" msgstr "" -#: ../../source/ref-changelog.md:1288 +#: ../../source/ref-changelog.md:1399 msgid "" "The strategy named `QffedAvg` was renamed to `QFedAvg` to better reflect " "the notation given in the original paper (q-FFL is the optimization " @@ -19997,14 +20821,14 @@ msgid "" " (it will be removed in a future release)." msgstr "" -#: ../../source/ref-changelog.md:1290 +#: ../../source/ref-changelog.md:1401 msgid "" "**Deprecated and renamed code example** `simulation_pytorch` **to** " "`simulation_pytorch_legacy` " "([#791](https://github.com/adap/flower/pull/791))" msgstr "" -#: ../../source/ref-changelog.md:1292 +#: ../../source/ref-changelog.md:1403 msgid "" "This example has been replaced by a new example. The new example is based" " on the experimental virtual client engine, which will become the new " @@ -20013,27 +20837,27 @@ msgid "" "removed in the future." msgstr "" -#: ../../source/ref-changelog.md:1294 +#: ../../source/ref-changelog.md:1405 msgid "v0.16.0 (2021-05-11)" msgstr "" -#: ../../source/ref-changelog.md:1298 +#: ../../source/ref-changelog.md:1409 msgid "" "**New built-in strategies** " "([#549](https://github.com/adap/flower/pull/549))" msgstr "" -#: ../../source/ref-changelog.md:1300 +#: ../../source/ref-changelog.md:1411 msgid "(abstract) FedOpt" msgstr "" -#: ../../source/ref-changelog.md:1303 +#: ../../source/ref-changelog.md:1414 msgid "" "**Custom metrics for server and strategies** " "([#717](https://github.com/adap/flower/pull/717))" msgstr "" -#: ../../source/ref-changelog.md:1305 +#: ../../source/ref-changelog.md:1416 msgid "" "The Flower server is now fully task-agnostic, all remaining instances of " "task-specific metrics (such as `accuracy`) have been replaced by custom " @@ -20042,7 +20866,7 @@ msgid "" "release, custom metrics replace task-specific metrics on the server." msgstr "" -#: ../../source/ref-changelog.md:1307 +#: ../../source/ref-changelog.md:1418 msgid "" "Custom metric dictionaries are now used in two user-facing APIs: they are" " returned from Strategy methods `aggregate_fit`/`aggregate_evaluate` and " @@ -20052,7 +20876,7 @@ msgid "" "track of." msgstr "" -#: ../../source/ref-changelog.md:1309 +#: ../../source/ref-changelog.md:1420 msgid "" "Strategy implementations should migrate their `aggregate_fit` and " "`aggregate_evaluate` methods to the new return type (e.g., by simply " @@ -20060,19 +20884,19 @@ msgid "" " from `return loss, accuracy` to `return loss, {\"accuracy\": accuracy}`." msgstr "" -#: ../../source/ref-changelog.md:1311 +#: ../../source/ref-changelog.md:1422 msgid "" "Flower 0.15-style return types are deprecated (but still supported), " "compatibility will be removed in a future release." msgstr "" -#: ../../source/ref-changelog.md:1313 +#: ../../source/ref-changelog.md:1424 msgid "" "**Migration warnings for deprecated functionality** " "([#690](https://github.com/adap/flower/pull/690))" msgstr "" -#: ../../source/ref-changelog.md:1315 +#: ../../source/ref-changelog.md:1426 msgid "" "Earlier versions of Flower were often migrated to new APIs, while " "maintaining compatibility with legacy APIs. This release introduces " @@ -20081,7 +20905,7 @@ msgid "" "recent APIs, thus easing the transition from one release to another." msgstr "" -#: ../../source/ref-changelog.md:1317 +#: ../../source/ref-changelog.md:1428 msgid "" "Improved docs and docstrings " "([#691](https://github.com/adap/flower/pull/691) " @@ -20089,11 +20913,11 @@ msgid "" "[#713](https://github.com/adap/flower/pull/713))" msgstr "" -#: ../../source/ref-changelog.md:1319 +#: ../../source/ref-changelog.md:1430 msgid "MXNet example and documentation" msgstr "" -#: ../../source/ref-changelog.md:1321 +#: ../../source/ref-changelog.md:1432 msgid "" "FedBN implementation in example PyTorch: From Centralized To Federated " "([#696](https://github.com/adap/flower/pull/696) " @@ -20101,13 +20925,13 @@ msgid "" "[#705](https://github.com/adap/flower/pull/705))" msgstr "" -#: ../../source/ref-changelog.md:1325 +#: ../../source/ref-changelog.md:1436 msgid "" "**Serialization-agnostic server** " "([#721](https://github.com/adap/flower/pull/721))" msgstr "" -#: ../../source/ref-changelog.md:1327 +#: ../../source/ref-changelog.md:1438 msgid "" "The Flower server is now fully serialization-agnostic. Prior usage of " "class `Weights` (which represents parameters as deserialized NumPy " @@ -20118,7 +20942,7 @@ msgid "" "serialization/deserialization)." msgstr "" -#: ../../source/ref-changelog.md:1329 +#: ../../source/ref-changelog.md:1440 msgid "" "Built-in strategies implement this approach by handling serialization and" " deserialization to/from `Weights` internally. Custom/3rd-party Strategy " @@ -20128,31 +20952,31 @@ msgid "" " easily migrate to the new format." msgstr "" -#: ../../source/ref-changelog.md:1331 +#: ../../source/ref-changelog.md:1442 msgid "" "Deprecated `flwr.server.Server.evaluate`, use " "`flwr.server.Server.evaluate_round` instead " "([#717](https://github.com/adap/flower/pull/717))" msgstr "" -#: ../../source/ref-changelog.md:1333 +#: ../../source/ref-changelog.md:1444 msgid "v0.15.0 (2021-03-12)" msgstr "" -#: ../../source/ref-changelog.md:1337 +#: ../../source/ref-changelog.md:1448 msgid "" "**Server-side parameter initialization** " "([#658](https://github.com/adap/flower/pull/658))" msgstr "" -#: ../../source/ref-changelog.md:1339 +#: ../../source/ref-changelog.md:1450 msgid "" "Model parameters can now be initialized on the server-side. Server-side " "parameter initialization works via a new `Strategy` method called " "`initialize_parameters`." msgstr "" -#: ../../source/ref-changelog.md:1341 +#: ../../source/ref-changelog.md:1452 msgid "" "Built-in strategies support a new constructor argument called " "`initial_parameters` to set the initial parameters. Built-in strategies " @@ -20160,7 +20984,7 @@ msgid "" "delete them to free the memory afterwards." msgstr "" -#: ../../source/ref-changelog.md:1360 +#: ../../source/ref-changelog.md:1471 msgid "" "If no initial parameters are provided to the strategy, the server will " "continue to use the current behaviour (namely, it will ask one of the " @@ -20168,17 +20992,17 @@ msgid "" "parameters)." msgstr "" -#: ../../source/ref-changelog.md:1364 +#: ../../source/ref-changelog.md:1475 msgid "" "Deprecate `flwr.server.strategy.DefaultStrategy` (migrate to " "`flwr.server.strategy.FedAvg`, which is equivalent)" msgstr "" -#: ../../source/ref-changelog.md:1366 +#: ../../source/ref-changelog.md:1477 msgid "v0.14.0 (2021-02-18)" msgstr "" -#: ../../source/ref-changelog.md:1370 +#: ../../source/ref-changelog.md:1481 msgid "" "**Generalized** `Client.fit` **and** `Client.evaluate` **return values** " "([#610](https://github.com/adap/flower/pull/610) " @@ -20186,7 +21010,7 @@ msgid "" "[#633](https://github.com/adap/flower/pull/633))" msgstr "" -#: ../../source/ref-changelog.md:1372 +#: ../../source/ref-changelog.md:1483 msgid "" "Clients can now return an additional dictionary mapping `str` keys to " "values of the following types: `bool`, `bytes`, `float`, `int`, `str`. " @@ -20194,7 +21018,7 @@ msgid "" "and make use of them on the server side!" msgstr "" -#: ../../source/ref-changelog.md:1374 +#: ../../source/ref-changelog.md:1485 msgid "" "This improvement also allowed for more consistent return types between " "`fit` and `evaluate`: `evaluate` should now return a tuple `(float, int, " @@ -20202,7 +21026,7 @@ msgid "" "holding arbitrary problem-specific values like accuracy." msgstr "" -#: ../../source/ref-changelog.md:1376 +#: ../../source/ref-changelog.md:1487 msgid "" "In case you wondered: this feature is compatible with existing projects, " "the additional dictionary return value is optional. New code should " @@ -20212,19 +21036,19 @@ msgid "" "details." msgstr "" -#: ../../source/ref-changelog.md:1378 +#: ../../source/ref-changelog.md:1489 msgid "" "*Code example:* note the additional dictionary return values in both " "`FlwrClient.fit` and `FlwrClient.evaluate`:" msgstr "" -#: ../../source/ref-changelog.md:1393 +#: ../../source/ref-changelog.md:1504 msgid "" "**Generalized** `config` **argument in** `Client.fit` **and** " "`Client.evaluate` ([#595](https://github.com/adap/flower/pull/595))" msgstr "" -#: ../../source/ref-changelog.md:1395 +#: ../../source/ref-changelog.md:1506 msgid "" "The `config` argument used to be of type `Dict[str, str]`, which means " "that dictionary values were expected to be strings. The new release " @@ -20232,58 +21056,58 @@ msgid "" "`bytes`, `float`, `int`, `str`." msgstr "" -#: ../../source/ref-changelog.md:1397 +#: ../../source/ref-changelog.md:1508 msgid "" "This means one can now pass almost arbitrary values to `fit`/`evaluate` " "using the `config` dictionary. Yay, no more `str(epochs)` on the server-" "side and `int(config[\"epochs\"])` on the client side!" msgstr "" -#: ../../source/ref-changelog.md:1399 +#: ../../source/ref-changelog.md:1510 msgid "" "*Code example:* note that the `config` dictionary now contains non-`str` " "values in both `Client.fit` and `Client.evaluate`:" msgstr "" -#: ../../source/ref-changelog.md:1416 +#: ../../source/ref-changelog.md:1527 msgid "v0.13.0 (2021-01-08)" msgstr "" -#: ../../source/ref-changelog.md:1420 +#: ../../source/ref-changelog.md:1531 msgid "" "New example: PyTorch From Centralized To Federated " "([#549](https://github.com/adap/flower/pull/549))" msgstr "" -#: ../../source/ref-changelog.md:1421 +#: ../../source/ref-changelog.md:1532 msgid "Improved documentation" msgstr "" -#: ../../source/ref-changelog.md:1422 +#: ../../source/ref-changelog.md:1533 msgid "New documentation theme ([#551](https://github.com/adap/flower/pull/551))" msgstr "" -#: ../../source/ref-changelog.md:1423 +#: ../../source/ref-changelog.md:1534 msgid "New API reference ([#554](https://github.com/adap/flower/pull/554))" msgstr "" -#: ../../source/ref-changelog.md:1424 +#: ../../source/ref-changelog.md:1535 msgid "" "Updated examples documentation " "([#549](https://github.com/adap/flower/pull/549))" msgstr "" -#: ../../source/ref-changelog.md:1425 +#: ../../source/ref-changelog.md:1536 msgid "" "Removed obsolete documentation " "([#548](https://github.com/adap/flower/pull/548))" msgstr "" -#: ../../source/ref-changelog.md:1427 +#: ../../source/ref-changelog.md:1538 msgid "Bugfix:" msgstr "" -#: ../../source/ref-changelog.md:1429 +#: ../../source/ref-changelog.md:1540 msgid "" "`Server.fit` does not disconnect clients when finished, disconnecting the" " clients is now handled in `flwr.server.start_server` " @@ -20291,28 +21115,28 @@ msgid "" "[#540](https://github.com/adap/flower/issues/540))." msgstr "" -#: ../../source/ref-changelog.md:1431 +#: ../../source/ref-changelog.md:1542 msgid "v0.12.0 (2020-12-07)" msgstr "" -#: ../../source/ref-changelog.md:1433 ../../source/ref-changelog.md:1449 +#: ../../source/ref-changelog.md:1544 ../../source/ref-changelog.md:1560 msgid "Important changes:" msgstr "" -#: ../../source/ref-changelog.md:1435 +#: ../../source/ref-changelog.md:1546 msgid "" "Added an example for embedded devices " "([#507](https://github.com/adap/flower/pull/507))" msgstr "" -#: ../../source/ref-changelog.md:1436 +#: ../../source/ref-changelog.md:1547 msgid "" "Added a new NumPyClient (in addition to the existing KerasClient) " "([#504](https://github.com/adap/flower/pull/504) " "[#508](https://github.com/adap/flower/pull/508))" msgstr "" -#: ../../source/ref-changelog.md:1437 +#: ../../source/ref-changelog.md:1548 msgid "" "Deprecated `flwr_example` package and started to migrate examples into " "the top-level `examples` directory " @@ -20320,15 +21144,15 @@ msgid "" "[#512](https://github.com/adap/flower/pull/512))" msgstr "" -#: ../../source/ref-changelog.md:1439 +#: ../../source/ref-changelog.md:1550 msgid "v0.11.0 (2020-11-30)" msgstr "" -#: ../../source/ref-changelog.md:1441 +#: ../../source/ref-changelog.md:1552 msgid "Incompatible changes:" msgstr "" -#: ../../source/ref-changelog.md:1443 +#: ../../source/ref-changelog.md:1554 msgid "" "Renamed strategy methods " "([#486](https://github.com/adap/flower/pull/486)) to unify the naming of " @@ -20338,48 +21162,48 @@ msgid "" "migrate rename the following `Strategy` methods accordingly:" msgstr "" -#: ../../source/ref-changelog.md:1444 +#: ../../source/ref-changelog.md:1555 msgid "`on_configure_evaluate` => `configure_evaluate`" msgstr "" -#: ../../source/ref-changelog.md:1445 +#: ../../source/ref-changelog.md:1556 msgid "`on_aggregate_evaluate` => `aggregate_evaluate`" msgstr "" -#: ../../source/ref-changelog.md:1446 +#: ../../source/ref-changelog.md:1557 msgid "`on_configure_fit` => `configure_fit`" msgstr "" -#: ../../source/ref-changelog.md:1447 +#: ../../source/ref-changelog.md:1558 msgid "`on_aggregate_fit` => `aggregate_fit`" msgstr "" -#: ../../source/ref-changelog.md:1451 +#: ../../source/ref-changelog.md:1562 msgid "" "Deprecated `DefaultStrategy` " "([#479](https://github.com/adap/flower/pull/479)). To migrate use " "`FedAvg` instead." msgstr "" -#: ../../source/ref-changelog.md:1452 +#: ../../source/ref-changelog.md:1563 msgid "" "Simplified examples and baselines " "([#484](https://github.com/adap/flower/pull/484))." msgstr "" -#: ../../source/ref-changelog.md:1453 +#: ../../source/ref-changelog.md:1564 msgid "" "Removed presently unused `on_conclude_round` from strategy interface " "([#483](https://github.com/adap/flower/pull/483))." msgstr "" -#: ../../source/ref-changelog.md:1454 +#: ../../source/ref-changelog.md:1565 msgid "" "Set minimal Python version to 3.6.1 instead of 3.6.9 " "([#471](https://github.com/adap/flower/pull/471))." msgstr "" -#: ../../source/ref-changelog.md:1455 +#: ../../source/ref-changelog.md:1566 msgid "" "Improved `Strategy` docstrings " "([#470](https://github.com/adap/flower/pull/470))." @@ -23746,7 +24570,7 @@ msgid "" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:41 -msgid "|c9344c3dfee24383908fabaac40a8504|" +msgid "|cf5fe148406b44b9a8b842fb01b5a7ea|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:109 @@ -23761,7 +24585,7 @@ msgid "" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:53 -msgid "|c10cd8f2177641bd8091c7b76d318ff9|" +msgid "|ba25c91426d64cc1ae2d3febc5715b35|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:111 @@ -23783,7 +24607,7 @@ msgid "" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:67 -msgid "|3c59c315e67945ea8b839381c5deb6c2|" +msgid "|fca67f83aaab4389aa9ebb4d9c5cd75e|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:113 @@ -23799,7 +24623,7 @@ msgid "" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:79 -msgid "|eadf87e1e20549789512f7aa9199fcff|" +msgid "|6f2e8f95c95443379b0df00ca9824654|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:115 @@ -23815,7 +24639,7 @@ msgid "" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:91 -msgid "|66ce8f21aeb443fca1fc88f727458417|" +msgid "|c0ab3a1a733d4dbc9e1677aa608e8038|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:117 @@ -23830,7 +24654,7 @@ msgid "" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:103 -msgid "|f5768015a1014396b4761bb6cb3677f5|" +msgid "|8f0491bde07341ab9f2e23d50593c0be|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:119 @@ -23850,7 +24674,7 @@ msgid "" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:138 -msgid "|a746aa3f56064617a4e00f4c6a0cb140|" +msgid "|762fc099899943688361562252c5e600|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:173 @@ -23865,7 +24689,7 @@ msgid "" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:150 -msgid "|cf8f676dd3534a44995c1b40910fd030|" +msgid "|f62d365fd0ae405b975d3ca01e7183fd|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:175 @@ -24005,7 +24829,7 @@ msgid "" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:210 -msgid "|d1c0e3a4c9dc4bfd88ee6f1fe626edaf|" +msgid "|2c78fc1816b143289f4d909388f92a80|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:307 @@ -24029,7 +24853,7 @@ msgid "" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:225 -msgid "|1d8d6298a4014ec3a717135bcc7a94f9|" +msgid "|4230725aeebe497d8ad84a3efc2a912b|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:309 @@ -24053,7 +24877,7 @@ msgid "" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:240 -msgid "|e3ea79200ff44d459358b9f4713e582b|" +msgid "|64b66a88417240eabe52f5cc55d89d0b|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:311 @@ -24076,7 +24900,7 @@ msgid "" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:255 -msgid "|3e1061718a4a49d485764d30a4bfecdd|" +msgid "|726c8eca58bc4f859b06aa24a587b253|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:313 @@ -24114,7 +24938,7 @@ msgid "" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:273 -msgid "|7750e597d1ea4e319f7e0a40539bf214|" +msgid "|f9d869e4b33c4093b29cf24ed8dff80a|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:315 @@ -24208,7 +25032,7 @@ msgid "" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:334 -msgid "|dd4434075f374e99ac07f509a883778f|" +msgid "|4ab50bc01a9f426a91a2c0cbc3ab7a84|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:340 @@ -35707,3 +36531,746 @@ msgstr "" #~ msgid "|55472eef61274ba1b739408607e109df|" #~ msgstr "" +#~ msgid "" +#~ "Run ``python3 src/py/flwr_tool/update_changelog.py " +#~ "`` in order to add every" +#~ " new change to the changelog (feel" +#~ " free to make manual changes to " +#~ "the changelog afterwards until it looks" +#~ " good)." +#~ msgstr "" + +#~ msgid "" +#~ "When operating in a production " +#~ "environment, it is strongly recommended " +#~ "to enable Transport Layer Security (TLS)" +#~ " for each Flower Component to ensure" +#~ " secure communication." +#~ msgstr "" + +#~ msgid "" +#~ "To enable TLS, you will need a " +#~ "PEM-encoded root certificate, a PEM-" +#~ "encoded private key and a PEM-" +#~ "encoded certificate chain." +#~ msgstr "" + +#~ msgid "SuperLink" +#~ msgstr "" + +#~ msgid "" +#~ "Assuming all files we need are in" +#~ " the local ``certificates`` directory, we" +#~ " can use the flag ``--volume`` to " +#~ "mount the local directory into the " +#~ "``/app/certificates/`` directory of the " +#~ "container:" +#~ msgstr "" + +#~ msgid "" +#~ "``--volume ./certificates/:/app/certificates/:ro``: Mount" +#~ " the ``certificates`` directory in" +#~ msgstr "" + +#~ msgid "" +#~ "the current working directory of the " +#~ "host machine as a read-only volume" +#~ " at the" +#~ msgstr "" + +#~ msgid "``/app/certificates`` directory inside the container." +#~ msgstr "" + +#~ msgid "SuperNode" +#~ msgstr "" + +#~ msgid "" +#~ "Assuming that the ``ca.crt`` certificate " +#~ "already exists locally, we can use " +#~ "the flag ``--volume`` to mount the " +#~ "local certificate into the container's " +#~ "``/app/`` directory." +#~ msgstr "" + +#~ msgid "" +#~ "``--volume ./ca.crt:/app/ca.crt/:ro``: Mount the " +#~ "``ca.crt`` file from the" +#~ msgstr "" + +#~ msgid "" +#~ "current working directory of the host" +#~ " machine as a read-only volume " +#~ "at the ``/app/ca.crt``" +#~ msgstr "" + +#~ msgid "SuperExec" +#~ msgstr "" + +#~ msgid "" +#~ "Assuming all files we need are in" +#~ " the local ``certificates`` directory where" +#~ " the SuperExec will be executed from," +#~ " we can use the flag ``--volume`` " +#~ "to mount the local directory into " +#~ "the ``/app/certificates/`` directory of the" +#~ " container:" +#~ msgstr "" + +#~ msgid "" +#~ ":substitution-code:`flwr/superexec:|stable_flwr_version|`: " +#~ "The name of the image to be " +#~ "run and the specific" +#~ msgstr "" + +#~ msgid "SuperExec." +#~ msgstr "" + +#~ msgid "" +#~ "``--ssl-certfile certificates/server.pem``: Specify" +#~ " the location of the SuperExec's" +#~ msgstr "" + +#~ msgid "" +#~ "The ``certificates/server.pem`` file is used" +#~ " to identify the SuperExec and to " +#~ "encrypt the" +#~ msgstr "" + +#~ msgid "" +#~ "``--ssl-keyfile certificates/server.key``: Specify" +#~ " the location of the SuperExec's" +#~ msgstr "" + +#~ msgid "" +#~ "``--executor-config root-" +#~ "certificates=\\\"certificates/superlink_ca.crt\\\"``: Specify" +#~ " the" +#~ msgstr "" + +#~ msgid "" +#~ "location of the CA certificate file " +#~ "inside the container that the SuperExec" +#~ " executor" +#~ msgstr "" + +#~ msgid "should use to verify the SuperLink's identity." +#~ msgstr "" + +#~ msgid "Run ClientApp as a Subprocess" +#~ msgstr "" + +#~ msgid "" +#~ "In this mode, the ClientApp is " +#~ "executed as a subprocess within the " +#~ "SuperNode Docker container, rather than " +#~ "running in a separate container. This" +#~ " approach reduces the number of " +#~ "running containers, which can be " +#~ "beneficial for environments with limited " +#~ "resources. However, it also means that" +#~ " the ClientApp is no longer isolated" +#~ " from the SuperNode, which may " +#~ "introduce additional security concerns." +#~ msgstr "" + +#~ msgid "" +#~ "Before running the ClientApp as a " +#~ "subprocess, ensure that the FAB " +#~ "dependencies have been installed in the" +#~ " SuperNode images. This can be done" +#~ " by extending the SuperNode image:" +#~ msgstr "" + +#~ msgid "Dockerfile.supernode" +#~ msgstr "" + +#~ msgid "" +#~ "Next, build the SuperNode Docker image" +#~ " by running the following command in" +#~ " the directory where Dockerfile is " +#~ "located:" +#~ msgstr "" + +#~ msgid "Run the ClientApp as a Subprocess" +#~ msgstr "" + +#~ msgid "" +#~ "Start the SuperNode with the flag " +#~ "``--isolation subprocess``, which tells the" +#~ " SuperNode to execute the ClientApp " +#~ "as a subprocess:" +#~ msgstr "" + +#~ msgid "Run the example and follow the logs of the ServerApp:" +#~ msgstr "" + +#~ msgid "" +#~ "That is all it takes! You can " +#~ "monitor the progress of the run " +#~ "through the logs of the SuperExec." +#~ msgstr "" + +#~ msgid "" +#~ "You will learn how to run the " +#~ "Flower client and server components on" +#~ " two separate machines, with Flower " +#~ "configured to use TLS encryption and " +#~ "persist SuperLink state across restarts. " +#~ "A server consists of a SuperLink " +#~ "and ``SuperExec``. For more details " +#~ "about the Flower architecture, refer to" +#~ " the :doc:`../explanation-flower-architecture`" +#~ " explainer page." +#~ msgstr "" + +#~ msgid "" +#~ "First, set the environment variables " +#~ "``SUPERLINK_IP`` and ``SUPEREXEC_IP`` with the" +#~ " IP address from the remote machine." +#~ " For example, if the IP is " +#~ "``192.168.2.33``, execute:" +#~ msgstr "" + +#~ msgid "" +#~ "Log into the remote machine using " +#~ "``ssh`` and run the following command" +#~ " to start the SuperLink and SuperExec" +#~ " services:" +#~ msgstr "" + +#~ msgid "" +#~ "Specify the remote SuperExec IP " +#~ "addresses and the path to the root" +#~ " certificate in the ``[tool.flwr.federations" +#~ ".remote-superexec]`` table in the " +#~ "``pyproject.toml`` file. Here, we have " +#~ "named our remote federation ``remote-" +#~ "superexec``:" +#~ msgstr "" + +#~ msgid "Run the project and follow the ServerApp logs:" +#~ msgstr "" + +#~ msgid "" +#~ "``-p 9091:9091 -p 9092:9092``: Map port" +#~ " ``9091`` and ``9092`` of the " +#~ "container to the same port of" +#~ msgstr "" + +#~ msgid "the host machine, allowing other services to access the Driver API on" +#~ msgstr "" + +#~ msgid "" +#~ "``http://localhost:9091`` and the Fleet API" +#~ " on ``http://localhost:9092``." +#~ msgstr "" + +#~ msgid "Step 3: Start the SuperNode" +#~ msgstr "" + +#~ msgid "" +#~ "``flwr/supernode:|stable_flwr_version|``: This is " +#~ "the name of the image to be " +#~ "run and the specific tag" +#~ msgstr "" + +#~ msgid "" +#~ "``--supernode-address 0.0.0.0:9094``: Set the" +#~ " address and port number that the " +#~ "SuperNode" +#~ msgstr "" + +#~ msgid "is listening on." +#~ msgstr "" + +#~ msgid "Step 4: Start the ClientApp" +#~ msgstr "" + +#~ msgid "" +#~ "The ClientApp Docker image comes with" +#~ " a pre-installed version of Flower" +#~ " and serves as a base for " +#~ "building your own ClientApp image. In" +#~ " order to install the FAB " +#~ "dependencies, you will need to create" +#~ " a Dockerfile that extends the " +#~ "ClientApp image and installs the " +#~ "required dependencies." +#~ msgstr "" + +#~ msgid "" +#~ "Create a ClientApp Dockerfile called " +#~ "``Dockerfile.clientapp`` and paste the " +#~ "following code into it:" +#~ msgstr "" + +#~ msgid "Dockerfile.clientapp" +#~ msgstr "" + +#~ msgid "" +#~ "to be built from is the " +#~ "``flwr/clientapp image``, version :substitution-" +#~ "code:`|stable_flwr_version|`." +#~ msgstr "" + +#~ msgid "" +#~ "``--supernode supernode-1:9094``: Connect to " +#~ "the SuperNode's Fleet API at the " +#~ "address" +#~ msgstr "" + +#~ msgid "``supernode-1:9094``." +#~ msgstr "" + +#~ msgid "Step 5: Start the SuperExec" +#~ msgstr "" + +#~ msgid "" +#~ "The procedure for building and running" +#~ " a SuperExec image is almost " +#~ "identical to the ClientApp image." +#~ msgstr "" + +#~ msgid "" +#~ "Similar to the ClientApp image, you " +#~ "will need to create a Dockerfile " +#~ "that extends the SuperExec image and " +#~ "installs the required FAB dependencies." +#~ msgstr "" + +#~ msgid "" +#~ "Create a SuperExec Dockerfile called " +#~ "``Dockerfile.superexec`` and paste the " +#~ "following code in:" +#~ msgstr "" + +#~ msgid "Dockerfile.superexec" +#~ msgstr "" + +#~ msgid "" +#~ ":substitution-code:`FROM " +#~ "flwr/superexec:|stable_flwr_version|`: This line " +#~ "specifies that the Docker image" +#~ msgstr "" + +#~ msgid "" +#~ "to be built from is the " +#~ "``flwr/superexec image``, version :substitution-" +#~ "code:`|stable_flwr_version|`." +#~ msgstr "" + +#~ msgid "" +#~ "``ENTRYPOINT [\"flower-superexec\"``: Set the" +#~ " command ``flower-superexec`` to be" +#~ msgstr "" + +#~ msgid "``\"--executor\", \"flwr.superexec.deployment:executor\"]`` Use the" +#~ msgstr "" + +#~ msgid "``flwr.superexec.deployment:executor`` executor to run the ServerApps." +#~ msgstr "" + +#~ msgid "" +#~ "Afterward, in the directory that holds" +#~ " the Dockerfile, execute this Docker " +#~ "command to build the SuperExec image:" +#~ msgstr "" + +#~ msgid "Start the SuperExec container:" +#~ msgstr "" + +#~ msgid "" +#~ "``-p 9093:9093``: Map port ``9093`` of" +#~ " the container to the same port " +#~ "of" +#~ msgstr "" + +#~ msgid "" +#~ "the host machine, allowing you to " +#~ "access the SuperExec API on " +#~ "``http://localhost:9093``." +#~ msgstr "" + +#~ msgid "``--name superexec``: Assign the name ``superexec`` to the container." +#~ msgstr "" + +#~ msgid "" +#~ "``flwr_superexec:0.0.1``: This is the name " +#~ "of the image to be run and " +#~ "the specific tag" +#~ msgstr "" + +#~ msgid "" +#~ "``--executor-config superlink=\\\"superlink:9091\\\"``:" +#~ " Configure the SuperExec executor to" +#~ msgstr "" + +#~ msgid "connect to the SuperLink running on port ``9091``." +#~ msgstr "" + +#~ msgid "Stop the current ClientApp containers:" +#~ msgstr "" + +#~ msgid "Launch two new ClientApp containers based on the newly built image:" +#~ msgstr "" + +#~ msgid "" +#~ "Setting the ``PROJECT_DIR`` helps Docker " +#~ "Compose locate the ``pyproject.toml`` file," +#~ " allowing it to install dependencies " +#~ "in the SuperExec and SuperNode images" +#~ " correctly." +#~ msgstr "" + +#~ msgid "" +#~ "To ensure the ``flwr`` CLI connects " +#~ "to the SuperExec, you need to " +#~ "specify the SuperExec addresses in the" +#~ " ``pyproject.toml`` file." +#~ msgstr "" + +#~ msgid "" +#~ "Run the quickstart example, monitor the" +#~ " ServerApp logs and wait for the " +#~ "summary to appear:" +#~ msgstr "" + +#~ msgid "In the SuperExec logs, you should find the ``Get weights`` line:" +#~ msgstr "" + +#~ msgid "Step 7: Add another SuperNode" +#~ msgstr "" + +#~ msgid "" +#~ "You can add more SuperNodes and " +#~ "ClientApps by duplicating their definitions" +#~ " in the ``compose.yml`` file." +#~ msgstr "" + +#~ msgid "" +#~ "Just give each new SuperNode and " +#~ "ClientApp service a unique service name" +#~ " like ``supernode-3``, ``clientapp-3``, etc." +#~ msgstr "" + +#~ msgid "In ``compose.yml``, add the following:" +#~ msgstr "" + +#~ msgid "" +#~ "If you also want to enable TLS " +#~ "for the new SuperNodes, duplicate the" +#~ " SuperNode definition for each new " +#~ "SuperNode service in the ``with-" +#~ "tls.yml`` file." +#~ msgstr "" + +#~ msgid "" +#~ "Make sure that the names of the" +#~ " services match with the one in " +#~ "the ``compose.yml`` file." +#~ msgstr "" + +#~ msgid "In ``with-tls.yml``, add the following:" +#~ msgstr "" + +#~ msgid "Comment out the lines 2-4 and uncomment the lines 5-9:" +#~ msgstr "" + +#~ msgid "Enable SSL connections" +#~ msgstr "" + +#~ msgid "" +#~ "This guide describes how to a " +#~ "SSL-enabled secure Flower server " +#~ "(``SuperLink``) can be started and how" +#~ " a Flower client (``SuperNode``) can " +#~ "establish a secure connections to it." +#~ msgstr "" + +#~ msgid "" +#~ "The code example comes with a " +#~ "``README.md`` file which explains how to" +#~ " start it. Although it is already " +#~ "SSL-enabled, it might be less " +#~ "descriptive on how it does so. " +#~ "Stick to this guide for a deeper" +#~ " introduction to the topic." +#~ msgstr "" + +#~ msgid "" +#~ "Using SSL-enabled connections requires " +#~ "certificates to be passed to the " +#~ "server and client. For the purpose " +#~ "of this guide we are going to " +#~ "generate self-signed certificates. As " +#~ "this can become quite complex we " +#~ "are going to ask you to run " +#~ "the script in ``examples/advanced-" +#~ "tensorflow/certificates/generate.sh`` with the " +#~ "following command sequence:" +#~ msgstr "" + +#~ msgid "" +#~ "The approach for generating SSL " +#~ "certificates in the context of this " +#~ "example can serve as an inspiration " +#~ "and starting point, but it should " +#~ "not be used as a reference for " +#~ "production environments. Please refer to " +#~ "other sources regarding the issue of " +#~ "correctly generating certificates for " +#~ "production environments. For non-critical " +#~ "prototyping or research projects, it " +#~ "might be sufficient to use the " +#~ "self-signed certificates generated using " +#~ "the scripts mentioned in this guide." +#~ msgstr "" + +#~ msgid "" +#~ "Use the following terminal command to" +#~ " start a sever (SuperLink) that uses" +#~ " the previously generated certificates:" +#~ msgstr "" + +#~ msgid "Client (SuperNode)" +#~ msgstr "" + +#~ msgid "" +#~ "You should now have learned how to" +#~ " generate self-signed certificates using" +#~ " the given script, start an SSL-" +#~ "enabled server and have a client " +#~ "establish a secure connection to it." +#~ msgstr "" + +#~ msgid "" +#~ "This guide is for users who have" +#~ " already worked with Flower 0.x and" +#~ " want to upgrade to Flower 1.0. " +#~ "Newer versions of Flower (1.12+) are " +#~ "based on a new architecture (previously" +#~ " called Flower Next) and not covered" +#~ " in this guide. After upgrading " +#~ "Flower 0.x projects to Flower 1.0, " +#~ "please refer to :doc:`Upgrade to Flower" +#~ " Next ` to make your project compatible" +#~ " with the lastest version of Flower." +#~ msgstr "" + +#~ msgid "Upgrade to Flower Next" +#~ msgstr "" + +#~ msgid "" +#~ "Welcome to the migration guide for " +#~ "updating Flower to Flower Next! Whether" +#~ " you're a seasoned user or just " +#~ "getting started, this guide will help" +#~ " you smoothly transition your existing " +#~ "setup to take advantage of the " +#~ "latest features and improvements in " +#~ "Flower Next, starting from version 1.8." +#~ msgstr "" + +#~ msgid "" +#~ "This guide shows how to reuse " +#~ "pre-``1.8`` Flower code with minimum " +#~ "code changes by using the *compatibility" +#~ " layer* in Flower Next. In another" +#~ " guide, we will show how to run" +#~ " Flower Next end-to-end with " +#~ "pure Flower Next APIs." +#~ msgstr "" + +#~ msgid "" +#~ "Here's how to update an existing " +#~ "installation of Flower to Flower Next" +#~ " with ``pip``:" +#~ msgstr "" + +#~ msgid "or if you need Flower Next with simulation:" +#~ msgstr "" + +#~ msgid "Using Poetry" +#~ msgstr "" + +#~ msgid "" +#~ "Update the ``flwr`` dependency in " +#~ "``pyproject.toml`` and then reinstall (don't" +#~ " forget to delete ``poetry.lock`` via " +#~ "``rm poetry.lock`` before running ``poetry " +#~ "install``)." +#~ msgstr "" + +#~ msgid "" +#~ "Ensure you set the following version " +#~ "constraint in your ``pyproject.toml``:" +#~ msgstr "" + +#~ msgid "" +#~ "In Flower Next, the *infrastructure* and" +#~ " *application layers* have been decoupled." +#~ " Instead of starting a client in " +#~ "code via ``start_client()``, you create " +#~ "a |clientapp_link|_ and start it via " +#~ "the command line. Instead of starting" +#~ " a server in code via " +#~ "``start_server()``, you create a " +#~ "|serverapp_link|_ and start it via the" +#~ " command line. The long-running " +#~ "components of server and client are " +#~ "called SuperLink and SuperNode. The " +#~ "following non-breaking changes that " +#~ "require manual updates and allow you " +#~ "to run your project both in the" +#~ " traditional way and in the Flower" +#~ " Next way:" +#~ msgstr "" + +#~ msgid "" +#~ "Wrap your existing client with " +#~ "|clientapp_link|_ instead of launching it " +#~ "via |startclient_link|_. Here's an example:" +#~ msgstr "" + +#~ msgid "" +#~ "Wrap your existing strategy with " +#~ "|serverapp_link|_ instead of starting the " +#~ "server via |startserver_link|_. Here's an " +#~ "example:" +#~ msgstr "" + +#~ msgid "" +#~ "Run the ``SuperLink`` using " +#~ "|flowernext_superlink_link|_ before running, in " +#~ "sequence, |flowernext_clientapp_link|_ (2x) and " +#~ "|flowernext_serverapp_link|_. There is no need" +#~ " to execute `client.py` and `server.py` " +#~ "as Python scripts." +#~ msgstr "" + +#~ msgid "" +#~ "Here's an example to start the " +#~ "server without HTTPS (only for " +#~ "prototyping):" +#~ msgstr "" + +#~ msgid "" +#~ "Here's another example to start with " +#~ "HTTPS. Use the ``--ssl-ca-certfile``," +#~ " ``--ssl-certfile``, and ``--ssl-keyfile``" +#~ " command line options to pass paths" +#~ " to (CA certificate, server certificate," +#~ " and server private key)." +#~ msgstr "" + +#~ msgid "Simulation in CLI" +#~ msgstr "" + +#~ msgid "" +#~ "Wrap your existing client and strategy" +#~ " with |clientapp_link|_ and |serverapp_link|_," +#~ " respectively. There is no need to" +#~ " use |startsim_link|_ anymore. Here's an" +#~ " example:" +#~ msgstr "" + +#~ msgid "" +#~ "Run |flower_simulation_link|_ in CLI and " +#~ "point to the ``server_app`` / " +#~ "``client_app`` object in the code " +#~ "instead of executing the Python script." +#~ " Here's an example (assuming the " +#~ "``server_app`` and ``client_app`` objects are" +#~ " in a ``sim.py`` module):" +#~ msgstr "" + +#~ msgid "" +#~ "Set default resources for each " +#~ "|clientapp_link|_ using the ``--backend-" +#~ "config`` command line argument instead " +#~ "of setting the ``client_resources`` argument" +#~ " in |startsim_link|_. Here's an example:" +#~ msgstr "" + +#~ msgid "Simulation in a Notebook" +#~ msgstr "" + +#~ msgid "" +#~ "Run |runsim_link|_ in your notebook " +#~ "instead of |startsim_link|_. Here's an " +#~ "example:" +#~ msgstr "" + +#~ msgid "" +#~ "Some official `Flower code examples " +#~ "`_ are already " +#~ "updated to Flower Next so they can" +#~ " serve as a reference for using " +#~ "the Flower Next API. If there are" +#~ " further questions, `join the Flower " +#~ "Slack `_ and " +#~ "use the channel ``#questions``. You can" +#~ " also `participate in Flower Discuss " +#~ "`_ where you can " +#~ "find us answering questions, or share" +#~ " and learn from others about " +#~ "migrating to Flower Next." +#~ msgstr "" + +#~ msgid "" +#~ "As we continuously enhance Flower Next" +#~ " at a rapid pace, we'll be " +#~ "periodically updating this guide. Please " +#~ "feel free to share any feedback " +#~ "with us!" +#~ msgstr "" + +#~ msgid "" +#~ "This function is deprecated since " +#~ "1.13.0. Use :code: `flwr run` to " +#~ "start a Flower simulation." +#~ msgstr "" + +#~ msgid "|c9344c3dfee24383908fabaac40a8504|" +#~ msgstr "" + +#~ msgid "|c10cd8f2177641bd8091c7b76d318ff9|" +#~ msgstr "" + +#~ msgid "|3c59c315e67945ea8b839381c5deb6c2|" +#~ msgstr "" + +#~ msgid "|eadf87e1e20549789512f7aa9199fcff|" +#~ msgstr "" + +#~ msgid "|66ce8f21aeb443fca1fc88f727458417|" +#~ msgstr "" + +#~ msgid "|f5768015a1014396b4761bb6cb3677f5|" +#~ msgstr "" + +#~ msgid "|a746aa3f56064617a4e00f4c6a0cb140|" +#~ msgstr "" + +#~ msgid "|cf8f676dd3534a44995c1b40910fd030|" +#~ msgstr "" + +#~ msgid "|d1c0e3a4c9dc4bfd88ee6f1fe626edaf|" +#~ msgstr "" + +#~ msgid "|1d8d6298a4014ec3a717135bcc7a94f9|" +#~ msgstr "" + +#~ msgid "|e3ea79200ff44d459358b9f4713e582b|" +#~ msgstr "" + +#~ msgid "|3e1061718a4a49d485764d30a4bfecdd|" +#~ msgstr "" + +#~ msgid "|7750e597d1ea4e319f7e0a40539bf214|" +#~ msgstr "" + +#~ msgid "|dd4434075f374e99ac07f509a883778f|" +#~ msgstr "" + diff --git a/doc/locales/zh_Hans/LC_MESSAGES/framework-docs.po b/doc/locales/zh_Hans/LC_MESSAGES/framework-docs.po index 4d04f559c582..be5a8c984dbc 100644 --- a/doc/locales/zh_Hans/LC_MESSAGES/framework-docs.po +++ b/doc/locales/zh_Hans/LC_MESSAGES/framework-docs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Flower main\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-20 09:07+0100\n" +"POT-Creation-Date: 2024-11-22 08:46+0000\n" "PO-Revision-Date: 2024-06-12 10:09+0000\n" "Last-Translator: Yan Gao \n" "Language: zh_Hans\n" @@ -971,9 +971,9 @@ msgstr "版本号在 ``pyproject.toml`` 中说明。要发布 Flower 的新版 #: ../../source/contributor-how-to-release-flower.rst:13 #, fuzzy msgid "" -"Run ``python3 src/py/flwr_tool/update_changelog.py `` in " -"order to add every new change to the changelog (feel free to make manual " -"changes to the changelog afterwards until it looks good)." +"Run ``python3 ./dev/update_changelog.py `` in order to add" +" every new change to the changelog (feel free to make manual changes to " +"the changelog afterwards until it looks good)." msgstr "" "运行 ``python3 src/py/flwr_tool/update_changelog.py `` " "以将每项新更改添加到更新日志中(之后可对更新日志进行手动更改,直到看起来不错为止)。" @@ -2200,7 +2200,6 @@ msgid "Get started as a contributor" msgstr "成为贡献者" #: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:5 -#: ../../source/docker/run-as-subprocess.rst:11 #: ../../source/docker/run-quickstart-examples-docker-compose.rst:16 #: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:18 #: ../../source/docker/tutorial-quickstart-docker-compose.rst:13 @@ -2480,18 +2479,11 @@ msgstr "启用 SSL 连接" #: ../../source/docker/enable-tls.rst:4 msgid "" "When operating in a production environment, it is strongly recommended to" -" enable Transport Layer Security (TLS) for each Flower Component to " +" enable Transport Layer Security (TLS) for each Flower component to " "ensure secure communication." msgstr "" -#: ../../source/docker/enable-tls.rst:7 -#, fuzzy -msgid "" -"To enable TLS, you will need a PEM-encoded root certificate, a PEM-" -"encoded private key and a PEM-encoded certificate chain." -msgstr "要启用 SSL,需要 CA 证书、服务器证书和服务器私钥。" - -#: ../../source/docker/enable-tls.rst:12 +#: ../../source/docker/enable-tls.rst:9 #, fuzzy msgid "" "For testing purposes, you can generate your own self-signed certificates." @@ -2502,77 +2494,107 @@ msgstr "" "出于测试目的,你可以生成自己的自签名证书。启用 SSL 连接 `_ 页面中有一个部分将指导你完成这一过程。" -#: ../../source/docker/enable-tls.rst:17 +#: ../../source/docker/enable-tls.rst:16 msgid "" "Because Flower containers, by default, run with a non-root user ``app``, " "the mounted files and directories must have the proper permissions for " "the user ID ``49999``." msgstr "" -#: ../../source/docker/enable-tls.rst:20 +#: ../../source/docker/enable-tls.rst:19 msgid "" "For example, to change the user ID of all files in the ``certificates/`` " "directory, you can run ``sudo chown -R 49999:49999 certificates/*``." msgstr "" -#: ../../source/docker/enable-tls.rst:23 +#: ../../source/docker/enable-tls.rst:22 msgid "" "If you later want to delete the directory, you can change the user ID " "back to the current user ID by running ``sudo chown -R $USER:$(id -gn) " "certificates``." msgstr "" -#: ../../source/docker/enable-tls.rst:27 +#: ../../source/docker/enable-tls.rst +msgid "Isolation Mode ``subprocess``" +msgstr "" + +#: ../../source/docker/enable-tls.rst:29 +msgid "" +"By default, the ServerApp is executed as a subprocess within the " +"SuperLink Docker container, and the ClientApp is run as a subprocess " +"within the SuperNode Docker container. You can learn more about the " +"different process modes here: :doc:`run-as-subprocess`." +msgstr "" + +#: ../../source/docker/enable-tls.rst:34 ../../source/docker/enable-tls.rst:119 +#, fuzzy +msgid "" +"To enable TLS between the SuperLink and SuperNode, as well as between the" +" SuperLink and the ``flwr`` CLI, you will need a PEM-encoded root " +"certificate, private key, and certificate chain." +msgstr "要启用 SSL,需要 CA 证书、服务器证书和服务器私钥。" + +#: ../../source/docker/enable-tls.rst:37 #, fuzzy -msgid "SuperLink" +msgid "**SuperLink**" msgstr "flower-superlink" -#: ../../source/docker/enable-tls.rst:29 +#: ../../source/docker/enable-tls.rst:39 +#, fuzzy msgid "" -"Assuming all files we need are in the local ``certificates`` directory, " -"we can use the flag ``--volume`` to mount the local directory into the " -"``/app/certificates/`` directory of the container:" +"Assuming all files we need are in the local ``superlink-certificates`` " +"directory, we can use the flag ``--volume`` to mount the local " +"directories into the SuperLink container:" msgstr "" +"假设我们需要的所有文件都在本地的 ``certificates`` 目录中,我们可以使用标记 ``-v`` 将本地目录挂载到容器的 " +"``/app/`` 目录中。这样,服务器就可以访问容器内的文件。最后,我们使用 ``--certificates`` 标志将证书名称传递给服务器。" #: ../../source/docker/enable-tls.rst #, fuzzy msgid "Understanding the command" msgstr "训练模型" -#: ../../source/docker/enable-tls.rst:45 ../../source/docker/enable-tls.rst:92 -#: ../../source/docker/enable-tls.rst:125 -#: ../../source/docker/tutorial-quickstart-docker.rst:65 -#: ../../source/docker/tutorial-quickstart-docker.rst:102 -#: ../../source/docker/tutorial-quickstart-docker.rst:216 -#: ../../source/docker/tutorial-quickstart-docker.rst:304 +#: ../../source/docker/enable-tls.rst:54 ../../source/docker/enable-tls.rst:96 +#: ../../source/docker/enable-tls.rst:140 +#: ../../source/docker/enable-tls.rst:179 +#: ../../source/docker/enable-tls.rst:206 +#: ../../source/docker/enable-tls.rst:231 +#: ../../source/docker/tutorial-quickstart-docker.rst:68 +#: ../../source/docker/tutorial-quickstart-docker.rst:109 +#: ../../source/docker/tutorial-quickstart-docker.rst:221 +#: ../../source/docker/tutorial-quickstart-docker.rst:303 #, fuzzy msgid "``docker run``: This tells Docker to run a container from an image." msgstr "`docker run``: 这是运行新 Docker 容器的命令。" -#: ../../source/docker/enable-tls.rst:46 ../../source/docker/enable-tls.rst:93 -#: ../../source/docker/enable-tls.rst:126 -#: ../../source/docker/tutorial-quickstart-docker.rst:66 -#: ../../source/docker/tutorial-quickstart-docker.rst:103 -#: ../../source/docker/tutorial-quickstart-docker.rst:217 -#: ../../source/docker/tutorial-quickstart-docker.rst:305 +#: ../../source/docker/enable-tls.rst:55 ../../source/docker/enable-tls.rst:97 +#: ../../source/docker/enable-tls.rst:141 +#: ../../source/docker/enable-tls.rst:180 +#: ../../source/docker/enable-tls.rst:207 +#: ../../source/docker/enable-tls.rst:232 +#: ../../source/docker/tutorial-quickstart-docker.rst:69 +#: ../../source/docker/tutorial-quickstart-docker.rst:110 +#: ../../source/docker/tutorial-quickstart-docker.rst:222 +#: ../../source/docker/tutorial-quickstart-docker.rst:304 msgid "``--rm``: Remove the container once it is stopped or the command exits." msgstr "" #: ../../source/docker/enable-tls.rst msgid "" -"``--volume ./certificates/:/app/certificates/:ro``: Mount the " -"``certificates`` directory in" +"``--volume ./superlink-certificates/:/app/certificates/:ro``: Mount the " +"``superlink-certificates``" msgstr "" #: ../../source/docker/enable-tls.rst msgid "" -"the current working directory of the host machine as a read-only volume " -"at the" +"directory in the current working directory of the host machine as a read-" +"only volume" msgstr "" #: ../../source/docker/enable-tls.rst -msgid "``/app/certificates`` directory inside the container." -msgstr "" +#, fuzzy +msgid "at the ``/app/certificates`` directory inside the container." +msgstr "使用 VSCode Dev Containers 进行开发" #: ../../source/docker/enable-tls.rst msgid "" @@ -2584,17 +2606,8 @@ msgstr "" msgid "directory." msgstr "" -#: ../../source/docker/enable-tls.rst -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "" -":substitution-code:`flwr/superlink:|stable_flwr_version|`: The name of " -"the image to be run and the specific" -msgstr "" - -#: ../../source/docker/enable-tls.rst -msgid "" -"tag of the image. The tag :substitution-code:`|stable_flwr_version|` " -"represents a specific version of the image." +#: ../../source/docker/enable-tls.rst:62 +msgid "````: The name of your SuperLink image to be run." msgstr "" #: ../../source/docker/enable-tls.rst @@ -2659,22 +2672,12 @@ msgstr "" msgid "the network." msgstr "" -#: ../../source/docker/enable-tls.rst:72 +#: ../../source/docker/enable-tls.rst:79 #, fuzzy -msgid "SuperNode" +msgid "**SuperNode**" msgstr "flower-superlink" -#: ../../source/docker/enable-tls.rst:74 -#, fuzzy -msgid "" -"Assuming that the ``ca.crt`` certificate already exists locally, we can " -"use the flag ``--volume`` to mount the local certificate into the " -"container's ``/app/`` directory." -msgstr "" -"假设我们需要的所有文件都在本地的 ``certificates`` 目录中,我们可以使用标记 ``-v`` 将本地目录挂载到容器的 " -"``/app/`` 目录中。这样,服务器就可以访问容器内的文件。最后,我们使用 ``--certificates`` 标志将证书名称传递给服务器。" - -#: ../../source/docker/enable-tls.rst:79 +#: ../../source/docker/enable-tls.rst:83 ../../source/docker/enable-tls.rst:189 msgid "" "If you're generating self-signed certificates and the ``ca.crt`` " "certificate doesn't exist on the SuperNode, you can copy it over after " @@ -2682,24 +2685,24 @@ msgid "" msgstr "" #: ../../source/docker/enable-tls.rst -msgid "``--volume ./ca.crt:/app/ca.crt/:ro``: Mount the ``ca.crt`` file from the" +msgid "" +"``--volume ./superlink-certificates/ca.crt:/app/ca.crt/:ro``: Mount the " +"``ca.crt``" msgstr "" #: ../../source/docker/enable-tls.rst msgid "" -"current working directory of the host machine as a read-only volume at " -"the ``/app/ca.crt``" +"file from the ``superlink-certificates`` directory of the host machine as" +" a read-only" msgstr "" #: ../../source/docker/enable-tls.rst #, fuzzy -msgid "directory inside the container." +msgid "volume at the ``/app/ca.crt`` directory inside the container." msgstr "使用 VSCode Dev Containers 进行开发" -#: ../../source/docker/enable-tls.rst -msgid "" -":substitution-code:`flwr/supernode:|stable_flwr_version|`: The name of " -"the image to be run and the specific" +#: ../../source/docker/enable-tls.rst:101 +msgid "````: The name of your SuperNode image to be run." msgstr "" #: ../../source/docker/enable-tls.rst @@ -2712,60 +2715,197 @@ msgstr "" msgid "The ``ca.crt`` file is used to verify the identity of the SuperLink." msgstr "" -#: ../../source/docker/enable-tls.rst:105 -msgid "SuperExec" +#: ../../source/docker/enable-tls.rst +msgid "Isolation Mode ``process``" +msgstr "" + +#: ../../source/docker/enable-tls.rst:109 +msgid "" +"In isolation mode ``process``, the ServerApp and ClientApp run in their " +"own processes. Unlike in isolation mode ``subprocess``, the SuperLink or " +"SuperNode does not attempt to create the respective processes; instead, " +"they must be created externally." +msgstr "" + +#: ../../source/docker/enable-tls.rst:113 +msgid "" +"It is possible to run only the SuperLink in isolation mode ``subprocess``" +" and the SuperNode in isolation mode ``process``, or vice versa, or even " +"both with isolation mode ``process``." +msgstr "" + +#: ../../source/docker/enable-tls.rst:117 +msgid "**SuperLink and ServerApp**" msgstr "" -#: ../../source/docker/enable-tls.rst:107 +#: ../../source/docker/enable-tls.rst:122 +#, fuzzy msgid "" -"Assuming all files we need are in the local ``certificates`` directory " -"where the SuperExec will be executed from, we can use the flag " -"``--volume`` to mount the local directory into the ``/app/certificates/``" -" directory of the container:" +"Assuming all files we need are in the local ``superlink-certificates`` " +"directory, we can use the flag ``--volume`` to mount the local directory " +"into the SuperLink container:" msgstr "" +"假设我们需要的所有文件都在本地的 ``certificates`` 目录中,我们可以使用标记 ``-v`` 将本地目录挂载到容器的 " +"``/app/`` 目录中。这样,服务器就可以访问容器内的文件。最后,我们使用 ``--certificates`` 标志将证书名称传递给服务器。" #: ../../source/docker/enable-tls.rst +msgid "``--volume ./superlink-certificates/:/app/certificates/:ro``: Mount the" +msgstr "" + +#: ../../source/docker/enable-tls.rst +msgid "" +"``superlink-certificates`` directory in the current working directory of " +"the host" +msgstr "" + +#: ../../source/docker/enable-tls.rst +msgid "" +"machine as a read-only volume at the ``/app/certificates`` directory " +"inside the container." +msgstr "" + +#: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -":substitution-code:`flwr/superexec:|stable_flwr_version|`: The name of " +":substitution-code:`flwr/superlink:|stable_flwr_version|`: The name of " "the image to be run and the specific" msgstr "" #: ../../source/docker/enable-tls.rst -msgid "SuperExec." +msgid "" +"tag of the image. The tag :substitution-code:`|stable_flwr_version|` " +"represents a specific version of the image." msgstr "" #: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``--ssl-certfile certificates/server.pem``: Specify the location of the " -"SuperExec's" +"``--isolation process``: Tells the SuperLink that the ServerApp is " +"created by separate" +msgstr "" + +#: ../../source/docker/enable-tls.rst +msgid "independent process. The SuperLink does not attempt to create it." +msgstr "" + +#: ../../source/docker/enable-tls.rst:168 +#: ../../source/docker/tutorial-quickstart-docker.rst:207 +#, fuzzy +msgid "Start the ServerApp container:" +msgstr "启动服务器" + +#: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker-compose.rst +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "Understand the command" +msgstr "" + +#: ../../source/docker/enable-tls.rst:181 +msgid "````: The name of your ServerApp image to be run." msgstr "" #: ../../source/docker/enable-tls.rst msgid "" -"The ``certificates/server.pem`` file is used to identify the SuperExec " -"and to encrypt the" +"``--insecure``: This flag tells the container to operate in an insecure " +"mode, allowing" msgstr "" #: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``--ssl-keyfile certificates/server.key``: Specify the location of the " -"SuperExec's" +"unencrypted communication. Secure connections will be added in future " +"releases." +msgstr "" + +#: ../../source/docker/enable-tls.rst:185 +msgid "**SuperNode and ClientApp**" +msgstr "" + +#: ../../source/docker/enable-tls.rst:192 +#, fuzzy +msgid "Start the SuperNode container:" +msgstr "启动服务器" + +#: ../../source/docker/enable-tls.rst +msgid "" +"``--volume ./superlink-certificates/ca.crt:/app/ca.crt/:ro``: Mount the " +"``ca.crt`` file from the" +msgstr "" + +#: ../../source/docker/enable-tls.rst +msgid "" +"``superlink-certificates`` directory of the host machine as a read-only " +"volume at the ``/app/ca.crt``" msgstr "" +#: ../../source/docker/enable-tls.rst +#, fuzzy +msgid "directory inside the container." +msgstr "使用 VSCode Dev Containers 进行开发" + #: ../../source/docker/enable-tls.rst msgid "" -"``--executor-config root-" -"certificates=\\\"certificates/superlink_ca.crt\\\"``: Specify the" +":substitution-code:`flwr/supernode:|stable_flwr_version|`: The name of " +"the image to be run and the specific" msgstr "" #: ../../source/docker/enable-tls.rst +#: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"location of the CA certificate file inside the container that the " -"SuperExec executor" +"``--isolation process``: Tells the SuperNode that the ClientApp is " +"created by separate" msgstr "" #: ../../source/docker/enable-tls.rst -msgid "should use to verify the SuperLink's identity." +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "independent process. The SuperNode does not attempt to create it." +msgstr "" + +#: ../../source/docker/enable-tls.rst:220 +#, fuzzy +msgid "Start the ClientApp container:" +msgstr "使用虚拟客户端引擎" + +#: ../../source/docker/enable-tls.rst:233 +msgid "````: The name of your ClientApp image to be run." +msgstr "" + +#: ../../source/docker/enable-tls.rst:237 +#: ../../source/docker/run-quickstart-examples-docker-compose.rst:54 +#, fuzzy +msgid "" +"Append the following lines to the end of the ``pyproject.toml`` file and " +"save it:" +msgstr "将 ``pyproject.toml`` 中的次要版本增加一个。" + +#: ../../source/docker/enable-tls.rst:239 +#: ../../source/docker/run-quickstart-examples-docker-compose.rst:56 +#: ../../source/docker/tutorial-quickstart-docker.rst:330 +#, fuzzy +msgid "pyproject.toml" +msgstr "或 ``pyproject.toml```:" + +#: ../../source/docker/enable-tls.rst:246 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:152 +msgid "" +"The path of the ``root-certificates`` should be relative to the location " +"of the ``pyproject.toml`` file." +msgstr "" + +#: ../../source/docker/enable-tls.rst:251 +#: ../../source/docker/run-quickstart-examples-docker-compose.rst:65 +msgid "" +"You can customize the string that follows ``tool.flwr.federations.`` to " +"fit your needs. However, please note that the string cannot contain a dot" +" (``.``)." +msgstr "" + +#: ../../source/docker/enable-tls.rst:254 +msgid "" +"In this example, ``local-deployment-tls`` has been used. Just remember to" +" replace ``local-deployment-tls`` with your chosen name in both the " +"``tool.flwr.federations.`` string and the corresponding ``flwr run .`` " +"command." msgstr "" #: ../../source/docker/index.rst:2 @@ -2951,46 +3091,133 @@ msgstr "创建超级节点 Dockerfile" #: ../../source/docker/run-as-subprocess.rst:2 #, fuzzy -msgid "Run ClientApp as a Subprocess" +msgid "Run ServerApp or ClientApp as a Subprocess" msgstr "运行分类器和测试" #: ../../source/docker/run-as-subprocess.rst:4 msgid "" -"In this mode, the ClientApp is executed as a subprocess within the " -"SuperNode Docker container, rather than running in a separate container. " -"This approach reduces the number of running containers, which can be " -"beneficial for environments with limited resources. However, it also " -"means that the ClientApp is no longer isolated from the SuperNode, which " -"may introduce additional security concerns." +"The SuperLink and SuperNode components support two distinct isolation " +"modes, allowing for flexible deployment and control:" msgstr "" -#: ../../source/docker/run-as-subprocess.rst:13 +#: ../../source/docker/run-as-subprocess.rst:7 msgid "" -"Before running the ClientApp as a subprocess, ensure that the FAB " -"dependencies have been installed in the SuperNode images. This can be " -"done by extending the SuperNode image:" +"Subprocess Mode: In this configuration (default), the SuperLink and " +"SuperNode take responsibility for launching the ServerApp and ClientApp " +"processes internally. This differs from the ``process`` isolation-mode " +"which uses separate containers, as demonstrated in the :doc:`tutorial-" +"quickstart-docker` guide." +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:12 +msgid "" +"Using the ``subprocess`` approach reduces the number of running " +"containers, which can be beneficial for environments with limited " +"resources. However, it also means that the applications are not isolated " +"from their parent containers, which may introduce additional security " +"concerns." msgstr "" #: ../../source/docker/run-as-subprocess.rst:17 +msgid "" +"Process Mode: In this mode, the ServerApp and ClientApps run in " +"completely separate processes. Unlike the alternative Subprocess mode, " +"the SuperLink or SuperNode does not attempt to create or manage these " +"processes. Instead, they must be started externally." +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:22 +msgid "" +"Both modes can be mixed for added flexibility. For instance, you can run " +"the SuperLink in ``subprocess`` mode while keeping the SuperNode in " +"``process`` mode, or vice versa." +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:25 +msgid "" +"To run the SuperLink and SuperNode in isolation mode ``process``, refer " +"to the :doc:`tutorial-quickstart-docker` guide. To run them in " +"``subprocess`` mode, follow the instructions below." +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst +#: ../../source/ref-api/flwr.server.ServerApp.rst:2 #, fuzzy -msgid "Dockerfile.supernode" -msgstr "Flower 服务器" +msgid "ServerApp" +msgstr "服务器" + +#: ../../source/docker/run-as-subprocess.rst:33 +#: ../../source/docker/run-as-subprocess.rst:74 +#, fuzzy +msgid "**Prerequisites**" +msgstr "先决条件" + +#: ../../source/docker/run-as-subprocess.rst:35 +msgid "" +"1. Before running the ServerApp as a subprocess, ensure that the FAB " +"dependencies have been installed in the SuperLink images. This can be " +"done by extending the SuperLink image:" +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:38 +#, fuzzy +msgid "superlink.Dockerfile" +msgstr "创建超级节点 Dockerfile" -#: ../../source/docker/run-as-subprocess.rst:31 +#: ../../source/docker/run-as-subprocess.rst:52 #, fuzzy msgid "" -"Next, build the SuperNode Docker image by running the following command " -"in the directory where Dockerfile is located:" +"2. Next, build the SuperLink Docker image by running the following " +"command in the directory where Dockerfile is located:" msgstr "接下来,我们在 Dockerfile 和 ClientApp 代码所在的目录下运行以下命令,构建 SuperNode Docker 映像。" -#: ../../source/docker/run-as-subprocess.rst:39 -msgid "Run the ClientApp as a Subprocess" +#: ../../source/docker/run-as-subprocess.rst:59 +#, fuzzy +msgid "**Run the ServerApp as a Subprocess**" +msgstr "运行分类器和测试" + +#: ../../source/docker/run-as-subprocess.rst:61 +msgid "" +"Start the SuperLink and run the ServerApp as a subprocess (note that the " +"subprocess mode is the default, so you do not have to explicitly set the " +"``--isolation`` flag):" msgstr "" -#: ../../source/docker/run-as-subprocess.rst:41 +#: ../../source/docker/run-as-subprocess.rst +#: ../../source/ref-api/flwr.client.ClientApp.rst:2 +#, fuzzy +msgid "ClientApp" +msgstr "客户端" + +#: ../../source/docker/run-as-subprocess.rst:76 +msgid "" +"1. Before running the ClientApp as a subprocess, ensure that the FAB " +"dependencies have been installed in the SuperNode images. This can be " +"done by extending the SuperNode image:" +msgstr "" + +#: ../../source/docker/run-as-subprocess.rst:80 +#, fuzzy +msgid "supernode.Dockerfile" +msgstr "创建超级节点 Dockerfile" + +#: ../../source/docker/run-as-subprocess.rst:94 +#, fuzzy +msgid "" +"2. Next, build the SuperNode Docker image by running the following " +"command in the directory where Dockerfile is located:" +msgstr "接下来,我们在 Dockerfile 和 ClientApp 代码所在的目录下运行以下命令,构建 SuperNode Docker 映像。" + +#: ../../source/docker/run-as-subprocess.rst:101 +#, fuzzy +msgid "**Run the ClientApp as a Subprocess**" +msgstr "运行分类器和测试" + +#: ../../source/docker/run-as-subprocess.rst:103 msgid "" -"Start the SuperNode with the flag ``--isolation subprocess``, which tells" -" the SuperNode to execute the ClientApp as a subprocess:" +"Start the SuperNode and run the ClientApp as a subprocess (note that the " +"subprocess mode is the default, so you do not have to explicitly set the " +"``--isolation`` flag):" msgstr "" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:2 @@ -3068,26 +3295,6 @@ msgid "" "start the services using the following command:" msgstr "运行以下命令激活 virtualenv:" -#: ../../source/docker/run-quickstart-examples-docker-compose.rst:54 -#, fuzzy -msgid "" -"Append the following lines to the end of the ``pyproject.toml`` file and " -"save it:" -msgstr "将 ``pyproject.toml`` 中的次要版本增加一个。" - -#: ../../source/docker/run-quickstart-examples-docker-compose.rst:56 -#: ../../source/docker/tutorial-quickstart-docker.rst:323 -#, fuzzy -msgid "pyproject.toml" -msgstr "或 ``pyproject.toml```:" - -#: ../../source/docker/run-quickstart-examples-docker-compose.rst:65 -msgid "" -"You can customize the string that follows ``tool.flwr.federations.`` to " -"fit your needs. However, please note that the string cannot contain a dot" -" (``.``)." -msgstr "" - #: ../../source/docker/run-quickstart-examples-docker-compose.rst:68 msgid "" "In this example, ``local-deployment`` has been used. Just remember to " @@ -3097,13 +3304,13 @@ msgid "" msgstr "" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:72 -msgid "Run the example and follow the logs of the ServerApp:" +msgid "Run the example and follow the logs of the ``ServerApp`` :" msgstr "" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:78 msgid "" "That is all it takes! You can monitor the progress of the run through the" -" logs of the SuperExec." +" logs of the ``ServerApp``." msgstr "" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:82 @@ -3144,10 +3351,10 @@ msgstr "快速入门 fastai" #: ../../source/docker/run-quickstart-examples-docker-compose.rst:119 #: ../../source/docker/run-quickstart-examples-docker-compose.rst:121 #: ../../source/docker/run-quickstart-examples-docker-compose.rst:125 -#: ../../source/ref-changelog.md:103 ../../source/ref-changelog.md:469 -#: ../../source/ref-changelog.md:746 ../../source/ref-changelog.md:810 -#: ../../source/ref-changelog.md:868 ../../source/ref-changelog.md:937 -#: ../../source/ref-changelog.md:999 +#: ../../source/ref-changelog.md:214 ../../source/ref-changelog.md:580 +#: ../../source/ref-changelog.md:857 ../../source/ref-changelog.md:921 +#: ../../source/ref-changelog.md:979 ../../source/ref-changelog.md:1048 +#: ../../source/ref-changelog.md:1110 msgid "None" msgstr "无" @@ -3255,8 +3462,8 @@ msgid "" "You will learn how to run the Flower client and server components on two " "separate machines, with Flower configured to use TLS encryption and " "persist SuperLink state across restarts. A server consists of a SuperLink" -" and ``SuperExec``. For more details about the Flower architecture, refer" -" to the :doc:`../explanation-flower-architecture` explainer page." +" and a ``ServerApp``. For more details about the Flower architecture, " +"refer to the :doc:`../explanation-flower-architecture` explainer page." msgstr "" #: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:13 @@ -3311,71 +3518,71 @@ msgstr "" msgid "Clone the Flower repository and change to the ``distributed`` directory:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:45 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:46 msgid "Get the IP address from the remote machine and save it for later." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:46 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:47 msgid "" "Use the ``certs.yml`` Compose file to generate your own self-signed " "certificates. If you have certificates, you can continue with Step 2." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:51 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:214 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:52 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:212 msgid "These certificates should be used only for development purposes." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:53 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:54 msgid "" "For production environments, you may have to use dedicated services to " "obtain your certificates." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:56 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:57 msgid "" -"First, set the environment variables ``SUPERLINK_IP`` and " -"``SUPEREXEC_IP`` with the IP address from the remote machine. For " -"example, if the IP is ``192.168.2.33``, execute:" +"First, set the environment variable ``SUPERLINK_IP`` with the IP address " +"from the remote machine. For example, if the IP is ``192.168.2.33``, " +"execute:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:65 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:64 msgid "Next, generate the self-signed certificates:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:72 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:71 msgid "Step 2: Copy the Server Compose Files" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:74 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:73 msgid "" "Use the method that works best for you to copy the ``server`` directory, " "the certificates, and the ``pyproject.toml`` file of your Flower project " "to the remote machine." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:78 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:77 msgid "For example, you can use ``scp`` to copy the directories:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:88 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:86 #, fuzzy msgid "Step 3: Start the Flower Server Components" msgstr "然后,我们启动服务器:" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:90 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:88 msgid "" "Log into the remote machine using ``ssh`` and run the following command " -"to start the SuperLink and SuperExec services:" +"to start the SuperLink and ``ServerApp`` services:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:104 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:102 msgid "" "The path to the ``PROJECT_DIR`` containing the ``pyproject.toml`` file " "should be relative to the location of the server ``compose.yml`` file." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:109 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:107 msgid "" "When working with Docker Compose on Linux, you may need to create the " "``state`` directory first and change its ownership to ensure proper " @@ -3383,78 +3590,72 @@ msgid "" "4), run the following commands:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:118 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:167 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:116 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:165 msgid "" "For more information, consult the following page: :doc:`persist-" "superlink-state`." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:120 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:118 msgid "Go back to your terminal on your local machine." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:123 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:121 #, fuzzy msgid "Step 4: Start the Flower Client Components" msgstr "然后,我们启动服务器:" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:125 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:123 msgid "" "On your local machine, run the following command to start the client " "components:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:135 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:133 msgid "" "The path to the ``PROJECT_DIR`` containing the ``pyproject.toml`` file " "should be relative to the location of the client ``compose.yml`` file." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:139 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:137 #, fuzzy msgid "Step 5: Run Your Flower Project" msgstr "Flower 服务器。" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:141 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:139 msgid "" -"Specify the remote SuperExec IP addresses and the path to the root " -"certificate in the ``[tool.flwr.federations.remote-superexec]`` table in " -"the ``pyproject.toml`` file. Here, we have named our remote federation " -"``remote-superexec``:" +"Specify the remote SuperLink IP addresses and the path to the root " +"certificate in the ``[tool.flwr.federations.remote-deployment]`` table in" +" the ``pyproject.toml`` file. Here, we have named our remote federation " +"``remote-deployment``:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:145 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:143 #, fuzzy msgid "examples/quickstart-sklearn-tabular/pyproject.toml" msgstr "scikit-learn快速入门" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:154 -msgid "" -"The path of the ``root-certificates`` should be relative to the location " -"of the ``pyproject.toml`` file." -msgstr "" - -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:157 -msgid "Run the project and follow the ServerApp logs:" +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:155 +msgid "Run the project and follow the ``ServerApp`` logs:" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:163 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:161 msgid "" "That's it! With these steps, you've set up Flower on two separate " "machines and are ready to start using it." msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:167 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:165 msgid "Step 6: Clean Up" msgstr "" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:169 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:167 #, fuzzy msgid "Shut down the Flower client components:" msgstr "Flower 客户端。" -#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:176 +#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:174 msgid "Shut down the Flower server components and delete the SuperLink state:" msgstr "" @@ -3476,7 +3677,7 @@ msgid "" " understanding the basic workflow that uses the minimum configurations." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:32 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:33 #: ../../source/docker/tutorial-quickstart-docker.rst:21 msgid "Create a new Flower project (PyTorch):" msgstr "" @@ -3498,48 +3699,51 @@ msgstr "" msgid "Step 2: Start the SuperLink" msgstr "然后,我们启动服务器:" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:62 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:64 #: ../../source/docker/tutorial-quickstart-docker.rst:51 #, fuzzy msgid "Open your terminal and run:" msgstr "打开另一台终端,启动第二个客户端:" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "Understand the command" +msgid "" +"``-p 9091:9091 -p 9092:9092 -p 9093:9093``: Map port ``9091``, ``9092`` " +"and ``9093`` of the" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``-p 9091:9091 -p 9092:9092``: Map port ``9091`` and ``9092`` of the " -"container to the same port of" +"container to the same port of the host machine, allowing other services " +"to access the" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "the host machine, allowing other services to access the Driver API on" +msgid "" +"ServerAppIO API on ``http://localhost:9091``, the Fleet API on " +"``http://localhost:9092`` and" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``http://localhost:9091`` and the Fleet API on ``http://localhost:9092``." +msgid "the Exec API on ``http://localhost:9093``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:70 -#: ../../source/docker/tutorial-quickstart-docker.rst:107 -#: ../../source/docker/tutorial-quickstart-docker.rst:218 -#: ../../source/docker/tutorial-quickstart-docker.rst:308 +#: ../../source/docker/tutorial-quickstart-docker.rst:74 +#: ../../source/docker/tutorial-quickstart-docker.rst:114 +#: ../../source/docker/tutorial-quickstart-docker.rst:223 +#: ../../source/docker/tutorial-quickstart-docker.rst:305 msgid "" "``--network flwr-network``: Make the container join the network named " "``flwr-network``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:71 +#: ../../source/docker/tutorial-quickstart-docker.rst:75 msgid "``--name superlink``: Assign the name ``superlink`` to the container." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:72 -#: ../../source/docker/tutorial-quickstart-docker.rst:109 -#: ../../source/docker/tutorial-quickstart-docker.rst:219 -#: ../../source/docker/tutorial-quickstart-docker.rst:310 +#: ../../source/docker/tutorial-quickstart-docker.rst:76 +#: ../../source/docker/tutorial-quickstart-docker.rst:116 +#: ../../source/docker/tutorial-quickstart-docker.rst:225 +#: ../../source/docker/tutorial-quickstart-docker.rst:306 msgid "" "``--detach``: Run the container in the background, freeing up the " "terminal." @@ -3561,16 +3765,26 @@ msgstr "" msgid "unencrypted communication." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:79 +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "" +"independent process. The SuperLink does not attempt to create it. You can" +" learn more about" +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "the different process modes here: :doc:`run-as-subprocess`." +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:86 #, fuzzy -msgid "Step 3: Start the SuperNode" +msgid "Step 3: Start the SuperNodes" msgstr "然后,我们启动服务器:" -#: ../../source/docker/tutorial-quickstart-docker.rst:81 +#: ../../source/docker/tutorial-quickstart-docker.rst:88 msgid "Start two SuperNode containers." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:83 +#: ../../source/docker/tutorial-quickstart-docker.rst:90 msgid "Start the first container:" msgstr "" @@ -3586,18 +3800,18 @@ msgstr "" msgid "``http://localhost:9094``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:108 +#: ../../source/docker/tutorial-quickstart-docker.rst:115 msgid "``--name supernode-1``: Assign the name ``supernode-1`` to the container." msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``flwr/supernode:|stable_flwr_version|``: This is the name of the image " -"to be run and the specific tag" +":substitution-code:`flwr/supernode:|stable_flwr_version|`: This is the " +"name of the" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "of the image." +msgid "image to be run and the specific tag of the image." msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst @@ -3622,51 +3836,54 @@ msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``--supernode-address 0.0.0.0:9094``: Set the address and port number " -"that the SuperNode" +"``--clientappio-api-address 0.0.0.0:9094``: Set the address and port " +"number that the" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "is listening on." +msgid "SuperNode is listening on to communicate with the ClientApp. If" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``--isolation process``: Tells the SuperNode that the ClientApp is " -"created by separate" +"two SuperNodes are started on the same machine, set two different port " +"numbers for each SuperNode." msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "independent process. The SuperNode does not attempt to create it." +msgid "" +"(E.g. In the next step, we set the second SuperNode container to listen " +"on port 9095)" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:123 +#: ../../source/docker/tutorial-quickstart-docker.rst:132 #, fuzzy msgid "Start the second container:" msgstr "启动服务器" -#: ../../source/docker/tutorial-quickstart-docker.rst:141 -msgid "Step 4: Start the ClientApp" -msgstr "" +#: ../../source/docker/tutorial-quickstart-docker.rst:150 +#, fuzzy +msgid "Step 4: Start a ServerApp" +msgstr "然后,我们启动服务器:" -#: ../../source/docker/tutorial-quickstart-docker.rst:143 +#: ../../source/docker/tutorial-quickstart-docker.rst:152 msgid "" -"The ClientApp Docker image comes with a pre-installed version of Flower " -"and serves as a base for building your own ClientApp image. In order to " +"The ServerApp Docker image comes with a pre-installed version of Flower " +"and serves as a base for building your own ServerApp image. In order to " "install the FAB dependencies, you will need to create a Dockerfile that " -"extends the ClientApp image and installs the required dependencies." +"extends the ServerApp image and installs the required dependencies." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:148 +#: ../../source/docker/tutorial-quickstart-docker.rst:157 msgid "" -"Create a ClientApp Dockerfile called ``Dockerfile.clientapp`` and paste " -"the following code into it:" +"Create a ServerApp Dockerfile called ``serverapp.Dockerfile`` and paste " +"the following code in:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:151 +#: ../../source/docker/tutorial-quickstart-docker.rst:160 #, fuzzy -msgid "Dockerfile.clientapp" -msgstr "Flower 客户端。" +msgid "serverapp.Dockerfile" +msgstr "创建超级节点 Dockerfile" #: ../../source/docker/tutorial-quickstart-docker.rst #, fuzzy @@ -3675,13 +3892,13 @@ msgstr "创建超级节点 Dockerfile" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -":substitution-code:`FROM flwr/clientapp:|stable_flwr_version|`: This line" +":substitution-code:`FROM flwr/serverapp:|stable_flwr_version|`: This line" " specifies that the Docker image" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"to be built from is the ``flwr/clientapp image``, version :substitution-" +"to be built from is the ``flwr/serverapp`` image, version :substitution-" "code:`|stable_flwr_version|`." msgstr "" @@ -3740,7 +3957,7 @@ msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``ENTRYPOINT [\"flwr-clientapp\"]``: Set the command ``flwr-clientapp`` " +"``ENTRYPOINT [\"flwr-serverapp\"]``: Set the command ``flwr-serverapp`` " "to be" msgstr "" @@ -3748,7 +3965,7 @@ msgstr "" msgid "the default command run when the container is started." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:185 +#: ../../source/docker/tutorial-quickstart-docker.rst:194 msgid "" "Note that `flwr `__ is already installed " "in the ``flwr/clientapp`` base image, so only other package dependencies " @@ -3757,215 +3974,211 @@ msgid "" "after it has been copied into the Docker image (see line 5)." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:191 -#, fuzzy -msgid "" -"Next, build the ClientApp Docker image by running the following command " -"in the directory where the Dockerfile is located:" -msgstr "接下来,我们在 Dockerfile 和 ServerApp 代码所在的目录下运行以下命令,构建 ServerApp Docker 镜像。" - #: ../../source/docker/tutorial-quickstart-docker.rst:200 -#, fuzzy msgid "" -"The image name was set as ``flwr_clientapp`` with the tag ``0.0.1``. " -"Remember that these values are merely examples, and you can customize " -"them according to your requirements." -msgstr "我们给图片命名为 ``flwr_serverapp``,标签为 ``0.0.1``。请记住,这里选择的值只是一个示例。您可以根据自己的需要进行更改。" +"Afterward, in the directory that holds the Dockerfile, execute this " +"Docker command to build the ServerApp image:" +msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:204 -#, fuzzy -msgid "Start the first ClientApp container:" -msgstr "使用虚拟客户端引擎" +#: ../../source/docker/tutorial-quickstart-docker.rst:224 +msgid "``--name serverapp``: Assign the name ``serverapp`` to the container." +msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst #, fuzzy msgid "" -"``flwr_clientapp:0.0.1``: This is the name of the image to be run and the" +"``flwr_serverapp:0.0.1``: This is the name of the image to be run and the" " specific tag" -msgstr "flwr_serverapp:0.0.1``: 要使用的 Docker 映像的名称和标记。" +msgstr "flwr_supernode:0.0.1``: 要使用的 Docker 映像的名称和标记。" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "" -"``--supernode supernode-1:9094``: Connect to the SuperNode's Fleet API at" -" the address" +msgid "of the image." msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``supernode-1:9094``." +msgid "" +"``--serverappio-api-address superlink:9091``: Connect to the SuperLink's " +"ServerAppIO API" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:225 -msgid "Start the second ClientApp container:" +#: ../../source/docker/tutorial-quickstart-docker.rst +msgid "at the address ``superlink:9091``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:236 +#: ../../source/docker/tutorial-quickstart-docker.rst:234 #, fuzzy -msgid "Step 5: Start the SuperExec" +msgid "Step 5: Start the ClientApp" msgstr "然后,我们启动服务器:" -#: ../../source/docker/tutorial-quickstart-docker.rst:238 +#: ../../source/docker/tutorial-quickstart-docker.rst:236 #, fuzzy msgid "" -"The procedure for building and running a SuperExec image is almost " -"identical to the ClientApp image." +"The procedure for building and running a ClientApp image is almost " +"identical to the ServerApp image." msgstr "构建和运行 ServerApp 映像的程序与 SuperNode 映像几乎完全相同。" -#: ../../source/docker/tutorial-quickstart-docker.rst:241 +#: ../../source/docker/tutorial-quickstart-docker.rst:239 msgid "" -"Similar to the ClientApp image, you will need to create a Dockerfile that" -" extends the SuperExec image and installs the required FAB dependencies." +"Similar to the ServerApp image, you will need to create a Dockerfile that" +" extends the ClientApp image and installs the required FAB dependencies." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:244 +#: ../../source/docker/tutorial-quickstart-docker.rst:242 msgid "" -"Create a SuperExec Dockerfile called ``Dockerfile.superexec`` and paste " -"the following code in:" +"Create a ClientApp Dockerfile called ``clientapp.Dockerfile`` and paste " +"the following code into it:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:247 -msgid "Dockerfile.superexec" -msgstr "" +#: ../../source/docker/tutorial-quickstart-docker.rst:245 +#, fuzzy +msgid "clientapp.Dockerfile" +msgstr "客户端" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -":substitution-code:`FROM flwr/superexec:|stable_flwr_version|`: This line" +":substitution-code:`FROM flwr/clientapp:|stable_flwr_version|`: This line" " specifies that the Docker image" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst +#, fuzzy msgid "" -"to be built from is the ``flwr/superexec image``, version :substitution-" +"to be built from is the ``flwr/clientapp`` image, version :substitution-" "code:`|stable_flwr_version|`." -msgstr "" +msgstr "下面的命令将返回由 ``server:1.7.0-py3.11-ubuntu22.04`` 标记引用的当前图像哈希值:" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``ENTRYPOINT [\"flower-superexec\"``: Set the command ``flower-" -"superexec`` to be" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``\"--executor\", \"flwr.superexec.deployment:executor\"]`` Use the" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``flwr.superexec.deployment:executor`` executor to run the ServerApps." +"``ENTRYPOINT [\"flwr-clientapp\"]``: Set the command ``flwr-clientapp`` " +"to be" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:282 +#: ../../source/docker/tutorial-quickstart-docker.rst:277 +#, fuzzy msgid "" -"Afterward, in the directory that holds the Dockerfile, execute this " -"Docker command to build the SuperExec image:" -msgstr "" +"Next, build the ClientApp Docker image by running the following command " +"in the directory where the Dockerfile is located:" +msgstr "接下来,我们在 Dockerfile 和 ServerApp 代码所在的目录下运行以下命令,构建 ServerApp Docker 镜像。" -#: ../../source/docker/tutorial-quickstart-docker.rst:289 +#: ../../source/docker/tutorial-quickstart-docker.rst:286 #, fuzzy -msgid "Start the SuperExec container:" -msgstr "启动服务器" - -#: ../../source/docker/tutorial-quickstart-docker.rst -msgid "``-p 9093:9093``: Map port ``9093`` of the container to the same port of" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"the host machine, allowing you to access the SuperExec API on " -"``http://localhost:9093``." -msgstr "" +"The image name was set as ``flwr_clientapp`` with the tag ``0.0.1``. " +"Remember that these values are merely examples, and you can customize " +"them according to your requirements." +msgstr "我们给图片命名为 ``flwr_serverapp``,标签为 ``0.0.1``。请记住,这里选择的值只是一个示例。您可以根据自己的需要进行更改。" -#: ../../source/docker/tutorial-quickstart-docker.rst:309 -msgid "``--name superexec``: Assign the name ``superexec`` to the container." -msgstr "" +#: ../../source/docker/tutorial-quickstart-docker.rst:290 +#, fuzzy +msgid "Start the first ClientApp container:" +msgstr "使用虚拟客户端引擎" #: ../../source/docker/tutorial-quickstart-docker.rst #, fuzzy msgid "" -"``flwr_superexec:0.0.1``: This is the name of the image to be run and the" +"``flwr_clientapp:0.0.1``: This is the name of the image to be run and the" " specific tag" -msgstr "flwr_supernode:0.0.1``: 要使用的 Docker 映像的名称和标记。" +msgstr "flwr_serverapp:0.0.1``: 要使用的 Docker 映像的名称和标记。" #: ../../source/docker/tutorial-quickstart-docker.rst msgid "" -"``--executor-config superlink=\\\"superlink:9091\\\"``: Configure the " -"SuperExec executor to" +"``--clientappio-api-address supernode-1:9094``: Connect to the " +"SuperNode's ClientAppIO" msgstr "" #: ../../source/docker/tutorial-quickstart-docker.rst -msgid "connect to the SuperLink running on port ``9091``." +msgid "API at the address ``supernode-1:9094``." +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:314 +msgid "Start the second ClientApp container:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:319 +#: ../../source/docker/tutorial-quickstart-docker.rst:326 msgid "Step 6: Run the Quickstart Project" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:321 +#: ../../source/docker/tutorial-quickstart-docker.rst:328 #, fuzzy msgid "Add the following lines to the ``pyproject.toml``:" msgstr "将 ``pyproject.toml`` 中的次要版本增加一个。" -#: ../../source/docker/tutorial-quickstart-docker.rst:330 +#: ../../source/docker/tutorial-quickstart-docker.rst:337 msgid "" "Run the ``quickstart-docker`` project and follow the ServerApp logs to " "track the execution of the run:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:338 +#: ../../source/docker/tutorial-quickstart-docker.rst:345 #, fuzzy msgid "Step 7: Update the Application" msgstr "步骤 3:自定义序列化" -#: ../../source/docker/tutorial-quickstart-docker.rst:340 +#: ../../source/docker/tutorial-quickstart-docker.rst:347 msgid "" "Change the application code. For example, change the ``seed`` in " "``quickstart_docker/task.py`` to ``43`` and save it:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:343 +#: ../../source/docker/tutorial-quickstart-docker.rst:350 #, fuzzy msgid "quickstart_docker/task.py" msgstr "快速入门Pandas" -#: ../../source/docker/tutorial-quickstart-docker.rst:350 +#: ../../source/docker/tutorial-quickstart-docker.rst:357 #, fuzzy -msgid "Stop the current ClientApp containers:" +msgid "Stop the current ServerApp and ClientApp containers:" msgstr "当前客户端属性。" -#: ../../source/docker/tutorial-quickstart-docker.rst:356 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:125 +#: ../../source/docker/tutorial-quickstart-docker.rst:361 +msgid "" +"If you have modified the dependencies listed in your ``pyproject.toml`` " +"file, it is essential to rebuild images." +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:364 +msgid "If you haven’t made any changes, you can skip steps 2 through 4." +msgstr "" + +#: ../../source/docker/tutorial-quickstart-docker.rst:370 #, fuzzy -msgid "Rebuild the FAB and ClientApp image:" +msgid "Rebuild ServerApp and ClientApp images:" msgstr "加载数据" -#: ../../source/docker/tutorial-quickstart-docker.rst:362 -msgid "Launch two new ClientApp containers based on the newly built image:" +#: ../../source/docker/tutorial-quickstart-docker.rst:377 +msgid "" +"Launch one new ServerApp and two new ClientApp containers based on the " +"newly built image:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:377 +#: ../../source/docker/tutorial-quickstart-docker.rst:402 msgid "Run the updated project:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:384 +#: ../../source/docker/tutorial-quickstart-docker.rst:409 msgid "Step 8: Clean Up" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:386 +#: ../../source/docker/tutorial-quickstart-docker.rst:411 msgid "Remove the containers and the bridge network:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:398 -#: ../../source/docker/tutorial-quickstart-docker.rst:398 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:400 +#: ../../source/docker/tutorial-quickstart-docker.rst:423 #, fuzzy msgid "Where to Go Next" msgstr "从哪里开始" -#: ../../source/docker/tutorial-quickstart-docker.rst:400 +#: ../../source/docker/tutorial-quickstart-docker.rst:425 msgid ":doc:`enable-tls`" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:401 +#: ../../source/docker/tutorial-quickstart-docker.rst:426 msgid ":doc:`persist-superlink-state`" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker.rst:402 +#: ../../source/docker/tutorial-quickstart-docker.rst:427 msgid ":doc:`tutorial-quickstart-docker-compose`" msgstr "" @@ -3992,165 +4205,159 @@ msgstr "" msgid "Clone the Docker Compose ``complete`` directory:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:38 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:39 msgid "" "Export the path of the newly created project. The path should be relative" " to the location of the Docker Compose files:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:45 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:46 msgid "" "Setting the ``PROJECT_DIR`` helps Docker Compose locate the " "``pyproject.toml`` file, allowing it to install dependencies in the " -"SuperExec and SuperNode images correctly." +"``ServerApp`` and ``ClientApp`` images correctly." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:49 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:51 #, fuzzy msgid "Step 2: Run Flower in Insecure Mode" msgstr "Flower 服务器。" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:51 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:53 msgid "" "To begin, start Flower with the most basic configuration. In this setup, " "Flower will run without TLS and without persisting the state." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:56 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:58 msgid "" "Without TLS, the data sent between the services remains **unencrypted**. " "Use it only for development purposes." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:59 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:61 msgid "" "For production-oriented use cases, :ref:`enable TLS` for secure data" " transmission." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:70 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:177 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:72 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:175 #, fuzzy msgid "``docker compose``: The Docker command to run the Docker Compose tool." msgstr "`docker run``: 这是运行新 Docker 容器的命令。" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:71 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:183 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:73 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:181 msgid "" "``--build``: Rebuild the images for each service if they don't already " "exist." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:72 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:184 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:74 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:182 msgid "" "``-d``: Detach the containers from the terminal and run them in the " "background." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:75 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:77 msgid "Step 3: Run the Quickstart Project" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:77 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:79 msgid "" "Now that the Flower services have been started via Docker Compose, it is " "time to run the quickstart example." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:80 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:82 msgid "" -"To ensure the ``flwr`` CLI connects to the SuperExec, you need to specify" -" the SuperExec addresses in the ``pyproject.toml`` file." +"To ensure the ``flwr`` CLI connects to the SuperLink, you need to specify" +" the SuperLink addresses in the ``pyproject.toml`` file." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:83 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:225 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:85 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:223 msgid "Add the following lines to the ``quickstart-compose/pyproject.toml``:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:85 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:227 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:87 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:225 msgid "quickstart-compose/pyproject.toml" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:92 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:94 msgid "" -"Run the quickstart example, monitor the ServerApp logs and wait for the " -"summary to appear:" +"Run the quickstart example, monitor the ``ServerApp`` logs and wait for " +"the summary to appear:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:100 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:102 #, fuzzy msgid "Step 4: Update the Application" msgstr "步骤 3:自定义序列化" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:102 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:104 msgid "In the next step, change the application code." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:104 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:106 msgid "" "For example, go to the ``task.py`` file in the ``quickstart-" "compose/quickstart_compose/`` directory and add a ``print`` call in the " "``get_weights`` function:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:108 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:110 msgid "quickstart-compose/quickstart_compose/task.py" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:119 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:121 #, fuzzy msgid "Rebuild and restart the services." msgstr "我们已经可以启动*服务器*了:" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:123 -msgid "" -"If you have modified the dependencies listed in your ``pyproject.toml`` " -"file, it is essential to rebuild images." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:126 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:128 msgid "If you haven't made any changes, you can skip this step." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:128 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:130 msgid "Run the following command to rebuild and restart the services:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:134 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:136 msgid "Run the updated quickstart example:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:140 -msgid "In the SuperExec logs, you should find the ``Get weights`` line:" +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:142 +msgid "In the ``ServerApp`` logs, you should find the ``Get weights`` line:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:157 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:155 msgid "Step 5: Persisting the SuperLink State" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:159 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:157 msgid "" "In this step, Flower services are configured to persist the state of the " "SuperLink service, ensuring that it maintains its state even after a " "restart." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:164 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:162 msgid "" "When working with Docker Compose on Linux, you may need to create the " "``state`` directory first and change its ownership to ensure proper " "access and permissions." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:169 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:219 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:167 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:217 msgid "Run the command:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:178 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:176 msgid "" "``-f compose.yml``: Specify the YAML file that contains the basic Flower " "service definitions." @@ -4173,17 +4380,17 @@ msgid "" "rules>`_." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:186 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:240 -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:367 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:184 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:238 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:369 msgid "Rerun the ``quickstart-compose`` project:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:192 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:190 msgid "Check the content of the ``state`` directory:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:199 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:197 msgid "" "You should see a ``state.db`` file in the ``state`` directory. If you " "restart the service, the state file will be used to restore the state " @@ -4191,121 +4398,106 @@ msgid "" "if the containers are stopped and started again." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:207 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:205 msgid "Step 6: Run Flower with TLS" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:209 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:207 msgid "" "To demonstrate how to enable TLS, generate self-signed certificates using" " the ``certs.yml`` Compose file." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:216 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:214 msgid "" "For production environments, use a service like `Let's Encrypt " "`_ to obtain your certificates." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:234 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:232 msgid "Restart the services with TLS enabled:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:247 -msgid "Step 7: Add another SuperNode" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:249 -msgid "" -"You can add more SuperNodes and ClientApps by duplicating their " -"definitions in the ``compose.yml`` file." -msgstr "" +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:245 +#, fuzzy +msgid "Step 7: Add another SuperNode and ClientApp" +msgstr "然后,我们启动服务器:" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:252 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:247 msgid "" -"Just give each new SuperNode and ClientApp service a unique service name " -"like ``supernode-3``, ``clientapp-3``, etc." +"You can add more SuperNodes and ClientApps by uncommenting their " +"definitions in the ``compose.yml`` file:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:255 -msgid "In ``compose.yml``, add the following:" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:257 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:250 msgid "compose.yml" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:308 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:302 msgid "" -"If you also want to enable TLS for the new SuperNodes, duplicate the " -"SuperNode definition for each new SuperNode service in the ``with-" -"tls.yml`` file." +"If you also want to enable TLS for the new SuperNode, uncomment the " +"definition in the ``with-tls.yml`` file:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:311 -msgid "" -"Make sure that the names of the services match with the one in the " -"``compose.yml`` file." -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:313 -msgid "In ``with-tls.yml``, add the following:" -msgstr "" - -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:315 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:305 msgid "with-tls.yml" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:337 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:326 +#, fuzzy +msgid "Restart the services with:" +msgstr "启动服务器" + +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:335 msgid "Step 8: Persisting the SuperLink State and Enabling TLS" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:339 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:337 msgid "" "To run Flower with persisted SuperLink state and enabled TLS, a slight " "change in the ``with-state.yml`` file is required:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:342 -msgid "Comment out the lines 2-4 and uncomment the lines 5-9:" +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:340 +msgid "Comment out the lines 2-6 and uncomment the lines 7-13:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:344 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:342 msgid "with-state.yml" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:361 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:363 #, fuzzy msgid "Restart the services:" msgstr "启动服务器" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:374 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:376 msgid "Step 9: Merge Multiple Compose Files" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:376 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:378 msgid "" "You can merge multiple Compose files into a single file. For instance, if" " you wish to combine the basic configuration with the TLS configuration, " "execute the following command:" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:385 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:387 msgid "" "This will merge the contents of ``compose.yml`` and ``with-tls.yml`` into" " a new file called ``my_compose.yml``." msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:389 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:391 msgid "Step 10: Clean Up" msgstr "" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:391 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:393 #, fuzzy msgid "Remove all services and volumes:" msgstr "从 R 中删除所有项目。" -#: ../../source/docker/tutorial-quickstart-docker-compose.rst:400 +#: ../../source/docker/tutorial-quickstart-docker-compose.rst:402 #, fuzzy msgid ":doc:`run-quickstart-examples-docker-compose`" msgstr "快速入门 iOS" @@ -5274,7 +5466,7 @@ msgstr "" "假冒攻击等安全风险。节点验证机制还涉及人机交互,因此请确保使用可信的通信方法,以安全的方式进行所有通信。" #: ../../source/how-to-authenticate-supernodes.rst:100 -#: ../../source/how-to-enable-ssl-connections.rst:71 +#: ../../source/how-to-enable-tls-connections.rst:108 #: ../../source/how-to-use-built-in-mods.rst:95 #: ../../source/tutorial-series-what-is-federated-learning.ipynb:287 msgid "Conclusion" @@ -5705,19 +5897,20 @@ msgid "" " to apply the new parameters to a model." msgstr "" -#: ../../source/how-to-enable-ssl-connections.rst:2 -msgid "Enable SSL connections" +#: ../../source/how-to-enable-tls-connections.rst:2 +#, fuzzy +msgid "Enable TLS connections" msgstr "启用 SSL 连接" -#: ../../source/how-to-enable-ssl-connections.rst:4 +#: ../../source/how-to-enable-tls-connections.rst:4 #, fuzzy msgid "" -"This guide describes how to a SSL-enabled secure Flower server " +"This guide describes how to a TLS-enabled secure Flower server " "(``SuperLink``) can be started and how a Flower client (``SuperNode``) " "can establish a secure connections to it." msgstr "本指南介绍如何启动启用 SSL 的安全 Flower 服务器,以及 Flower 客户端如何与其建立安全连接。" -#: ../../source/how-to-enable-ssl-connections.rst:8 +#: ../../source/how-to-enable-tls-connections.rst:8 msgid "" "A complete code example demonstrating a secure connection can be found " "`here `_ 。" -#: ../../source/how-to-enable-ssl-connections.rst:11 +#: ../../source/how-to-enable-tls-connections.rst:11 #, fuzzy msgid "" "The code example comes with a ``README.md`` file which explains how to " -"start it. Although it is already SSL-enabled, it might be less " +"start it. Although it is already TLS-enabled, it might be less " "descriptive on how it does so. Stick to this guide for a deeper " "introduction to the topic." msgstr "代码示例附带的 README.md 文件将解释如何启动它。虽然它已经启用了 SSL,但对如何启用可能描述较少。请参考本指南,了解更深入的相关介绍。" -#: ../../source/how-to-enable-ssl-connections.rst:16 +#: ../../source/how-to-enable-tls-connections.rst:16 msgid "Certificates" msgstr "证书" -#: ../../source/how-to-enable-ssl-connections.rst:18 +#: ../../source/how-to-enable-tls-connections.rst:18 #, fuzzy msgid "" -"Using SSL-enabled connections requires certificates to be passed to the " +"Using TLS-enabled connections requires certificates to be passed to the " "server and client. For the purpose of this guide we are going to generate" " self-signed certificates. As this can become quite complex we are going " "to ask you to run the script in ``examples/advanced-" @@ -5752,17 +5945,17 @@ msgstr "" "使用支持 SSL 的连接需要向服务器和客户端传递证书。在本指南中,我们将生成自签名证书。由于这可能会变得相当复杂,我们将要求你运行 " ":code:`examples/advanced-tensorflow/certificates/generate.sh` 中的脚本" -#: ../../source/how-to-enable-ssl-connections.rst:29 +#: ../../source/how-to-enable-tls-connections.rst:29 #, fuzzy msgid "" "This will generate the certificates in ``examples/advanced-" "tensorflow/.cache/certificates``." msgstr "这将在 :code:`examples/advanced-tensorflow/.cache/certificates` 中生成证书。" -#: ../../source/how-to-enable-ssl-connections.rst:32 +#: ../../source/how-to-enable-tls-connections.rst:32 #, fuzzy msgid "" -"The approach for generating SSL certificates in the context of this " +"The approach for generating TLS certificates in the context of this " "example can serve as an inspiration and starting point, but it should not" " be used as a reference for production environments. Please refer to " "other sources regarding the issue of correctly generating certificates " @@ -5771,19 +5964,21 @@ msgid "" "generated using the scripts mentioned in this guide." msgstr "本示例中生成 SSL 证书的方法可作为启发和起点,但不应被视为生产环境的完整方法。有关在生产环境中正确生成证书的问题,请参考其他资料。" -#: ../../source/how-to-enable-ssl-connections.rst:40 +#: ../../source/how-to-enable-tls-connections.rst:40 #, fuzzy msgid "Server (SuperLink)" msgstr "flower-superlink" -#: ../../source/how-to-enable-ssl-connections.rst:42 +#: ../../source/how-to-enable-tls-connections.rst:42 #, fuzzy msgid "" -"Use the following terminal command to start a sever (SuperLink) that uses" -" the previously generated certificates:" +"Navigate to the ``examples/advanced-tensorflow`` folder (`here " +"`_) and use the following terminal command to start a server " +"(SuperLink) that uses the previously generated certificates:" msgstr "现在我们将演示如何编写一个客户端,使用之前生成的脚本:" -#: ../../source/how-to-enable-ssl-connections.rst:52 +#: ../../source/how-to-enable-tls-connections.rst:54 #, fuzzy msgid "" "When providing certificates, the server expects a tuple of three " @@ -5791,19 +5986,19 @@ msgid "" " key." msgstr "要启用 SSL,需要 CA 证书、服务器证书和服务器私钥。" -#: ../../source/how-to-enable-ssl-connections.rst:56 +#: ../../source/how-to-enable-tls-connections.rst:58 #, fuzzy -msgid "Client (SuperNode)" +msgid "Clients (SuperNode)" msgstr "客户端状态代码。" -#: ../../source/how-to-enable-ssl-connections.rst:58 +#: ../../source/how-to-enable-tls-connections.rst:60 #, fuzzy msgid "" "Use the following terminal command to start a client (SuperNode) that " "uses the previously generated certificates:" msgstr "现在我们将演示如何编写一个客户端,使用之前生成的脚本:" -#: ../../source/how-to-enable-ssl-connections.rst:67 +#: ../../source/how-to-enable-tls-connections.rst:71 #, fuzzy msgid "" "When setting ``root_certificates``, the client expects a file path to " @@ -5812,29 +6007,66 @@ msgstr "" "当设置 :code:`root_certificates` 时,客户端希望 PEM 编码的根证书是字节字符串。我们再次使用 " ":code:`Path` 来简化以字节字符串形式读取证书的过程。" -#: ../../source/how-to-enable-ssl-connections.rst:73 +#: ../../source/how-to-enable-tls-connections.rst:74 +#, fuzzy +msgid "" +"In another terminal, start a second SuperNode that uses the same " +"certificates:" +msgstr "现在我们将演示如何编写一个客户端,使用之前生成的脚本:" + +#: ../../source/how-to-enable-tls-connections.rst:84 +msgid "" +"Note that in the second SuperNode, if you run both on the same machine, " +"you must specify a different port for the ``ClientAppIO`` API address to " +"avoid clashing with the first SuperNode." +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:89 +msgid "Executing ``flwr run`` with TLS" +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:91 +msgid "" +"The root certificates used for executing ``flwr run`` is specified in the" +" ``pyproject.toml`` of your app." +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:100 +msgid "" +"Note that the path to the ``root-certificates`` is relative to the root " +"of the project. Now, you can run the example by executing the following:" +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:110 #, fuzzy msgid "" "You should now have learned how to generate self-signed certificates " -"using the given script, start an SSL-enabled server and have a client " -"establish a secure connection to it." +"using the given script, start an TLS-enabled server and have two clients " +"establish secure connections to it. You should also have learned how to " +"run your Flower project using ``flwr run`` with TLS enabled." msgstr "现在,你应该已经学会了如何使用给定的脚本生成自签名证书、启动启用 SSL 的服务器并让客户端与其建立安全连接。" -#: ../../source/how-to-enable-ssl-connections.rst:78 +#: ../../source/how-to-enable-tls-connections.rst:117 +msgid "" +"For running a Docker setup with TLS enabled, please refer to :doc:`docker" +"/enable-tls`." +msgstr "" + +#: ../../source/how-to-enable-tls-connections.rst:121 msgid "Additional resources" msgstr "补充资源" -#: ../../source/how-to-enable-ssl-connections.rst:80 +#: ../../source/how-to-enable-tls-connections.rst:123 msgid "" "These additional sources might be relevant if you would like to dive " "deeper into the topic of certificates:" msgstr "如果您想更深入地了解证书主题,这些额外的资料来源可能有帮助:" -#: ../../source/how-to-enable-ssl-connections.rst:83 +#: ../../source/how-to-enable-tls-connections.rst:126 msgid "`Let's Encrypt `_" msgstr "`让我们加密 `_" -#: ../../source/how-to-enable-ssl-connections.rst:84 +#: ../../source/how-to-enable-tls-connections.rst:127 msgid "`certbot `_" msgstr "`certbot `_" @@ -6281,7 +6513,6 @@ msgid "Install stable release" msgstr "安装稳定版" #: ../../source/how-to-install-flower.rst:14 -#: ../../source/how-to-upgrade-to-flower-next.rst:66 #, fuzzy msgid "Using pip" msgstr "使用 pip" @@ -7140,10 +7371,10 @@ msgstr "升级至 Flower 1.0" #: ../../source/how-to-upgrade-to-flower-1.0.rst:6 msgid "" "This guide is for users who have already worked with Flower 0.x and want " -"to upgrade to Flower 1.0. Newer versions of Flower (1.12+) are based on a" -" new architecture (previously called Flower Next) and not covered in this" -" guide. After upgrading Flower 0.x projects to Flower 1.0, please refer " -"to :doc:`Upgrade to Flower Next ` to make " +"to upgrade to Flower 1.0. Newer versions of Flower (1.13 and later) are " +"based on a new architecture and not covered in this guide. After " +"upgrading Flower 0.x projects to Flower 1.0, please refer to " +":doc:`Upgrade to Flower 1.13 ` to make " "your project compatible with the lastest version of Flower." msgstr "" @@ -7158,7 +7389,7 @@ msgstr "" "系列版本)相比,有一些破坏性改动需要修改现有 0.x 系列项目的代码。" #: ../../source/how-to-upgrade-to-flower-1.0.rst:19 -#: ../../source/how-to-upgrade-to-flower-next.rst:63 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:49 msgid "Install update" msgstr "安装更新" @@ -7206,7 +7437,7 @@ msgstr "" "}``(当使用``start_simulation``时)" #: ../../source/how-to-upgrade-to-flower-1.0.rst:37 -#: ../../source/how-to-upgrade-to-flower-next.rst:121 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:88 msgid "Required changes" msgstr "所需变更" @@ -7450,7 +7681,7 @@ msgstr "" "...)``" #: ../../source/how-to-upgrade-to-flower-1.0.rst:130 -#: ../../source/how-to-upgrade-to-flower-next.rst:349 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:451 msgid "Further help" msgstr "更多帮助" @@ -7466,97 +7697,73 @@ msgstr "" " 已经更新到 Flower 1.0,它们可以作为使用 Flower 1.0 API 的参考。如果还有其他问题,请加入 Flower Slack " "`_ 并使用 \"#questions``\"。" -#: ../../source/how-to-upgrade-to-flower-next.rst:2 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:2 #, fuzzy -msgid "Upgrade to Flower Next" +msgid "Upgrade to Flower 1.13" msgstr "升级至 Flower 1.0" -#: ../../source/how-to-upgrade-to-flower-next.rst:4 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:4 #, fuzzy msgid "" -"Welcome to the migration guide for updating Flower to Flower Next! " +"Welcome to the migration guide for updating Flower to Flower 1.13! " "Whether you're a seasoned user or just getting started, this guide will " "help you smoothly transition your existing setup to take advantage of the" -" latest features and improvements in Flower Next, starting from version " -"1.8." +" latest features and improvements in Flower 1.13." msgstr "" "欢迎阅读从 Flower 升级到 Flower Next 的迁移指南!无论您是经验丰富的用户还是刚刚开始使用 " "Flower,本指南都将帮助您顺利过渡现有设置,以利用 Flower Next 从 1.8 版开始的最新功能和改进。" -#: ../../source/how-to-upgrade-to-flower-next.rst:11 -#, fuzzy +#: ../../source/how-to-upgrade-to-flower-1.13.rst:10 msgid "" -"This guide shows how to reuse pre-``1.8`` Flower code with minimum code " -"changes by using the *compatibility layer* in Flower Next. In another " -"guide, we will show how to run Flower Next end-to-end with pure Flower " -"Next APIs." +"This guide shows how to make pre-``1.13`` Flower code compatible with " +"Flower 1.13 (and later) with only minimal code changes." msgstr "" -"本指南展示了如何通过使用 Flower Next 中的*可兼容层*,以最小的代码改动重用```1.8```前的 Flower " -"代码。在另一个指南中,我们将介绍如何使用纯 Flower Next API 端到端运行 Flower Next。" -#: ../../source/how-to-upgrade-to-flower-next.rst:15 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:13 #, fuzzy msgid "Let's dive in!" msgstr "让我们深入了解一下!" -#: ../../source/how-to-upgrade-to-flower-next.rst:68 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:51 #, fuzzy msgid "" -"Here's how to update an existing installation of Flower to Flower Next " +"Here's how to update an existing installation of Flower to Flower 1.13 " "with ``pip``:" msgstr "下面介绍如何使用 pip 或 Poetry 将现有安装更新到 Flower 1.0:" -#: ../../source/how-to-upgrade-to-flower-next.rst:74 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:57 #, fuzzy -msgid "or if you need Flower Next with simulation:" +msgid "or if you need Flower 1.13 with simulation:" msgstr "启动 Flower 模拟" -#: ../../source/how-to-upgrade-to-flower-next.rst:80 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:63 #, fuzzy msgid "" "Ensure you set the following version constraint in your " "``requirements.txt``" msgstr "确保在 ``requirements.txt`` 中设置了以下版本限制" -#: ../../source/how-to-upgrade-to-flower-next.rst:90 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:73 #, fuzzy msgid "or ``pyproject.toml``:" msgstr "或 ``pyproject.toml```:" -#: ../../source/how-to-upgrade-to-flower-next.rst:101 -#, fuzzy -msgid "Using Poetry" -msgstr "使用 pip" - -#: ../../source/how-to-upgrade-to-flower-next.rst:103 -#, fuzzy +#: ../../source/how-to-upgrade-to-flower-1.13.rst:90 msgid "" -"Update the ``flwr`` dependency in ``pyproject.toml`` and then reinstall " -"(don't forget to delete ``poetry.lock`` via ``rm poetry.lock`` before " -"running ``poetry install``)." +"Starting with Flower 1.8, the *infrastructure* and *application layers* " +"have been decoupled. Flower 1.13 enforces this separation further. Among " +"other things, this allows you to run the exact same code in a simulation " +"as in a real deployment." msgstr "" -"Poetry:更新 ``pyproject.toml`` 中的 ``flwr`` 依赖包,然后重新安装(运行 ``poetry install``" -" 前,别忘了通过 ``rm poetry.lock` 删除 ``poetry.lock`)。" - -#: ../../source/how-to-upgrade-to-flower-next.rst:106 -#, fuzzy -msgid "" -"Ensure you set the following version constraint in your " -"``pyproject.toml``:" -msgstr "将 ``pyproject.toml`` 中的次要版本增加一个。" -#: ../../source/how-to-upgrade-to-flower-next.rst:123 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:94 #, fuzzy msgid "" -"In Flower Next, the *infrastructure* and *application layers* have been " -"decoupled. Instead of starting a client in code via ``start_client()``, " -"you create a |clientapp_link|_ and start it via the command line. Instead" -" of starting a server in code via ``start_server()``, you create a " -"|serverapp_link|_ and start it via the command line. The long-running " -"components of server and client are called SuperLink and SuperNode. The " -"following non-breaking changes that require manual updates and allow you " -"to run your project both in the traditional way and in the Flower Next " -"way:" +"Instead of starting a client in code via ``start_client()``, you create a" +" |clientapp_link|_. Instead of starting a server in code via " +"``start_server()``, you create a |serverapp_link|_. Both ``ClientApp`` " +"and ``ServerApp`` are started by the long-running components of the " +"server and client: the `SuperLink` and `SuperNode`, respectively." msgstr "" "在 Flower Next " "中,*基础架构层*和*应用层*已经解耦。你不再需要在代码中通过``start_client()``启动客户端,而是创建一个|clientapp_link|_,然后通过命令行启动它。无需通过``start_server()``在代码中启动服务器,而是创建一个" @@ -7564,141 +7771,216 @@ msgstr "" "并通过命令行启动它。服务器和客户端的长期运行组件被称为超级链接(SuperLink)和超级节点(SuperNode)。以下是无需手动更新的非破坏性更改,可让您以传统方式和" " Flower Next 方式运行项目:" -#: ../../source/how-to-upgrade-to-flower-next.rst:132 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:102 +msgid "" +"For more details on SuperLink and SuperNode, please see the " +"|flower_architecture_link|_ ." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:105 +msgid "" +"The following non-breaking changes require manual updates and allow you " +"to run your project both in the traditional (now deprecated) way and in " +"the new (recommended) Flower 1.13 way:" +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:110 #, fuzzy msgid "|clientapp_link|_" msgstr "客户端" -#: ../../source/how-to-upgrade-to-flower-next.rst:134 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:112 #, fuzzy msgid "" "Wrap your existing client with |clientapp_link|_ instead of launching it " -"via |startclient_link|_. Here's an example:" +"via ``start_client()``. Here's an example:" msgstr "用 |clientapp_link|_ 封装现有客户端,而不是通过 |startclient_link|_ 启动。下面是一个例子:" -#: ../../source/how-to-upgrade-to-flower-next.rst:157 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:146 #, fuzzy msgid "|serverapp_link|_" msgstr "服务器" -#: ../../source/how-to-upgrade-to-flower-next.rst:159 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:148 #, fuzzy msgid "" "Wrap your existing strategy with |serverapp_link|_ instead of starting " -"the server via |startserver_link|_. Here's an example:" +"the server via ``start_server()``. Here's an example:" msgstr "用 |serverapp_link|_ 包住现有策略,而不是通过 |startserver_link|_ 启动服务器。下面是一个例子:" -#: ../../source/how-to-upgrade-to-flower-next.rst:180 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:185 #, fuzzy msgid "Deployment" msgstr "调配" -#: ../../source/how-to-upgrade-to-flower-next.rst:182 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:187 #, fuzzy msgid "" -"Run the ``SuperLink`` using |flowernext_superlink_link|_ before running, " -"in sequence, |flowernext_clientapp_link|_ (2x) and " -"|flowernext_serverapp_link|_. There is no need to execute `client.py` and" -" `server.py` as Python scripts." +"In a terminal window, start the SuperLink using |flower_superlink_link|_." +" Then, in two additional terminal windows, start two SuperNodes using " +"|flower_supernode_link|_ (2x). There is no need to directly run " +"``client.py`` and ``server.py`` as Python scripts." msgstr "" "在依次运行 |flowernext_clientapp_link|_ (2x) 和 |flowernext_serverapp_link|_ " "之前,使用 |flowernext_superlink_link|_ 运行 ``SuperLink`` 。无需将 |client.py` 和 " "`server.py` 作为 Python 脚本执行。" -#: ../../source/how-to-upgrade-to-flower-next.rst:185 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:190 #, fuzzy msgid "" -"Here's an example to start the server without HTTPS (only for " -"prototyping):" +"Here's an example to start the server without HTTPS (insecure mode, only " +"for prototyping):" msgstr "下面是一个在不使用 HTTPS 的情况下启动服务器的示例(仅用于原型开发):" -#: ../../source/how-to-upgrade-to-flower-next.rst:201 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:195 +msgid "" +"For a comprehensive walk-through on how to deploy Flower using Docker, " +"please refer to the :doc:`docker/index` guide." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:218 #, fuzzy msgid "" -"Here's another example to start with HTTPS. Use the ``--ssl-ca-" -"certfile``, ``--ssl-certfile``, and ``--ssl-keyfile`` command line " -"options to pass paths to (CA certificate, server certificate, and server " -"private key)." +"Here's another example to start both SuperLink and SuperNodes with HTTPS." +" Use the ``--ssl-ca-certfile``, ``--ssl-certfile``, and ``--ssl-keyfile``" +" command line options to pass paths to (CA certificate, server " +"certificate, and server private key)." msgstr "下面是另一个使用 HTTPS 的示例。使用 ``--certificates`` 命令行参数传递路径(CA 证书、服务器证书和服务器私钥)。" -#: ../../source/how-to-upgrade-to-flower-next.rst:229 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:246 #, fuzzy -msgid "Simulation in CLI" +msgid "Simulation (CLI)" msgstr "运行模拟" -#: ../../source/how-to-upgrade-to-flower-next.rst:231 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:248 #, fuzzy msgid "" "Wrap your existing client and strategy with |clientapp_link|_ and " -"|serverapp_link|_, respectively. There is no need to use |startsim_link|_" -" anymore. Here's an example:" +"|serverapp_link|_, respectively. There is no need to use " +"``start_simulation()`` anymore. Here's an example:" msgstr "" "分别用 |clientapp_link|_ 和 |serverapp_link|_ 封装现有的客户端和策略。无需再使用 " "|startsim_link|_。下面是一个示例:" -#: ../../source/how-to-upgrade-to-flower-next.rst:264 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:253 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:389 +msgid "" +"For a comprehensive guide on how to setup and run Flower simulations " +"please read the |flower_how_to_run_simulations_link|_ guide." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:310 +msgid "Depending on your Flower version, you can run your simulation as follows:" +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:312 +msgid "" +"For Flower 1.11 and later, run ``flwr run`` in the terminal. This is the " +"recommended way to start simulations, other ways are deprecated and no " +"longer recommended." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:314 #, fuzzy msgid "" -"Run |flower_simulation_link|_ in CLI and point to the ``server_app`` / " +"DEPRECATED For Flower versions between 1.8 and 1.10, run ``flower-" +"simulation`` in the terminal and point to the ``server_app`` / " "``client_app`` object in the code instead of executing the Python script." -" Here's an example (assuming the ``server_app`` and ``client_app`` " -"objects are in a ``sim.py`` module):" +" In the code snippet below, there is an example (assuming the " +"``server_app`` and ``client_app`` objects are in a ``sim.py`` module)." msgstr "" "在 CLI 中运行 |flower_simulation_link|_ 并指向代码中的 ``server_app`` " "/``client_app`` 对象,而不是执行 Python 脚本。下面是一个示例(假定 `server_app`` 和 " "`client_app`` 对象位于 `sim.py`` 模块中):" -#: ../../source/how-to-upgrade-to-flower-next.rst:281 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:318 +msgid "DEPRECATED For Flower versions before 1.8, run the Python script directly." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:337 +msgid "" +"Depending on your Flower version, you can also define the default " +"resources as follows:" +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:339 +msgid "" +"For Flower 1.11 and later, you can edit your ``pyproject.toml`` file and " +"then run ``flwr run`` in the terminal as shown in the example below." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:341 #, fuzzy msgid "" -"Set default resources for each |clientapp_link|_ using the ``--backend-" -"config`` command line argument instead of setting the " -"``client_resources`` argument in |startsim_link|_. Here's an example:" +"DEPRECATED For Flower versions between 1.8 and 1.10, you can adjust the " +"resources for each |clientapp_link|_ using the ``--backend-config`` " +"command line argument instead of setting the ``client_resources`` " +"argument in ``start_simulation()``." msgstr "" "使用 ``--backend-config`` 命令行参数为每个 |clientapp_link|_ 设置默认资源,而不是在 " "|startsim_link|_ 中设置 ``client_resources`` 参数。下面是一个例子:" -#: ../../source/how-to-upgrade-to-flower-next.rst:305 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:344 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:384 +msgid "" +"DEPRECATED For Flower versions before 1.8, you need to run " +"``start_simulation()`` and pass a dictionary of the required resources to" +" the ``client_resources`` argument." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:375 #, fuzzy -msgid "Simulation in a Notebook" +msgid "Simulation (Notebook)" msgstr "笔记本中的模拟" -#: ../../source/how-to-upgrade-to-flower-next.rst:307 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:377 +msgid "" +"To run your simulation from within a notebook, please consider the " +"following examples depending on your Flower version:" +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:380 #, fuzzy msgid "" -"Run |runsim_link|_ in your notebook instead of |startsim_link|_. Here's " -"an example:" +"For Flower 1.11 and later, you need to run |runsim_link|_ in your " +"notebook instead of ``start_simulation()``." msgstr "在笔记本中运行 |runsim_link|_,而不是 |startsim_link|_。下面是一个例子:" -#: ../../source/how-to-upgrade-to-flower-next.rst:351 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:382 +msgid "" +"DEPRECATED For Flower versions between 1.8 and 1.10, you need to run " +"|runsim_link|_ in your notebook instead of ``start_simulation()`` and " +"configure the resources." +msgstr "" + +#: ../../source/how-to-upgrade-to-flower-1.13.rst:453 #, fuzzy msgid "" -"Some official `Flower code examples `_ " -"are already updated to Flower Next so they can serve as a reference for " -"using the Flower Next API. If there are further questions, `join the " -"Flower Slack `_ and use the channel " -"``#questions``. You can also `participate in Flower Discuss " -"`_ where you can find us answering questions," -" or share and learn from others about migrating to Flower Next." +"Most official `Flower code examples `_ " +"are already updated to Flower 1.13 so they can serve as a reference for " +"using the Flower 1.13 API. If there are further questions, `join the " +"Flower Slack `_ (and use the channel " +"``#questions``) or post them on `Flower Discuss " +"`_ where you can find the community posting " +"and answering questions." msgstr "" "大多数官方的 `Flower 代码示例 `_" " 已经更新到 Flower 1.0,它们可以作为使用 Flower 1.0 API 的参考。如果还有其他问题,请加入 Flower Slack " "`_ 并使用 \"#questions``\"。" -#: ../../source/how-to-upgrade-to-flower-next.rst:358 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:460 #, fuzzy msgid "Important" msgstr "重要变更:" -#: ../../source/how-to-upgrade-to-flower-next.rst:360 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:462 #, fuzzy msgid "" -"As we continuously enhance Flower Next at a rapid pace, we'll be " -"periodically updating this guide. Please feel free to share any feedback " -"with us!" +"As we continuously enhance Flower at a rapid pace, we'll be periodically " +"updating this guide. Please feel free to share any feedback with us!" msgstr "随着 Flower Next 的不断快速改进,我们将定期更新本指南。如有任何反馈,请随时与我们分享!" -#: ../../source/how-to-upgrade-to-flower-next.rst:366 +#: ../../source/how-to-upgrade-to-flower-1.13.rst:465 #, fuzzy msgid "Happy migrating! 🚀" msgstr "移民愉快!🚀" @@ -8359,6 +8641,230 @@ msgstr "命令示例" msgid "``flwr`` CLI" msgstr "Flower 客户端" +#: ../../flwr:1 +#, fuzzy +msgid "flwr is the Flower command line interface." +msgstr "注册 Flower ClientProxy 实例。" + +#: ../../source/ref-api-cli.rst +#, fuzzy +msgid "Options" +msgstr "解决方案" + +#: ../../flwr:1 +#, fuzzy +msgid "Install completion for the current shell." +msgstr "当前运行的标识符。" + +#: ../../flwr:1 +msgid "" +"Show completion for the current shell, to copy it or customize the " +"installation." +msgstr "" + +#: ../../flwr build:1 +msgid "Build a Flower App into a Flower App Bundle (FAB)." +msgstr "" + +#: ../../flwr build:1 +msgid "" +"You can run ``flwr build`` without any arguments to bundle the app " +"located in the current directory. Alternatively, you can you can specify " +"a path using the ``--app`` option to bundle an app located at the " +"provided path. For example:" +msgstr "" + +#: ../../flwr build:1 +msgid "``flwr build --app ./apps/flower-hello-world``." +msgstr "" + +#: ../../flwr build:1 +msgid "Path of the Flower App to bundle into a FAB" +msgstr "" + +#: ../../flwr install:1 +#, fuzzy +msgid "Install a Flower App Bundle." +msgstr "安装Flower" + +#: ../../flwr install:1 +msgid "It can be ran with a single FAB file argument:" +msgstr "" + +#: ../../flwr install:1 +msgid "``flwr install ./target_project.fab``" +msgstr "" + +#: ../../flwr install:1 +msgid "The target install directory can be specified with ``--flwr-dir``:" +msgstr "" + +#: ../../flwr install:1 +msgid "``flwr install ./target_project.fab --flwr-dir ./docs/flwr``" +msgstr "" + +#: ../../flwr install:1 +msgid "" +"This will install ``target_project`` to ``./docs/flwr/``. By default, " +"``flwr-dir`` is equal to:" +msgstr "" + +#: ../../flwr install:1 +msgid "``$FLWR_HOME/`` if ``$FLWR_HOME`` is defined" +msgstr "" + +#: ../../flwr install:1 +msgid "``$XDG_DATA_HOME/.flwr/`` if ``$XDG_DATA_HOME`` is defined" +msgstr "" + +#: ../../flwr install:1 +msgid "``$HOME/.flwr/`` in all other cases" +msgstr "" + +#: ../../flwr install:1 +msgid "The desired install path." +msgstr "" + +#: ../../source/ref-api-cli.rst +#, fuzzy +msgid "Arguments" +msgstr "构建文档" + +#: ../../flwr install:1 log:1 ls:1 new:1 run:1 +#, fuzzy +msgid "Optional argument" +msgstr "可选的改进措施" + +#: ../../flwr install:1 +msgid "The source FAB file to install." +msgstr "" + +#: ../../flwr log:1 +msgid "Get logs from a Flower project run." +msgstr "" + +#: ../../flwr log:1 +msgid "Flag to stream or print logs from the Flower run" +msgstr "" + +#: ../../flwr log ls run +#, fuzzy +msgid "default" +msgstr "工作流程" + +#: ../../flwr log:1 +msgid "``True``" +msgstr "" + +#: ../../flwr log:1 +#, fuzzy +msgid "Required argument" +msgstr "构建文档" + +#: ../../flwr log:1 +#, fuzzy +msgid "The Flower run ID to query" +msgstr "加入 Flower 社区" + +#: ../../flwr log:1 +msgid "Path of the Flower project to run" +msgstr "" + +#: ../../flwr log:1 +msgid "Name of the federation to run the app on" +msgstr "" + +#: ../../flwr ls:1 +msgid "List runs." +msgstr "" + +#: ../../flwr ls:1 +msgid "List all runs" +msgstr "" + +#: ../../flwr ls:1 run:1 +#, fuzzy +msgid "``False``" +msgstr "``FLWR_VERSION``" + +#: ../../flwr ls:1 +msgid "Specific run ID to display" +msgstr "" + +#: ../../flwr ls:1 +#, fuzzy +msgid "Path of the Flower project" +msgstr "基础镜像的存储库名称。" + +#: ../../flwr ls:1 +msgid "Name of the federation" +msgstr "" + +#: ../../flwr new:1 +#, fuzzy +msgid "Create new Flower App." +msgstr "创建新页面" + +#: ../../flwr new:1 +msgid "The ML framework to use" +msgstr "" + +#: ../../flwr new +#, fuzzy +msgid "options" +msgstr "解决方案" + +#: ../../flwr new:1 +msgid "" +"PyTorch | TensorFlow | sklearn | HuggingFace | JAX | MLX | NumPy | " +"FlowerTune | Flower Baseline" +msgstr "" + +#: ../../flwr new:1 +msgid "The Flower username of the author" +msgstr "" + +#: ../../flwr new:1 +#, fuzzy +msgid "The name of the Flower App" +msgstr "基础镜像的存储库名称。" + +#: ../../flwr run:1 +#, fuzzy +msgid "Run Flower App." +msgstr "Flower 服务器。" + +#: ../../flwr run:1 +msgid "Override configuration key-value pairs, should be of the format:" +msgstr "" + +#: ../../flwr run:1 +msgid "" +"`--run-config 'key1=\"value1\" key2=\"value2\"' --run-config " +"'key3=\"value3\"'`" +msgstr "" + +#: ../../flwr run:1 +msgid "" +"Note that `key1`, `key2`, and `key3` in this example need to exist inside" +" the `pyproject.toml` in order to be properly overriden." +msgstr "" + +#: ../../flwr run:1 +msgid "" +"Use `--stream` with `flwr run` to display logs; logs are not streamed by " +"default." +msgstr "" + +#: ../../flwr run:1 +#, fuzzy +msgid "Path of the Flower App to run." +msgstr "基础镜像的存储库名称。" + +#: ../../flwr run:1 +msgid "Name of the federation to run the app on." +msgstr "" + #: ../../source/ref-api-cli.rst:19 #, fuzzy msgid "``flower-superlink``" @@ -8434,7 +8940,7 @@ msgstr "模块" #: ../../source/ref-api/flwr.rst:35::1 #, fuzzy -msgid ":py:obj:`client `\\" +msgid ":py:obj:`flwr.client `\\" msgstr ":py:obj:`flwr.client `\\" #: ../../source/ref-api/flwr.rst:35::1 flwr.client:1 of @@ -8443,7 +8949,7 @@ msgstr "Flower 客户端。" #: ../../source/ref-api/flwr.rst:35::1 #, fuzzy -msgid ":py:obj:`common `\\" +msgid ":py:obj:`flwr.common `\\" msgstr ":py:obj:`flwr.common `\\" #: ../../source/ref-api/flwr.rst:35::1 flwr.common:1 of @@ -8452,7 +8958,7 @@ msgstr "服务器和客户端共享的通用组件。" #: ../../source/ref-api/flwr.rst:35::1 #, fuzzy -msgid ":py:obj:`server `\\" +msgid ":py:obj:`flwr.server `\\" msgstr ":py:obj:`flwr.server `\\" #: ../../source/ref-api/flwr.rst:35::1 @@ -8463,7 +8969,7 @@ msgstr "Flower 服务器。" #: ../../source/ref-api/flwr.rst:35::1 #, fuzzy -msgid ":py:obj:`simulation `\\" +msgid ":py:obj:`flwr.simulation `\\" msgstr ":py:obj:`flwr.simulation `\\" #: ../../source/ref-api/flwr.rst:35::1 flwr.simulation:1 of @@ -8560,7 +9066,7 @@ msgstr "使用 NumPy 的 Flower 客户端的抽象基类。" #: ../../source/ref-api/flwr.client.rst:50::1 #, fuzzy -msgid ":py:obj:`mod `\\" +msgid ":py:obj:`flwr.client.mod `\\" msgstr ":py:obj:`flwr.client `\\" #: ../../source/ref-api/flwr.client.rst:50::1 flwr.client.mod:1 of @@ -8772,49 +9278,59 @@ msgstr ":py:obj:`context `\\" msgid "Getter for `Context` client attribute." msgstr "" -#: ../../source/ref-api/flwr.client.Client.rst -#: ../../source/ref-api/flwr.client.NumPyClient.rst -#: ../../source/ref-api/flwr.client.mod.LocalDpMod.rst -#: ../../source/ref-api/flwr.common.Array.rst -#: ../../source/ref-api/flwr.common.ConfigsRecord.rst -#: ../../source/ref-api/flwr.common.Context.rst -#: ../../source/ref-api/flwr.common.Error.rst -#: ../../source/ref-api/flwr.common.Message.rst -#: ../../source/ref-api/flwr.common.Metadata.rst -#: ../../source/ref-api/flwr.common.MetricsRecord.rst #: ../../source/ref-api/flwr.common.Parameters.rst:2 -#: ../../source/ref-api/flwr.common.ParametersRecord.rst -#: ../../source/ref-api/flwr.common.RecordSet.rst -#: ../../source/ref-api/flwr.server.ClientManager.rst -#: ../../source/ref-api/flwr.server.Driver.rst -#: ../../source/ref-api/flwr.server.ServerAppComponents.rst -#: ../../source/ref-api/flwr.server.SimpleClientManager.rst -#: ../../source/ref-api/flwr.server.strategy.Bulyan.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgAdaptive.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgFixed.rst -#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyClientSideAdaptiveClipping.rst -#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyClientSideFixedClipping.rst -#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyServerSideAdaptiveClipping.rst -#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyServerSideFixedClipping.rst -#: ../../source/ref-api/flwr.server.strategy.FedAdagrad.rst -#: ../../source/ref-api/flwr.server.strategy.FedAdam.rst -#: ../../source/ref-api/flwr.server.strategy.FedAvg.rst -#: ../../source/ref-api/flwr.server.strategy.FedAvgAndroid.rst -#: ../../source/ref-api/flwr.server.strategy.FedAvgM.rst -#: ../../source/ref-api/flwr.server.strategy.FedOpt.rst -#: ../../source/ref-api/flwr.server.strategy.FedProx.rst -#: ../../source/ref-api/flwr.server.strategy.FedTrimmedAvg.rst -#: ../../source/ref-api/flwr.server.strategy.FedYogi.rst -#: ../../source/ref-api/flwr.server.strategy.Krum.rst -#: ../../source/ref-api/flwr.server.strategy.Strategy.rst -#: ../../source/ref-api/flwr.server.workflow.SecAggPlusWorkflow.rst -#: ../../source/ref-api/flwr.server.workflow.SecAggWorkflow.rst -#: ../../source/ref-api/flwr.simulation.SimulationIoConnection.rst -#: ../../source/ref-api/flwr.simulation.run_simulation.rst -#: ../../source/ref-api/flwr.simulation.start_simulation.rst #: flwr.client.app.start_client flwr.client.app.start_numpy_client -#: flwr.server.app.start_server -#: flwr.server.driver.driver.Driver.send_and_receive of +#: flwr.client.client.Client.evaluate flwr.client.client.Client.fit +#: flwr.client.client.Client.get_parameters +#: flwr.client.client.Client.get_properties +#: flwr.client.mod.localdp_mod.LocalDpMod +#: flwr.client.numpy_client.NumPyClient.evaluate +#: flwr.client.numpy_client.NumPyClient.fit +#: flwr.client.numpy_client.NumPyClient.get_parameters +#: flwr.client.numpy_client.NumPyClient.get_properties +#: flwr.common.context.Context flwr.common.message.Error +#: flwr.common.message.Message flwr.common.message.Message.create_error_reply +#: flwr.common.message.Message.create_reply flwr.common.message.Metadata +#: flwr.common.record.configsrecord.ConfigsRecord +#: flwr.common.record.metricsrecord.MetricsRecord +#: flwr.common.record.parametersrecord.Array +#: flwr.common.record.parametersrecord.ParametersRecord +#: flwr.common.record.recordset.RecordSet flwr.server.app.start_server +#: flwr.server.client_manager.ClientManager.register +#: flwr.server.client_manager.ClientManager.unregister +#: flwr.server.client_manager.SimpleClientManager.register +#: flwr.server.client_manager.SimpleClientManager.unregister +#: flwr.server.client_manager.SimpleClientManager.wait_for +#: flwr.server.driver.driver.Driver.create_message +#: flwr.server.driver.driver.Driver.pull_messages +#: flwr.server.driver.driver.Driver.push_messages +#: flwr.server.driver.driver.Driver.send_and_receive +#: flwr.server.driver.driver.Driver.set_run +#: flwr.server.serverapp_components.ServerAppComponents +#: flwr.server.strategy.bulyan.Bulyan +#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping +#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping +#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping +#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit +#: flwr.server.strategy.fedadagrad.FedAdagrad +#: flwr.server.strategy.fedadam.FedAdam flwr.server.strategy.fedavg.FedAvg +#: flwr.server.strategy.fedavg_android.FedAvgAndroid +#: flwr.server.strategy.fedavgm.FedAvgM flwr.server.strategy.fedopt.FedOpt +#: flwr.server.strategy.fedprox.FedProx +#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg +#: flwr.server.strategy.fedyogi.FedYogi flwr.server.strategy.krum.Krum +#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate +#: flwr.server.strategy.strategy.Strategy.aggregate_fit +#: flwr.server.strategy.strategy.Strategy.configure_evaluate +#: flwr.server.strategy.strategy.Strategy.configure_fit +#: flwr.server.strategy.strategy.Strategy.evaluate +#: flwr.server.strategy.strategy.Strategy.initialize_parameters +#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow +#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow +#: flwr.simulation.run_simulation.run_simulation +#: flwr.simulation.simulationio_connection.SimulationIoConnection of msgid "Parameters" msgstr "参数" @@ -8825,21 +9341,32 @@ msgid "" "customize the local evaluation process." msgstr "评估指令包含从服务器接收的(全局)模型参数,以及用于定制本地评估流程的配置值字典。" -#: ../../source/ref-api/flwr.client.Client.rst -#: ../../source/ref-api/flwr.client.NumPyClient.rst -#: ../../source/ref-api/flwr.common.ConfigsRecord.rst -#: ../../source/ref-api/flwr.common.Message.rst -#: ../../source/ref-api/flwr.common.MetricsRecord.rst -#: ../../source/ref-api/flwr.common.ParametersRecord.rst -#: ../../source/ref-api/flwr.server.ClientManager.rst -#: ../../source/ref-api/flwr.server.Driver.rst -#: ../../source/ref-api/flwr.server.SimpleClientManager.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgAdaptive.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgFixed.rst -#: ../../source/ref-api/flwr.server.strategy.Strategy.rst -#: ../../source/ref-api/flwr.simulation.start_simulation.rst -#: flwr.server.app.start_server -#: flwr.server.driver.driver.Driver.send_and_receive of +#: flwr.client.client.Client.evaluate flwr.client.client.Client.fit +#: flwr.client.client.Client.get_parameters +#: flwr.client.client.Client.get_properties +#: flwr.client.numpy_client.NumPyClient.evaluate +#: flwr.client.numpy_client.NumPyClient.fit +#: flwr.client.numpy_client.NumPyClient.get_parameters +#: flwr.client.numpy_client.NumPyClient.get_properties +#: flwr.common.message.Message.create_error_reply +#: flwr.common.message.Message.create_reply flwr.server.app.start_server +#: flwr.server.client_manager.ClientManager.num_available +#: flwr.server.client_manager.ClientManager.register +#: flwr.server.client_manager.SimpleClientManager.num_available +#: flwr.server.client_manager.SimpleClientManager.register +#: flwr.server.client_manager.SimpleClientManager.wait_for +#: flwr.server.driver.driver.Driver.create_message +#: flwr.server.driver.driver.Driver.pull_messages +#: flwr.server.driver.driver.Driver.push_messages +#: flwr.server.driver.driver.Driver.send_and_receive +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit +#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate +#: flwr.server.strategy.strategy.Strategy.aggregate_fit +#: flwr.server.strategy.strategy.Strategy.configure_evaluate +#: flwr.server.strategy.strategy.Strategy.configure_fit +#: flwr.server.strategy.strategy.Strategy.evaluate +#: flwr.server.strategy.strategy.Strategy.initialize_parameters of msgid "Returns" msgstr "返回" @@ -8849,18 +9376,30 @@ msgid "" "details such as the number of local data examples used for evaluation." msgstr "评估结果包含本地数据集上的损失值和其他详细信息,如用于评估的本地数据的数量。" -#: ../../source/ref-api/flwr.client.Client.rst -#: ../../source/ref-api/flwr.client.NumPyClient.rst -#: ../../source/ref-api/flwr.common.Message.rst -#: ../../source/ref-api/flwr.server.ClientManager.rst -#: ../../source/ref-api/flwr.server.Driver.rst -#: ../../source/ref-api/flwr.server.SimpleClientManager.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgAdaptive.rst -#: ../../source/ref-api/flwr.server.strategy.DPFedAvgFixed.rst -#: ../../source/ref-api/flwr.server.strategy.Strategy.rst -#: ../../source/ref-api/flwr.simulation.start_simulation.rst -#: flwr.server.app.start_server -#: flwr.server.driver.driver.Driver.send_and_receive of +#: flwr.client.client.Client.evaluate flwr.client.client.Client.fit +#: flwr.client.client.Client.get_parameters +#: flwr.client.client.Client.get_properties +#: flwr.client.numpy_client.NumPyClient.get_parameters +#: flwr.client.numpy_client.NumPyClient.get_properties +#: flwr.common.message.Message.create_error_reply +#: flwr.common.message.Message.create_reply flwr.server.app.start_server +#: flwr.server.client_manager.ClientManager.num_available +#: flwr.server.client_manager.ClientManager.register +#: flwr.server.client_manager.SimpleClientManager.num_available +#: flwr.server.client_manager.SimpleClientManager.register +#: flwr.server.client_manager.SimpleClientManager.wait_for +#: flwr.server.driver.driver.Driver.create_message +#: flwr.server.driver.driver.Driver.pull_messages +#: flwr.server.driver.driver.Driver.push_messages +#: flwr.server.driver.driver.Driver.send_and_receive +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate +#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit +#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate +#: flwr.server.strategy.strategy.Strategy.aggregate_fit +#: flwr.server.strategy.strategy.Strategy.configure_evaluate +#: flwr.server.strategy.strategy.Strategy.configure_fit +#: flwr.server.strategy.strategy.Strategy.evaluate +#: flwr.server.strategy.strategy.Strategy.initialize_parameters of msgid "Return type" msgstr "返回类型" @@ -8897,11 +9436,6 @@ msgstr "从服务器接收的获取属性指令包含配置值字典。" msgid "The current client properties." msgstr "当前客户端属性。" -#: ../../source/ref-api/flwr.client.ClientApp.rst:2 -#, fuzzy -msgid "ClientApp" -msgstr "客户端" - #: flwr.client.client_app.ClientApp:1 flwr.client.mod.localdp_mod.LocalDpMod:1 #: flwr.common.constant.MessageType:1 flwr.common.constant.MessageTypeLegacy:1 #: flwr.common.context.Context:1 flwr.common.message.Error:1 @@ -9224,6 +9758,11 @@ msgstr "客户端逻辑" msgid ":py:obj:`make_ffn `\\ \\(ffn\\, mods\\)" msgstr ":py:obj:`Client `\\ \\(\\)" +#: ../../source/ref-api/flwr.client.mod.rst:28::1 +#: flwr.client.mod.utils.make_ffn:1 of +msgid "." +msgstr "" + #: ../../source/ref-api/flwr.client.mod.rst:28::1 #, fuzzy msgid "" @@ -9411,10 +9950,6 @@ msgstr "" msgid "make\\_ffn" msgstr "" -#: flwr.client.mod.utils.make_ffn:1 of -msgid "." -msgstr "" - #: ../../source/ref-api/flwr.client.mod.message_size_mod.rst:2 msgid "message\\_size\\_mod" msgstr "" @@ -9443,16 +9978,6 @@ msgstr "" msgid "secaggplus\\_mod" msgstr "工作流程" -#: ../../source/ref-api/flwr.client.run_client_app.rst:2 -#, fuzzy -msgid "run\\_client\\_app" -msgstr "客户端" - -#: ../../source/ref-api/flwr.client.run_supernode.rst:2 -#, fuzzy -msgid "run\\_supernode" -msgstr "flower-superlink" - #: ../../source/ref-api/flwr.client.start_client.rst:2 #, fuzzy msgid "start\\_client" @@ -10344,14 +10869,9 @@ msgstr "返回存储在此对象中的字节数。" #: collections.abc.MutableMapping.clear:1::1 of #, fuzzy -msgid ":py:obj:`get `\\ \\(key\\[\\, default\\]\\)" +msgid ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" msgstr ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" -#: collections.abc.Mapping.get:1 -#: collections.abc.MutableMapping.clear:1::1 of -msgid "Retrieve the corresponding layout by the string key." -msgstr "" - #: collections.abc.MutableMapping.clear:1::1 of #, fuzzy msgid ":py:obj:`items `\\ \\(\\)" @@ -10417,22 +10937,6 @@ msgstr ":py:obj:`values `\\ \\(\\)" msgid "This function counts booleans as occupying 1 Byte." msgstr "该函数将布尔值计算为占用 1 个字节。" -#: collections.abc.Mapping.get:3 of -msgid "" -"When there isn't an exact match, all the existing keys in the layout map " -"will be treated as a regex and map against the input key again. The first" -" match will be returned, based on the key insertion order. Return None if" -" there isn't any match found." -msgstr "" - -#: collections.abc.Mapping.get:8 of -msgid "the string key as the query for the layout." -msgstr "" - -#: collections.abc.Mapping.get:10 of -msgid "Corresponding layout based on the query." -msgstr "" - #: ../../source/ref-api/flwr.common.Context.rst:2 #, fuzzy msgid "Context" @@ -12153,7 +12657,7 @@ msgstr ":py:obj:`count_bytes `\\ \\(\\)" #: collections.abc.MutableMapping.clear:1::1 of #, fuzzy -msgid ":py:obj:`get `\\ \\(key\\[\\, default\\]\\)" +msgid ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" msgstr ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" #: collections.abc.MutableMapping.clear:1::1 of @@ -12309,9 +12813,7 @@ msgstr ":py:obj:`count_bytes `\\ \\(\\ #: collections.abc.MutableMapping.clear:1::1 of #, fuzzy -msgid "" -":py:obj:`get `\\ \\(key\\[\\, " -"default\\]\\)" +msgid ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" msgstr ":py:obj:`get `\\ \\(k\\[\\,d\\]\\)" #: collections.abc.MutableMapping.clear:1::1 of @@ -12707,7 +13209,7 @@ msgstr "使用部分可用客户进行评估。" #: ../../source/ref-api/flwr.server.rst:56::1 #, fuzzy -msgid ":py:obj:`strategy `\\" +msgid ":py:obj:`flwr.server.strategy `\\" msgstr "server.strategy.Strategy" #: ../../source/ref-api/flwr.server.rst:56::1 @@ -12717,7 +13219,7 @@ msgstr "包含策略抽象和不同的实现方法。" #: ../../source/ref-api/flwr.server.rst:56::1 #, fuzzy -msgid ":py:obj:`workflow `\\" +msgid ":py:obj:`flwr.server.workflow `\\" msgstr "server.strategy.Strategy" #: ../../source/ref-api/flwr.server.rst:56::1 @@ -13316,11 +13818,6 @@ msgstr ":py:obj:`set_strategy `\\ \\(strategy\\ msgid "Replace server strategy." msgstr "server.strategy" -#: ../../source/ref-api/flwr.server.ServerApp.rst:2 -#, fuzzy -msgid "ServerApp" -msgstr "服务器" - #: flwr.server.server_app.ServerApp:5 of #, fuzzy msgid "Use the `ServerApp` with an existing `Strategy`:" @@ -13355,8 +13852,7 @@ msgid "" msgstr "服务器实现,可以是 `flwr.server.Server` 或其子类。如果没有提供实例,`start_server` 将创建一个。" #: flwr.server.app.start_server:14 -#: flwr.server.serverapp_components.ServerAppComponents:6 -#: flwr.simulation.legacy_app.start_simulation:34 of +#: flwr.server.serverapp_components.ServerAppComponents:6 of msgid "" "Currently supported values are `num_rounds` (int, default: 1) and " "`round_timeout` in seconds (float, default: None)." @@ -13508,16 +14004,6 @@ msgstr "以秒为单位的等待时间,默认为 86400(24 小时)。" msgid "**success**" msgstr "**success**" -#: ../../source/ref-api/flwr.server.run_server_app.rst:2 -#, fuzzy -msgid "run\\_server\\_app" -msgstr "服务器" - -#: ../../source/ref-api/flwr.server.run_superlink.rst:2 -#, fuzzy -msgid "run\\_superlink" -msgstr "flower-superlink" - #: ../../source/ref-api/flwr.server.start_server.rst:2 #, fuzzy msgid "start\\_server" @@ -15224,7 +15710,7 @@ msgstr "" "\\(num\\_available\\_clients\\)" #: ../../source/ref-api/flwr.server.strategy.FedAdagrad.rst:2 -#: ../../source/ref-changelog.md:1301 +#: ../../source/ref-changelog.md:1412 msgid "FedAdagrad" msgstr "FedAdagrad" @@ -17532,17 +18018,16 @@ msgstr "运行模拟" #: ../../source/ref-api/flwr.simulation.rst:24::1 #, fuzzy msgid "" -":py:obj:`start_simulation `\\ \\(\\*\\," -" client\\_fn\\, num\\_clients\\)" +":py:obj:`start_simulation `\\ " +"\\(\\*args\\, \\*\\*kwargs\\)" msgstr "" ":py:obj:`start_simulation `\\ \\(\\*\\," " client\\_fn\\[\\, ...\\]\\)" #: ../../source/ref-api/flwr.simulation.rst:24::1 -#: flwr.simulation.legacy_app.start_simulation:1 of -#, fuzzy -msgid "Start a Ray-based Flower simulation server." -msgstr "多节点 Flower 模拟" +#: flwr.simulation.start_simulation:1 of +msgid "Log error stating that module `ray` could not be imported." +msgstr "" #: ../../source/ref-api/flwr.simulation.rst:31::1 #, fuzzy @@ -17650,168 +18135,641 @@ msgstr "运行模拟" msgid "start\\_simulation" msgstr "start_simulation" -#: flwr.simulation.legacy_app.start_simulation:5 of +#: ../../source/ref-changelog.md:1 +msgid "Changelog" +msgstr "更新日志" + +#: ../../source/ref-changelog.md:3 +#, fuzzy +msgid "Unreleased" +msgstr "版本发布" + +#: ../../source/ref-changelog.md:5 ../../source/ref-changelog.md:21 +#: ../../source/ref-changelog.md:122 ../../source/ref-changelog.md:224 +#: ../../source/ref-changelog.md:328 ../../source/ref-changelog.md:426 +#: ../../source/ref-changelog.md:526 ../../source/ref-changelog.md:590 +#: ../../source/ref-changelog.md:683 ../../source/ref-changelog.md:783 +#: ../../source/ref-changelog.md:867 ../../source/ref-changelog.md:931 +#: ../../source/ref-changelog.md:989 ../../source/ref-changelog.md:1058 +#: ../../source/ref-changelog.md:1187 ../../source/ref-changelog.md:1229 +#: ../../source/ref-changelog.md:1296 ../../source/ref-changelog.md:1362 +#: ../../source/ref-changelog.md:1407 ../../source/ref-changelog.md:1446 +#: ../../source/ref-changelog.md:1479 ../../source/ref-changelog.md:1529 +msgid "What's new?" +msgstr "有什么新内容?" + +#: ../../source/ref-changelog.md:7 +#, fuzzy +msgid "Other changes" +msgstr "不兼容的更改" + +#: ../../source/ref-changelog.md:9 ../../source/ref-changelog.md:388 +#, fuzzy +msgid "Documentation improvements" +msgstr "可选的改进措施" + +#: ../../source/ref-changelog.md:11 ../../source/ref-changelog.md:88 +#: ../../source/ref-changelog.md:178 ../../source/ref-changelog.md:212 +#: ../../source/ref-changelog.md:292 ../../source/ref-changelog.md:408 +#: ../../source/ref-changelog.md:504 ../../source/ref-changelog.md:578 +#: ../../source/ref-changelog.md:653 ../../source/ref-changelog.md:765 +#: ../../source/ref-changelog.md:855 ../../source/ref-changelog.md:919 +#: ../../source/ref-changelog.md:977 ../../source/ref-changelog.md:1046 +#: ../../source/ref-changelog.md:1108 ../../source/ref-changelog.md:1127 +#: ../../source/ref-changelog.md:1283 ../../source/ref-changelog.md:1354 +#: ../../source/ref-changelog.md:1391 ../../source/ref-changelog.md:1434 +msgid "Incompatible changes" +msgstr "不兼容的更改" + +#: ../../source/ref-changelog.md:13 +#, fuzzy +msgid "v1.13.0 (2024-11-20)" +msgstr "v1.4.0 (2023-04-21)" + +#: ../../source/ref-changelog.md:15 ../../source/ref-changelog.md:116 +#: ../../source/ref-changelog.md:186 ../../source/ref-changelog.md:218 +#: ../../source/ref-changelog.md:322 ../../source/ref-changelog.md:420 +#: ../../source/ref-changelog.md:520 ../../source/ref-changelog.md:584 +#: ../../source/ref-changelog.md:677 ../../source/ref-changelog.md:777 +#: ../../source/ref-changelog.md:861 ../../source/ref-changelog.md:925 +#: ../../source/ref-changelog.md:983 ../../source/ref-changelog.md:1052 +#: ../../source/ref-changelog.md:1121 +msgid "Thanks to our contributors" +msgstr "感谢我们的贡献者" + +#: ../../source/ref-changelog.md:17 ../../source/ref-changelog.md:118 +#: ../../source/ref-changelog.md:188 ../../source/ref-changelog.md:220 +#: ../../source/ref-changelog.md:324 ../../source/ref-changelog.md:422 +#: ../../source/ref-changelog.md:522 ../../source/ref-changelog.md:586 +#: ../../source/ref-changelog.md:679 ../../source/ref-changelog.md:779 +#: ../../source/ref-changelog.md:863 ../../source/ref-changelog.md:927 +#: ../../source/ref-changelog.md:985 +msgid "" +"We would like to give our special thanks to all the contributors who made" +" the new version of Flower possible (in `git shortlog` order):" +msgstr "在此,我们要特别感谢所有为 Flower 的新版本做出贡献的人员(按 `git shortlog` 顺序排列):" + +#: ../../source/ref-changelog.md:19 +#, fuzzy msgid "" -"This function is deprecated since 1.13.0. Use :code: `flwr run` to start " -"a Flower simulation." +"`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. " +"Beutel`, `Daniel Nata Nugraha`, `Dimitris Stripelis`, `Heng Pan`, " +"`Javier`, `Mohammad Naseri`, `Robert Steiner`, `Waris Gill`, `William " +"Lindskog`, `Yan Gao`, `Yao Xu`, `wwjang` " +msgstr "" +"`Adam Narozniak`, `Anass Anhari`, `Charles Beauville`, `Dana-Farber`, " +"`Daniel J. Beutel`, `Daniel Nata Nugraha`, `Edoardo Gabrielli`, `Gustavo " +"Bertoli`, `Heng Pan`, `Javier`, `Mahdi`, `Steven Hé (Sīchàng)`, `Taner " +"Topal`, `achiverram28`, `danielnugraha`, `eunchung`, `ruthgal` " + +#: ../../source/ref-changelog.md:23 +#, fuzzy +msgid "" +"**Introduce `flwr ls` command** " +"([#4460](https://github.com/adap/flower/pull/4460), " +"[#4459](https://github.com/adap/flower/pull/4459), " +"[#4477](https://github.com/adap/flower/pull/4477))" +msgstr "" +"**引入新的模拟引擎** ([#1969](https://github.com/adap/flower/pull/1969), " +"[#2221](https://github.com/adap/flower/pull/2221), " +"[#2248](https://github.com/adap/flower/pull/2248))" + +#: ../../source/ref-changelog.md:25 +msgid "" +"The `flwr ls` command is now available to display details about all runs " +"(or one specific run). It supports the following usage options:" +msgstr "" + +#: ../../source/ref-changelog.md:27 +msgid "`flwr ls --runs [] []`: Lists all runs." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:8 of +#: ../../source/ref-changelog.md:28 msgid "" -"A function creating `Client` instances. The function must have the " -"signature `client_fn(context: Context). It should return a single client " -"instance of type `Client`. Note that the created client instances are " -"ephemeral and will often be destroyed after a single method invocation. " -"Since client instances are not long-lived, they should not attempt to " -"carry state over method invocations. Any state required by the instance " -"(model, dataset, hyperparameters, ...) should be (re-)created in either " -"the call to `client_fn` or the call to any of the client methods (e.g., " -"load evaluation data in the `evaluate` method itself)." +"`flwr ls --run-id [] []`: Displays details for " +"a specific run." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:18 of +#: ../../source/ref-changelog.md:30 +msgid "" +"This command provides information including the run ID, FAB ID and " +"version, run status, elapsed time, and timestamps for when the run was " +"created, started running, and finished." +msgstr "" + +#: ../../source/ref-changelog.md:32 #, fuzzy -msgid "The total number of clients in this simulation." -msgstr "需要等待的客户数量。" +msgid "" +"**Fuse SuperLink and SuperExec** " +"([#4358](https://github.com/adap/flower/pull/4358), " +"[#4403](https://github.com/adap/flower/pull/4403), " +"[#4406](https://github.com/adap/flower/pull/4406), " +"[#4357](https://github.com/adap/flower/pull/4357), " +"[#4359](https://github.com/adap/flower/pull/4359), " +"[#4354](https://github.com/adap/flower/pull/4354), " +"[#4229](https://github.com/adap/flower/pull/4229), " +"[#4283](https://github.com/adap/flower/pull/4283), " +"[#4352](https://github.com/adap/flower/pull/4352))" +msgstr "" +"**移除对 Python 3.7 的支持** " +"([#2280](https://github.com/adap/flower/pull/2280), " +"[#2299](https://github.com/adap/flower/pull/2299), " +"[#2304](https://github.com/adap/flower/pull/2304), " +"[#2306](https://github.com/adap/flower/pull/2306), " +"[#2355](https://github.com/adap/flower/pull/2355), " +"[#2356](https://github.com/adap/flower/pull/2356))" -#: flwr.simulation.legacy_app.start_simulation:20 of +#: ../../source/ref-changelog.md:34 msgid "" -"UNSUPPORTED, WILL BE REMOVED. USE `num_clients` INSTEAD. List " -"`client_id`s for each client. This is only required if `num_clients` is " -"not set. Setting both `num_clients` and `clients_ids` with " -"`len(clients_ids)` not equal to `num_clients` generates an error. Using " -"this argument will raise an error." +"SuperExec has been integrated into SuperLink, enabling SuperLink to " +"directly manage ServerApp processes (`flwr-serverapp`). The `flwr` CLI " +"now targets SuperLink's Exec API. Additionally, SuperLink introduces two " +"isolation modes for running ServerApps: `subprocess` (default) and " +"`process`, which can be specified using the `--isolation " +"{subprocess,process}` flag." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:26 of +#: ../../source/ref-changelog.md:36 +#, fuzzy msgid "" -"CPU and GPU resources for a single client. Supported keys are `num_cpus` " -"and `num_gpus`. To understand the GPU utilization caused by `num_gpus`, " -"as well as using custom resources, please consult the Ray documentation." +"**Introduce `flwr-serverapp` command** " +"([#4394](https://github.com/adap/flower/pull/4394), " +"[#4370](https://github.com/adap/flower/pull/4370), " +"[#4367](https://github.com/adap/flower/pull/4367), " +"[#4350](https://github.com/adap/flower/pull/4350), " +"[#4364](https://github.com/adap/flower/pull/4364), " +"[#4400](https://github.com/adap/flower/pull/4400), " +"[#4363](https://github.com/adap/flower/pull/4363), " +"[#4401](https://github.com/adap/flower/pull/4401), " +"[#4388](https://github.com/adap/flower/pull/4388), " +"[#4402](https://github.com/adap/flower/pull/4402))" msgstr "" +"**改进教程** ([#1468](https://github.com/adap/flower/pull/1468), " +"[#1470](https://github.com/adap/flower/pull/1470), " +"[#1472](https://github.com/adap/flower/pull/1472), " +"[#1473](https://github.com/adap/flower/pull/1473), " +"[#1474](https://github.com/adap/flower/pull/1474), " +"[#1475](https://github.com/adap/flower/pull/1475)))" -#: flwr.simulation.legacy_app.start_simulation:31 of +#: ../../source/ref-changelog.md:38 +msgid "" +"The `flwr-serverapp` command has been introduced as a CLI entry point " +"that runs a `ServerApp` process. This process communicates with SuperLink" +" to load and execute the `ServerApp` object, enabling isolated execution " +"and more flexible deployment." +msgstr "" + +#: ../../source/ref-changelog.md:40 #, fuzzy msgid "" -"An implementation of the abstract base class `flwr.server.Server`. If no " -"instance is provided, then `start_server` will create one." +"**Improve simulation engine and introduce `flwr-simulation` command** " +"([#4433](https://github.com/adap/flower/pull/4433), " +"[#4486](https://github.com/adap/flower/pull/4486), " +"[#4448](https://github.com/adap/flower/pull/4448), " +"[#4427](https://github.com/adap/flower/pull/4427), " +"[#4438](https://github.com/adap/flower/pull/4438), " +"[#4421](https://github.com/adap/flower/pull/4421), " +"[#4430](https://github.com/adap/flower/pull/4430), " +"[#4462](https://github.com/adap/flower/pull/4462))" +msgstr "" +"**移除对 Python 3.7 的支持** " +"([#2280](https://github.com/adap/flower/pull/2280), " +"[#2299](https://github.com/adap/flower/pull/2299), " +"[#2304](https://github.com/adap/flower/pull/2304), " +"[#2306](https://github.com/adap/flower/pull/2306), " +"[#2355](https://github.com/adap/flower/pull/2355), " +"[#2356](https://github.com/adap/flower/pull/2356))" + +#: ../../source/ref-changelog.md:42 +msgid "" +"The simulation engine has been significantly improved, resulting in " +"dramatically faster simulations. Additionally, the `flwr-simulation` " +"command has been introduced to enhance maintainability and provide a " +"dedicated entry point for running simulations." msgstr "" -"抽象基类 `flwr.server.strategy.Strategy` 的实现。如果没有提供策略,`start_server` 将使用 " -"`flwr.server.strategy.FedAvg`。" -#: flwr.simulation.legacy_app.start_simulation:37 of +#: ../../source/ref-changelog.md:44 #, fuzzy msgid "" -"An implementation of the abstract base class `flwr.server.Strategy`. If " -"no strategy is provided, then `start_server` will use " -"`flwr.server.strategy.FedAvg`." +"**Improve SuperLink message management** " +"([#4378](https://github.com/adap/flower/pull/4378), " +"[#4369](https://github.com/adap/flower/pull/4369))" msgstr "" -"抽象基类 `flwr.server.strategy.Strategy` 的实现。如果没有提供策略,`start_server` 将使用 " -"`flwr.server.strategy.FedAvg`。" +"** 更新代码示例** ([#1344](https://github.com/adap/flower/pull/1344), " +"[#1347](https://github.com/adap/flower/pull/1347))" -#: flwr.simulation.legacy_app.start_simulation:41 of +#: ../../source/ref-changelog.md:46 +msgid "" +"SuperLink now validates the destination node ID of instruction messages " +"and checks the TTL (time-to-live) for reply messages. When pulling reply " +"messages, an error reply will be generated and returned if the " +"corresponding instruction message does not exist, has expired, or if the " +"reply message exists but has expired." +msgstr "" + +#: ../../source/ref-changelog.md:48 #, fuzzy msgid "" -"An implementation of the abstract base class `flwr.server.ClientManager`." -" If no implementation is provided, then `start_simulation` will use " -"`flwr.server.client_manager.SimpleClientManager`." +"**Introduce FedDebug baseline** " +"([#3783](https://github.com/adap/flower/pull/3783))" +msgstr "**引入 start_driver**([#1697](https://github.com/adap/flower/pull/1697))" + +#: ../../source/ref-changelog.md:50 +msgid "" +"FedDebug is a framework that enhances debugging in Federated Learning by " +"enabling interactive inspection of the training process and automatically" +" identifying clients responsible for degrading the global model's " +"performance—all without requiring testing data or labels. Learn more in " +"the [FedDebug baseline " +"documentation](https://flower.ai/docs/baselines/feddebug.html)." msgstr "" -"抽象基类 `flwr.server.ClientManager` 的实现。如果没有提供实现,`start_server` 将使用 " -"`flwr.server.client_manager.SimpleClientManager`。" -#: flwr.simulation.legacy_app.start_simulation:45 of +#: ../../source/ref-changelog.md:52 +msgid "" +"**Update documentation** " +"([#4511](https://github.com/adap/flower/pull/4511), " +"[#4010](https://github.com/adap/flower/pull/4010), " +"[#4396](https://github.com/adap/flower/pull/4396), " +"[#4499](https://github.com/adap/flower/pull/4499), " +"[#4269](https://github.com/adap/flower/pull/4269), " +"[#3340](https://github.com/adap/flower/pull/3340), " +"[#4482](https://github.com/adap/flower/pull/4482), " +"[#4387](https://github.com/adap/flower/pull/4387), " +"[#4342](https://github.com/adap/flower/pull/4342), " +"[#4492](https://github.com/adap/flower/pull/4492), " +"[#4474](https://github.com/adap/flower/pull/4474), " +"[#4500](https://github.com/adap/flower/pull/4500), " +"[#4514](https://github.com/adap/flower/pull/4514), " +"[#4236](https://github.com/adap/flower/pull/4236), " +"[#4112](https://github.com/adap/flower/pull/4112), " +"[#3367](https://github.com/adap/flower/pull/3367), " +"[#4501](https://github.com/adap/flower/pull/4501), " +"[#4373](https://github.com/adap/flower/pull/4373), " +"[#4409](https://github.com/adap/flower/pull/4409), " +"[#4356](https://github.com/adap/flower/pull/4356), " +"[#4520](https://github.com/adap/flower/pull/4520), " +"[#4524](https://github.com/adap/flower/pull/4524), " +"[#4525](https://github.com/adap/flower/pull/4525), " +"[#4526](https://github.com/adap/flower/pull/4526), " +"[#4527](https://github.com/adap/flower/pull/4527), " +"[#4528](https://github.com/adap/flower/pull/4528), " +"[#4545](https://github.com/adap/flower/pull/4545), " +"[#4522](https://github.com/adap/flower/pull/4522), " +"[#4534](https://github.com/adap/flower/pull/4534), " +"[#4513](https://github.com/adap/flower/pull/4513), " +"[#4529](https://github.com/adap/flower/pull/4529), " +"[#4441](https://github.com/adap/flower/pull/4441), " +"[#4530](https://github.com/adap/flower/pull/4530), " +"[#4470](https://github.com/adap/flower/pull/4470), " +"[#4553](https://github.com/adap/flower/pull/4553), " +"[#4531](https://github.com/adap/flower/pull/4531), " +"[#4554](https://github.com/adap/flower/pull/4554), " +"[#4555](https://github.com/adap/flower/pull/4555), " +"[#4552](https://github.com/adap/flower/pull/4552), " +"[#4533](https://github.com/adap/flower/pull/4533))" +msgstr "" + +#: ../../source/ref-changelog.md:54 +msgid "" +"Many documentation pages and tutorials have been updated to improve " +"clarity, fix typos, incorporate user feedback, and stay aligned with the " +"latest features in the framework. Key updates include adding a guide for " +"designing stateful `ClientApp` objects, updating the comprehensive guide " +"for setting up and running Flower's `Simulation Engine`, updating the " +"XGBoost, scikit-learn, and JAX quickstart tutorials to use `flwr run`, " +"updating DP guide, removing outdated pages, updating Docker docs, and " +"marking legacy functions as deprecated. The [Secure Aggregation " +"Protocols](https://flower.ai/docs/framework/contributor-ref-secure-" +"aggregation-protocols.html) page has also been updated." +msgstr "" + +#: ../../source/ref-changelog.md:56 +#, fuzzy +msgid "" +"**Update examples and templates** " +"([#4510](https://github.com/adap/flower/pull/4510), " +"[#4368](https://github.com/adap/flower/pull/4368), " +"[#4121](https://github.com/adap/flower/pull/4121), " +"[#4329](https://github.com/adap/flower/pull/4329), " +"[#4382](https://github.com/adap/flower/pull/4382), " +"[#4248](https://github.com/adap/flower/pull/4248), " +"[#4395](https://github.com/adap/flower/pull/4395), " +"[#4386](https://github.com/adap/flower/pull/4386), " +"[#4408](https://github.com/adap/flower/pull/4408))" +msgstr "" +"**引入(试验性)REST API** ([#1594](https://github.com/adap/flower/pull/1594), " +"[#1690](https://github.com/adap/flower/pull/1690), " +"[#1695](https://github.com/adap/flower/pull/1695), " +"[#1712](https://github.com/adap/flower/pull/1712), " +"[#1802](https://github.com/adap/flower/pull/1802), " +"[#1770](https://github.com/adap/flower/pull/1770), " +"[#1733](https://github.com/adap/flower/pull/1733))" + +#: ../../source/ref-changelog.md:58 msgid "" -"Optional dictionary containing arguments for the call to `ray.init`. If " -"ray_init_args is None (the default), Ray will be initialized with the " -"following default args: { \"ignore_reinit_error\": True, " -"\"include_dashboard\": False } An empty dictionary can be used " -"(ray_init_args={}) to prevent any arguments from being passed to " -"ray.init." +"Multiple examples and templates have been updated to enhance usability " +"and correctness. The updates include the `30-minute-tutorial`, " +"`quickstart-jax`, `quickstart-pytorch`, `advanced-tensorflow` examples, " +"and the FlowerTune template." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:45 of +#: ../../source/ref-changelog.md:60 +#, fuzzy msgid "" -"Optional dictionary containing arguments for the call to `ray.init`. If " -"ray_init_args is None (the default), Ray will be initialized with the " -"following default args:" +"**Improve Docker support** " +"([#4506](https://github.com/adap/flower/pull/4506), " +"[#4424](https://github.com/adap/flower/pull/4424), " +"[#4224](https://github.com/adap/flower/pull/4224), " +"[#4413](https://github.com/adap/flower/pull/4413), " +"[#4414](https://github.com/adap/flower/pull/4414), " +"[#4336](https://github.com/adap/flower/pull/4336), " +"[#4420](https://github.com/adap/flower/pull/4420), " +"[#4407](https://github.com/adap/flower/pull/4407), " +"[#4422](https://github.com/adap/flower/pull/4422), " +"[#4532](https://github.com/adap/flower/pull/4532), " +"[#4540](https://github.com/adap/flower/pull/4540))" msgstr "" +"**普通改进**([#1872](https://github.com/adap/flower/pull/1872), " +"[#1866](https://github.com/adap/flower/pull/1866), " +"[#1884](https://github.com/adap/flower/pull/1884), " +"[#1837](https://github.com/adap/flower/pull/1837), " +"[#1477](https://github.com/adap/flower/pull/1477), " +"[#2171](https://github.com/adap/flower/pull/2171))" -#: flwr.simulation.legacy_app.start_simulation:49 of -msgid "{ \"ignore_reinit_error\": True, \"include_dashboard\": False }" +#: ../../source/ref-changelog.md:62 +msgid "" +"Docker images and configurations have been updated, including updating " +"Docker Compose files to version 1.13.0, refactoring the Docker build " +"matrix for better maintainability, updating `docker/build-push-action` to" +" 6.9.0, and improving Docker documentation." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:51 of +#: ../../source/ref-changelog.md:64 +#, fuzzy msgid "" -"An empty dictionary can be used (ray_init_args={}) to prevent any " -"arguments from being passed to ray.init." +"**Allow app installation without internet access** " +"([#4479](https://github.com/adap/flower/pull/4479), " +"[#4475](https://github.com/adap/flower/pull/4475))" msgstr "" +"** 更新代码示例** ([#1344](https://github.com/adap/flower/pull/1344), " +"[#1347](https://github.com/adap/flower/pull/1347))" -#: flwr.simulation.legacy_app.start_simulation:54 of +#: ../../source/ref-changelog.md:66 msgid "" -"Set to True to prevent `ray.shutdown()` in case " -"`ray.is_initialized()=True`." +"The `flwr build` command now includes a wheel file in the FAB, enabling " +"Flower app installation in environments without internet access via `flwr" +" install`." msgstr "" -#: flwr.simulation.legacy_app.start_simulation:56 of +#: ../../source/ref-changelog.md:68 +#, fuzzy msgid "" -"Optionally specify the type of actor to use. The actor object, which " -"persists throughout the simulation, will be the process in charge of " -"executing a ClientApp wrapping input argument `client_fn`." +"**Improve `flwr log` command** " +"([#4391](https://github.com/adap/flower/pull/4391), " +"[#4411](https://github.com/adap/flower/pull/4411), " +"[#4390](https://github.com/adap/flower/pull/4390), " +"[#4397](https://github.com/adap/flower/pull/4397))" msgstr "" +"更新开发人员工具([#1231](https://github.com/adap/flower/pull/1231), " +"[#1276](https://github.com/adap/flower/pull/1276), " +"[#1301](https://github.com/adap/flower/pull/1301), " +"[#1310](https://github.com/adap/flower/pull/1310)" -#: flwr.simulation.legacy_app.start_simulation:60 of +#: ../../source/ref-changelog.md:70 +#, fuzzy msgid "" -"If you want to create your own Actor classes, you might need to pass some" -" input argument. You can use this dictionary for such purpose." +"**Refactor SuperNode for better maintainability and efficiency** " +"([#4439](https://github.com/adap/flower/pull/4439), " +"[#4348](https://github.com/adap/flower/pull/4348), " +"[#4512](https://github.com/adap/flower/pull/4512), " +"[#4485](https://github.com/adap/flower/pull/4485))" msgstr "" +"更新开发人员工具([#1231](https://github.com/adap/flower/pull/1231), " +"[#1276](https://github.com/adap/flower/pull/1276), " +"[#1301](https://github.com/adap/flower/pull/1301), " +"[#1310](https://github.com/adap/flower/pull/1310)" -#: flwr.simulation.legacy_app.start_simulation:63 of +#: ../../source/ref-changelog.md:72 +#, fuzzy msgid "" -"(default: \"DEFAULT\") Optional string (\"DEFAULT\" or \"SPREAD\") for " -"the VCE to choose in which node the actor is placed. If you are an " -"advanced user needed more control you can use lower-level scheduling " -"strategies to pin actors to specific compute nodes (e.g. via " -"NodeAffinitySchedulingStrategy). Please note this is an advanced feature." -" For all details, please refer to the Ray documentation: " -"https://docs.ray.io/en/latest/ray-core/scheduling/index.html" +"**Support NumPy `2.0`** " +"([#4440](https://github.com/adap/flower/pull/4440))" +msgstr "** 支持 Python 3.10** ([#1320](https://github.com/adap/flower/pull/1320))" + +#: ../../source/ref-changelog.md:74 +#, fuzzy +msgid "" +"**Update infrastructure and CI/CD** " +"([#4466](https://github.com/adap/flower/pull/4466), " +"[#4419](https://github.com/adap/flower/pull/4419), " +"[#4338](https://github.com/adap/flower/pull/4338), " +"[#4334](https://github.com/adap/flower/pull/4334), " +"[#4456](https://github.com/adap/flower/pull/4456), " +"[#4446](https://github.com/adap/flower/pull/4446), " +"[#4415](https://github.com/adap/flower/pull/4415))" msgstr "" +"**普通改进**([#1872](https://github.com/adap/flower/pull/1872), " +"[#1866](https://github.com/adap/flower/pull/1866), " +"[#1884](https://github.com/adap/flower/pull/1884), " +"[#1837](https://github.com/adap/flower/pull/1837), " +"[#1477](https://github.com/adap/flower/pull/1477), " +"[#2171](https://github.com/adap/flower/pull/2171))" -#: flwr.simulation.legacy_app.start_simulation:72 of +#: ../../source/ref-changelog.md:76 #, fuzzy -msgid "**hist** -- Object containing metrics from training." -msgstr "**hist** -- 包含训练和评估指标的对象。" +msgid "" +"**Bugfixes** ([#4404](https://github.com/adap/flower/pull/4404), " +"[#4518](https://github.com/adap/flower/pull/4518), " +"[#4452](https://github.com/adap/flower/pull/4452), " +"[#4376](https://github.com/adap/flower/pull/4376), " +"[#4493](https://github.com/adap/flower/pull/4493), " +"[#4436](https://github.com/adap/flower/pull/4436), " +"[#4410](https://github.com/adap/flower/pull/4410), " +"[#4442](https://github.com/adap/flower/pull/4442), " +"[#4375](https://github.com/adap/flower/pull/4375), " +"[#4515](https://github.com/adap/flower/pull/4515))" +msgstr "" +"** 更新文档** ([#1629](https://github.com/adap/flower/pull/1629), " +"[#1628](https://github.com/adap/flower/pull/1628), " +"[#1620](https://github.com/adap/flower/pull/1620), " +"[#1618](https://github.com/adap/flower/pull/1618), " +"[#1617](https://github.com/adap/flower/pull/1617), " +"[#1613](https://github.com/adap/flower/pull/1613), " +"[#1614](https://github.com/adap/flower/pull/1614)))" -#: ../../source/ref-changelog.md:1 -msgid "Changelog" -msgstr "更新日志" +#: ../../source/ref-changelog.md:78 +msgid "" +"**General improvements** " +"([#4454](https://github.com/adap/flower/pull/4454), " +"[#4365](https://github.com/adap/flower/pull/4365), " +"[#4423](https://github.com/adap/flower/pull/4423), " +"[#4516](https://github.com/adap/flower/pull/4516), " +"[#4509](https://github.com/adap/flower/pull/4509), " +"[#4498](https://github.com/adap/flower/pull/4498), " +"[#4371](https://github.com/adap/flower/pull/4371), " +"[#4449](https://github.com/adap/flower/pull/4449), " +"[#4488](https://github.com/adap/flower/pull/4488), " +"[#4478](https://github.com/adap/flower/pull/4478), " +"[#4392](https://github.com/adap/flower/pull/4392), " +"[#4483](https://github.com/adap/flower/pull/4483), " +"[#4517](https://github.com/adap/flower/pull/4517), " +"[#4330](https://github.com/adap/flower/pull/4330), " +"[#4458](https://github.com/adap/flower/pull/4458), " +"[#4347](https://github.com/adap/flower/pull/4347), " +"[#4429](https://github.com/adap/flower/pull/4429), " +"[#4463](https://github.com/adap/flower/pull/4463), " +"[#4496](https://github.com/adap/flower/pull/4496), " +"[#4508](https://github.com/adap/flower/pull/4508), " +"[#4444](https://github.com/adap/flower/pull/4444), " +"[#4417](https://github.com/adap/flower/pull/4417), " +"[#4504](https://github.com/adap/flower/pull/4504), " +"[#4418](https://github.com/adap/flower/pull/4418), " +"[#4480](https://github.com/adap/flower/pull/4480), " +"[#4455](https://github.com/adap/flower/pull/4455), " +"[#4468](https://github.com/adap/flower/pull/4468), " +"[#4385](https://github.com/adap/flower/pull/4385), " +"[#4487](https://github.com/adap/flower/pull/4487), " +"[#4393](https://github.com/adap/flower/pull/4393), " +"[#4489](https://github.com/adap/flower/pull/4489), " +"[#4389](https://github.com/adap/flower/pull/4389), " +"[#4507](https://github.com/adap/flower/pull/4507), " +"[#4469](https://github.com/adap/flower/pull/4469), " +"[#4340](https://github.com/adap/flower/pull/4340), " +"[#4353](https://github.com/adap/flower/pull/4353), " +"[#4494](https://github.com/adap/flower/pull/4494), " +"[#4461](https://github.com/adap/flower/pull/4461), " +"[#4362](https://github.com/adap/flower/pull/4362), " +"[#4473](https://github.com/adap/flower/pull/4473), " +"[#4405](https://github.com/adap/flower/pull/4405), " +"[#4416](https://github.com/adap/flower/pull/4416), " +"[#4453](https://github.com/adap/flower/pull/4453), " +"[#4491](https://github.com/adap/flower/pull/4491), " +"[#4539](https://github.com/adap/flower/pull/4539), " +"[#4542](https://github.com/adap/flower/pull/4542), " +"[#4538](https://github.com/adap/flower/pull/4538), " +"[#4543](https://github.com/adap/flower/pull/4543), " +"[#4541](https://github.com/adap/flower/pull/4541), " +"[#4550](https://github.com/adap/flower/pull/4550), " +"[#4481](https://github.com/adap/flower/pull/4481))" +msgstr "" + +#: ../../source/ref-changelog.md:80 ../../source/ref-changelog.md:176 +#: ../../source/ref-changelog.md:279 ../../source/ref-changelog.md:386 +msgid "" +"As always, many parts of the Flower framework and quality infrastructure " +"were improved and updated." +msgstr "" -#: ../../source/ref-changelog.md:3 +#: ../../source/ref-changelog.md:82 ../../source/ref-changelog.md:281 +#: ../../source/ref-changelog.md:398 ../../source/ref-changelog.md:490 +#: ../../source/ref-changelog.md:1473 +msgid "Deprecations" +msgstr "停用" + +#: ../../source/ref-changelog.md:84 #, fuzzy -msgid "v1.12.0 (2024-10-14)" -msgstr "v1.1.0 (2022-10-31)" +msgid "**Deprecate Python 3.9**" +msgstr "** 过时的 Python 3.7**" -#: ../../source/ref-changelog.md:5 ../../source/ref-changelog.md:75 -#: ../../source/ref-changelog.md:107 ../../source/ref-changelog.md:211 -#: ../../source/ref-changelog.md:309 ../../source/ref-changelog.md:409 -#: ../../source/ref-changelog.md:473 ../../source/ref-changelog.md:566 -#: ../../source/ref-changelog.md:666 ../../source/ref-changelog.md:750 -#: ../../source/ref-changelog.md:814 ../../source/ref-changelog.md:872 -#: ../../source/ref-changelog.md:941 ../../source/ref-changelog.md:1010 -msgid "Thanks to our contributors" -msgstr "感谢我们的贡献者" +#: ../../source/ref-changelog.md:86 +msgid "" +"Flower is deprecating support for Python 3.9 as several of its " +"dependencies are phasing out compatibility with this version. While no " +"immediate changes have been made, users are encouraged to plan for " +"upgrading to a supported Python version." +msgstr "" -#: ../../source/ref-changelog.md:7 ../../source/ref-changelog.md:77 -#: ../../source/ref-changelog.md:109 ../../source/ref-changelog.md:213 -#: ../../source/ref-changelog.md:311 ../../source/ref-changelog.md:411 -#: ../../source/ref-changelog.md:475 ../../source/ref-changelog.md:568 -#: ../../source/ref-changelog.md:668 ../../source/ref-changelog.md:752 -#: ../../source/ref-changelog.md:816 ../../source/ref-changelog.md:874 +#: ../../source/ref-changelog.md:90 +#, fuzzy msgid "" -"We would like to give our special thanks to all the contributors who made" -" the new version of Flower possible (in `git shortlog` order):" -msgstr "在此,我们要特别感谢所有为 Flower 的新版本做出贡献的人员(按 `git shortlog` 顺序排列):" +"**Remove `flower-superexec` command** " +"([#4351](https://github.com/adap/flower/pull/4351))" +msgstr "**移除过时的 KerasClient**([#857](https://github.com/adap/flower/pull/857))" + +#: ../../source/ref-changelog.md:92 +msgid "" +"The `flower-superexec` command, previously used to launch SuperExec, is " +"no longer functional as SuperExec has been merged into SuperLink. " +"Starting an additional SuperExec is no longer necessary when SuperLink is" +" initiated." +msgstr "" + +#: ../../source/ref-changelog.md:94 +#, fuzzy +msgid "" +"**Remove `flower-server-app` command** " +"([#4490](https://github.com/adap/flower/pull/4490))" +msgstr "**移除过时的 KerasClient**([#857](https://github.com/adap/flower/pull/857))" + +#: ../../source/ref-changelog.md:96 +msgid "" +"The `flower-server-app` command has been removed. To start a Flower app, " +"please use the `flwr run` command instead." +msgstr "" + +#: ../../source/ref-changelog.md:98 +#, fuzzy +msgid "" +"**Remove `app` argument from `flower-supernode` command** " +"([#4497](https://github.com/adap/flower/pull/4497))" +msgstr "**移除过时的 KerasClient**([#857](https://github.com/adap/flower/pull/857))" + +#: ../../source/ref-changelog.md:100 +msgid "" +"The usage of `flower-supernode ` has been removed. SuperNode " +"will now load the FAB delivered by SuperLink, and it is no longer " +"possible to directly specify an app directory." +msgstr "" + +#: ../../source/ref-changelog.md:102 +#, fuzzy +msgid "" +"**Remove support for non-app simulations** " +"([#4431](https://github.com/adap/flower/pull/4431))" +msgstr "**改进模拟中的 GPU 支持**([#1555](https://github.com/adap/flower/pull/1555))" + +#: ../../source/ref-changelog.md:104 +msgid "" +"The simulation engine (via `flower-simulation`) now exclusively supports " +"passing an app." +msgstr "" + +#: ../../source/ref-changelog.md:106 +#, fuzzy +msgid "" +"**Rename CLI arguments for `flower-superlink` command** " +"([#4412](https://github.com/adap/flower/pull/4412))" +msgstr "**移除过时的 KerasClient**([#857](https://github.com/adap/flower/pull/857))" -#: ../../source/ref-changelog.md:9 +#: ../../source/ref-changelog.md:108 +msgid "" +"The `--driver-api-address` argument has been renamed to `--serverappio-" +"api-address` in the `flower-superlink` command to reflect the renaming of" +" the `Driver` service to the `ServerAppIo` service." +msgstr "" + +#: ../../source/ref-changelog.md:110 +#, fuzzy +msgid "" +"**Rename CLI arguments for `flwr-serverapp` and `flwr-clientapp` " +"commands** ([#4495](https://github.com/adap/flower/pull/4495))" +msgstr "**移除过时的 KerasClient**([#857](https://github.com/adap/flower/pull/857))" + +#: ../../source/ref-changelog.md:112 +msgid "" +"The CLI arguments have been renamed for clarity and consistency. " +"Specifically, `--superlink` for `flwr-serverapp` is now `--serverappio-" +"api-address`, and `--supernode` for `flwr-clientapp` is now " +"`--clientappio-api-address`." +msgstr "" + +#: ../../source/ref-changelog.md:114 +#, fuzzy +msgid "v1.12.0 (2024-10-14)" +msgstr "v1.1.0 (2022-10-31)" + +#: ../../source/ref-changelog.md:120 #, fuzzy msgid "" "`Adam Narozniak`, `Audris`, `Charles Beauville`, `Chong Shen Ng`, `Daniel" @@ -17825,20 +18783,7 @@ msgstr "" "Topal`, `achiverram28`, `danielnugraha`, `eunchung`, `ruthgal` " -#: ../../source/ref-changelog.md:11 ../../source/ref-changelog.md:113 -#: ../../source/ref-changelog.md:217 ../../source/ref-changelog.md:315 -#: ../../source/ref-changelog.md:415 ../../source/ref-changelog.md:479 -#: ../../source/ref-changelog.md:572 ../../source/ref-changelog.md:672 -#: ../../source/ref-changelog.md:756 ../../source/ref-changelog.md:820 -#: ../../source/ref-changelog.md:878 ../../source/ref-changelog.md:947 -#: ../../source/ref-changelog.md:1076 ../../source/ref-changelog.md:1118 -#: ../../source/ref-changelog.md:1185 ../../source/ref-changelog.md:1251 -#: ../../source/ref-changelog.md:1296 ../../source/ref-changelog.md:1335 -#: ../../source/ref-changelog.md:1368 ../../source/ref-changelog.md:1418 -msgid "What's new?" -msgstr "有什么新内容?" - -#: ../../source/ref-changelog.md:13 +#: ../../source/ref-changelog.md:124 #, fuzzy msgid "" "**Introduce SuperExec log streaming** " @@ -17856,7 +18801,7 @@ msgstr "" "[#2355](https://github.com/adap/flower/pull/2355), " "[#2356](https://github.com/adap/flower/pull/2356))" -#: ../../source/ref-changelog.md:15 +#: ../../source/ref-changelog.md:126 msgid "" "Flower now supports log streaming from a remote SuperExec using the `flwr" " log` command. This new feature allows you to monitor logs from SuperExec" @@ -17864,7 +18809,7 @@ msgid "" "`)." msgstr "" -#: ../../source/ref-changelog.md:17 +#: ../../source/ref-changelog.md:128 #, fuzzy msgid "" "**Improve `flwr new` templates** " @@ -17881,14 +18826,14 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475)))" -#: ../../source/ref-changelog.md:19 +#: ../../source/ref-changelog.md:130 msgid "" "The `flwr new` command templates for MLX, NumPy, sklearn, JAX, and " "PyTorch have been updated to improve usability and consistency across " "frameworks." msgstr "" -#: ../../source/ref-changelog.md:21 +#: ../../source/ref-changelog.md:132 #, fuzzy msgid "" "**Migrate ID handling to use unsigned 64-bit integers** " @@ -17900,7 +18845,7 @@ msgstr "" "[#1286](https://github.com/adap/flower/pull/1286), " "[#1282](https://github.com/adap/flower/pull/1282))" -#: ../../source/ref-changelog.md:23 +#: ../../source/ref-changelog.md:134 msgid "" "Node IDs, run IDs, and related fields have been migrated from signed " "64-bit integers (`sint64`) to unsigned 64-bit integers (`uint64`). To " @@ -17911,14 +18856,14 @@ msgid "" "`uint64`." msgstr "" -#: ../../source/ref-changelog.md:25 +#: ../../source/ref-changelog.md:136 #, fuzzy msgid "" "**Add Flower architecture explanation** " "([#3270](https://github.com/adap/flower/pull/3270))" msgstr "**重构文档**([#1387](https://github.com/adap/flower/pull/1387))" -#: ../../source/ref-changelog.md:27 +#: ../../source/ref-changelog.md:138 msgid "" "A new [Flower architecture explainer](https://flower.ai/docs/framework" "/explanation-flower-architecture.html) page introduces Flower components " @@ -17926,14 +18871,14 @@ msgid "" "documentation if you're interested." msgstr "" -#: ../../source/ref-changelog.md:29 +#: ../../source/ref-changelog.md:140 #, fuzzy msgid "" "**Introduce FedRep baseline** " "([#3790](https://github.com/adap/flower/pull/3790))" msgstr "**引入 start_driver**([#1697](https://github.com/adap/flower/pull/1697))" -#: ../../source/ref-changelog.md:31 +#: ../../source/ref-changelog.md:142 msgid "" "FedRep is a federated learning algorithm that learns shared data " "representations across clients while allowing each to maintain " @@ -17943,7 +18888,7 @@ msgid "" "([arxiv](https://arxiv.org/abs/2102.07078))" msgstr "" -#: ../../source/ref-changelog.md:33 +#: ../../source/ref-changelog.md:144 #, fuzzy msgid "" "**Improve FlowerTune template and LLM evaluation pipelines** " @@ -17975,7 +18920,7 @@ msgstr "" "[#1305](https://github.com/adap/flower/pull/1305), " "[#1307](https://github.com/adap/flower/pull/1307))" -#: ../../source/ref-changelog.md:35 +#: ../../source/ref-changelog.md:146 msgid "" "Refined evaluation pipelines, metrics, and documentation for the upcoming" " FlowerTune LLM Leaderboard across multiple domains including Finance, " @@ -17984,7 +18929,7 @@ msgid "" "exciting challenge!" msgstr "" -#: ../../source/ref-changelog.md:37 +#: ../../source/ref-changelog.md:148 #, fuzzy msgid "" "**Enhance Docker Support and Documentation** " @@ -18010,7 +18955,7 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475)))" -#: ../../source/ref-changelog.md:39 +#: ../../source/ref-changelog.md:150 msgid "" "Upgraded Ubuntu base image to 24.04, added SBOM and gcc to Docker images," " and comprehensively updated [Docker " @@ -18018,7 +18963,7 @@ msgid "" "including quickstart guides and distributed Docker Compose instructions." msgstr "" -#: ../../source/ref-changelog.md:41 +#: ../../source/ref-changelog.md:152 #, fuzzy msgid "" "**Introduce Flower glossary** " @@ -18029,7 +18974,7 @@ msgstr "" "([#1858](https://github.com/adap/flower/pull/1858), " "[#1897](https://github.com/adap/flower/pull/1897))" -#: ../../source/ref-changelog.md:43 +#: ../../source/ref-changelog.md:154 msgid "" "Added the [Federated Learning glossary](https://flower.ai/glossary/) to " "the Flower repository, located under the `flower/glossary/` directory. " @@ -18039,7 +18984,7 @@ msgid "" "become a Flower contributor!" msgstr "" -#: ../../source/ref-changelog.md:45 +#: ../../source/ref-changelog.md:156 #, fuzzy msgid "" "**Implement Message Time-to-Live (TTL)** " @@ -18057,7 +19002,7 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614)))" -#: ../../source/ref-changelog.md:47 +#: ../../source/ref-changelog.md:158 msgid "" "Added comprehensive TTL support for messages in Flower's SuperLink. " "Messages are now automatically expired and cleaned up based on " @@ -18065,7 +19010,7 @@ msgid "" " default in the high-level API)." msgstr "" -#: ../../source/ref-changelog.md:49 +#: ../../source/ref-changelog.md:160 #, fuzzy msgid "" "**Improve FAB handling** " @@ -18079,14 +19024,14 @@ msgstr "" "[#1301](https://github.com/adap/flower/pull/1301), " "[#1310](https://github.com/adap/flower/pull/1310)" -#: ../../source/ref-changelog.md:51 +#: ../../source/ref-changelog.md:162 msgid "" "An 8-character hash is now appended to the FAB file name. The `flwr " "install` command installs FABs with a more flattened folder structure, " "reducing it from 3 levels to 1." msgstr "" -#: ../../source/ref-changelog.md:53 +#: ../../source/ref-changelog.md:164 #, fuzzy msgid "" "**Update documentation** " @@ -18105,7 +19050,7 @@ msgstr "" "[#2355](https://github.com/adap/flower/pull/2355), " "[#2356](https://github.com/adap/flower/pull/2356))" -#: ../../source/ref-changelog.md:55 +#: ../../source/ref-changelog.md:166 msgid "" "Updated quickstart tutorials (PyTorch Lightning, TensorFlow, Hugging " "Face, Fastai) to use the new `flwr run` command and removed default title" @@ -18113,7 +19058,7 @@ msgid "" "added to FAQ." msgstr "" -#: ../../source/ref-changelog.md:57 +#: ../../source/ref-changelog.md:168 #, fuzzy msgid "" "**Update example projects** " @@ -18133,7 +19078,7 @@ msgstr "" "[#1477](https://github.com/adap/flower/pull/1477), " "[#2171](https://github.com/adap/flower/pull/2171))" -#: ../../source/ref-changelog.md:59 +#: ../../source/ref-changelog.md:170 msgid "" "Refreshed multiple example projects including vertical FL, PyTorch " "(advanced), Pandas, Secure Aggregation, and XGBoost examples. Optimized " @@ -18141,7 +19086,7 @@ msgid "" "simulation examples." msgstr "" -#: ../../source/ref-changelog.md:61 +#: ../../source/ref-changelog.md:172 #, fuzzy msgid "" "**Update translations** " @@ -18161,7 +19106,7 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614)))" -#: ../../source/ref-changelog.md:63 +#: ../../source/ref-changelog.md:174 msgid "" "**General improvements** " "([#4239](https://github.com/adap/flower/pull/4239), " @@ -18208,26 +19153,7 @@ msgid "" "[#4333](https://github.com/adap/flower/pull/4333))" msgstr "" -#: ../../source/ref-changelog.md:65 ../../source/ref-changelog.md:168 -#: ../../source/ref-changelog.md:275 -msgid "" -"As always, many parts of the Flower framework and quality infrastructure " -"were improved and updated." -msgstr "" - -#: ../../source/ref-changelog.md:67 ../../source/ref-changelog.md:101 -#: ../../source/ref-changelog.md:181 ../../source/ref-changelog.md:297 -#: ../../source/ref-changelog.md:393 ../../source/ref-changelog.md:467 -#: ../../source/ref-changelog.md:542 ../../source/ref-changelog.md:654 -#: ../../source/ref-changelog.md:744 ../../source/ref-changelog.md:808 -#: ../../source/ref-changelog.md:866 ../../source/ref-changelog.md:935 -#: ../../source/ref-changelog.md:997 ../../source/ref-changelog.md:1016 -#: ../../source/ref-changelog.md:1172 ../../source/ref-changelog.md:1243 -#: ../../source/ref-changelog.md:1280 ../../source/ref-changelog.md:1323 -msgid "Incompatible changes" -msgstr "不兼容的更改" - -#: ../../source/ref-changelog.md:69 +#: ../../source/ref-changelog.md:180 #, fuzzy msgid "" "**Drop Python 3.8 support and update minimum version to 3.9** " @@ -18248,7 +19174,7 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614)))" -#: ../../source/ref-changelog.md:71 +#: ../../source/ref-changelog.md:182 msgid "" "Python 3.8 support was deprecated in Flower 1.9, and this release removes" " support. Flower now requires Python 3.9 or later (Python 3.11 is " @@ -18256,12 +19182,12 @@ msgid "" "minimum supported version. Flower now supports Python 3.9 to 3.12." msgstr "" -#: ../../source/ref-changelog.md:73 +#: ../../source/ref-changelog.md:184 #, fuzzy msgid "v1.11.1 (2024-09-11)" msgstr "v1.3.0 (2023-02-06)" -#: ../../source/ref-changelog.md:79 +#: ../../source/ref-changelog.md:190 #, fuzzy msgid "" "`Charles Beauville`, `Chong Shen Ng`, `Daniel J. Beutel`, `Heng Pan`, " @@ -18273,12 +19199,12 @@ msgstr "" "Topal`, `achiverram28`, `danielnugraha`, `eunchung`, `ruthgal` " -#: ../../source/ref-changelog.md:81 +#: ../../source/ref-changelog.md:192 #, fuzzy msgid "Improvements" msgstr "可选的改进措施" -#: ../../source/ref-changelog.md:83 +#: ../../source/ref-changelog.md:194 #, fuzzy msgid "" "**Implement** `keys/values/items` **methods for** `TypedDict` " @@ -18287,21 +19213,21 @@ msgstr "" "**使** `get_parameters` **可配置** " "([#1242](https://github.com/adap/flower/pull/1242))" -#: ../../source/ref-changelog.md:85 +#: ../../source/ref-changelog.md:196 #, fuzzy msgid "" "**Fix parsing of** `--executor-config` **if present** " "([#4125](https://github.com/adap/flower/pull/4125))" msgstr "**引入 start_driver**([#1697](https://github.com/adap/flower/pull/1697))" -#: ../../source/ref-changelog.md:87 +#: ../../source/ref-changelog.md:198 #, fuzzy msgid "" "**Adjust framework name in templates docstrings** " "([#4127](https://github.com/adap/flower/pull/4127))" msgstr "**新的 scikit-learn 代码示例** ([#748](https://github.com/adap/flower/pull/748))" -#: ../../source/ref-changelog.md:89 +#: ../../source/ref-changelog.md:200 #, fuzzy msgid "" "**Update** `flwr new` **Hugging Face template** " @@ -18310,14 +19236,14 @@ msgstr "" "**新的Hugging Face Transformers代码示例** " "([#863](https://github.com/adap/flower/pull/863))" -#: ../../source/ref-changelog.md:91 +#: ../../source/ref-changelog.md:202 #, fuzzy msgid "" "**Fix** `flwr new` **FlowerTune template** " "([#4123](https://github.com/adap/flower/pull/4123))" msgstr "**新的 iOS CoreML 代码示例**([#1289](https://github.com/adap/flower/pull/1289))" -#: ../../source/ref-changelog.md:93 +#: ../../source/ref-changelog.md:204 #, fuzzy msgid "" "**Add buffer time after** `ServerApp` **thread initialization** " @@ -18326,14 +19252,14 @@ msgstr "" "**在模拟过程中为***`历史`***对象添加训练指标*** " "([#1696](https://github.com/adap/flower/pull/1696))" -#: ../../source/ref-changelog.md:95 +#: ../../source/ref-changelog.md:206 #, fuzzy msgid "" "**Handle unsuitable resources for simulation** " "([#4143](https://github.com/adap/flower/pull/4143))" msgstr "** 添加新的模拟监控指南** ([#1649](https://github.com/adap/flower/pull/1649))" -#: ../../source/ref-changelog.md:97 +#: ../../source/ref-changelog.md:208 #, fuzzy msgid "" "**Update example READMEs** " @@ -18342,19 +19268,19 @@ msgstr "" "**介绍Flower Android SDK** " "([#2131](https://github.com/adap/flower/pull/2131))" -#: ../../source/ref-changelog.md:99 +#: ../../source/ref-changelog.md:210 #, fuzzy msgid "" "**Update SuperNode authentication docs** " "([#4160](https://github.com/adap/flower/pull/4160))" msgstr "** 添加一个新的 gRPC 选项**([#2197](https://github.com/adap/flower/pull/2197))" -#: ../../source/ref-changelog.md:105 +#: ../../source/ref-changelog.md:216 #, fuzzy msgid "v1.11.0 (2024-08-30)" msgstr "v1.3.0 (2023-02-06)" -#: ../../source/ref-changelog.md:111 +#: ../../source/ref-changelog.md:222 #, fuzzy msgid "" "`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. " @@ -18369,7 +19295,7 @@ msgstr "" "Topal`, `achiverram28`, `danielnugraha`, `eunchung`, `ruthgal` " -#: ../../source/ref-changelog.md:115 +#: ../../source/ref-changelog.md:226 msgid "" "**Deliver Flower App Bundle (FAB) to SuperLink and SuperNodes** " "([#4006](https://github.com/adap/flower/pull/4006), " @@ -18396,14 +19322,14 @@ msgid "" "[#3619](https://github.com/adap/flower/pull/3619))" msgstr "" -#: ../../source/ref-changelog.md:117 +#: ../../source/ref-changelog.md:228 msgid "" "Dynamic code updates are here! `flwr run` can now ship and install the " "latest version of your `ServerApp` and `ClientApp` to an already-running " "federation (SuperLink and SuperNodes)." msgstr "" -#: ../../source/ref-changelog.md:119 +#: ../../source/ref-changelog.md:230 msgid "" "How does it work? `flwr run` bundles your Flower app into a single FAB " "(Flower App Bundle) file. It then ships this FAB file, via the SuperExec," @@ -18413,11 +19339,11 @@ msgid "" "projects!) dynamically." msgstr "" -#: ../../source/ref-changelog.md:121 +#: ../../source/ref-changelog.md:232 msgid "`flwr run` is all you need." msgstr "" -#: ../../source/ref-changelog.md:123 +#: ../../source/ref-changelog.md:234 #, fuzzy msgid "" "**Introduce isolated** `ClientApp` **execution** " @@ -18451,30 +19377,30 @@ msgstr "" "[#1564](https://github.com/adap/flower/pull/1564), " "[#1566](https://github.com/adap/flower/pull/1566))" -#: ../../source/ref-changelog.md:125 +#: ../../source/ref-changelog.md:236 msgid "" "The SuperNode can now run your `ClientApp` in a fully isolated way. In an" " enterprise deployment, this allows you to set strict limits on what the " "`ClientApp` can and cannot do." msgstr "" -#: ../../source/ref-changelog.md:127 +#: ../../source/ref-changelog.md:238 msgid "`flower-supernode` supports three `--isolation` modes:" msgstr "" -#: ../../source/ref-changelog.md:129 +#: ../../source/ref-changelog.md:240 msgid "" "Unset: The SuperNode runs the `ClientApp` in the same process (as in " "previous versions of Flower). This is the default mode." msgstr "" -#: ../../source/ref-changelog.md:130 +#: ../../source/ref-changelog.md:241 msgid "" "`--isolation=subprocess`: The SuperNode starts a subprocess to run the " "`ClientApp`." msgstr "" -#: ../../source/ref-changelog.md:131 +#: ../../source/ref-changelog.md:242 msgid "" "`--isolation=process`: The SuperNode expects an externally-managed " "process to run the `ClientApp`. This external process is not managed by " @@ -18483,7 +19409,7 @@ msgid "" "`flwr/clientapp` Docker image." msgstr "" -#: ../../source/ref-changelog.md:133 +#: ../../source/ref-changelog.md:244 #, fuzzy msgid "" "**Improve Docker support for enterprise deployments** " @@ -18502,17 +19428,17 @@ msgstr "" "[#2355](https://github.com/adap/flower/pull/2355), " "[#2356](https://github.com/adap/flower/pull/2356))" -#: ../../source/ref-changelog.md:135 +#: ../../source/ref-changelog.md:246 msgid "" "Flower 1.11 ships many Docker improvements that are especially useful for" " enterprise deployments:" msgstr "" -#: ../../source/ref-changelog.md:137 +#: ../../source/ref-changelog.md:248 msgid "`flwr/supernode` comes with a new Alpine Docker image." msgstr "" -#: ../../source/ref-changelog.md:138 +#: ../../source/ref-changelog.md:249 msgid "" "`flwr/clientapp` is a new image to be used with the `--isolation=process`" " option. In this mode, SuperNode and `ClientApp` run in two different " @@ -18522,19 +19448,19 @@ msgid "" "enterprise settings." msgstr "" -#: ../../source/ref-changelog.md:139 +#: ../../source/ref-changelog.md:250 msgid "" "New all-in-one Docker Compose enables you to easily start a full Flower " "Deployment Engine on a single machine." msgstr "" -#: ../../source/ref-changelog.md:140 +#: ../../source/ref-changelog.md:251 msgid "" "Completely new Docker documentation: " "https://flower.ai/docs/framework/docker/index.html" msgstr "" -#: ../../source/ref-changelog.md:142 +#: ../../source/ref-changelog.md:253 #, fuzzy msgid "" "**Improve SuperNode authentication** " @@ -18546,13 +19472,13 @@ msgstr "" "[#2390](https://github.com/adap/flower/pull/2390), " "[#2493](https://github.com/adap/flower/pull/2493))" -#: ../../source/ref-changelog.md:144 +#: ../../source/ref-changelog.md:255 msgid "" "SuperNode auth has been improved in several ways, including improved " "logging, improved testing, and improved error handling." msgstr "" -#: ../../source/ref-changelog.md:146 +#: ../../source/ref-changelog.md:257 #, fuzzy msgid "" "**Update** `flwr new` **templates** " @@ -18573,13 +19499,13 @@ msgstr "" "[#1477](https://github.com/adap/flower/pull/1477), " "[#2171](https://github.com/adap/flower/pull/2171))" -#: ../../source/ref-changelog.md:148 +#: ../../source/ref-changelog.md:259 msgid "" "All `flwr new` templates have been updated to show the latest recommended" " use of Flower APIs." msgstr "" -#: ../../source/ref-changelog.md:150 +#: ../../source/ref-changelog.md:261 #, fuzzy msgid "" "**Improve Simulation Engine** " @@ -18599,14 +19525,14 @@ msgstr "" "[#2355](https://github.com/adap/flower/pull/2355), " "[#2356](https://github.com/adap/flower/pull/2356))" -#: ../../source/ref-changelog.md:152 +#: ../../source/ref-changelog.md:263 msgid "" "The Flower Simulation Engine comes with several updates, including " "improved run config support, verbose logging, simulation backend " "configuration via `flwr run`, and more." msgstr "" -#: ../../source/ref-changelog.md:154 +#: ../../source/ref-changelog.md:265 #, fuzzy msgid "" "**Improve** `RecordSet` " @@ -18618,7 +19544,7 @@ msgstr "" "[#2390](https://github.com/adap/flower/pull/2390), " "[#2493](https://github.com/adap/flower/pull/2493))" -#: ../../source/ref-changelog.md:156 +#: ../../source/ref-changelog.md:267 msgid "" "`RecordSet` is the core object to exchange model parameters, " "configuration values and metrics between `ClientApp` and `ServerApp`. " @@ -18626,7 +19552,7 @@ msgid "" "related `*Record` types." msgstr "" -#: ../../source/ref-changelog.md:158 +#: ../../source/ref-changelog.md:269 #, fuzzy msgid "" "**Update documentation** " @@ -18657,14 +19583,14 @@ msgstr "" "[#2225](https://github.com/adap/flower/pull/2225), " "[#2183](https://github.com/adap/flower/pull/2183))" -#: ../../source/ref-changelog.md:160 +#: ../../source/ref-changelog.md:271 msgid "" "Many parts of the documentation, including the main tutorial, have been " "migrated to show new Flower APIs and other new Flower features like the " "improved Docker support." msgstr "" -#: ../../source/ref-changelog.md:162 +#: ../../source/ref-changelog.md:273 msgid "" "**Migrate code example to use new Flower APIs** " "([#3758](https://github.com/adap/flower/pull/3758), " @@ -18690,11 +19616,11 @@ msgid "" "[#3313](https://github.com/adap/flower/pull/3313))" msgstr "" -#: ../../source/ref-changelog.md:164 +#: ../../source/ref-changelog.md:275 msgid "Many code examples have been migrated to use new Flower APIs." msgstr "" -#: ../../source/ref-changelog.md:166 +#: ../../source/ref-changelog.md:277 msgid "" "**Update Flower framework, framework internals and quality " "infrastructure** ([#4018](https://github.com/adap/flower/pull/4018), " @@ -18736,19 +19662,14 @@ msgid "" "[#4038](https://github.com/adap/flower/pull/4038))" msgstr "" -#: ../../source/ref-changelog.md:170 ../../source/ref-changelog.md:287 -#: ../../source/ref-changelog.md:379 ../../source/ref-changelog.md:1362 -msgid "Deprecations" -msgstr "停用" - -#: ../../source/ref-changelog.md:172 +#: ../../source/ref-changelog.md:283 #, fuzzy msgid "" "**Deprecate accessing `Context` via `Client.context`** " "([#3797](https://github.com/adap/flower/pull/3797))" msgstr "**移除过时的不操作额外安装** ([#973](https://github.com/adap/flower/pull/973))" -#: ../../source/ref-changelog.md:174 +#: ../../source/ref-changelog.md:285 msgid "" "Now that both `client_fn` and `server_fn` receive a `Context` object, " "accessing `Context` via `Client.context` is deprecated. `Client.context` " @@ -18757,7 +19678,7 @@ msgid "" " instance in `client_fn`:" msgstr "" -#: ../../source/ref-changelog.md:183 +#: ../../source/ref-changelog.md:294 #, fuzzy msgid "" "**Update CLIs to accept an app directory instead of** `ClientApp` **and**" @@ -18769,7 +19690,7 @@ msgstr "" "[#2221](https://github.com/adap/flower/pull/2221), " "[#2248](https://github.com/adap/flower/pull/2248))" -#: ../../source/ref-changelog.md:185 +#: ../../source/ref-changelog.md:296 msgid "" "The CLI commands `flower-supernode` and `flower-server-app` now accept an" " app directory as argument (instead of references to a `ClientApp` or " @@ -18779,7 +19700,7 @@ msgid "" "`flwr new`." msgstr "" -#: ../../source/ref-changelog.md:187 +#: ../../source/ref-changelog.md:298 #, fuzzy msgid "" "**Disable** `flower-client-app` **CLI command** " @@ -18788,46 +19709,46 @@ msgstr "" "**介绍Flower Android SDK** " "([#2131](https://github.com/adap/flower/pull/2131))" -#: ../../source/ref-changelog.md:189 +#: ../../source/ref-changelog.md:300 msgid "`flower-client-app` has been disabled. Use `flower-supernode` instead." msgstr "" -#: ../../source/ref-changelog.md:191 +#: ../../source/ref-changelog.md:302 #, fuzzy msgid "" "**Use spaces instead of commas for separating config args** " "([#4000](https://github.com/adap/flower/pull/4000))" msgstr "**服务器和策略的自定义指标** ([#717](https://github.com/adap/flower/pull/717))" -#: ../../source/ref-changelog.md:193 +#: ../../source/ref-changelog.md:304 msgid "" "When passing configs (run config, node config) to Flower, you now need to" " separate key-value pairs using spaces instead of commas. For example:" msgstr "" -#: ../../source/ref-changelog.md:199 +#: ../../source/ref-changelog.md:310 msgid "Previously, you could pass configs using commas, like this:" msgstr "" -#: ../../source/ref-changelog.md:205 +#: ../../source/ref-changelog.md:316 #, fuzzy msgid "" "**Remove** `flwr example` **CLI command** " "([#4084](https://github.com/adap/flower/pull/4084))" msgstr "**移除过时的 KerasClient**([#857](https://github.com/adap/flower/pull/857))" -#: ../../source/ref-changelog.md:207 +#: ../../source/ref-changelog.md:318 msgid "" "The experimental `flwr example` CLI command has been removed. Use `flwr " "new` to generate a project and then run it using `flwr run`." msgstr "" -#: ../../source/ref-changelog.md:209 +#: ../../source/ref-changelog.md:320 #, fuzzy msgid "v1.10.0 (2024-07-24)" msgstr "v1.0.0 (2022-07-28)" -#: ../../source/ref-changelog.md:215 +#: ../../source/ref-changelog.md:326 #, fuzzy msgid "" "`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. " @@ -18842,7 +19763,7 @@ msgstr "" "Topal`, `achiverram28`, `danielnugraha`, `eunchung`, `ruthgal` " -#: ../../source/ref-changelog.md:219 +#: ../../source/ref-changelog.md:330 #, fuzzy msgid "" "**Introduce** `flwr run` **(beta)** " @@ -18863,7 +19784,7 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475)))" -#: ../../source/ref-changelog.md:221 +#: ../../source/ref-changelog.md:332 msgid "" "Flower 1.10 ships the first beta release of the new `flwr run` command. " "`flwr run` can run different projects using `flwr run path/to/project`, " @@ -18876,7 +19797,7 @@ msgid "" "`flwr new` to generate a project and then run it using `flwr run`." msgstr "" -#: ../../source/ref-changelog.md:223 +#: ../../source/ref-changelog.md:334 #, fuzzy msgid "" "**Introduce run config** " @@ -18904,7 +19825,7 @@ msgstr "" "[#1770](https://github.com/adap/flower/pull/1770), " "[#1733](https://github.com/adap/flower/pull/1733))" -#: ../../source/ref-changelog.md:225 +#: ../../source/ref-changelog.md:336 msgid "" "The new run config feature allows you to run your Flower project in " "different configurations without having to change a single line of code. " @@ -18917,7 +19838,7 @@ msgid "" "new project using `flwr new` to see run config in action." msgstr "" -#: ../../source/ref-changelog.md:227 +#: ../../source/ref-changelog.md:338 #, fuzzy msgid "" "**Generalize** `client_fn` **signature to** `client_fn(context: Context) " @@ -18931,7 +19852,7 @@ msgstr "" "[#2523](https://github.com/adap/flower/pull/2523), " "[#2522](https://github.com/adap/flower/pull/2522))" -#: ../../source/ref-changelog.md:229 +#: ../../source/ref-changelog.md:340 msgid "" "The `client_fn` signature has been generalized to `client_fn(context: " "Context) -> Client`. It now receives a `Context` object instead of the " @@ -18941,14 +19862,14 @@ msgid "" "system." msgstr "" -#: ../../source/ref-changelog.md:231 +#: ../../source/ref-changelog.md:342 msgid "" "The previous signature `client_fn(cid: str)` is now deprecated and " "support for it will be removed in a future release. Use " "`client_fn(context: Context) -> Client` everywhere." msgstr "" -#: ../../source/ref-changelog.md:233 +#: ../../source/ref-changelog.md:344 #, fuzzy msgid "" "**Introduce new** `server_fn(context)` " @@ -18960,7 +19881,7 @@ msgstr "" "[#1544](https://github.com/adap/flower/pull/1544), " "[#1584](https://github.com/adap/flower/pull/1584)" -#: ../../source/ref-changelog.md:235 +#: ../../source/ref-changelog.md:346 msgid "" "In addition to the new `client_fn(context:Context)`, a new " "`server_fn(context: Context) -> ServerAppComponents` can now be passed to" @@ -18969,7 +19890,7 @@ msgid "" "build a configurable `ServerApp`." msgstr "" -#: ../../source/ref-changelog.md:237 +#: ../../source/ref-changelog.md:348 #, fuzzy msgid "" "**Relaunch all** `flwr new` **templates** " @@ -18989,7 +19910,7 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614)))" -#: ../../source/ref-changelog.md:239 +#: ../../source/ref-changelog.md:350 msgid "" "All `flwr new` templates have been significantly updated to showcase new " "Flower features and best practices. This includes using `flwr run` and " @@ -18998,7 +19919,7 @@ msgid "" "run` it." msgstr "" -#: ../../source/ref-changelog.md:241 +#: ../../source/ref-changelog.md:352 #, fuzzy msgid "" "**Introduce** `flower-supernode` **(preview)** " @@ -19007,7 +19928,7 @@ msgstr "" "**介绍Flower Android SDK** " "([#2131](https://github.com/adap/flower/pull/2131))" -#: ../../source/ref-changelog.md:243 +#: ../../source/ref-changelog.md:354 msgid "" "The new `flower-supernode` CLI is here to replace `flower-client-app`. " "`flower-supernode` brings full multi-app support to the Flower client-" @@ -19016,7 +19937,7 @@ msgid "" "`client_fn(context: Context)` signature)." msgstr "" -#: ../../source/ref-changelog.md:245 +#: ../../source/ref-changelog.md:356 #, fuzzy msgid "" "**Introduce node config** " @@ -19031,7 +19952,7 @@ msgstr "" "[#1681](https://github.com/adap/flower/pull/1681), " "[#1679](https://github.com/adap/flower/pull/1679)" -#: ../../source/ref-changelog.md:247 +#: ../../source/ref-changelog.md:358 msgid "" "A new node config feature allows you to pass a static configuration to " "the SuperNode. This configuration is read-only and available to every " @@ -19039,7 +19960,7 @@ msgid "" "config via `Context` (`context.node_config`)." msgstr "" -#: ../../source/ref-changelog.md:249 +#: ../../source/ref-changelog.md:360 msgid "" "**Introduce SuperExec (experimental)** " "([#3605](https://github.com/adap/flower/pull/3605), " @@ -19060,14 +19981,14 @@ msgid "" "[#3629](https://github.com/adap/flower/pull/3629))" msgstr "" -#: ../../source/ref-changelog.md:251 +#: ../../source/ref-changelog.md:362 msgid "" "This is the first experimental release of Flower SuperExec, a new service" " that executes your runs. It's not ready for production deployment just " "yet, but don't hesitate to give it a try if you're interested." msgstr "" -#: ../../source/ref-changelog.md:253 +#: ../../source/ref-changelog.md:364 #, fuzzy msgid "" "**Add new federated learning with tabular data example** " @@ -19076,13 +19997,13 @@ msgstr "" "** 添加使用 fastai 和 Flower 进行联邦学习的新示例** " "([#1598](https://github.com/adap/flower/pull/1598))" -#: ../../source/ref-changelog.md:255 +#: ../../source/ref-changelog.md:366 msgid "" "A new code example exemplifies a federated learning setup using the " "Flower framework on the Adult Census Income tabular dataset." msgstr "" -#: ../../source/ref-changelog.md:257 +#: ../../source/ref-changelog.md:368 #, fuzzy msgid "" "**Create generic adapter layer (preview)** " @@ -19094,7 +20015,7 @@ msgstr "" "[#2390](https://github.com/adap/flower/pull/2390), " "[#2493](https://github.com/adap/flower/pull/2493))" -#: ../../source/ref-changelog.md:259 +#: ../../source/ref-changelog.md:370 msgid "" "A new generic gRPC adapter layer allows 3rd-party frameworks to integrate" " with Flower in a transparent way. This makes Flower more modular and " @@ -19102,7 +20023,7 @@ msgid "" "platforms." msgstr "" -#: ../../source/ref-changelog.md:261 +#: ../../source/ref-changelog.md:372 #, fuzzy msgid "" "**Refactor Flower Simulation Engine** " @@ -19125,7 +20046,7 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475)))" -#: ../../source/ref-changelog.md:263 +#: ../../source/ref-changelog.md:374 msgid "" "The Simulation Engine was significantly refactored. This results in " "faster and more stable simulations. It is also the foundation for " @@ -19133,20 +20054,20 @@ msgid "" "configurability in federated learning simulations." msgstr "" -#: ../../source/ref-changelog.md:265 +#: ../../source/ref-changelog.md:376 #, fuzzy msgid "" "**Optimize Docker containers** " "([#3591](https://github.com/adap/flower/pull/3591))" msgstr "新文档主题 ([#551](https://github.com/adap/flower/pull/551))" -#: ../../source/ref-changelog.md:267 +#: ../../source/ref-changelog.md:378 msgid "" "Flower Docker containers were optimized and updated to use that latest " "Flower framework features." msgstr "" -#: ../../source/ref-changelog.md:269 +#: ../../source/ref-changelog.md:380 #, fuzzy msgid "" "**Improve logging** ([#3776](https://github.com/adap/flower/pull/3776), " @@ -19155,13 +20076,13 @@ msgstr "" "** 更新代码示例** ([#1344](https://github.com/adap/flower/pull/1344), " "[#1347](https://github.com/adap/flower/pull/1347))" -#: ../../source/ref-changelog.md:271 +#: ../../source/ref-changelog.md:382 msgid "" "Improved logging aims to be more concise and helpful to show you the " "details you actually care about." msgstr "" -#: ../../source/ref-changelog.md:273 +#: ../../source/ref-changelog.md:384 #, fuzzy msgid "" "**Refactor framework internals** " @@ -19182,19 +20103,14 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475)))" -#: ../../source/ref-changelog.md:277 -#, fuzzy -msgid "Documentation improvements" -msgstr "可选的改进措施" - -#: ../../source/ref-changelog.md:279 +#: ../../source/ref-changelog.md:390 #, fuzzy msgid "" "**Add 🇰🇷 Korean translations** " "([#3680](https://github.com/adap/flower/pull/3680))" msgstr "**在 Colab 中打开按钮** ([#1389](https://github.com/adap/flower/pull/1389))" -#: ../../source/ref-changelog.md:281 +#: ../../source/ref-changelog.md:392 #, fuzzy msgid "" "**Update translations** " @@ -19215,7 +20131,7 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475)))" -#: ../../source/ref-changelog.md:283 +#: ../../source/ref-changelog.md:394 #, fuzzy msgid "" "**Update documentation** " @@ -19236,18 +20152,18 @@ msgstr "" "[#1477](https://github.com/adap/flower/pull/1477), " "[#2171](https://github.com/adap/flower/pull/2171))" -#: ../../source/ref-changelog.md:285 +#: ../../source/ref-changelog.md:396 msgid "" "Updated documentation includes new install instructions for different " "shells, a new Flower Code Examples documentation landing page, new `flwr`" " CLI docs and an updated federated XGBoost code example." msgstr "" -#: ../../source/ref-changelog.md:289 +#: ../../source/ref-changelog.md:400 msgid "**Deprecate** `client_fn(cid: str)`" msgstr "" -#: ../../source/ref-changelog.md:291 +#: ../../source/ref-changelog.md:402 msgid "" "`client_fn` used to have a signature `client_fn(cid: str) -> Client`. " "This signature is now deprecated. Use the new signature " @@ -19260,13 +20176,13 @@ msgid "" " the dataset on each simulated or deployed SuperNode." msgstr "" -#: ../../source/ref-changelog.md:293 +#: ../../source/ref-changelog.md:404 msgid "" "**Deprecate passing** `Server/ServerConfig/Strategy/ClientManager` **to**" " `ServerApp` **directly**" msgstr "" -#: ../../source/ref-changelog.md:295 +#: ../../source/ref-changelog.md:406 msgid "" "Creating `ServerApp` using `ServerApp(config=config, strategy=strategy)` " "is now deprecated. Instead of passing " @@ -19279,14 +20195,14 @@ msgid "" " the `run_config`)." msgstr "" -#: ../../source/ref-changelog.md:299 +#: ../../source/ref-changelog.md:410 #, fuzzy msgid "" "**Remove support for `client_ids` in `start_simulation`** " "([#3699](https://github.com/adap/flower/pull/3699))" msgstr "**改进模拟中的 GPU 支持**([#1555](https://github.com/adap/flower/pull/1555))" -#: ../../source/ref-changelog.md:301 +#: ../../source/ref-changelog.md:412 msgid "" "The (rarely used) feature that allowed passing custom `client_ids` to the" " `start_simulation` function was removed. This removal is part of a " @@ -19294,26 +20210,26 @@ msgid "" "internals work in simulation and deployment." msgstr "" -#: ../../source/ref-changelog.md:303 +#: ../../source/ref-changelog.md:414 #, fuzzy msgid "" "**Remove `flower-driver-api` and `flower-fleet-api`** " "([#3418](https://github.com/adap/flower/pull/3418))" msgstr "**移除过时的 KerasClient**([#857](https://github.com/adap/flower/pull/857))" -#: ../../source/ref-changelog.md:305 +#: ../../source/ref-changelog.md:416 msgid "" "The two deprecated CLI commands `flower-driver-api` and `flower-fleet-" "api` were removed in an effort to streamline the SuperLink developer " "experience. Use `flower-superlink` instead." msgstr "" -#: ../../source/ref-changelog.md:307 +#: ../../source/ref-changelog.md:418 #, fuzzy msgid "v1.9.0 (2024-06-10)" msgstr "v1.3.0 (2023-02-06)" -#: ../../source/ref-changelog.md:313 +#: ../../source/ref-changelog.md:424 #, fuzzy msgid "" "`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. " @@ -19327,7 +20243,7 @@ msgstr "" "Topal`, `achiverram28`, `danielnugraha`, `eunchung`, `ruthgal` " -#: ../../source/ref-changelog.md:317 +#: ../../source/ref-changelog.md:428 #, fuzzy msgid "" "**Introduce built-in authentication (preview)** " @@ -19356,7 +20272,7 @@ msgstr "" "[#1519](https://github.com/adap/flower/pull/1519), " "[#1515](https://github.com/adap/flower/pull/1515))" -#: ../../source/ref-changelog.md:319 +#: ../../source/ref-changelog.md:430 msgid "" "Flower 1.9 introduces the first build-in version of client node " "authentication. In previous releases, users often wrote glue code to " @@ -19368,14 +20284,14 @@ msgid "" "authentication) help you to get started." msgstr "" -#: ../../source/ref-changelog.md:321 +#: ../../source/ref-changelog.md:432 msgid "" "This is the first preview release of the Flower-native authentication " "system. Many additional features are on the roadmap for upcoming Flower " "releases - stay tuned." msgstr "" -#: ../../source/ref-changelog.md:323 +#: ../../source/ref-changelog.md:434 #, fuzzy msgid "" "**Introduce end-to-end Docker support** " @@ -19400,7 +20316,7 @@ msgstr "" "[#1770](https://github.com/adap/flower/pull/1770), " "[#1733](https://github.com/adap/flower/pull/1733))" -#: ../../source/ref-changelog.md:325 +#: ../../source/ref-changelog.md:436 msgid "" "Full Flower Next Docker support is here! With the release of Flower 1.9, " "Flower provides stable Docker images for the Flower SuperLink, the Flower" @@ -19410,7 +20326,7 @@ msgid "" "docker.html) to get stated." msgstr "" -#: ../../source/ref-changelog.md:327 +#: ../../source/ref-changelog.md:438 #, fuzzy msgid "" "**Re-architect Flower Next simulation engine** " @@ -19431,7 +20347,7 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614)))" -#: ../../source/ref-changelog.md:329 +#: ../../source/ref-changelog.md:440 msgid "" "Flower Next simulations now use a new in-memory `Driver` that improves " "the reliability of simulations, especially in notebook environments. This" @@ -19439,7 +20355,7 @@ msgid "" "simulation architecture." msgstr "" -#: ../../source/ref-changelog.md:331 +#: ../../source/ref-changelog.md:442 #, fuzzy msgid "" "**Upgrade simulation engine** " @@ -19459,21 +20375,21 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614)))" -#: ../../source/ref-changelog.md:333 +#: ../../source/ref-changelog.md:444 msgid "" "The Flower Next simulation engine comes with improved and configurable " "logging. The Ray-based simulation backend in Flower 1.9 was updated to " "use Ray 2.10." msgstr "" -#: ../../source/ref-changelog.md:335 +#: ../../source/ref-changelog.md:446 #, fuzzy msgid "" "**Introduce FedPFT baseline** " "([#3268](https://github.com/adap/flower/pull/3268))" msgstr "**引入 start_driver**([#1697](https://github.com/adap/flower/pull/1697))" -#: ../../source/ref-changelog.md:337 +#: ../../source/ref-changelog.md:448 msgid "" "FedPFT allows you to perform one-shot Federated Learning by leveraging " "widely available foundational models, dramatically reducing communication" @@ -19484,7 +20400,7 @@ msgid "" "([arxiv](https://arxiv.org/abs/2402.01862))" msgstr "" -#: ../../source/ref-changelog.md:339 +#: ../../source/ref-changelog.md:450 #, fuzzy msgid "" "**Launch additional** `flwr new` **templates for Apple MLX, Hugging Face " @@ -19504,7 +20420,7 @@ msgstr "" "[#2355](https://github.com/adap/flower/pull/2355), " "[#2356](https://github.com/adap/flower/pull/2356))" -#: ../../source/ref-changelog.md:341 +#: ../../source/ref-changelog.md:452 msgid "" "The `flwr` CLI's `flwr new` command is starting to become everone's " "favorite way of creating new Flower projects. This release introduces " @@ -19513,7 +20429,7 @@ msgid "" "also received updates." msgstr "" -#: ../../source/ref-changelog.md:343 +#: ../../source/ref-changelog.md:454 #, fuzzy msgid "" "**Refine** `RecordSet` **API** " @@ -19531,14 +20447,14 @@ msgstr "" "[#1477](https://github.com/adap/flower/pull/1477), " "[#2171](https://github.com/adap/flower/pull/2171))" -#: ../../source/ref-changelog.md:345 +#: ../../source/ref-changelog.md:456 msgid "" "`RecordSet` is part of the Flower Next low-level API preview release. In " "Flower 1.9, `RecordSet` received a number of usability improvements that " "make it easier to build `RecordSet`-based `ServerApp`s and `ClientApp`s." msgstr "" -#: ../../source/ref-changelog.md:347 +#: ../../source/ref-changelog.md:458 #, fuzzy msgid "" "**Beautify logging** ([#3379](https://github.com/adap/flower/pull/3379), " @@ -19552,13 +20468,13 @@ msgstr "" "[#2523](https://github.com/adap/flower/pull/2523), " "[#2522](https://github.com/adap/flower/pull/2522))" -#: ../../source/ref-changelog.md:349 +#: ../../source/ref-changelog.md:460 msgid "" "Logs received a substantial update. Not only are logs now much nicer to " "look at, but they are also more configurable." msgstr "" -#: ../../source/ref-changelog.md:351 +#: ../../source/ref-changelog.md:462 #, fuzzy msgid "" "**Improve reliability** " @@ -19578,13 +20494,13 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475)))" -#: ../../source/ref-changelog.md:353 +#: ../../source/ref-changelog.md:464 msgid "" "Flower 1.9 includes reliability improvements across many parts of the " "system. One example is a much improved SuperNode shutdown procedure." msgstr "" -#: ../../source/ref-changelog.md:355 +#: ../../source/ref-changelog.md:466 #, fuzzy msgid "" "**Update Swift and C++ SDKs** " @@ -19594,14 +20510,14 @@ msgstr "" "** 更新代码示例** ([#1344](https://github.com/adap/flower/pull/1344), " "[#1347](https://github.com/adap/flower/pull/1347))" -#: ../../source/ref-changelog.md:357 +#: ../../source/ref-changelog.md:468 msgid "" "In the C++ SDK, communication-related code is now separate from main " "client logic. A new abstract class `Communicator` has been introduced " "alongside a gRPC implementation of it." msgstr "" -#: ../../source/ref-changelog.md:359 +#: ../../source/ref-changelog.md:470 msgid "" "**Improve testing, tooling and CI/CD infrastructure** " "([#3294](https://github.com/adap/flower/pull/3294), " @@ -19635,13 +20551,13 @@ msgid "" "[#3271](https://github.com/adap/flower/pull/3271))" msgstr "" -#: ../../source/ref-changelog.md:361 +#: ../../source/ref-changelog.md:472 msgid "" "As always, the Flower tooling, testing, and CI/CD infrastructure has " "received many updates." msgstr "" -#: ../../source/ref-changelog.md:363 +#: ../../source/ref-changelog.md:474 msgid "" "**Improve documentation** " "([#3530](https://github.com/adap/flower/pull/3530), " @@ -19666,20 +20582,20 @@ msgid "" "[#3274](https://github.com/adap/flower/pull/3274))" msgstr "" -#: ../../source/ref-changelog.md:365 +#: ../../source/ref-changelog.md:476 msgid "" "As always, the Flower documentation has received many updates. Notable " "new pages include:" msgstr "" -#: ../../source/ref-changelog.md:367 +#: ../../source/ref-changelog.md:478 msgid "" "[How-to upgrate to Flower Next (Flower Next migration " "guide)](https://flower.ai/docs/framework/how-to-upgrade-to-flower-" "next.html)" msgstr "" -#: ../../source/ref-changelog.md:369 +#: ../../source/ref-changelog.md:480 #, fuzzy msgid "" "[How-to run Flower using Docker](https://flower.ai/docs/framework/how-to-" @@ -19688,13 +20604,13 @@ msgstr "" "`TensorFlow快速入门 (教程) `_" -#: ../../source/ref-changelog.md:371 +#: ../../source/ref-changelog.md:482 msgid "" "[Flower Mods reference](https://flower.ai/docs/framework/ref-" "api/flwr.client.mod.html#module-flwr.client.mod)" msgstr "" -#: ../../source/ref-changelog.md:373 +#: ../../source/ref-changelog.md:484 #, fuzzy msgid "" "**General updates to Flower Examples** " @@ -19728,12 +20644,12 @@ msgstr "" "[#1305](https://github.com/adap/flower/pull/1305), " "[#1307](https://github.com/adap/flower/pull/1307))" -#: ../../source/ref-changelog.md:375 +#: ../../source/ref-changelog.md:486 #, fuzzy msgid "As always, Flower code examples have received many updates." msgstr "许多 \"Flower \"代码示例得到了大幅更新。" -#: ../../source/ref-changelog.md:377 +#: ../../source/ref-changelog.md:488 msgid "" "**General improvements** " "([#3532](https://github.com/adap/flower/pull/3532), " @@ -19772,12 +20688,12 @@ msgid "" "[#3261](https://github.com/adap/flower/pull/3261))" msgstr "" -#: ../../source/ref-changelog.md:381 +#: ../../source/ref-changelog.md:492 #, fuzzy msgid "**Deprecate Python 3.8 support**" msgstr "** 过时的 Python 3.8**" -#: ../../source/ref-changelog.md:383 +#: ../../source/ref-changelog.md:494 #, fuzzy msgid "" "Python 3.8 will stop receiving security fixes in [October " @@ -19785,7 +20701,7 @@ msgid "" "now deprecated and will be removed in an upcoming release." msgstr "由于 Python 3.8 已于 2024-10-01 弃用 (EOL),对 Python 3.7 的支持现已废弃,并将在即将发布的版本中移除。" -#: ../../source/ref-changelog.md:385 +#: ../../source/ref-changelog.md:496 #, fuzzy msgid "" "**Deprecate (experimental)** `flower-driver-api` **and** `flower-fleet-" @@ -19795,14 +20711,14 @@ msgstr "" "FedBN ([#2608](https://github.com/adap/flower/pull/2608), " "[#2615](https://github.com/adap/flower/pull/2615))" -#: ../../source/ref-changelog.md:387 +#: ../../source/ref-changelog.md:498 msgid "" "Flower 1.9 deprecates the two (experimental) commands `flower-driver-api`" " and `flower-fleet-api`. Both commands will be removed in an upcoming " "release. Use `flower-superlink` instead." msgstr "" -#: ../../source/ref-changelog.md:389 +#: ../../source/ref-changelog.md:500 #, fuzzy msgid "" "**Deprecate** `--server` **in favor of** `--superlink` " @@ -19811,14 +20727,14 @@ msgstr "" "**启用向** `start_simulation` 传递** `Server` 实例 " "([#1281](https://github.com/adap/flower/pull/1281))" -#: ../../source/ref-changelog.md:391 +#: ../../source/ref-changelog.md:502 msgid "" "The commands `flower-server-app` and `flower-client-app` should use " "`--superlink` instead of the now deprecated `--server`. Support for " "`--server` will be removed in a future release." msgstr "" -#: ../../source/ref-changelog.md:395 +#: ../../source/ref-changelog.md:506 msgid "" "**Replace** `flower-superlink` **CLI option** `--certificates` **with** " "`--ssl-ca-certfile` **,** `--ssl-certfile` **and** `--ssl-keyfile` " @@ -19826,7 +20742,7 @@ msgid "" "[#3408](https://github.com/adap/flower/pull/3408))" msgstr "" -#: ../../source/ref-changelog.md:397 +#: ../../source/ref-changelog.md:508 msgid "" "SSL-related `flower-superlink` CLI arguments were restructured in an " "incompatible way. Instead of passing a single `--certificates` flag with " @@ -19836,21 +20752,21 @@ msgid "" "connections.html) documentation page for details." msgstr "" -#: ../../source/ref-changelog.md:399 +#: ../../source/ref-changelog.md:510 #, fuzzy msgid "" "**Remove SuperLink** `--vce` **option** " "([#3513](https://github.com/adap/flower/pull/3513))" msgstr "**重构文档**([#1387](https://github.com/adap/flower/pull/1387))" -#: ../../source/ref-changelog.md:401 +#: ../../source/ref-changelog.md:512 msgid "" "Instead of separately starting a SuperLink and a `ServerApp` for " "simulation, simulations must now be started using the single `flower-" "simulation` command." msgstr "" -#: ../../source/ref-changelog.md:403 +#: ../../source/ref-changelog.md:514 #, fuzzy msgid "" "**Merge** `--grpc-rere` **and** `--rest` **SuperLink options** " @@ -19859,7 +20775,7 @@ msgstr "" "**重新命名** `rnd` ** to** `server_round` " "([#1321](https://github.com/adap/flower/pull/1321))" -#: ../../source/ref-changelog.md:405 +#: ../../source/ref-changelog.md:516 msgid "" "To simplify the usage of `flower-superlink`, previously separate sets of " "CLI options for gRPC and REST were merged into one unified set of " @@ -19868,12 +20784,12 @@ msgid "" "details." msgstr "" -#: ../../source/ref-changelog.md:407 +#: ../../source/ref-changelog.md:518 #, fuzzy msgid "v1.8.0 (2024-04-03)" msgstr "v1.3.0 (2023-02-06)" -#: ../../source/ref-changelog.md:413 +#: ../../source/ref-changelog.md:524 #, fuzzy msgid "" "`Adam Narozniak`, `Charles Beauville`, `Daniel J. Beutel`, `Daniel Nata " @@ -19888,7 +20804,7 @@ msgstr "" "Topal`, `achiverram28`, `danielnugraha`, `eunchung`, `ruthgal` " -#: ../../source/ref-changelog.md:417 +#: ../../source/ref-changelog.md:528 #, fuzzy msgid "" "**Introduce Flower Next high-level API (stable)** " @@ -19945,7 +20861,7 @@ msgstr "" "[#3195](https://github.com/adap/flower/pull/3195), " "[#3197](https://github.com/adap/flower/pull/3197))" -#: ../../source/ref-changelog.md:419 +#: ../../source/ref-changelog.md:530 #, fuzzy msgid "" "The Flower Next high-level API is stable! Flower Next is the future of " @@ -19965,7 +20881,7 @@ msgstr "" "Next 允许您同时运行多个项目(我们称之为多重运行),并在模拟环境或部署环境中执行同一项目,而无需更改任何代码。最棒的是什么?它与使用 " "`Strategy`、`NumPyClient` 等的现有 Flower 项目完全兼容。" -#: ../../source/ref-changelog.md:421 +#: ../../source/ref-changelog.md:532 #, fuzzy msgid "" "**Introduce Flower Next low-level API (preview)** " @@ -19977,7 +20893,7 @@ msgstr "" "[#2390](https://github.com/adap/flower/pull/2390), " "[#2493](https://github.com/adap/flower/pull/2493))" -#: ../../source/ref-changelog.md:423 +#: ../../source/ref-changelog.md:534 #, fuzzy msgid "" "In addition to the Flower Next *high-level* API that uses `Strategy`, " @@ -20002,7 +20918,7 @@ msgstr "" "\"接收到的原始信息。新的抽象(如 \"RecordSet\"、\"Message \"和 " "\"Context\")进一步支持发送多个模型、多套配置值和指标、客户端节点上的有状态计算以及自定义 SMPC 协议的实现等。" -#: ../../source/ref-changelog.md:425 +#: ../../source/ref-changelog.md:536 #, fuzzy msgid "" "**Introduce Flower Mods (preview)** " @@ -20014,7 +20930,7 @@ msgstr "" "[#2221](https://github.com/adap/flower/pull/2221), " "[#2248](https://github.com/adap/flower/pull/2248))" -#: ../../source/ref-changelog.md:427 +#: ../../source/ref-changelog.md:538 #, fuzzy msgid "" "Flower Modifiers (we call them Mods) can intercept messages and analyze, " @@ -20031,7 +20947,7 @@ msgstr "" "已经包含了记录信息大小、通过网络发送的参数数量、固定剪切和自适应剪切的差分隐私、本地差分隐私以及安全聚合协议 SecAgg 和 SecAgg+ 的" " Mods。Flower Mods API 作为预览版发布,但研究人员已经可以用它来试验任意的 SMPC 协议。" -#: ../../source/ref-changelog.md:429 +#: ../../source/ref-changelog.md:540 #, fuzzy msgid "" "**Fine-tune LLMs with LLM FlowerTune** " @@ -20050,7 +20966,7 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475)))" -#: ../../source/ref-changelog.md:431 +#: ../../source/ref-changelog.md:542 #, fuzzy msgid "" "We are introducing LLM FlowerTune, an introductory example that " @@ -20065,7 +20981,7 @@ msgstr "" "Fine-tuning with Flower](https://flower.ai/blog/2024-03-14-llm-" "flowertune-federated-llm-finetuning-with-flower/) 了解更多详情。" -#: ../../source/ref-changelog.md:433 +#: ../../source/ref-changelog.md:544 #, fuzzy msgid "" "**Introduce built-in Differential Privacy (preview)** " @@ -20086,7 +21002,7 @@ msgstr "" "[#993](https://github.com/adap/flower/pull/993), " "[#994](https://github.com/adap/flower/pull/994))" -#: ../../source/ref-changelog.md:435 +#: ../../source/ref-changelog.md:546 #, fuzzy msgid "" "Built-in Differential Privacy is here! Flower supports both central and " @@ -20105,7 +21021,7 @@ msgstr "" "和新的操作指南[如何使用新的差分隐私组件](https://flower.ai/docs/framework/how-to-use-" "differential-privacy.html) 介绍了 Flower 的使用方法。" -#: ../../source/ref-changelog.md:437 +#: ../../source/ref-changelog.md:548 #, fuzzy msgid "" "**Introduce built-in Secure Aggregation (preview)** " @@ -20117,7 +21033,7 @@ msgstr "" "[#2221](https://github.com/adap/flower/pull/2221), " "[#2248](https://github.com/adap/flower/pull/2248))" -#: ../../source/ref-changelog.md:439 +#: ../../source/ref-changelog.md:550 #, fuzzy msgid "" "Built-in Secure Aggregation is here! Flower now supports different secure" @@ -20135,7 +21051,7 @@ msgstr "" "的支持,但更多协议将很快实现。我们还将添加详细的文档,解释安全聚合以及如何在 Flower 中使用它。您可以查看新的代码示例,了解如何使用 " "Flower 在同一项目中轻松结合联合学习、差分隐私和安全聚合。" -#: ../../source/ref-changelog.md:441 +#: ../../source/ref-changelog.md:552 #, fuzzy msgid "" "**Introduce** `flwr` **CLI (preview)** " @@ -20156,14 +21072,14 @@ msgstr "" "[#1477](https://github.com/adap/flower/pull/1477), " "[#2171](https://github.com/adap/flower/pull/2171))" -#: ../../source/ref-changelog.md:443 +#: ../../source/ref-changelog.md:554 #, fuzzy msgid "" "A new `flwr` CLI command allows creating new Flower projects (`flwr new`)" " and then running them using the Simulation Engine (`flwr run`)." msgstr "新的 `flwr` CLI 命令允许创建新的 Flower 项目(`flwr new`),然后使用仿真引擎运行它们(`flwr run`)。" -#: ../../source/ref-changelog.md:445 +#: ../../source/ref-changelog.md:556 #, fuzzy msgid "" "**Introduce Flower Next Simulation Engine** " @@ -20186,7 +21102,7 @@ msgstr "" "[#1770](https://github.com/adap/flower/pull/1770), " "[#1733](https://github.com/adap/flower/pull/1733))" -#: ../../source/ref-changelog.md:447 +#: ../../source/ref-changelog.md:558 #, fuzzy msgid "" "The Flower Simulation Engine can now run Flower Next projects. For " @@ -20196,14 +21112,14 @@ msgstr "" "Flower 模拟引擎现在可以运行 Flower Next 项目。对于笔记本环境,还有一个新的 `run_simulation` 函数,可以运行 " "`ServerApp` 和 `ClientApp`。" -#: ../../source/ref-changelog.md:449 +#: ../../source/ref-changelog.md:560 #, fuzzy msgid "" "**Handle SuperNode connection errors** " "([#2969](https://github.com/adap/flower/pull/2969))" msgstr "** 添加一个新的 gRPC 选项**([#2197](https://github.com/adap/flower/pull/2197))" -#: ../../source/ref-changelog.md:451 +#: ../../source/ref-changelog.md:562 #, fuzzy msgid "" "A SuperNode will now try to reconnect indefinitely to the SuperLink in " @@ -20218,7 +21134,7 @@ msgstr "" "retries` 和 `-max-wait-time`。最大重试次数 \"将定义客户端在放弃重新连接超级链接之前的重试次数,而 \"最大等待时间 " "\"则定义超级节点放弃重新连接超级链接之前的等待时间。" -#: ../../source/ref-changelog.md:453 +#: ../../source/ref-changelog.md:564 #, fuzzy msgid "" "**General updates to Flower Baselines** " @@ -20233,7 +21149,7 @@ msgstr "" "[#1681](https://github.com/adap/flower/pull/1681), " "[#1679](https://github.com/adap/flower/pull/1679)" -#: ../../source/ref-changelog.md:455 +#: ../../source/ref-changelog.md:566 #, fuzzy msgid "" "There's a new [FedStar](https://flower.ai/docs/baselines/fedstar.html) " @@ -20242,7 +21158,7 @@ msgstr "" "有一条新的 [FedStar](https://flower.ai/docs/baselines/fedstar.html) " "基准线。其他几条基准线也已更新。" -#: ../../source/ref-changelog.md:457 +#: ../../source/ref-changelog.md:568 #, fuzzy msgid "" "**Improve documentation and translations** " @@ -20280,7 +21196,7 @@ msgstr "" "[#2990](https://github.com/adap/flower/pull/2990), " "[#2989](https://github.com/adap/flower/pull/2989))" -#: ../../source/ref-changelog.md:459 +#: ../../source/ref-changelog.md:570 #, fuzzy msgid "" "As usual, we merged many smaller and larger improvements to the " @@ -20290,7 +21206,7 @@ msgstr "" "像往常一样,我们合并了许多对文档的较大和较小的改进。特别要感谢 [Sebastian van der " "Voort](https://github.com/svdvoort),他为我们带来了一份重要的文档 PR!" -#: ../../source/ref-changelog.md:461 +#: ../../source/ref-changelog.md:572 #, fuzzy msgid "" "**General updates to Flower Examples** " @@ -20316,7 +21232,7 @@ msgstr "" "[#1519](https://github.com/adap/flower/pull/1519), " "[#1515](https://github.com/adap/flower/pull/1515))" -#: ../../source/ref-changelog.md:463 +#: ../../source/ref-changelog.md:574 #, fuzzy msgid "" "Two new examples show federated training of a Vision Transformer (ViT) " @@ -20329,7 +21245,7 @@ msgstr "" "\"和 \"quickstart-tensorflow \"展示了新的 Flower Next \"ServerApp \"和 " "\"ClientApp\"。许多其他示例也得到了大量更新。" -#: ../../source/ref-changelog.md:465 +#: ../../source/ref-changelog.md:576 #, fuzzy msgid "" "**General improvements** " @@ -20481,12 +21397,12 @@ msgstr "" "[#2955](https://github.com/adap/flower/pull/2955), " "[#2954](https://github.com/adap/flower/pull/2954))" -#: ../../source/ref-changelog.md:471 +#: ../../source/ref-changelog.md:582 #, fuzzy msgid "v1.7.0 (2024-02-05)" msgstr "v1.3.0 (2023-02-06)" -#: ../../source/ref-changelog.md:477 +#: ../../source/ref-changelog.md:588 #, fuzzy msgid "" "`Aasheesh Singh`, `Adam Narozniak`, `Aml Hassan Esmil`, `Charles " @@ -20502,7 +21418,7 @@ msgstr "" "Topal`, `achiverram28`, `danielnugraha`, `eunchung`, `ruthgal` " -#: ../../source/ref-changelog.md:481 +#: ../../source/ref-changelog.md:592 #, fuzzy msgid "" "**Introduce stateful clients (experimental)** " @@ -20518,7 +21434,7 @@ msgstr "" "[#2327](https://github.com/adap/flower/pull/2327), " "[#2435](https://github.com/adap/flower/pull/2435))" -#: ../../source/ref-changelog.md:483 +#: ../../source/ref-changelog.md:594 #, fuzzy msgid "" "Subclasses of `Client` and `NumPyClient` can now store local state that " @@ -20537,14 +21453,14 @@ msgstr "" "RecordSet = self.context.state`。对该 `RecordSet` " "的更改会在不同轮执行中保留,以便在模拟和部署中以统一的方式进行有状态计算。" -#: ../../source/ref-changelog.md:485 +#: ../../source/ref-changelog.md:596 #, fuzzy msgid "" "**Improve performance** " "([#2293](https://github.com/adap/flower/pull/2293))" msgstr "**改进示例笔记** ([#2005](https://github.com/adap/flower/pull/2005))" -#: ../../source/ref-changelog.md:487 +#: ../../source/ref-changelog.md:598 #, fuzzy msgid "" "Flower is faster than ever. All `FedAvg`-derived strategies now use in-" @@ -20556,7 +21472,7 @@ msgstr "" "Flower 的速度比以往更快。所有源于 `FedAvg` 的策略现在都使用就地聚合,以减少内存消耗。Flower " "客户端序列化/解序列化已从头开始重写,从而显著提高了速度,尤其是在客户端训练时间较短的情况下。" -#: ../../source/ref-changelog.md:489 +#: ../../source/ref-changelog.md:600 #, fuzzy msgid "" "**Support Federated Learning with Apple MLX and Flower** " @@ -20565,7 +21481,7 @@ msgstr "" "** 添加使用 fastai 和 Flower 进行联邦学习的新示例** " "([#1598](https://github.com/adap/flower/pull/1598))" -#: ../../source/ref-changelog.md:491 +#: ../../source/ref-changelog.md:602 #, fuzzy msgid "" "Flower has official support for federated learning using [Apple " @@ -20575,7 +21491,7 @@ msgstr "" "通过新的 `quickstart-mlx` 代码示例,Flower 正式支持使用 [Apple MLX](https://ml-" "explore.github.io/mlx)的联合学习。" -#: ../../source/ref-changelog.md:493 +#: ../../source/ref-changelog.md:604 #, fuzzy msgid "" "**Introduce new XGBoost cyclic strategy** " @@ -20585,7 +21501,7 @@ msgstr "" "**介绍 iOS SDK(预览版)** ([#1621](https://github.com/adap/flower/pull/1621), " "[#1764](https://github.com/adap/flower/pull/1764))" -#: ../../source/ref-changelog.md:495 +#: ../../source/ref-changelog.md:606 #, fuzzy msgid "" "A new strategy called `FedXgbCyclic` supports a client-by-client style of" @@ -20598,21 +21514,21 @@ msgstr "" "\"代码示例展示了如何在一个完整的项目中使用它。除此之外,`xgboost-comprehensive` 现在还支持模拟模式。由此,Flower " "提供了同类最佳的 XGBoost 支持。" -#: ../../source/ref-changelog.md:497 +#: ../../source/ref-changelog.md:608 #, fuzzy msgid "" "**Support Python 3.11** " "([#2394](https://github.com/adap/flower/pull/2394))" msgstr "** 支持 Python 3.10** ([#1320](https://github.com/adap/flower/pull/1320))" -#: ../../source/ref-changelog.md:499 +#: ../../source/ref-changelog.md:610 #, fuzzy msgid "" "Framework tests now run on Python 3.8, 3.9, 3.10, and 3.11. This will " "ensure better support for users using more recent Python versions." msgstr "框架测试现在可在 Python 3.8、3.9、3.10 和 3.11 上运行。这将确保为使用最新 Python 版本的用户提供更好的支持。" -#: ../../source/ref-changelog.md:501 +#: ../../source/ref-changelog.md:612 #, fuzzy msgid "" "**Update gRPC and ProtoBuf dependencies** " @@ -20621,14 +21537,14 @@ msgstr "" "**更新 REST API 以支持创建和删除节点** " "([#2283](https://github.com/adap/flower/pull/2283))" -#: ../../source/ref-changelog.md:503 +#: ../../source/ref-changelog.md:614 #, fuzzy msgid "" "The `grpcio` and `protobuf` dependencies were updated to their latest " "versions for improved security and performance." msgstr "为提高安全性和性能,\"grpcio \"和 \"protobuf \"依赖项已更新至最新版本。" -#: ../../source/ref-changelog.md:505 +#: ../../source/ref-changelog.md:616 #, fuzzy msgid "" "**Introduce Docker image for Flower server** " @@ -20649,7 +21565,7 @@ msgstr "" "[#993](https://github.com/adap/flower/pull/993), " "[#994](https://github.com/adap/flower/pull/994))" -#: ../../source/ref-changelog.md:507 +#: ../../source/ref-changelog.md:618 #, fuzzy msgid "" "The Flower server can now be run using an official Docker image. A new " @@ -20661,7 +21577,7 @@ msgstr "" "Flower](https://flower.ai/docs/framework/how-to-run-flower-using-" "docker.html)。Flower 客户端 Docker 官方镜像将随后发布。" -#: ../../source/ref-changelog.md:509 +#: ../../source/ref-changelog.md:620 #, fuzzy msgid "" "**Introduce** `flower-via-docker-compose` **example** " @@ -20670,21 +21586,21 @@ msgstr "" "**介绍Flower Android SDK** " "([#2131](https://github.com/adap/flower/pull/2131))" -#: ../../source/ref-changelog.md:511 +#: ../../source/ref-changelog.md:622 #, fuzzy msgid "" "**Introduce** `quickstart-sklearn-tabular` **example** " "([#2719](https://github.com/adap/flower/pull/2719))" msgstr "**引入 start_driver**([#1697](https://github.com/adap/flower/pull/1697))" -#: ../../source/ref-changelog.md:513 +#: ../../source/ref-changelog.md:624 #, fuzzy msgid "" "**Introduce** `custom-metrics` **example** " "([#1958](https://github.com/adap/flower/pull/1958))" msgstr "**引入 start_driver**([#1697](https://github.com/adap/flower/pull/1697))" -#: ../../source/ref-changelog.md:515 +#: ../../source/ref-changelog.md:626 #, fuzzy msgid "" "**Update code examples to use Flower Datasets** " @@ -20698,14 +21614,14 @@ msgstr "" "[#1301](https://github.com/adap/flower/pull/1301), " "[#1310](https://github.com/adap/flower/pull/1310)" -#: ../../source/ref-changelog.md:517 +#: ../../source/ref-changelog.md:628 #, fuzzy msgid "" "Several code examples were updated to use [Flower " "Datasets](https://flower.ai/docs/datasets/)." msgstr "更新了多个代码示例,以使用 [Flower Datasets](https://flower.ai/docs/datasets/) 。" -#: ../../source/ref-changelog.md:519 +#: ../../source/ref-changelog.md:630 #, fuzzy msgid "" "**General updates to Flower Examples** " @@ -20730,16 +21646,16 @@ msgstr "" "[#1662](https://github.com/adap/flower/pull/1662), " "[#1794](https://github.com/adap/flower/pull/1794))" -#: ../../source/ref-changelog.md:521 +#: ../../source/ref-changelog.md:632 #, fuzzy msgid "Many Flower code examples received substantial updates." msgstr "许多 \"Flower \"代码示例得到了大幅更新。" -#: ../../source/ref-changelog.md:523 ../../source/ref-changelog.md:616 +#: ../../source/ref-changelog.md:634 ../../source/ref-changelog.md:727 msgid "**Update Flower Baselines**" msgstr "**更新 Flower Baselines**" -#: ../../source/ref-changelog.md:525 +#: ../../source/ref-changelog.md:636 #, fuzzy msgid "" "HFedXGBoost ([#2226](https://github.com/adap/flower/pull/2226), " @@ -20748,32 +21664,32 @@ msgstr "" "FedBN ([#2608](https://github.com/adap/flower/pull/2608), " "[#2615](https://github.com/adap/flower/pull/2615))" -#: ../../source/ref-changelog.md:526 +#: ../../source/ref-changelog.md:637 #, fuzzy msgid "FedVSSL ([#2412](https://github.com/adap/flower/pull/2412))" msgstr "FjORD [#2431](https://github.com/adap/flower/pull/2431)" -#: ../../source/ref-changelog.md:527 +#: ../../source/ref-changelog.md:638 #, fuzzy msgid "FedNova ([#2179](https://github.com/adap/flower/pull/2179))" msgstr "FjORD [#2431](https://github.com/adap/flower/pull/2431)" -#: ../../source/ref-changelog.md:528 +#: ../../source/ref-changelog.md:639 #, fuzzy msgid "HeteroFL ([#2439](https://github.com/adap/flower/pull/2439))" msgstr "FedMeta [#2438](https://github.com/adap/flower/pull/2438)" -#: ../../source/ref-changelog.md:529 +#: ../../source/ref-changelog.md:640 #, fuzzy msgid "FedAvgM ([#2246](https://github.com/adap/flower/pull/2246))" msgstr "FedPer [#2266](https://github.com/adap/flower/pull/2266)" -#: ../../source/ref-changelog.md:530 +#: ../../source/ref-changelog.md:641 #, fuzzy msgid "FedPara ([#2722](https://github.com/adap/flower/pull/2722))" msgstr "FedPer [#2266](https://github.com/adap/flower/pull/2266)" -#: ../../source/ref-changelog.md:532 +#: ../../source/ref-changelog.md:643 #, fuzzy msgid "" "**Improve documentation** " @@ -20792,7 +21708,7 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614)))" -#: ../../source/ref-changelog.md:534 +#: ../../source/ref-changelog.md:645 #, fuzzy msgid "" "**Improved testing and development infrastructure** " @@ -20856,14 +21772,14 @@ msgstr "" "[#2661](https://github.com/adap/flower/pull/2661), " "[#2398](https://github.com/adap/flower/pull/2398))" -#: ../../source/ref-changelog.md:536 +#: ../../source/ref-changelog.md:647 #, fuzzy msgid "" "The Flower testing and development infrastructure has received " "substantial updates. This makes Flower 1.7 the most tested release ever." msgstr "Flower 测试和开发基础架构已得到大幅更新。这使得 Flower 1.7 成为有史以来经过最多测试的版本。" -#: ../../source/ref-changelog.md:538 +#: ../../source/ref-changelog.md:649 #, fuzzy msgid "" "**Update dependencies** " @@ -20899,7 +21815,7 @@ msgstr "" "[#2225](https://github.com/adap/flower/pull/2225), " "[#2183](https://github.com/adap/flower/pull/2183))" -#: ../../source/ref-changelog.md:540 +#: ../../source/ref-changelog.md:651 #, fuzzy msgid "" "**General improvements** " @@ -20977,7 +21893,7 @@ msgstr "" "[#2672](https://github.com/adap/flower/pull/2672), " "[#2759](https://github.com/adap/flower/pull/2759))" -#: ../../source/ref-changelog.md:544 +#: ../../source/ref-changelog.md:655 #, fuzzy msgid "" "**Deprecate** `start_numpy_client` " @@ -20987,7 +21903,7 @@ msgstr "" "TAMUNA ([#2254](https://github.com/adap/flower/pull/2254), " "[#2508](https://github.com/adap/flower/pull/2508))" -#: ../../source/ref-changelog.md:546 +#: ../../source/ref-changelog.md:657 #, fuzzy msgid "" "Until now, clients of type `NumPyClient` needed to be started via " @@ -21003,14 +21919,14 @@ msgstr "" "客户端,只需首先调用 `.to_client()` 方法,然后将返回的 `Client` 对象传递给 " "`start_client`。示例和文档已相应更新。" -#: ../../source/ref-changelog.md:548 +#: ../../source/ref-changelog.md:659 #, fuzzy msgid "" "**Deprecate legacy DP wrappers** " "([#2749](https://github.com/adap/flower/pull/2749))" msgstr "**移除过时的 KerasClient**([#857](https://github.com/adap/flower/pull/857))" -#: ../../source/ref-changelog.md:550 +#: ../../source/ref-changelog.md:661 #, fuzzy msgid "" "Legacy DP wrapper classes are deprecated, but still functional. This is " @@ -21018,7 +21934,7 @@ msgid "" "support in Flower." msgstr "传统的 DP 封装类已废弃,但仍可正常使用。这是为 Flower 中的全新可插拔差分隐私支持版本做准备。" -#: ../../source/ref-changelog.md:552 +#: ../../source/ref-changelog.md:663 #, fuzzy msgid "" "**Make optional arg** `--callable` **in** `flower-client` **a required " @@ -21027,7 +21943,7 @@ msgstr "" "**从** `start_client` 中移除** `rest` **实验参数 " "([#2324](https://github.com/adap/flower/pull/2324))" -#: ../../source/ref-changelog.md:554 +#: ../../source/ref-changelog.md:665 #, fuzzy msgid "" "**Rename** `certificates` **to** `root_certificates` **in** `Driver` " @@ -21036,7 +21952,7 @@ msgstr "" "**重新命名** `rnd` ** to** `server_round` " "([#1321](https://github.com/adap/flower/pull/1321))" -#: ../../source/ref-changelog.md:556 +#: ../../source/ref-changelog.md:667 #, fuzzy msgid "" "**Drop experimental** `Task` **fields** " @@ -21046,7 +21962,7 @@ msgstr "" "FedBN ([#2608](https://github.com/adap/flower/pull/2608), " "[#2615](https://github.com/adap/flower/pull/2615))" -#: ../../source/ref-changelog.md:558 +#: ../../source/ref-changelog.md:669 #, fuzzy msgid "" "Experimental fields `sa`, `legacy_server_message` and " @@ -21056,14 +21972,14 @@ msgstr "" "从 `Task` 消息中删除了试验性字段 `sa`、 `legacy_server_message` 和 " "`legacy_client_message`。删除的字段已被新的 `RecordSet` 抽象所取代。" -#: ../../source/ref-changelog.md:560 +#: ../../source/ref-changelog.md:671 #, fuzzy msgid "" "**Retire MXNet examples** " "([#2724](https://github.com/adap/flower/pull/2724))" msgstr "**新的 scikit-learn 代码示例** ([#748](https://github.com/adap/flower/pull/748))" -#: ../../source/ref-changelog.md:562 +#: ../../source/ref-changelog.md:673 #, fuzzy msgid "" "The development of the MXNet fremework has ended and the project is now " @@ -21073,12 +21989,12 @@ msgstr "" "MXNet fremework 的开发工作已经结束,该项目现已[归档于 " "GitHub](https://github.com/apache/mxnet)。现有的 MXNet 示例不会收到更新。" -#: ../../source/ref-changelog.md:564 +#: ../../source/ref-changelog.md:675 #, fuzzy msgid "v1.6.0 (2023-11-28)" msgstr "v1.4.0 (2023-04-21)" -#: ../../source/ref-changelog.md:570 +#: ../../source/ref-changelog.md:681 #, fuzzy msgid "" "`Aashish Kolluri`, `Adam Narozniak`, `Alessio Mora`, `Barathwaja S`, " @@ -21095,7 +22011,7 @@ msgstr "" "`Steve Laskaridis`, `Taner Topal`, `William Lindskog`, `Yan Gao`, " "`cnxdeveloper`, `k3nfalt` " -#: ../../source/ref-changelog.md:574 +#: ../../source/ref-changelog.md:685 msgid "" "**Add experimental support for Python 3.12** " "([#2565](https://github.com/adap/flower/pull/2565))" @@ -21103,7 +22019,7 @@ msgstr "" "** 增加对 Python 3.12 的实验支持** " "([#2565](https://github.com/adap/flower/pull/2565))" -#: ../../source/ref-changelog.md:576 +#: ../../source/ref-changelog.md:687 #, fuzzy msgid "" "**Add new XGBoost examples** " @@ -21122,7 +22038,7 @@ msgstr "" "[#1551](https://github.com/adap/flower/pull/1551), " "[#1567](https://github.com/adap/flower/pull/1567))" -#: ../../source/ref-changelog.md:578 +#: ../../source/ref-changelog.md:689 #, fuzzy msgid "" "We have added a new `xgboost-quickstart` example alongside a new " @@ -21131,14 +22047,14 @@ msgstr "" "我们添加了一个新的 \"xgboost-quickstart \"示例和一个新的 \"xgboost-comprehensive " "\"示例,后者更加深入。" -#: ../../source/ref-changelog.md:580 +#: ../../source/ref-changelog.md:691 #, fuzzy msgid "" "**Add Vertical FL example** " "([#2598](https://github.com/adap/flower/pull/2598))" msgstr "**新的 iOS CoreML 代码示例**([#1289](https://github.com/adap/flower/pull/1289))" -#: ../../source/ref-changelog.md:582 +#: ../../source/ref-changelog.md:693 #, fuzzy msgid "" "We had many questions about Vertical Federated Learning using Flower, so " @@ -21150,13 +22066,13 @@ msgstr "" "数据集](https://www.kaggle.com/competitions/titanic/data) 上添加一个简单的示例,并附上教程(在" " README 中)。" -#: ../../source/ref-changelog.md:584 +#: ../../source/ref-changelog.md:695 msgid "" "**Support custom** `ClientManager` **in** `start_driver()` " "([#2292](https://github.com/adap/flower/pull/2292))" msgstr "**在***`start_driver()`中支持自定义***`ClientManager([#2292](https://github.com/adap/flower/pull/2292))" -#: ../../source/ref-changelog.md:586 +#: ../../source/ref-changelog.md:697 msgid "" "**Update REST API to support create and delete nodes** " "([#2283](https://github.com/adap/flower/pull/2283))" @@ -21164,7 +22080,7 @@ msgstr "" "**更新 REST API 以支持创建和删除节点** " "([#2283](https://github.com/adap/flower/pull/2283))" -#: ../../source/ref-changelog.md:588 +#: ../../source/ref-changelog.md:699 #, fuzzy msgid "" "**Update the Android SDK** " @@ -21173,12 +22089,12 @@ msgstr "" "**介绍Flower Android SDK** " "([#2131](https://github.com/adap/flower/pull/2131))" -#: ../../source/ref-changelog.md:590 +#: ../../source/ref-changelog.md:701 #, fuzzy msgid "Add gRPC request-response capability to the Android SDK." msgstr "为 C++ SDK 添加 gRPC 请求-响应功能。" -#: ../../source/ref-changelog.md:592 +#: ../../source/ref-changelog.md:703 #, fuzzy msgid "" "**Update the C++ SDK** " @@ -21192,11 +22108,11 @@ msgstr "" "[#2523](https://github.com/adap/flower/pull/2523), " "[#2522](https://github.com/adap/flower/pull/2522))" -#: ../../source/ref-changelog.md:594 +#: ../../source/ref-changelog.md:705 msgid "Add gRPC request-response capability to the C++ SDK." msgstr "为 C++ SDK 添加 gRPC 请求-响应功能。" -#: ../../source/ref-changelog.md:596 +#: ../../source/ref-changelog.md:707 #, fuzzy msgid "" "**Make HTTPS the new default** " @@ -21206,7 +22122,7 @@ msgstr "" "Baselines文档([#2290](https://github.com/adap/flower/pull/2290), " "[#2400](https://github.com/adap/flower/pull/2400)" -#: ../../source/ref-changelog.md:598 +#: ../../source/ref-changelog.md:709 #, fuzzy msgid "" "Flower is moving to HTTPS by default. The new `flower-server` requires " @@ -21220,7 +22136,7 @@ msgstr "" "HTTP 进行原型开发。这同样适用于 `flower-client`,它可以使用用户提供的凭证或 gRPC 绑定证书连接到支持 HTTPS " "的服务器,也可以通过传递 `--insecure`来启用不安全的 HTTP 连接。" -#: ../../source/ref-changelog.md:600 +#: ../../source/ref-changelog.md:711 #, fuzzy msgid "" "For backward compatibility, `start_client()` and `start_numpy_client()` " @@ -21230,7 +22146,7 @@ msgstr "" "为了向后兼容,`start_client()` 和 `start_numpy_client()` " "默认仍以不安全模式启动。在未来的版本中,不安全连接将需要用户通过传递 `insecure=True` 进行选择。" -#: ../../source/ref-changelog.md:602 +#: ../../source/ref-changelog.md:713 msgid "" "**Unify client API** ([#2303](https://github.com/adap/flower/pull/2303), " "[#2390](https://github.com/adap/flower/pull/2390), " @@ -21240,7 +22156,7 @@ msgstr "" "[#2390](https://github.com/adap/flower/pull/2390), " "[#2493](https://github.com/adap/flower/pull/2493))" -#: ../../source/ref-changelog.md:604 +#: ../../source/ref-changelog.md:715 #, fuzzy msgid "" "Using the `client_fn`, Flower clients can interchangeably run as " @@ -21252,7 +22168,7 @@ msgstr "" "使用 `client_fn`,Flower 客户端可以作为独立进程(即通过 `start_client`)或在模拟中(即通过 " "`start_simulation`)交替运行,而无需更改客户端类的定义和实例化方式。调用 `start_numpy_client` 现已过时。" -#: ../../source/ref-changelog.md:606 +#: ../../source/ref-changelog.md:717 msgid "" "**Add new** `Bulyan` **strategy** " "([#1817](https://github.com/adap/flower/pull/1817), " @@ -21262,20 +22178,20 @@ msgstr "" "\"**策略**([#1817](https://github.com/adap/flower/pull/1817), " "[#1891](https://github.com/adap/flower/pull/1891)" -#: ../../source/ref-changelog.md:608 +#: ../../source/ref-changelog.md:719 msgid "" "The new `Bulyan` strategy implements Bulyan by [El Mhamdi et al., " "2018](https://arxiv.org/abs/1802.07927)" msgstr "新的 \"Bulyan\"策略通过[El Mhamdi 等人,2018](https://arxiv.org/abs/1802.07927)实现" -#: ../../source/ref-changelog.md:610 +#: ../../source/ref-changelog.md:721 #, fuzzy msgid "" "**Add new** `XGB Bagging` **strategy** " "([#2611](https://github.com/adap/flower/pull/2611))" msgstr "**添加新的`FedProx`策略** ([#1619](https://github.com/adap/flower/pull/1619))" -#: ../../source/ref-changelog.md:612 ../../source/ref-changelog.md:614 +#: ../../source/ref-changelog.md:723 ../../source/ref-changelog.md:725 #, fuzzy msgid "" "**Introduce `WorkloadState`** " @@ -21285,7 +22201,7 @@ msgstr "" "**新的内置策略**([#828](https://github.com/adap/flower/pull/828) " "[#822](https://github.com/adap/flower/pull/822)" -#: ../../source/ref-changelog.md:618 +#: ../../source/ref-changelog.md:729 msgid "" "FedProx ([#2210](https://github.com/adap/flower/pull/2210), " "[#2286](https://github.com/adap/flower/pull/2286), " @@ -21295,7 +22211,7 @@ msgstr "" "[#2286](https://github.com/adap/flower/pull/2286), " "[#2509](https://github.com/adap/flower/pull/2509))" -#: ../../source/ref-changelog.md:620 +#: ../../source/ref-changelog.md:731 msgid "" "Baselines Docs ([#2290](https://github.com/adap/flower/pull/2290), " "[#2400](https://github.com/adap/flower/pull/2400))" @@ -21303,7 +22219,7 @@ msgstr "" "Baselines文档([#2290](https://github.com/adap/flower/pull/2290), " "[#2400](https://github.com/adap/flower/pull/2400)" -#: ../../source/ref-changelog.md:622 +#: ../../source/ref-changelog.md:733 msgid "" "FedMLB ([#2340](https://github.com/adap/flower/pull/2340), " "[#2507](https://github.com/adap/flower/pull/2507))" @@ -21311,7 +22227,7 @@ msgstr "" "FedMLB ([#2340](https://github.com/adap/flower/pull/2340), " "[#2507](https://github.com/adap/flower/pull/2507))" -#: ../../source/ref-changelog.md:624 +#: ../../source/ref-changelog.md:735 msgid "" "TAMUNA ([#2254](https://github.com/adap/flower/pull/2254), " "[#2508](https://github.com/adap/flower/pull/2508))" @@ -21319,35 +22235,35 @@ msgstr "" "TAMUNA ([#2254](https://github.com/adap/flower/pull/2254), " "[#2508](https://github.com/adap/flower/pull/2508))" -#: ../../source/ref-changelog.md:626 +#: ../../source/ref-changelog.md:737 msgid "FedMeta [#2438](https://github.com/adap/flower/pull/2438)" msgstr "FedMeta [#2438](https://github.com/adap/flower/pull/2438)" -#: ../../source/ref-changelog.md:628 +#: ../../source/ref-changelog.md:739 msgid "FjORD [#2431](https://github.com/adap/flower/pull/2431)" msgstr "FjORD [#2431](https://github.com/adap/flower/pull/2431)" -#: ../../source/ref-changelog.md:630 +#: ../../source/ref-changelog.md:741 msgid "MOON [#2421](https://github.com/adap/flower/pull/2421)" msgstr "MOON [#2421](https://github.com/adap/flower/pull/2421)" -#: ../../source/ref-changelog.md:632 +#: ../../source/ref-changelog.md:743 msgid "DepthFL [#2295](https://github.com/adap/flower/pull/2295)" msgstr "DepthFL [#2295](https://github.com/adap/flower/pull/2295)" -#: ../../source/ref-changelog.md:634 +#: ../../source/ref-changelog.md:745 msgid "FedPer [#2266](https://github.com/adap/flower/pull/2266)" msgstr "FedPer [#2266](https://github.com/adap/flower/pull/2266)" -#: ../../source/ref-changelog.md:636 +#: ../../source/ref-changelog.md:747 msgid "FedWav2vec [#2551](https://github.com/adap/flower/pull/2551)" msgstr "FedWav2vec [#2551](https://github.com/adap/flower/pull/2551)" -#: ../../source/ref-changelog.md:638 +#: ../../source/ref-changelog.md:749 msgid "niid-Bench [#2428](https://github.com/adap/flower/pull/2428)" msgstr "niid-Bench [#2428](https://github.com/adap/flower/pull/2428)" -#: ../../source/ref-changelog.md:640 +#: ../../source/ref-changelog.md:751 msgid "" "FedBN ([#2608](https://github.com/adap/flower/pull/2608), " "[#2615](https://github.com/adap/flower/pull/2615))" @@ -21355,7 +22271,7 @@ msgstr "" "FedBN ([#2608](https://github.com/adap/flower/pull/2608), " "[#2615](https://github.com/adap/flower/pull/2615))" -#: ../../source/ref-changelog.md:642 +#: ../../source/ref-changelog.md:753 #, fuzzy msgid "" "**General updates to Flower Examples** " @@ -21370,7 +22286,7 @@ msgstr "" "[#2523](https://github.com/adap/flower/pull/2523), " "[#2522](https://github.com/adap/flower/pull/2522))" -#: ../../source/ref-changelog.md:644 +#: ../../source/ref-changelog.md:755 #, fuzzy msgid "" "**General updates to Flower Baselines** " @@ -21398,7 +22314,7 @@ msgstr "" "[#2446](https://github.com/adap/flower/pull/2446) " "[#2561](https://github.com/adap/flower/pull/2561))" -#: ../../source/ref-changelog.md:646 +#: ../../source/ref-changelog.md:757 #, fuzzy msgid "" "**General updates to the simulation engine** " @@ -21411,7 +22327,7 @@ msgstr "" "[#2447](https://github.com/adap/flower/pull/2447), " "[#2448](https://github.com/adap/flower/pull/2448))" -#: ../../source/ref-changelog.md:648 +#: ../../source/ref-changelog.md:759 #, fuzzy msgid "" "**General updates to Flower SDKs** " @@ -21430,7 +22346,7 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475)))" -#: ../../source/ref-changelog.md:650 +#: ../../source/ref-changelog.md:761 #, fuzzy msgid "" "**General improvements** " @@ -21490,13 +22406,13 @@ msgstr "" "[#2553](https://github.com/adap/flower/pull/2553), " "[#2596](https://github.com/adap/flower/pull/2596))" -#: ../../source/ref-changelog.md:652 ../../source/ref-changelog.md:742 -#: ../../source/ref-changelog.md:806 ../../source/ref-changelog.md:860 -#: ../../source/ref-changelog.md:927 +#: ../../source/ref-changelog.md:763 ../../source/ref-changelog.md:853 +#: ../../source/ref-changelog.md:917 ../../source/ref-changelog.md:971 +#: ../../source/ref-changelog.md:1038 msgid "Flower received many improvements under the hood, too many to list here." msgstr "Flower 进行了许多改进,这里就不一一列举了。" -#: ../../source/ref-changelog.md:656 +#: ../../source/ref-changelog.md:767 msgid "" "**Remove support for Python 3.7** " "([#2280](https://github.com/adap/flower/pull/2280), " @@ -21514,13 +22430,13 @@ msgstr "" "[#2355](https://github.com/adap/flower/pull/2355), " "[#2356](https://github.com/adap/flower/pull/2356))" -#: ../../source/ref-changelog.md:658 +#: ../../source/ref-changelog.md:769 msgid "" "Python 3.7 support was deprecated in Flower 1.5, and this release removes" " support. Flower now requires Python 3.8." msgstr "在 Flower 1.5 中,Python 3.7 支持已被弃用,本版本将删除该支持。Flower 现在需要 Python 3.8。" -#: ../../source/ref-changelog.md:660 +#: ../../source/ref-changelog.md:771 msgid "" "**Remove experimental argument** `rest` **from** `start_client` " "([#2324](https://github.com/adap/flower/pull/2324))" @@ -21528,7 +22444,7 @@ msgstr "" "**从** `start_client` 中移除** `rest` **实验参数 " "([#2324](https://github.com/adap/flower/pull/2324))" -#: ../../source/ref-changelog.md:662 +#: ../../source/ref-changelog.md:773 msgid "" "The (still experimental) argument `rest` was removed from `start_client` " "and `start_numpy_client`. Use `transport=\"rest\"` to opt into the " @@ -21537,11 +22453,11 @@ msgstr "" "删除了 `start_client` 和 `start_numpy_client` 中的参数 `rest`(仍属试验性质)。请使用 " "`transport=\"rest\"` 来选择使用试验性 REST API。" -#: ../../source/ref-changelog.md:664 +#: ../../source/ref-changelog.md:775 msgid "v1.5.0 (2023-08-31)" msgstr "v1.5.0 (2023-08-31)" -#: ../../source/ref-changelog.md:670 +#: ../../source/ref-changelog.md:781 msgid "" "`Adam Narozniak`, `Anass Anhari`, `Charles Beauville`, `Dana-Farber`, " "`Daniel J. Beutel`, `Daniel Nata Nugraha`, `Edoardo Gabrielli`, `Gustavo " @@ -21555,7 +22471,7 @@ msgstr "" "Topal`, `achiverram28`, `danielnugraha`, `eunchung`, `ruthgal` " -#: ../../source/ref-changelog.md:674 +#: ../../source/ref-changelog.md:785 msgid "" "**Introduce new simulation engine** " "([#1969](https://github.com/adap/flower/pull/1969), " @@ -21566,7 +22482,7 @@ msgstr "" "[#2221](https://github.com/adap/flower/pull/2221), " "[#2248](https://github.com/adap/flower/pull/2248))" -#: ../../source/ref-changelog.md:676 +#: ../../source/ref-changelog.md:787 msgid "" "The new simulation engine has been rewritten from the ground up, yet it " "remains fully backwards compatible. It offers much improved stability and" @@ -21577,7 +22493,7 @@ msgstr "" "新的模拟引擎从头开始重新编写,但仍完全向后兼容。它的稳定性和内存处理能力大大提高,尤其是在使用 GPU 时。仿真可透明地适应不同的设置,以在仅 " "CPU、CPU+GPU、多 GPU 或多节点多 GPU 环境中扩展模拟。" -#: ../../source/ref-changelog.md:678 +#: ../../source/ref-changelog.md:789 msgid "" "Comprehensive documentation includes a new [how-to run " "simulations](https://flower.ai/docs/framework/how-to-run-" @@ -21594,7 +22510,7 @@ msgstr "" "tensorflow.html) notebooks, and a new [YouTube tutorial " "series](https://www.youtube.com/watch?v=cRebUIGB5RU&list=PLNG4feLHqCWlnj8a_E1A_n5zr2-8pafTB)。" -#: ../../source/ref-changelog.md:680 +#: ../../source/ref-changelog.md:791 msgid "" "**Restructure Flower Docs** " "([#1824](https://github.com/adap/flower/pull/1824), " @@ -21653,7 +22569,7 @@ msgstr "" "[#2243](https://github.com/adap/flower/pull/2243), " "[#2227](https://github.com/adap/flower/pull/2227))" -#: ../../source/ref-changelog.md:682 +#: ../../source/ref-changelog.md:793 #, fuzzy msgid "" "Much effort went into a completely restructured Flower docs experience. " @@ -21664,7 +22580,7 @@ msgstr "" "Flower 文档体验的全面重构耗费了大量精力。现在,[flower.ai/docs](flower.ai/docs)上的文档分为 Flower " "Framework、Flower Baselines、Flower Android SDK、Flower iOS SDK 和代码示例项目。" -#: ../../source/ref-changelog.md:684 +#: ../../source/ref-changelog.md:795 msgid "" "**Introduce Flower Swift SDK** " "([#1858](https://github.com/adap/flower/pull/1858), " @@ -21674,7 +22590,7 @@ msgstr "" "([#1858](https://github.com/adap/flower/pull/1858), " "[#1897](https://github.com/adap/flower/pull/1897))" -#: ../../source/ref-changelog.md:686 +#: ../../source/ref-changelog.md:797 msgid "" "This is the first preview release of the Flower Swift SDK. Flower support" " on iOS is improving, and alongside the Swift SDK and code example, there" @@ -21683,7 +22599,7 @@ msgstr "" "这是 Flower Swift SDK 的首个预览版。Flower 对 iOS 的支持正在不断改进,除了 Swift SDK " "和代码示例外,现在还有 iOS 快速入门教程。" -#: ../../source/ref-changelog.md:688 +#: ../../source/ref-changelog.md:799 msgid "" "**Introduce Flower Android SDK** " "([#2131](https://github.com/adap/flower/pull/2131))" @@ -21691,7 +22607,7 @@ msgstr "" "**介绍Flower Android SDK** " "([#2131](https://github.com/adap/flower/pull/2131))" -#: ../../source/ref-changelog.md:690 +#: ../../source/ref-changelog.md:801 msgid "" "This is the first preview release of the Flower Kotlin SDK. Flower " "support on Android is improving, and alongside the Kotlin SDK and code " @@ -21700,7 +22616,7 @@ msgstr "" "这是 Flower Kotlin SDK 的首个预览版。Flower 对 Android 的支持正在不断改进,除了 Kotlin SDK " "和代码示例,现在还有 Android 快速入门教程。" -#: ../../source/ref-changelog.md:692 +#: ../../source/ref-changelog.md:803 msgid "" "**Introduce new end-to-end testing infrastructure** " "([#1842](https://github.com/adap/flower/pull/1842), " @@ -21739,23 +22655,23 @@ msgstr "" "[#2137](https://github.com/adap/flower/pull/2137), " "[#2165](https://github.com/adap/flower/pull/2165))" -#: ../../source/ref-changelog.md:694 +#: ../../source/ref-changelog.md:805 msgid "" "A new testing infrastructure ensures that new changes stay compatible " "with existing framework integrations or strategies." msgstr "新的测试设施可确保新的变更与现有的框架集成或策略保持兼容。" -#: ../../source/ref-changelog.md:696 +#: ../../source/ref-changelog.md:807 msgid "**Deprecate Python 3.7**" msgstr "** 过时的 Python 3.7**" -#: ../../source/ref-changelog.md:698 +#: ../../source/ref-changelog.md:809 msgid "" "Since Python 3.7 reached its end of life (EOL) on 2023-06-27, support for" " Python 3.7 is now deprecated and will be removed in an upcoming release." msgstr "由于 Python 3.7 已于 2023-06-27 弃用 (EOL),对 Python 3.7 的支持现已废弃,并将在即将发布的版本中移除。" -#: ../../source/ref-changelog.md:700 +#: ../../source/ref-changelog.md:811 msgid "" "**Add new** `FedTrimmedAvg` **strategy** " "([#1769](https://github.com/adap/flower/pull/1769), " @@ -21764,7 +22680,7 @@ msgstr "" "**添加新的**`FedTrimmedAvg`**策略**([#1769](https://github.com/adap/flower/pull/1769)," " [#1853](https://github.com/adap/flower/pull/1853)" -#: ../../source/ref-changelog.md:702 +#: ../../source/ref-changelog.md:813 msgid "" "The new `FedTrimmedAvg` strategy implements Trimmed Mean by [Dong Yin, " "2018](https://arxiv.org/abs/1803.01498)." @@ -21772,13 +22688,13 @@ msgstr "" "新的 \"FedTrimmedAvg \"策略实现了[Dong Yin, " "2018](https://arxiv.org/abs/1803.01498)的 \"Trimmed Mean\"。" -#: ../../source/ref-changelog.md:704 +#: ../../source/ref-changelog.md:815 msgid "" "**Introduce start_driver** " "([#1697](https://github.com/adap/flower/pull/1697))" msgstr "**引入 start_driver**([#1697](https://github.com/adap/flower/pull/1697))" -#: ../../source/ref-changelog.md:706 +#: ../../source/ref-changelog.md:817 msgid "" "In addition to `start_server` and using the raw Driver API, there is a " "new `start_driver` function that allows for running `start_server` " @@ -21790,7 +22706,7 @@ msgstr "" "`start_server` 脚本作为 Flower 驱动程序运行。请查看 `mt-pytorch` 代码示例,了解使用 " "`start_driver` 的工作示例。" -#: ../../source/ref-changelog.md:708 +#: ../../source/ref-changelog.md:819 msgid "" "**Add parameter aggregation to** `mt-pytorch` **code example** " "([#1785](https://github.com/adap/flower/pull/1785))" @@ -21798,7 +22714,7 @@ msgstr "" "为 `mt-pytorch` **代码示例**添加参数聚合 " "([#1785](https://github.com/adap/flower/pull/1785))" -#: ../../source/ref-changelog.md:710 +#: ../../source/ref-changelog.md:821 msgid "" "The `mt-pytorch` example shows how to aggregate parameters when writing a" " driver script. The included `driver.py` and `server.py` have been " @@ -21808,7 +22724,7 @@ msgstr "" "`mt-pytorch`示例展示了如何在编写驱动程序脚本时聚合参数。附带的 `driver.py` 和 `server.py` " "已经进行了调整,以演示构建服务器端逻辑的低级方法和高级方法。" -#: ../../source/ref-changelog.md:712 +#: ../../source/ref-changelog.md:823 msgid "" "**Migrate experimental REST API to Starlette** " "([2171](https://github.com/adap/flower/pull/2171))" @@ -21816,7 +22732,7 @@ msgstr "" "**将实验性 REST API 移植到 Starlette** " "([2171](https://github.com/adap/flower/pull/2171))" -#: ../../source/ref-changelog.md:714 +#: ../../source/ref-changelog.md:825 msgid "" "The (experimental) REST API used to be implemented in " "[FastAPI](https://fastapi.tiangolo.com/), but it has now been migrated to" @@ -21825,13 +22741,13 @@ msgstr "" "REST API(试验性)曾在 [FastAPI](https://fastapi.tiangolo.com/) 中实现,但现在已迁移到直接使用 " "[Starlette](https://www.starlette.io/) 。" -#: ../../source/ref-changelog.md:716 +#: ../../source/ref-changelog.md:827 msgid "" "Please note: The REST request-response API is still experimental and will" " likely change significantly over time." msgstr "请注意:REST 请求-响应 API 仍处于试验阶段,随着时间的推移可能会发生重大变化。" -#: ../../source/ref-changelog.md:718 +#: ../../source/ref-changelog.md:829 msgid "" "**Introduce experimental gRPC request-response API** " "([#1867](https://github.com/adap/flower/pull/1867), " @@ -21841,7 +22757,7 @@ msgstr "" "([#1867](https://github.com/adap/flower/pull/1867), " "[#1901](https://github.com/adap/flower/pull/1901)" -#: ../../source/ref-changelog.md:720 +#: ../../source/ref-changelog.md:831 msgid "" "In addition to the existing gRPC API (based on bidirectional streaming) " "and the experimental REST API, there is now a new gRPC API that uses a " @@ -21850,13 +22766,13 @@ msgstr "" "除了现有的 gRPC 应用程序接口(基于双向流)和试验性 REST 应用程序接口外,现在还有一个新的 gRPC " "应用程序接口,它使用请求-响应模型与客户端节点通信。" -#: ../../source/ref-changelog.md:722 +#: ../../source/ref-changelog.md:833 msgid "" "Please note: The gRPC request-response API is still experimental and will" " likely change significantly over time." msgstr "请注意:gRPC 请求-响应 API 仍处于试验阶段,随着时间的推移可能会发生重大变化。" -#: ../../source/ref-changelog.md:724 +#: ../../source/ref-changelog.md:835 msgid "" "**Replace the experimental** `start_client(rest=True)` **with the new** " "`start_client(transport=\"rest\")` " @@ -21866,7 +22782,7 @@ msgstr "" "`start_client(rest=True)` " "([#1880](https://github.com/adap/flower/pull/1880))" -#: ../../source/ref-changelog.md:726 +#: ../../source/ref-changelog.md:837 msgid "" "The (experimental) `start_client` argument `rest` was deprecated in " "favour of a new argument `transport`. `start_client(transport=\"rest\")` " @@ -21877,13 +22793,13 @@ msgstr "" "已废弃(试验性的)`start_client`参数`rest`,改用新参数`transport`。`start_client(transport=\"rest\")`将产生与以前的`start_client(rest=True)`相同的行为。所有代码都应迁移到新参数" " `transport`。过时的参数 `rest` 将在今后的版本中删除。" -#: ../../source/ref-changelog.md:728 +#: ../../source/ref-changelog.md:839 msgid "" "**Add a new gRPC option** " "([#2197](https://github.com/adap/flower/pull/2197))" msgstr "** 添加一个新的 gRPC 选项**([#2197](https://github.com/adap/flower/pull/2197))" -#: ../../source/ref-changelog.md:730 +#: ../../source/ref-changelog.md:841 msgid "" "We now start a gRPC server with the `grpc.keepalive_permit_without_calls`" " option set to 0 by default. This prevents the clients from sending " @@ -21892,17 +22808,17 @@ msgstr "" "现在我们启动一个 gRPC 服务器,并将 `grpc.keepalive_permit_without_calls` 选项默认设置为 " "0。这将防止客户端在没有未处理数据流时发送 keepalive pings。" -#: ../../source/ref-changelog.md:732 +#: ../../source/ref-changelog.md:843 msgid "" "**Improve example notebooks** " "([#2005](https://github.com/adap/flower/pull/2005))" msgstr "**改进示例笔记** ([#2005](https://github.com/adap/flower/pull/2005))" -#: ../../source/ref-changelog.md:734 +#: ../../source/ref-changelog.md:845 msgid "There's a new 30min Federated Learning PyTorch tutorial!" msgstr "有一个新的 30 分钟的联邦学习 PyTorch 教程!" -#: ../../source/ref-changelog.md:736 +#: ../../source/ref-changelog.md:847 msgid "" "**Example updates** ([#1772](https://github.com/adap/flower/pull/1772), " "[#1873](https://github.com/adap/flower/pull/1873), " @@ -21928,7 +22844,7 @@ msgstr "" "[#2225](https://github.com/adap/flower/pull/2225), " "[#2183](https://github.com/adap/flower/pull/2183))" -#: ../../source/ref-changelog.md:738 +#: ../../source/ref-changelog.md:849 msgid "" "Many examples have received significant updates, including simplified " "advanced-tensorflow and advanced-pytorch examples, improved macOS " @@ -21940,7 +22856,7 @@ msgstr "" "TensorFlow 示例的 macOS 兼容性,以及模拟代码示例。一项重大升级是所有代码示例现在都有了 " "\"requirements.txt\"(除 \"pyproject.toml \"外)。" -#: ../../source/ref-changelog.md:740 +#: ../../source/ref-changelog.md:851 msgid "" "**General improvements** " "([#1872](https://github.com/adap/flower/pull/1872), " @@ -21957,11 +22873,11 @@ msgstr "" "[#1477](https://github.com/adap/flower/pull/1477), " "[#2171](https://github.com/adap/flower/pull/2171))" -#: ../../source/ref-changelog.md:748 +#: ../../source/ref-changelog.md:859 msgid "v1.4.0 (2023-04-21)" msgstr "v1.4.0 (2023-04-21)" -#: ../../source/ref-changelog.md:754 +#: ../../source/ref-changelog.md:865 msgid "" "`Adam Narozniak`, `Alexander Viala Bellander`, `Charles Beauville`, " "`Chenyang Ma (Danny)`, `Daniel J. Beutel`, `Edoardo`, `Gautam Jajoo`, " @@ -21977,7 +22893,7 @@ msgstr "" "Lane`, `Nikolaos Episkopos`, `Ragy`, `Saurav Maheshkar`, `Semo Yang`, " "`Steve Laskaridis`, `Steven Hé (Sīchàng)`, `Taner Topal`" -#: ../../source/ref-changelog.md:758 +#: ../../source/ref-changelog.md:869 msgid "" "**Introduce support for XGBoost (**`FedXgbNnAvg` **strategy and " "example)** ([#1694](https://github.com/adap/flower/pull/1694), " @@ -21995,7 +22911,7 @@ msgstr "" "[#1763](https://github.com/adap/flower/pull/1763), " "[#1795](https://github.com/adap/flower/pull/1795))" -#: ../../source/ref-changelog.md:760 +#: ../../source/ref-changelog.md:871 msgid "" "XGBoost is a tree-based ensemble machine learning algorithm that uses " "gradient boosting to improve model accuracy. We added a new `FedXgbNnAvg`" @@ -22009,7 +22925,7 @@ msgstr "" "\"FedXgbNnAvg\"[策略](https://github.com/adap/flower/tree/main/src/py/flwr/server/strategy/fedxgb_nn_avg.py)和一个[代码示例](https://github.com/adap/flower/tree/main/examples" "/xgboost-quickstart),演示如何在 XGBoost 项目中使用这个新策略。" -#: ../../source/ref-changelog.md:762 +#: ../../source/ref-changelog.md:873 msgid "" "**Introduce iOS SDK (preview)** " "([#1621](https://github.com/adap/flower/pull/1621), " @@ -22018,7 +22934,7 @@ msgstr "" "**介绍 iOS SDK(预览版)** ([#1621](https://github.com/adap/flower/pull/1621), " "[#1764](https://github.com/adap/flower/pull/1764))" -#: ../../source/ref-changelog.md:764 +#: ../../source/ref-changelog.md:875 msgid "" "This is a major update for anyone wanting to implement Federated Learning" " on iOS mobile devices. We now have a swift iOS SDK present under " @@ -22033,7 +22949,7 @@ msgstr "" " 下提供了一个迅捷的 iOS SDK,这将大大方便应用程序的创建过程。为了展示其使用情况,我们还更新了 [iOS " "示例](https://github.com/adap/flower/tree/main/examples/ios)!" -#: ../../source/ref-changelog.md:766 +#: ../../source/ref-changelog.md:877 msgid "" "**Introduce new \"What is Federated Learning?\" tutorial** " "([#1657](https://github.com/adap/flower/pull/1657), " @@ -22043,7 +22959,7 @@ msgstr "" "\"什么是联邦学习?\"教程**([#1657](https://github.com/adap/flower/pull/1657), " "[#1721](https://github.com/adap/flower/pull/1721)" -#: ../../source/ref-changelog.md:768 +#: ../../source/ref-changelog.md:879 msgid "" "A new [entry-level tutorial](https://flower.ai/docs/framework/tutorial-" "what-is-federated-learning.html) in our documentation explains the basics" @@ -22055,7 +22971,7 @@ msgstr "" "federated-learning.html),解释了联邦学习的基础知识。它让任何不熟悉联邦学习的人都能开始 Flower " "之旅。请转发给对联邦学习感兴趣的人!" -#: ../../source/ref-changelog.md:770 +#: ../../source/ref-changelog.md:881 msgid "" "**Introduce new Flower Baseline: FedProx MNIST** " "([#1513](https://github.com/adap/flower/pull/1513), " @@ -22069,7 +22985,7 @@ msgstr "" "[#1681](https://github.com/adap/flower/pull/1681), " "[#1679](https://github.com/adap/flower/pull/1679)" -#: ../../source/ref-changelog.md:772 +#: ../../source/ref-changelog.md:883 msgid "" "This new baseline replicates the MNIST+CNN task from the paper [Federated" " Optimization in Heterogeneous Networks (Li et al., " @@ -22080,7 +22996,7 @@ msgstr "" "al., 2018)](https://arxiv.org/abs/1812.06127)中的 MNIST+CNN 任务。它使用 " "\"FedProx \"策略,旨在使收敛在异构环境中更加稳健。" -#: ../../source/ref-changelog.md:774 +#: ../../source/ref-changelog.md:885 msgid "" "**Introduce new Flower Baseline: FedAvg FEMNIST** " "([#1655](https://github.com/adap/flower/pull/1655))" @@ -22088,7 +23004,7 @@ msgstr "" "**引入新的 Flower Baseline: FedAvg FEMNIST** " "([#1655](https://github.com/adap/flower/pull/1655))" -#: ../../source/ref-changelog.md:776 +#: ../../source/ref-changelog.md:887 msgid "" "This new baseline replicates an experiment evaluating the performance of " "the FedAvg algorithm on the FEMNIST dataset from the paper [LEAF: A " @@ -22098,7 +23014,7 @@ msgstr "" "这一新Baseline复现了论文[LEAF: A Benchmark for Federated Settings(Caldas 等人,2018 " "年)](https://arxiv.org/abs/1812.01097)中评估 FedAvg 算法在 FEMNIST 数据集上性能的实验。" -#: ../../source/ref-changelog.md:778 +#: ../../source/ref-changelog.md:889 msgid "" "**Introduce (experimental) REST API** " "([#1594](https://github.com/adap/flower/pull/1594), " @@ -22117,20 +23033,20 @@ msgstr "" "[#1770](https://github.com/adap/flower/pull/1770), " "[#1733](https://github.com/adap/flower/pull/1733))" -#: ../../source/ref-changelog.md:780 +#: ../../source/ref-changelog.md:891 msgid "" "A new REST API has been introduced as an alternative to the gRPC-based " "communication stack. In this initial version, the REST API only supports " "anonymous clients." msgstr "作为基于 gRPC 的通信栈的替代方案,我们引入了新的 REST API。在初始版本中,REST API 仅支持匿名客户端。" -#: ../../source/ref-changelog.md:782 +#: ../../source/ref-changelog.md:893 msgid "" "Please note: The REST API is still experimental and will likely change " "significantly over time." msgstr "请注意:REST API 仍处于试验阶段,随着时间的推移可能会发生重大变化。" -#: ../../source/ref-changelog.md:784 +#: ../../source/ref-changelog.md:895 msgid "" "**Improve the (experimental) Driver API** " "([#1663](https://github.com/adap/flower/pull/1663), " @@ -22153,7 +23069,7 @@ msgstr "" "[#1662](https://github.com/adap/flower/pull/1662), " "[#1794](https://github.com/adap/flower/pull/1794))" -#: ../../source/ref-changelog.md:786 +#: ../../source/ref-changelog.md:897 msgid "" "The Driver API is still an experimental feature, but this release " "introduces some major upgrades. One of the main improvements is the " @@ -22166,20 +23082,20 @@ msgstr "" "数据库,将服务器状态存储在磁盘上(而不是内存中)。另一项改进是,已交付的任务(指令或结果)现在将被删除。这大大提高了长期运行的 Flower " "服务器的内存效率。" -#: ../../source/ref-changelog.md:788 +#: ../../source/ref-changelog.md:899 msgid "" "**Fix spilling issues related to Ray during simulations** " "([#1698](https://github.com/adap/flower/pull/1698))" msgstr "**修复模拟过程中与Ray有关的溢出问题** ([#1698](https://github.com/adap/flower/pull/1698))" -#: ../../source/ref-changelog.md:790 +#: ../../source/ref-changelog.md:901 msgid "" "While running long simulations, `ray` was sometimes spilling huge amounts" " of data that would make the training unable to continue. This is now " "fixed! 🎉" msgstr "在运行长时间模拟时,`ray` 有时会溢出大量数据,导致训练无法继续。现在这个问题已经解决!🎉" -#: ../../source/ref-changelog.md:792 +#: ../../source/ref-changelog.md:903 msgid "" "**Add new example using** `TabNet` **and Flower** " "([#1725](https://github.com/adap/flower/pull/1725))" @@ -22187,7 +23103,7 @@ msgstr "" "** 添加使用** `TabNet` ** 的新示例** " "([#1725](https://github.com/adap/flower/pull/1725))" -#: ../../source/ref-changelog.md:794 +#: ../../source/ref-changelog.md:905 msgid "" "TabNet is a powerful and flexible framework for training machine learning" " models on tabular data. We now have a federated example using Flower: " @@ -22198,19 +23114,19 @@ msgstr "" "tabnet](https://github.com/adap/flower/tree/main/examples/quickstart-" "tabnet)。" -#: ../../source/ref-changelog.md:796 +#: ../../source/ref-changelog.md:907 msgid "" "**Add new how-to guide for monitoring simulations** " "([#1649](https://github.com/adap/flower/pull/1649))" msgstr "** 添加新的模拟监控指南** ([#1649](https://github.com/adap/flower/pull/1649))" -#: ../../source/ref-changelog.md:798 +#: ../../source/ref-changelog.md:909 msgid "" "We now have a documentation guide to help users monitor their performance" " during simulations." msgstr "我们现在有一份文档指南,可帮助用户在模拟过程中监控其性能。" -#: ../../source/ref-changelog.md:800 +#: ../../source/ref-changelog.md:911 msgid "" "**Add training metrics to** `History` **object during simulations** " "([#1696](https://github.com/adap/flower/pull/1696))" @@ -22218,7 +23134,7 @@ msgstr "" "**在模拟过程中为***`历史`***对象添加训练指标*** " "([#1696](https://github.com/adap/flower/pull/1696))" -#: ../../source/ref-changelog.md:802 +#: ../../source/ref-changelog.md:913 msgid "" "The `fit_metrics_aggregation_fn` can be used to aggregate training " "metrics, but previous releases did not save the results in the `History` " @@ -22227,7 +23143,7 @@ msgstr "" "`fit_metrics_aggregation_fn`可用于汇总训练指标,但以前的版本不会将结果保存在 \"History " "\"对象中。现在可以了!" -#: ../../source/ref-changelog.md:804 +#: ../../source/ref-changelog.md:915 msgid "" "**General improvements** " "([#1659](https://github.com/adap/flower/pull/1659), " @@ -22330,11 +23246,11 @@ msgstr "" "[#1804](https://github.com/adap/flower/pull/1804), " "[#1805](https://github.com/adap/flower/pull/1805))" -#: ../../source/ref-changelog.md:812 +#: ../../source/ref-changelog.md:923 msgid "v1.3.0 (2023-02-06)" msgstr "v1.3.0 (2023-02-06)" -#: ../../source/ref-changelog.md:818 +#: ../../source/ref-changelog.md:929 msgid "" "`Adam Narozniak`, `Alexander Viala Bellander`, `Charles Beauville`, " "`Daniel J. Beutel`, `JDRanpariya`, `Lennart Behme`, `Taner Topal`" @@ -22342,7 +23258,7 @@ msgstr "" "`Adam Narozniak`, `Alexander Viala Bellander`, `Charles Beauville`, " "`Daniel J. Beutel`, `JDRanpariya`, `Lennart Behme`, `Taner Topal`" -#: ../../source/ref-changelog.md:822 +#: ../../source/ref-changelog.md:933 msgid "" "**Add support for** `workload_id` **and** `group_id` **in Driver API** " "([#1595](https://github.com/adap/flower/pull/1595))" @@ -22350,7 +23266,7 @@ msgstr "" "**在驱动程序应用程序接口中添加对** `workload_id` **和** `group_id` **的支持** " "([#1595](https://github.com/adap/flower/pull/1595))" -#: ../../source/ref-changelog.md:824 +#: ../../source/ref-changelog.md:935 msgid "" "The (experimental) Driver API now supports a `workload_id` that can be " "used to identify which workload a task belongs to. It also supports a new" @@ -22362,7 +23278,7 @@ msgstr "" "`group_id`,例如,可用于指示当前的训练轮次。通过 `workload_id` 和 `group_id` " "客户端节点可以决定是否要处理某个任务。" -#: ../../source/ref-changelog.md:826 +#: ../../source/ref-changelog.md:937 msgid "" "**Make Driver API and Fleet API address configurable** " "([#1637](https://github.com/adap/flower/pull/1637))" @@ -22370,7 +23286,7 @@ msgstr "" "**使Driver API 和Fleet " "API地址可配置**([#1637](https://github.com/adap/flower/pull/1637))" -#: ../../source/ref-changelog.md:828 +#: ../../source/ref-changelog.md:939 msgid "" "The (experimental) long-running Flower server (Driver API and Fleet API) " "can now configure the server address of both Driver API (via `--driver-" @@ -22379,7 +23295,7 @@ msgstr "" "长期运行的 Flower 服务器(Driver API 和 Fleet API)现在可以在启动时配置 Driver API(通过 " "`--driver-api-address`)和 Fleet API(通过 `-fleet-api-address`)的服务器地址:" -#: ../../source/ref-changelog.md:830 +#: ../../source/ref-changelog.md:941 #, fuzzy msgid "" "`flower-server --driver-api-address \"0.0.0.0:8081\" --fleet-api-address " @@ -22388,11 +23304,11 @@ msgstr "" "`flower-server --driver-api-address \"0.0.0.0:8081\" --fleet-api-address " "\"0.0.0.0:8086\"`" -#: ../../source/ref-changelog.md:832 +#: ../../source/ref-changelog.md:943 msgid "Both IPv4 and IPv6 addresses are supported." msgstr "支持 IPv4 和 IPv6 地址。" -#: ../../source/ref-changelog.md:834 +#: ../../source/ref-changelog.md:945 msgid "" "**Add new example of Federated Learning using fastai and Flower** " "([#1598](https://github.com/adap/flower/pull/1598))" @@ -22400,7 +23316,7 @@ msgstr "" "** 添加使用 fastai 和 Flower 进行联邦学习的新示例** " "([#1598](https://github.com/adap/flower/pull/1598))" -#: ../../source/ref-changelog.md:836 +#: ../../source/ref-changelog.md:947 msgid "" "A new code example (`quickstart-fastai`) demonstrates federated learning " "with [fastai](https://www.fast.ai/) and Flower. You can find it here: " @@ -22412,7 +23328,7 @@ msgstr "" "fastai](https://github.com/adap/flower/tree/main/examples/quickstart-" "fastai)。" -#: ../../source/ref-changelog.md:838 +#: ../../source/ref-changelog.md:949 msgid "" "**Make Android example compatible with** `flwr >= 1.0.0` **and the latest" " versions of Android** " @@ -22421,7 +23337,7 @@ msgstr "" "**使安卓示例兼容** `flwr >= 1.0.0` **和最新版本的安卓** " "([#1603](https://github.com/adap/flower/pull/1603))" -#: ../../source/ref-changelog.md:840 +#: ../../source/ref-changelog.md:951 msgid "" "The Android code example has received a substantial update: the project " "is compatible with Flower 1.0 (and later), the UI received a full " @@ -22431,13 +23347,13 @@ msgstr "" "Android 代码示例已进行了大幅更新:项目兼容 Flower 1.0(及更高版本),用户界面已全面刷新,项目已更新为兼容较新的 Android" " 工具。" -#: ../../source/ref-changelog.md:842 +#: ../../source/ref-changelog.md:953 msgid "" "**Add new `FedProx` strategy** " "([#1619](https://github.com/adap/flower/pull/1619))" msgstr "**添加新的`FedProx`策略** ([#1619](https://github.com/adap/flower/pull/1619))" -#: ../../source/ref-changelog.md:844 +#: ../../source/ref-changelog.md:955 msgid "" "This " "[strategy](https://github.com/adap/flower/blob/main/src/py/flwr/server/strategy/fedprox.py)" @@ -22451,25 +23367,25 @@ msgstr "" "该[策略](https://github.com/adap/flower/blob/main/src/py/flwr/server/strategy/fedprox.py)与[`FedAvg`](https://github.com/adap/flower/blob/main/src/py/flwr/server/strategy/fedavg.py)几乎相同,但可以帮助用户复现本[论文](https://arxiv.org/abs/1812.06127)中的描述。它的本质是添加一个名为" " `proximal_mu`的参数,使局部模型与全局模型正则化。" -#: ../../source/ref-changelog.md:846 +#: ../../source/ref-changelog.md:957 msgid "" "**Add new metrics to telemetry events** " "([#1640](https://github.com/adap/flower/pull/1640))" msgstr "**为遥测事件添加新指标**([#1640](https://github.com/adap/flower/pull/1640))" -#: ../../source/ref-changelog.md:848 +#: ../../source/ref-changelog.md:959 msgid "" "An updated event structure allows, for example, the clustering of events " "within the same workload." msgstr "例如,更新后的事件结构可以将同一工作负载中的事件集中在一起。" -#: ../../source/ref-changelog.md:850 +#: ../../source/ref-changelog.md:961 msgid "" "**Add new custom strategy tutorial section** " "[#1623](https://github.com/adap/flower/pull/1623)" msgstr "**添加新的自定义策略教程部分** [#1623](https://github.com/adap/flower/pull/1623)" -#: ../../source/ref-changelog.md:852 +#: ../../source/ref-changelog.md:963 msgid "" "The Flower tutorial now has a new section that covers implementing a " "custom strategy from scratch: [Open in " @@ -22480,13 +23396,13 @@ msgstr "" "中打开](https://colab.research.google.com/github/adap/flower/blob/main/doc/source" "/tutorial-build-a-strategy-from-scratch-pytorch.ipynb)" -#: ../../source/ref-changelog.md:854 +#: ../../source/ref-changelog.md:965 msgid "" "**Add new custom serialization tutorial section** " "([#1622](https://github.com/adap/flower/pull/1622))" msgstr "** 添加新的自定义序列化教程部分** ([#1622](https://github.com/adap/flower/pull/1622))" -#: ../../source/ref-changelog.md:856 +#: ../../source/ref-changelog.md:967 msgid "" "The Flower tutorial now has a new section that covers custom " "serialization: [Open in " @@ -22497,7 +23413,7 @@ msgstr "" "中打开](https://colab.research.google.com/github/adap/flower/blob/main/doc/source" "/tutorial-customize-the-client-pytorch.ipynb)" -#: ../../source/ref-changelog.md:858 +#: ../../source/ref-changelog.md:969 msgid "" "**General improvements** " "([#1638](https://github.com/adap/flower/pull/1638), " @@ -22568,7 +23484,7 @@ msgstr "" "[#1572](https://github.com/adap/flower/pull/1572), " "[#1586](https://github.com/adap/flower/pull/1586))" -#: ../../source/ref-changelog.md:862 +#: ../../source/ref-changelog.md:973 msgid "" "**Updated documentation** " "([#1629](https://github.com/adap/flower/pull/1629), " @@ -22587,18 +23503,18 @@ msgstr "" "[#1613](https://github.com/adap/flower/pull/1613), " "[#1614](https://github.com/adap/flower/pull/1614)))" -#: ../../source/ref-changelog.md:864 ../../source/ref-changelog.md:931 +#: ../../source/ref-changelog.md:975 ../../source/ref-changelog.md:1042 msgid "" "As usual, the documentation has improved quite a bit. It is another step " "in our effort to make the Flower documentation the best documentation of " "any project. Stay tuned and as always, feel free to provide feedback!" msgstr "和往常一样,我们的文档有了很大的改进。这是我们努力使 Flower 文档成为所有项目中最好文档的又一步骤。请继续关注,并随时提供反馈意见!" -#: ../../source/ref-changelog.md:870 +#: ../../source/ref-changelog.md:981 msgid "v1.2.0 (2023-01-13)" msgstr "v1.2.0 (2023-01-13)" -#: ../../source/ref-changelog.md:876 +#: ../../source/ref-changelog.md:987 msgid "" "`Adam Narozniak`, `Charles Beauville`, `Daniel J. Beutel`, `Edoardo`, `L." " Jiang`, `Ragy`, `Taner Topal`, `dannymcy`" @@ -22606,7 +23522,7 @@ msgstr "" "`Adam Narozniak`, `Charles Beauville`, `Daniel J. Beutel`, `Edoardo`, `L." " Jiang`, `Ragy`, `Taner Topal`, `dannymcy`" -#: ../../source/ref-changelog.md:880 +#: ../../source/ref-changelog.md:991 msgid "" "**Introduce new Flower Baseline: FedAvg MNIST** " "([#1497](https://github.com/adap/flower/pull/1497), " @@ -22616,7 +23532,7 @@ msgstr "" "([#1497](https://github.com/adap/flower/pull/1497), " "[#1552](https://github.com/adap/flower/pull/1552))" -#: ../../source/ref-changelog.md:882 +#: ../../source/ref-changelog.md:993 msgid "" "Over the coming weeks, we will be releasing a number of new reference " "implementations useful especially to FL newcomers. They will typically " @@ -22631,13 +23547,13 @@ msgstr "" "的总体了解。今天发布的是该系列中的第一篇。[阅读全文](https://flower.ai/blog/2023-01-12-fl-starter-" "pack-fedavg-mnist-cnn/)" -#: ../../source/ref-changelog.md:884 +#: ../../source/ref-changelog.md:995 msgid "" "**Improve GPU support in simulations** " "([#1555](https://github.com/adap/flower/pull/1555))" msgstr "**改进模拟中的 GPU 支持**([#1555](https://github.com/adap/flower/pull/1555))" -#: ../../source/ref-changelog.md:886 +#: ../../source/ref-changelog.md:997 msgid "" "The Ray-based Virtual Client Engine (`start_simulation`) has been updated" " to improve GPU support. The update includes some of the hard-earned " @@ -22647,7 +23563,7 @@ msgstr "" "基于 Ray 的虚拟客户端引擎 (`start_simulation`)已更新,以改进对 GPU 的支持。此次更新包含了在 GPU " "集群环境中扩展模拟的一些经验教训。新的默认设置使基于 GPU 的模拟运行更加稳健。" -#: ../../source/ref-changelog.md:888 +#: ../../source/ref-changelog.md:999 msgid "" "**Improve GPU support in Jupyter Notebook tutorials** " "([#1527](https://github.com/adap/flower/pull/1527), " @@ -22657,7 +23573,7 @@ msgstr "" "([#1527](https://github.com/adap/flower/pull/1527), " "[#1558](https://github.com/adap/flower/pull/1558))" -#: ../../source/ref-changelog.md:890 +#: ../../source/ref-changelog.md:1001 msgid "" "Some users reported that Jupyter Notebooks have not always been easy to " "use on GPU instances. We listened and made improvements to all of our " @@ -22666,7 +23582,7 @@ msgstr "" "一些用户报告说,在 GPU 实例上使用 Jupyter 笔记本并不是很方便。我们听取了他们的意见,并对所有 Jupyter " "笔记本进行了改进!点击这里查看更新后的笔记本:" -#: ../../source/ref-changelog.md:892 +#: ../../source/ref-changelog.md:1003 msgid "" "[An Introduction to Federated Learning](https://flower.ai/docs/framework" "/tutorial-get-started-with-flower-pytorch.html)" @@ -22674,7 +23590,7 @@ msgstr "" "[联邦学习简介](https://flower.ai/docs/framework/tutorial-get-started-with-" "flower-pytorch.html)" -#: ../../source/ref-changelog.md:893 +#: ../../source/ref-changelog.md:1004 msgid "" "[Strategies in Federated Learning](https://flower.ai/docs/framework" "/tutorial-use-a-federated-learning-strategy-pytorch.html)" @@ -22682,7 +23598,7 @@ msgstr "" "[联邦学习策略](https://flower.ai/docs/framework/tutorial-use-a-federated-" "learning-strategy-pytorch.html)" -#: ../../source/ref-changelog.md:894 +#: ../../source/ref-changelog.md:1005 msgid "" "[Building a Strategy](https://flower.ai/docs/framework/tutorial-build-a" "-strategy-from-scratch-pytorch.html)" @@ -22690,7 +23606,7 @@ msgstr "" "[制定策略](https://flower.ai/docs/framework/tutorial-build-a-strategy-from-" "scratch-pytorch.html)" -#: ../../source/ref-changelog.md:895 +#: ../../source/ref-changelog.md:1006 msgid "" "[Client and NumPyClient](https://flower.ai/docs/framework/tutorial-" "customize-the-client-pytorch.html)" @@ -22698,7 +23614,7 @@ msgstr "" "[客户端和 NumPyClient](https://flower.ai/docs/framework/tutorial-customize-" "the-client-pytorch.html)" -#: ../../source/ref-changelog.md:897 +#: ../../source/ref-changelog.md:1008 msgid "" "**Introduce optional telemetry** " "([#1533](https://github.com/adap/flower/pull/1533), " @@ -22709,7 +23625,7 @@ msgstr "" "[#1544](https://github.com/adap/flower/pull/1544), " "[#1584](https://github.com/adap/flower/pull/1584)" -#: ../../source/ref-changelog.md:899 +#: ../../source/ref-changelog.md:1010 msgid "" "After a [request for " "feedback](https://github.com/adap/flower/issues/1534) from the community," @@ -22722,7 +23638,7 @@ msgstr "" "开放源码项目引入了可选的*匿名*使用指标收集,以便在充分知情的情况下做出改进 Flower 的决定。这样做能让 Flower 团队了解 " "Flower 的使用情况以及用户可能面临的挑战。" -#: ../../source/ref-changelog.md:901 +#: ../../source/ref-changelog.md:1012 msgid "" "**Flower is a friendly framework for collaborative AI and data science.**" " Staying true to this statement, Flower makes it easy to disable " @@ -22732,7 +23648,7 @@ msgstr "" "**Flower 是一个用于协作式人工智能和数据科学的友好框架。** Flower " "遵循这一声明,让不想分享匿名使用指标的用户可以轻松禁用遥测技术。[阅读全文](https://flower.ai/docs/telemetry.html)。" -#: ../../source/ref-changelog.md:903 +#: ../../source/ref-changelog.md:1014 msgid "" "**Introduce (experimental) Driver API** " "([#1520](https://github.com/adap/flower/pull/1520), " @@ -22751,7 +23667,7 @@ msgstr "" "[#1551](https://github.com/adap/flower/pull/1551), " "[#1567](https://github.com/adap/flower/pull/1567))" -#: ../../source/ref-changelog.md:905 +#: ../../source/ref-changelog.md:1016 msgid "" "Flower now has a new (experimental) Driver API which will enable fully " "programmable, async, and multi-tenant Federated Learning and Federated " @@ -22763,7 +23679,7 @@ msgstr "" "API),它将支持完全可编程、异步和多租户的联邦学习(Federated Learning)和联邦分析(Federated " "Analytics)应用程序。展望未来,Driver API 将成为许多即将推出的功能的抽象基础,您现在就可以开始构建这些功能。" -#: ../../source/ref-changelog.md:907 +#: ../../source/ref-changelog.md:1018 msgid "" "The Driver API also enables a new execution mode in which the server runs" " indefinitely. Multiple individual workloads can run concurrently and " @@ -22773,19 +23689,19 @@ msgstr "" "驱动程序应用程序接口还支持一种新的执行模式,在这种模式下,服务器可无限期运行。多个单独的工作负载可以同时运行,并独立于服务器启动和停止执行。这对于希望在生产中部署" " Flower 的用户来说尤其有用。" -#: ../../source/ref-changelog.md:909 +#: ../../source/ref-changelog.md:1020 msgid "" "To learn more, check out the `mt-pytorch` code example. We look forward " "to you feedback!" msgstr "要了解更多信息,请查看 `mt-pytorch` 代码示例。我们期待您的反馈!" -#: ../../source/ref-changelog.md:911 +#: ../../source/ref-changelog.md:1022 msgid "" "Please note: *The Driver API is still experimental and will likely change" " significantly over time.*" msgstr "请注意:Driver API仍处于试验阶段,随着时间的推移可能会发生重大变化。*" -#: ../../source/ref-changelog.md:913 +#: ../../source/ref-changelog.md:1024 msgid "" "**Add new Federated Analytics with Pandas example** " "([#1469](https://github.com/adap/flower/pull/1469), " @@ -22795,7 +23711,7 @@ msgstr "" "的联邦分析示例**([#1469](https://github.com/adap/flower/pull/1469), " "[#1535](https://github.com/adap/flower/pull/1535)" -#: ../../source/ref-changelog.md:915 +#: ../../source/ref-changelog.md:1026 msgid "" "A new code example (`quickstart-pandas`) demonstrates federated analytics" " with Pandas and Flower. You can find it here: [quickstart-" @@ -22806,7 +23722,7 @@ msgstr "" "[quickstart-pandas](https://github.com/adap/flower/tree/main/examples" "/quickstart-pandas)。" -#: ../../source/ref-changelog.md:917 +#: ../../source/ref-changelog.md:1028 msgid "" "**Add new strategies: Krum and MultiKrum** " "([#1481](https://github.com/adap/flower/pull/1481))" @@ -22814,7 +23730,7 @@ msgstr "" "**添加新策略: Krum 和 MultiKrum** " "([#1481](https://github.com/adap/flower/pull/1481))" -#: ../../source/ref-changelog.md:919 +#: ../../source/ref-changelog.md:1030 msgid "" "Edoardo, a computer science student at the Sapienza University of Rome, " "contributed a new `Krum` strategy that enables users to easily use Krum " @@ -22823,7 +23739,7 @@ msgstr "" "罗马萨皮恩扎大学(Sapienza University)计算机科学专业的学生埃多尔多(Edoardo)提出了一种新的 \"Krum " "\"策略,使用户能够在其工作负载中轻松使用 Krum 和 MultiKrum。" -#: ../../source/ref-changelog.md:921 +#: ../../source/ref-changelog.md:1032 msgid "" "**Update C++ example to be compatible with Flower v1.2.0** " "([#1495](https://github.com/adap/flower/pull/1495))" @@ -22831,13 +23747,13 @@ msgstr "" "** 更新 C++ 示例,与 Flower v1.2.0 兼容** " "([#1495](https://github.com/adap/flower/pull/1495))" -#: ../../source/ref-changelog.md:923 +#: ../../source/ref-changelog.md:1034 msgid "" "The C++ code example has received a substantial update to make it " "compatible with the latest version of Flower." msgstr "为了与最新版本的 Flower 兼容,C++ 示例代码进行了大幅更新。" -#: ../../source/ref-changelog.md:925 +#: ../../source/ref-changelog.md:1036 msgid "" "**General improvements** " "([#1491](https://github.com/adap/flower/pull/1491), " @@ -22868,7 +23784,7 @@ msgstr "" "[#1564](https://github.com/adap/flower/pull/1564), " "[#1566](https://github.com/adap/flower/pull/1566))" -#: ../../source/ref-changelog.md:929 +#: ../../source/ref-changelog.md:1040 msgid "" "**Updated documentation** " "([#1494](https://github.com/adap/flower/pull/1494), " @@ -22891,7 +23807,7 @@ msgstr "" "[#1519](https://github.com/adap/flower/pull/1519), " "[#1515](https://github.com/adap/flower/pull/1515))" -#: ../../source/ref-changelog.md:933 +#: ../../source/ref-changelog.md:1044 msgid "" "One highlight is the new [first time contributor " "guide](https://flower.ai/docs/first-time-contributors.html): if you've " @@ -22900,17 +23816,17 @@ msgstr "" "其中一个亮点是新的[首次贡献者指南](https://flower.ai/docs/first-time-" "contributors.html):如果你以前从未在 GitHub 上做过贡献,这将是一个完美的开始!" -#: ../../source/ref-changelog.md:939 +#: ../../source/ref-changelog.md:1050 msgid "v1.1.0 (2022-10-31)" msgstr "v1.1.0 (2022-10-31)" -#: ../../source/ref-changelog.md:943 +#: ../../source/ref-changelog.md:1054 msgid "" "We would like to give our **special thanks** to all the contributors who " "made the new version of Flower possible (in `git shortlog` order):" msgstr "在此,我们向所有促成 Flower 新版本的贡献者致以**特别的谢意(按 \"git shortlog \"顺序排列):" -#: ../../source/ref-changelog.md:945 +#: ../../source/ref-changelog.md:1056 msgid "" "`Akis Linardos`, `Christopher S`, `Daniel J. Beutel`, `George`, `Jan " "Schlicht`, `Mohammad Fares`, `Pedro Porto Buarque de Gusmão`, `Philipp " @@ -22922,7 +23838,7 @@ msgstr "" "Wiesner`, `Rob Luke`, `Taner Topal`, `VasundharaAgarwal`, " "`danielnugraha`, `edogab33`" -#: ../../source/ref-changelog.md:949 +#: ../../source/ref-changelog.md:1060 msgid "" "**Introduce Differential Privacy wrappers (preview)** " "([#1357](https://github.com/adap/flower/pull/1357), " @@ -22931,7 +23847,7 @@ msgstr "" "**引入差分隐私包装器(预览)** ([#1357](https://github.com/adap/flower/pull/1357), " "[#1460](https://github.com/adap/flower/pull/1460))" -#: ../../source/ref-changelog.md:951 +#: ../../source/ref-changelog.md:1062 msgid "" "The first (experimental) preview of pluggable Differential Privacy " "wrappers enables easy configuration and usage of differential privacy " @@ -22942,13 +23858,13 @@ msgstr "" "可插拔差分隐私封装器的首个(实验性)预览版可轻松配置和使用差分隐私(DP)。可插拔的差分隐私封装器可实现客户端差分隐私和服务器端差分隐私的框架无关**以及**策略无关的使用。请访问" " Flower 文档,新的解释器会提供更多细节。" -#: ../../source/ref-changelog.md:953 +#: ../../source/ref-changelog.md:1064 msgid "" "**New iOS CoreML code example** " "([#1289](https://github.com/adap/flower/pull/1289))" msgstr "**新的 iOS CoreML 代码示例**([#1289](https://github.com/adap/flower/pull/1289))" -#: ../../source/ref-changelog.md:955 +#: ../../source/ref-changelog.md:1066 msgid "" "Flower goes iOS! A massive new code example shows how Flower clients can " "be built for iOS. The code example contains both Flower iOS SDK " @@ -22958,13 +23874,13 @@ msgstr "" "Flower 进入 iOS!大量新代码示例展示了如何为 iOS 构建 Flower 客户端。该代码示例包含可用于多种任务的 Flower iOS " "SDK 组件,以及在 CoreML 上运行的一个任务示例。" -#: ../../source/ref-changelog.md:957 +#: ../../source/ref-changelog.md:1068 msgid "" "**New FedMedian strategy** " "([#1461](https://github.com/adap/flower/pull/1461))" msgstr "**新的联邦医疗策略** ([#1461](https://github.com/adap/flower/pull/1461))" -#: ../../source/ref-changelog.md:959 +#: ../../source/ref-changelog.md:1070 msgid "" "The new `FedMedian` strategy implements Federated Median (FedMedian) by " "[Yin et al., 2018](https://arxiv.org/pdf/1803.01498v1.pdf)." @@ -22972,27 +23888,27 @@ msgstr "" "新的 \"FedMedian \"战略实现了[Yin " "等人,2018]的联邦中值(FedMedian)(https://arxiv.org/pdf/1803.01498v1.pdf)。" -#: ../../source/ref-changelog.md:961 +#: ../../source/ref-changelog.md:1072 msgid "" "**Log** `Client` **exceptions in Virtual Client Engine** " "([#1493](https://github.com/adap/flower/pull/1493))" msgstr "**虚拟客户端引擎中的**日志**`客户端`**异常([#1493](https://github.com/adap/flower/pull/1493))" -#: ../../source/ref-changelog.md:963 +#: ../../source/ref-changelog.md:1074 msgid "" "All `Client` exceptions happening in the VCE are now logged by default " "and not just exposed to the configured `Strategy` (via the `failures` " "argument)." msgstr "VCE 中发生的所有 \"客户端 \"异常现在都会被默认记录下来,而不只是暴露给配置的 `Strategy`(通过 `failures`参数)。" -#: ../../source/ref-changelog.md:965 +#: ../../source/ref-changelog.md:1076 msgid "" "**Improve Virtual Client Engine internals** " "([#1401](https://github.com/adap/flower/pull/1401), " "[#1453](https://github.com/adap/flower/pull/1453))" msgstr "**改进虚拟客户端引擎内部**([#1401](https://github.com/adap/flower/pull/1401)、[#1453](https://github.com/adap/flower/pull/1453))" -#: ../../source/ref-changelog.md:967 +#: ../../source/ref-changelog.md:1078 msgid "" "Some internals of the Virtual Client Engine have been revamped. The VCE " "now uses Ray 2.0 under the hood, the value type of the `client_resources`" @@ -23002,19 +23918,19 @@ msgstr "" "虚拟客户端引擎的部分内部结构已进行了修改。VCE 现在使用 Ray 2.0,\"client_resources \"字典的值类型改为 " "\"float\",以允许分配分数资源。" -#: ../../source/ref-changelog.md:969 +#: ../../source/ref-changelog.md:1080 msgid "" "**Support optional** `Client`**/**`NumPyClient` **methods in Virtual " "Client Engine**" msgstr "**支持虚拟客户端引擎中的可选** `Client`**/**`NumPyClient` **方法**" -#: ../../source/ref-changelog.md:971 +#: ../../source/ref-changelog.md:1082 msgid "" "The Virtual Client Engine now has full support for optional `Client` (and" " `NumPyClient`) methods." msgstr "虚拟客户端引擎现在完全支持可选的 `Client`(和 `NumPyClient`)方法。" -#: ../../source/ref-changelog.md:973 +#: ../../source/ref-changelog.md:1084 msgid "" "**Provide type information to packages using** `flwr` " "([#1377](https://github.com/adap/flower/pull/1377))" @@ -23022,7 +23938,7 @@ msgstr "" "**使用** `flwr`向软件包提供类型信息 " "([#1377](https://github.com/adap/flower/pull/1377))" -#: ../../source/ref-changelog.md:975 +#: ../../source/ref-changelog.md:1086 msgid "" "The package `flwr` is now bundled with a `py.typed` file indicating that " "the package is typed. This enables typing support for projects or " @@ -23032,7 +23948,7 @@ msgstr "" "软件包 `flwr` 现在捆绑了一个 `py.typed` 文件,表明该软件包是类型化的。这样,使用 `flwr` 的项目或软件包就可以使用 " "`mypy` 等静态类型检查器改进代码,从而获得类型支持。" -#: ../../source/ref-changelog.md:977 +#: ../../source/ref-changelog.md:1088 msgid "" "**Updated code example** " "([#1344](https://github.com/adap/flower/pull/1344), " @@ -23041,13 +23957,13 @@ msgstr "" "** 更新代码示例** ([#1344](https://github.com/adap/flower/pull/1344), " "[#1347](https://github.com/adap/flower/pull/1347))" -#: ../../source/ref-changelog.md:979 +#: ../../source/ref-changelog.md:1090 msgid "" "The code examples covering scikit-learn and PyTorch Lightning have been " "updated to work with the latest version of Flower." msgstr "涵盖 scikit-learn 和 PyTorch Lightning 的代码示例已更新,以便与最新版本的 Flower 配合使用。" -#: ../../source/ref-changelog.md:981 +#: ../../source/ref-changelog.md:1092 msgid "" "**Updated documentation** " "([#1355](https://github.com/adap/flower/pull/1355), " @@ -23086,32 +24002,32 @@ msgstr "" "[#1465](https://github.com/adap/flower/pull/1465), " "[#1467](https://github.com/adap/flower/pull/1467))" -#: ../../source/ref-changelog.md:983 +#: ../../source/ref-changelog.md:1094 msgid "" "There have been so many documentation updates that it doesn't even make " "sense to list them individually." msgstr "文档更新的数量之多,甚至没有必要逐一列出。" -#: ../../source/ref-changelog.md:985 +#: ../../source/ref-changelog.md:1096 msgid "" "**Restructured documentation** " "([#1387](https://github.com/adap/flower/pull/1387))" msgstr "**重构文档**([#1387](https://github.com/adap/flower/pull/1387))" -#: ../../source/ref-changelog.md:987 +#: ../../source/ref-changelog.md:1098 msgid "" "The documentation has been restructured to make it easier to navigate. " "This is just the first step in a larger effort to make the Flower " "documentation the best documentation of any project ever. Stay tuned!" msgstr "我们对文档进行了重组,使其更易于浏览。这只是让 Flower 文档成为所有项目中最好文档的第一步。敬请期待!" -#: ../../source/ref-changelog.md:989 +#: ../../source/ref-changelog.md:1100 msgid "" "**Open in Colab button** " "([#1389](https://github.com/adap/flower/pull/1389))" msgstr "**在 Colab 中打开按钮** ([#1389](https://github.com/adap/flower/pull/1389))" -#: ../../source/ref-changelog.md:991 +#: ../../source/ref-changelog.md:1102 msgid "" "The four parts of the Flower Federated Learning Tutorial now come with a " "new `Open in Colab` button. No need to install anything on your local " @@ -23121,7 +24037,7 @@ msgstr "" "Flower 联邦学习教程的四个部分现在都带有一个新的 \"在 Colab 中打开 " "\"按钮。现在,您无需在本地计算机上安装任何软件,只需点击一下,就可以在浏览器中使用和学习 Flower。" -#: ../../source/ref-changelog.md:993 +#: ../../source/ref-changelog.md:1104 msgid "" "**Improved tutorial** ([#1468](https://github.com/adap/flower/pull/1468)," " [#1470](https://github.com/adap/flower/pull/1470), " @@ -23137,7 +24053,7 @@ msgstr "" "[#1474](https://github.com/adap/flower/pull/1474), " "[#1475](https://github.com/adap/flower/pull/1475)))" -#: ../../source/ref-changelog.md:995 +#: ../../source/ref-changelog.md:1106 msgid "" "The Flower Federated Learning Tutorial has two brand-new parts covering " "custom strategies (still WIP) and the distinction between `Client` and " @@ -23147,33 +24063,33 @@ msgstr "" "Flower 联邦学习教程有两个全新的部分,涉及自定义策略(仍处于 WIP 阶段)和 `Client` 与 `NumPyClient` " "之间的区别。现有的第一和第二部分也得到了改进(许多小改动和修正)。" -#: ../../source/ref-changelog.md:1001 +#: ../../source/ref-changelog.md:1112 msgid "v1.0.0 (2022-07-28)" msgstr "v1.0.0 (2022-07-28)" -#: ../../source/ref-changelog.md:1003 +#: ../../source/ref-changelog.md:1114 msgid "Highlights" msgstr "亮点" -#: ../../source/ref-changelog.md:1005 +#: ../../source/ref-changelog.md:1116 msgid "Stable **Virtual Client Engine** (accessible via `start_simulation`)" msgstr "稳定的**虚拟客户端引擎**(可通过`start_simulation`访问)" -#: ../../source/ref-changelog.md:1006 +#: ../../source/ref-changelog.md:1117 msgid "All `Client`/`NumPyClient` methods are now optional" msgstr "所有 `Client`/`NumPyClient` 方法现在都是可选的了" -#: ../../source/ref-changelog.md:1007 +#: ../../source/ref-changelog.md:1118 msgid "Configurable `get_parameters`" msgstr "可配置的`get_parameters`" -#: ../../source/ref-changelog.md:1008 +#: ../../source/ref-changelog.md:1119 msgid "" "Tons of small API cleanups resulting in a more coherent developer " "experience" msgstr "对大量小型应用程序接口进行了清理,使开发人员的体验更加一致" -#: ../../source/ref-changelog.md:1012 +#: ../../source/ref-changelog.md:1123 msgid "" "We would like to give our **special thanks** to all the contributors who " "made Flower 1.0 possible (in reverse [GitHub " @@ -23182,7 +24098,7 @@ msgstr "" "在此,我们谨向所有促成 Flower 1.0 的贡献者致以**特别的谢意(按[GitHub " "贡献者](https://github.com/adap/flower/graphs/contributors) 倒序排列):" -#: ../../source/ref-changelog.md:1014 +#: ../../source/ref-changelog.md:1125 msgid "" "[@rtaiello](https://github.com/rtaiello), " "[@g-pichler](https://github.com/g-pichler), [@rob-" @@ -23258,13 +24174,13 @@ msgstr "" "[@tanertopal](https://github.com/tanertopal), " "[@danieljanes](https://github.com/danieljanes)." -#: ../../source/ref-changelog.md:1018 +#: ../../source/ref-changelog.md:1129 msgid "" "**All arguments must be passed as keyword arguments** " "([#1338](https://github.com/adap/flower/pull/1338))" msgstr "** 所有参数必须作为关键字参数传递** ([#1338](https://github.com/adap/flower/pull/1338))" -#: ../../source/ref-changelog.md:1020 +#: ../../source/ref-changelog.md:1131 msgid "" "Pass all arguments as keyword arguments, positional arguments are not " "longer supported. Code that uses positional arguments (e.g., " @@ -23277,7 +24193,7 @@ msgstr "" "FlowerClient())`)必须为每个位置参数添加关键字(例如,`start_client(server_address=\"127.0.0.1:8080\"," " client=FlowerClient())`)。" -#: ../../source/ref-changelog.md:1022 +#: ../../source/ref-changelog.md:1133 msgid "" "**Introduce configuration object** `ServerConfig` **in** `start_server` " "**and** `start_simulation` " @@ -23286,7 +24202,7 @@ msgstr "" "**在*** `start_server` ***和*** `start_simulation` 中引入配置对象*** " "`ServerConfig` ([#1317](https://github.com/adap/flower/pull/1317))" -#: ../../source/ref-changelog.md:1024 +#: ../../source/ref-changelog.md:1135 msgid "" "Instead of a config dictionary `{\"num_rounds\": 3, \"round_timeout\": " "600.0}`, `start_server` and `start_simulation` now expect a configuration" @@ -23299,37 +24215,37 @@ msgstr "" "`flwr.server.ServerConfig`的配置对象。`ServerConfig`接收的参数与之前的 config dict " "相同,但它使编写类型安全代码变得更容易,默认参数值也更加透明。" -#: ../../source/ref-changelog.md:1026 +#: ../../source/ref-changelog.md:1137 msgid "" "**Rename built-in strategy parameters for clarity** " "([#1334](https://github.com/adap/flower/pull/1334))" msgstr "**重新命名内置策略参数,使其更加清晰** ([#1334](https://github.com/adap/flower/pull/1334))" -#: ../../source/ref-changelog.md:1028 +#: ../../source/ref-changelog.md:1139 msgid "" "The following built-in strategy parameters were renamed to improve " "readability and consistency with other API's:" msgstr "以下内置策略参数已重新命名,以提高可读性并与其他 API 保持一致:" -#: ../../source/ref-changelog.md:1030 +#: ../../source/ref-changelog.md:1141 msgid "`fraction_eval` --> `fraction_evaluate`" msgstr "`fraction_eval` --> `fraction_evaluate`" -#: ../../source/ref-changelog.md:1031 +#: ../../source/ref-changelog.md:1142 msgid "`min_eval_clients` --> `min_evaluate_clients`" msgstr "`min_eval_clients` --> `min_evaluate_clients`" -#: ../../source/ref-changelog.md:1032 +#: ../../source/ref-changelog.md:1143 msgid "`eval_fn` --> `evaluate_fn`" msgstr "`eval_fn` --> `evaluate_fn`" -#: ../../source/ref-changelog.md:1034 +#: ../../source/ref-changelog.md:1145 msgid "" "**Update default arguments of built-in strategies** " "([#1278](https://github.com/adap/flower/pull/1278))" msgstr "**更新内置策略的默认参数** ([#1278](https://github.com/adap/flower/pull/1278))" -#: ../../source/ref-changelog.md:1036 +#: ../../source/ref-changelog.md:1147 msgid "" "All built-in strategies now use `fraction_fit=1.0` and " "`fraction_evaluate=1.0`, which means they select *all* currently " @@ -23340,11 +24256,11 @@ msgstr "" "所有内置策略现在都使用 \"fraction_fit=1.0 \"和 " "\"fraction_evaluate=1.0\",这意味着它们会选择*所有*当前可用的客户端进行训练和评估。依赖以前默认值的项目可以通过以下方式初始化策略,获得以前的行为:" -#: ../../source/ref-changelog.md:1038 +#: ../../source/ref-changelog.md:1149 msgid "`strategy = FedAvg(fraction_fit=0.1, fraction_evaluate=0.1)`" msgstr "`strategy = FedAvg(fraction_fit=0.1, fraction_evaluate=0.1)`" -#: ../../source/ref-changelog.md:1040 +#: ../../source/ref-changelog.md:1151 msgid "" "**Add** `server_round` **to** `Strategy.evaluate` " "([#1334](https://github.com/adap/flower/pull/1334))" @@ -23352,13 +24268,13 @@ msgstr "" "**添加*** `server_round` ***到*** `Strategy.evaluate` " "([#1334](https://github.com/adap/flower/pull/1334))" -#: ../../source/ref-changelog.md:1042 +#: ../../source/ref-changelog.md:1153 msgid "" "The `Strategy` method `evaluate` now receives the current round of " "federated learning/evaluation as the first parameter." msgstr "`Strategy`的`evaluate` 方法现在会接收当前一轮联邦学习/评估作为第一个参数。" -#: ../../source/ref-changelog.md:1044 +#: ../../source/ref-changelog.md:1155 msgid "" "**Add** `server_round` **and** `config` **parameters to** `evaluate_fn` " "([#1334](https://github.com/adap/flower/pull/1334))" @@ -23366,7 +24282,7 @@ msgstr "" "**将*** `server_round` **和*** `config` **参数添加到*** `evaluate_fn` " "([#1334](https://github.com/adap/flower/pull/1334))" -#: ../../source/ref-changelog.md:1046 +#: ../../source/ref-changelog.md:1157 msgid "" "The `evaluate_fn` passed to built-in strategies like `FedAvg` now takes " "three parameters: (1) The current round of federated learning/evaluation " @@ -23376,7 +24292,7 @@ msgstr "" "传递给内置策略(如 `FedAvg`)的 `evaluate_fn` 现在需要三个参数:(1) 当前一轮联邦学习/评估 " "(`server_round`),(2) 要评估的模型参数 (`parameters`),(3) 配置字典 (`config`)。" -#: ../../source/ref-changelog.md:1048 +#: ../../source/ref-changelog.md:1159 msgid "" "**Rename** `rnd` **to** `server_round` " "([#1321](https://github.com/adap/flower/pull/1321))" @@ -23384,7 +24300,7 @@ msgstr "" "**重新命名** `rnd` ** to** `server_round` " "([#1321](https://github.com/adap/flower/pull/1321))" -#: ../../source/ref-changelog.md:1050 +#: ../../source/ref-changelog.md:1161 msgid "" "Several Flower methods and functions (`evaluate_fn`, `configure_fit`, " "`aggregate_fit`, `configure_evaluate`, `aggregate_evaluate`) receive the " @@ -23396,7 +24312,7 @@ msgstr "" "方法和函数(`evaluate_fn`、`configure_fit`、`aggregate_fit`、`configure_evaluate`、`aggregate_evaluate`)的第一个参数是当前一轮的联邦学习/评估。为提高可重复性并避免与" " *random* 混淆,该参数已从 `rnd` 更名为 `server_round`。" -#: ../../source/ref-changelog.md:1052 +#: ../../source/ref-changelog.md:1163 msgid "" "**Move** `flwr.dataset` **to** `flwr_baselines` " "([#1273](https://github.com/adap/flower/pull/1273))" @@ -23404,23 +24320,23 @@ msgstr "" "**移动*** `flwr.dataset` **到*** `flwr_baselines` " "([#1273](https://github.com/adap/flower/pull/1273))" -#: ../../source/ref-changelog.md:1054 +#: ../../source/ref-changelog.md:1165 msgid "The experimental package `flwr.dataset` was migrated to Flower Baselines." msgstr "实验软件包 `flwr.dataset` 已迁移至 Flower Baselines。" -#: ../../source/ref-changelog.md:1056 +#: ../../source/ref-changelog.md:1167 msgid "" "**Remove experimental strategies** " "([#1280](https://github.com/adap/flower/pull/1280))" msgstr "**删除实验策略** ([#1280](https://github.com/adap/flower/pull/1280))" -#: ../../source/ref-changelog.md:1058 +#: ../../source/ref-changelog.md:1169 msgid "" "Remove unmaintained experimental strategies (`FastAndSlow`, `FedFSv0`, " "`FedFSv1`)." msgstr "移除未维护的试验性策略(`FastAndSlow`、`FedFSv0`、`FedFSv1`)。" -#: ../../source/ref-changelog.md:1060 +#: ../../source/ref-changelog.md:1171 msgid "" "**Rename** `Weights` **to** `NDArrays` " "([#1258](https://github.com/adap/flower/pull/1258), " @@ -23430,13 +24346,13 @@ msgstr "" "([#1258](https://github.com/adap/flower/pull/1258), " "[#1259](https://github.com/adap/flower/pull/1259))" -#: ../../source/ref-changelog.md:1062 +#: ../../source/ref-changelog.md:1173 msgid "" "`flwr.common.Weights` was renamed to `flwr.common.NDArrays` to better " "capture what this type is all about." msgstr "flwr.common.Weights \"更名为 \"flwr.common.NDArrays\",以更好地反映该类型的含义。" -#: ../../source/ref-changelog.md:1064 +#: ../../source/ref-changelog.md:1175 msgid "" "**Remove antiquated** `force_final_distributed_eval` **from** " "`start_server` ([#1258](https://github.com/adap/flower/pull/1258), " @@ -23446,7 +24362,7 @@ msgstr "" "([#1258](https://github.com/adap/flower/pull/1258), " "[#1259](https://github.com/adap/flower/pull/1259))" -#: ../../source/ref-changelog.md:1066 +#: ../../source/ref-changelog.md:1177 msgid "" "The `start_server` parameter `force_final_distributed_eval` has long been" " a historic artefact, in this release it is finally gone for good." @@ -23454,7 +24370,7 @@ msgstr "" "start_server \"参数 \"force_final_distributed_eval " "\"长期以来一直是个历史遗留问题,在此版本中终于永远消失了。" -#: ../../source/ref-changelog.md:1068 +#: ../../source/ref-changelog.md:1179 msgid "" "**Make** `get_parameters` **configurable** " "([#1242](https://github.com/adap/flower/pull/1242))" @@ -23462,7 +24378,7 @@ msgstr "" "**使** `get_parameters` **可配置** " "([#1242](https://github.com/adap/flower/pull/1242))" -#: ../../source/ref-changelog.md:1070 +#: ../../source/ref-changelog.md:1181 msgid "" "The `get_parameters` method now accepts a configuration dictionary, just " "like `get_properties`, `fit`, and `evaluate`." @@ -23470,7 +24386,7 @@ msgstr "" "现在,\"get_parameters \"方法与 \"get_properties\"、\"fit \"和 \"evaluate " "\"一样,都接受配置字典。" -#: ../../source/ref-changelog.md:1072 +#: ../../source/ref-changelog.md:1183 msgid "" "**Replace** `num_rounds` **in** `start_simulation` **with new** `config` " "**parameter** ([#1281](https://github.com/adap/flower/pull/1281))" @@ -23478,7 +24394,7 @@ msgstr "" "**用新的** `config` 参数** 替换** `num_rounds` ** in** `start_simulation` ** " "([#1281](https://github.com/adap/flower/pull/1281))" -#: ../../source/ref-changelog.md:1074 +#: ../../source/ref-changelog.md:1185 msgid "" "The `start_simulation` function now accepts a configuration dictionary " "`config` instead of the `num_rounds` integer. This improves the " @@ -23488,19 +24404,19 @@ msgstr "" "现在,`start_simulation`(开始模拟)` 函数接受配置字典 `config` 而不是 `num_rounds` 整数。这改进了 " "`start_simulation` 和 `start_server` 之间的一致性,并使两者之间的转换更容易。" -#: ../../source/ref-changelog.md:1078 +#: ../../source/ref-changelog.md:1189 msgid "" "**Support Python 3.10** " "([#1320](https://github.com/adap/flower/pull/1320))" msgstr "** 支持 Python 3.10** ([#1320](https://github.com/adap/flower/pull/1320))" -#: ../../source/ref-changelog.md:1080 +#: ../../source/ref-changelog.md:1191 msgid "" "The previous Flower release introduced experimental support for Python " "3.10, this release declares Python 3.10 support as stable." msgstr "上一个 Flower 版本引入了对 Python 3.10 的实验支持,而本版本则宣布对 Python 3.10 的支持为稳定支持。" -#: ../../source/ref-changelog.md:1082 +#: ../../source/ref-changelog.md:1193 msgid "" "**Make all** `Client` **and** `NumPyClient` **methods optional** " "([#1260](https://github.com/adap/flower/pull/1260), " @@ -23510,7 +24426,7 @@ msgstr "" "([#1260](https://github.com/adap/flower/pull/1260), " "[#1277](https://github.com/adap/flower/pull/1277))" -#: ../../source/ref-changelog.md:1084 +#: ../../source/ref-changelog.md:1195 msgid "" "The `Client`/`NumPyClient` methods `get_properties`, `get_parameters`, " "`fit`, and `evaluate` are all optional. This enables writing clients that" @@ -23521,7 +24437,7 @@ msgstr "" "\"evaluate \"方法都是可选的。这样就可以编写只实现 `fit` 而不实现其他方法的客户端。使用集中评估时,无需实现 " "`evaluate`!" -#: ../../source/ref-changelog.md:1086 +#: ../../source/ref-changelog.md:1197 msgid "" "**Enable passing a** `Server` **instance to** `start_simulation` " "([#1281](https://github.com/adap/flower/pull/1281))" @@ -23529,7 +24445,7 @@ msgstr "" "**启用向** `start_simulation` 传递** `Server` 实例 " "([#1281](https://github.com/adap/flower/pull/1281))" -#: ../../source/ref-changelog.md:1088 +#: ../../source/ref-changelog.md:1199 msgid "" "Similar to `start_server`, `start_simulation` now accepts a full `Server`" " instance. This enables users to heavily customize the execution of " @@ -23539,7 +24455,7 @@ msgstr "" "与 `start_server` 类似,`start_simulation` 现在也接受一个完整的 `Server` " "实例。这使得用户可以对实验的执行进行大量自定义,并为使用虚拟客户端引擎运行异步 FL 等打开了大门。" -#: ../../source/ref-changelog.md:1090 +#: ../../source/ref-changelog.md:1201 msgid "" "**Update code examples** " "([#1291](https://github.com/adap/flower/pull/1291), " @@ -23550,43 +24466,43 @@ msgstr "" "[#1286](https://github.com/adap/flower/pull/1286), " "[#1282](https://github.com/adap/flower/pull/1282))" -#: ../../source/ref-changelog.md:1092 +#: ../../source/ref-changelog.md:1203 msgid "" "Many code examples received small or even large maintenance updates, " "among them are" msgstr "许多代码示例都进行了小规模甚至大规模的维护更新,其中包括" -#: ../../source/ref-changelog.md:1094 +#: ../../source/ref-changelog.md:1205 msgid "`scikit-learn`" msgstr "`scikit-learn`" -#: ../../source/ref-changelog.md:1095 +#: ../../source/ref-changelog.md:1206 msgid "`simulation_pytorch`" msgstr "`simulation_pytorch`" -#: ../../source/ref-changelog.md:1096 +#: ../../source/ref-changelog.md:1207 msgid "`quickstart_pytorch`" msgstr "`quickstart_pytorch`" -#: ../../source/ref-changelog.md:1097 +#: ../../source/ref-changelog.md:1208 msgid "`quickstart_simulation`" msgstr "`quickstart_simulation`" -#: ../../source/ref-changelog.md:1098 +#: ../../source/ref-changelog.md:1209 msgid "`quickstart_tensorflow`" msgstr "`quickstart_tensorflow`" -#: ../../source/ref-changelog.md:1099 +#: ../../source/ref-changelog.md:1210 msgid "`advanced_tensorflow`" msgstr "`advanced_tensorflow`" -#: ../../source/ref-changelog.md:1101 +#: ../../source/ref-changelog.md:1212 msgid "" "**Remove the obsolete simulation example** " "([#1328](https://github.com/adap/flower/pull/1328))" msgstr "**删除过时的模拟示例** ([#1328](https://github.com/adap/flower/pull/1328))" -#: ../../source/ref-changelog.md:1103 +#: ../../source/ref-changelog.md:1214 msgid "" "Removes the obsolete `simulation` example and renames " "`quickstart_simulation` to `simulation_tensorflow` so it fits withs the " @@ -23595,7 +24511,7 @@ msgstr "" "删除过时的 \"simulation \"示例,并将 \"quickstart_simulation \"重命名为 " "\"simulation_tensorflow\",使其与 \"simulation_pytorch \"的命名一致" -#: ../../source/ref-changelog.md:1105 +#: ../../source/ref-changelog.md:1216 msgid "" "**Update documentation** " "([#1223](https://github.com/adap/flower/pull/1223), " @@ -23620,7 +24536,7 @@ msgstr "" "[#1305](https://github.com/adap/flower/pull/1305), " "[#1307](https://github.com/adap/flower/pull/1307))" -#: ../../source/ref-changelog.md:1107 +#: ../../source/ref-changelog.md:1218 msgid "" "One substantial documentation update fixes multiple smaller rendering " "issues, makes titles more succinct to improve navigation, removes a " @@ -23633,18 +24549,18 @@ msgstr "" "`flwr.common` 模块,包含了对基于 markdown 的文档的支持,将更新日志从 `.rst` 移植到了 " "`.md`,并修复了一些较小的细节!" -#: ../../source/ref-changelog.md:1109 ../../source/ref-changelog.md:1164 -#: ../../source/ref-changelog.md:1233 ../../source/ref-changelog.md:1272 +#: ../../source/ref-changelog.md:1220 ../../source/ref-changelog.md:1275 +#: ../../source/ref-changelog.md:1344 ../../source/ref-changelog.md:1383 msgid "**Minor updates**" msgstr "**小规模更新**" -#: ../../source/ref-changelog.md:1111 +#: ../../source/ref-changelog.md:1222 msgid "" "Add round number to fit and evaluate log messages " "([#1266](https://github.com/adap/flower/pull/1266))" msgstr "添加四舍五入数字,以适应和评估日志信息([#1266](https://github.com/adap/flower/pull/1266))" -#: ../../source/ref-changelog.md:1112 +#: ../../source/ref-changelog.md:1223 msgid "" "Add secure gRPC connection to the `advanced_tensorflow` code example " "([#847](https://github.com/adap/flower/pull/847))" @@ -23652,7 +24568,7 @@ msgstr "" "为 `advanced_tensorflow` 代码示例添加安全 gRPC 连接 " "([#847](https://github.com/adap/flower/pull/847))" -#: ../../source/ref-changelog.md:1113 +#: ../../source/ref-changelog.md:1224 msgid "" "Update developer tooling " "([#1231](https://github.com/adap/flower/pull/1231), " @@ -23665,7 +24581,7 @@ msgstr "" "[#1301](https://github.com/adap/flower/pull/1301), " "[#1310](https://github.com/adap/flower/pull/1310)" -#: ../../source/ref-changelog.md:1114 +#: ../../source/ref-changelog.md:1225 msgid "" "Rename ProtoBuf messages to improve consistency " "([#1214](https://github.com/adap/flower/pull/1214), " @@ -23676,11 +24592,11 @@ msgstr "" "[#1258](https://github.com/adap/flower/pull/1258), " "[#1259](https://github.com/adap/flower/pull/1259)" -#: ../../source/ref-changelog.md:1116 +#: ../../source/ref-changelog.md:1227 msgid "v0.19.0 (2022-05-18)" msgstr "v0.19.0 (2022-05-18)" -#: ../../source/ref-changelog.md:1120 +#: ../../source/ref-changelog.md:1231 msgid "" "**Flower Baselines (preview): FedOpt, FedBN, FedAvgM** " "([#919](https://github.com/adap/flower/pull/919), " @@ -23692,7 +24608,7 @@ msgstr "" "[#1127](https://github.com/adap/flower/pull/1127), " "[#914](https://github.com/adap/flower/pull/914))" -#: ../../source/ref-changelog.md:1122 +#: ../../source/ref-changelog.md:1233 #, fuzzy msgid "" "The first preview release of Flower Baselines has arrived! We're " @@ -23709,13 +24625,13 @@ msgstr "" "baselines.html)。在首次发布预览版时,我们还邀请社区成员[贡献自己的Baselines](https://flower.ai/docs" "/contributing-baselines.html)。" -#: ../../source/ref-changelog.md:1124 +#: ../../source/ref-changelog.md:1235 msgid "" "**C++ client SDK (preview) and code example** " "([#1111](https://github.com/adap/flower/pull/1111))" msgstr "**C++客户端SDK(预览版)和代码示例**([#1111](https://github.com/adap/flower/pull/1111))" -#: ../../source/ref-changelog.md:1126 +#: ../../source/ref-changelog.md:1237 msgid "" "Preview support for Flower clients written in C++. The C++ preview " "includes a Flower client SDK and a quickstart code example that " @@ -23724,7 +24640,7 @@ msgstr "" "预览版支持用 C++ 编写的 Flower 客户端。C++ 预览版包括一个 Flower 客户端 SDK 和一个快速入门代码示例,使用 SDK " "演示了一个简单的 C++ 客户端。" -#: ../../source/ref-changelog.md:1128 +#: ../../source/ref-changelog.md:1239 msgid "" "**Add experimental support for Python 3.10 and Python 3.11** " "([#1135](https://github.com/adap/flower/pull/1135))" @@ -23732,7 +24648,7 @@ msgstr "" "** 增加对 Python 3.10 和 Python 3.11 的实验支持** " "([#1135](https://github.com/adap/flower/pull/1135))" -#: ../../source/ref-changelog.md:1130 +#: ../../source/ref-changelog.md:1241 msgid "" "Python 3.10 is the latest stable release of Python and Python 3.11 is due" " to be released in October. This Flower release adds experimental support" @@ -23741,13 +24657,13 @@ msgstr "" "Python 3.10 是 Python 的最新稳定版本,Python 3.11 将于 10 月份发布。Flower 版本增加了对这两个 " "Python 版本的实验支持。" -#: ../../source/ref-changelog.md:1132 +#: ../../source/ref-changelog.md:1243 msgid "" "**Aggregate custom metrics through user-provided functions** " "([#1144](https://github.com/adap/flower/pull/1144))" msgstr "**通过用户提供的函数聚合自定义指标**([#1144](https://github.com/adap/flower/pull/1144))" -#: ../../source/ref-changelog.md:1134 +#: ../../source/ref-changelog.md:1245 msgid "" "Custom metrics (e.g., `accuracy`) can now be aggregated without having to" " customize the strategy. Built-in strategies support two new arguments, " @@ -23757,13 +24673,13 @@ msgstr "" "现在无需定制策略即可聚合自定义度量(如`准确度`)。内置策略支持两个新参数:`fit_metrics_aggregation_fn` " "和`evaluate_metrics_aggregation_fn`,允许传递自定义度量聚合函数。" -#: ../../source/ref-changelog.md:1136 +#: ../../source/ref-changelog.md:1247 msgid "" "**User-configurable round timeout** " "([#1162](https://github.com/adap/flower/pull/1162))" msgstr "**用户可配置的回合超时**([#1162](https://github.com/adap/flower/pull/1162))" -#: ../../source/ref-changelog.md:1138 +#: ../../source/ref-changelog.md:1249 msgid "" "A new configuration value allows the round timeout to be set for " "`start_server` and `start_simulation`. If the `config` dictionary " @@ -23774,7 +24690,7 @@ msgstr "" "新的配置值允许为 `start_server` 和 `start_simulation` 设置回合超时。如果 `config` 字典中包含一个 " "`round_timeout` 键(以秒为单位的 `float`值),服务器将至少等待 ** `round_timeout` 秒后才关闭连接。" -#: ../../source/ref-changelog.md:1140 +#: ../../source/ref-changelog.md:1251 msgid "" "**Enable both federated evaluation and centralized evaluation to be used " "at the same time in all built-in strategies** " @@ -23783,7 +24699,7 @@ msgstr "" "**允许在所有内置策略中同时使用联邦评价和集中评估** " "([#1091](https://github.com/adap/flower/pull/1091))" -#: ../../source/ref-changelog.md:1142 +#: ../../source/ref-changelog.md:1253 msgid "" "Built-in strategies can now perform both federated evaluation (i.e., " "client-side) and centralized evaluation (i.e., server-side) in the same " @@ -23793,7 +24709,7 @@ msgstr "" "内置策略现在可以在同一轮中同时执行联邦评估(即客户端)和集中评估(即服务器端)。可以通过将 `fraction_eval` 设置为 " "`0.0`来禁用联邦评估。" -#: ../../source/ref-changelog.md:1144 +#: ../../source/ref-changelog.md:1255 msgid "" "**Two new Jupyter Notebook tutorials** " "([#1141](https://github.com/adap/flower/pull/1141))" @@ -23801,13 +24717,13 @@ msgstr "" "**两本新的 Jupyter Notebook 教程** " "([#1141](https://github.com/adap/flower/pull/1141))" -#: ../../source/ref-changelog.md:1146 +#: ../../source/ref-changelog.md:1257 msgid "" "Two Jupyter Notebook tutorials (compatible with Google Colab) explain " "basic and intermediate Flower features:" msgstr "两本 Jupyter Notebook 教程(与 Google Colab 兼容)介绍了 Flower 的基本和中级功能:" -#: ../../source/ref-changelog.md:1148 +#: ../../source/ref-changelog.md:1259 msgid "" "*An Introduction to Federated Learning*: [Open in " "Colab](https://colab.research.google.com/github/adap/flower/blob/main/tutorials/Flower-1" @@ -23817,7 +24733,7 @@ msgstr "" "中打开](https://colab.research.google.com/github/adap/flower/blob/main/tutorials/Flower-1" "-Intro-to-FL-PyTorch.ipynb)" -#: ../../source/ref-changelog.md:1150 +#: ../../source/ref-changelog.md:1261 msgid "" "*Using Strategies in Federated Learning*: [Open in " "Colab](https://colab.research.google.com/github/adap/flower/blob/main/tutorials/Flower-2" @@ -23827,7 +24743,7 @@ msgstr "" "中打开](https://colab.research.google.com/github/adap/flower/blob/main/tutorials/Flower-2" "-Strategies-in-FL-PyTorch.ipynb)" -#: ../../source/ref-changelog.md:1152 +#: ../../source/ref-changelog.md:1263 msgid "" "**New FedAvgM strategy (Federated Averaging with Server Momentum)** " "([#1076](https://github.com/adap/flower/pull/1076))" @@ -23835,25 +24751,25 @@ msgstr "" "**新的 FedAvgM 策略(带服务器动量的联邦平均)** " "([#1076](https://github.com/adap/flower/pull/1076))" -#: ../../source/ref-changelog.md:1154 +#: ../../source/ref-changelog.md:1265 msgid "" "The new `FedAvgM` strategy implements Federated Averaging with Server " "Momentum \\[Hsu et al., 2019\\]." msgstr "新的 \"FedAvgM \"策略实现了带服务器动量的联邦平均[Hsu et al., 2019\\]." -#: ../../source/ref-changelog.md:1156 +#: ../../source/ref-changelog.md:1267 msgid "" "**New advanced PyTorch code example** " "([#1007](https://github.com/adap/flower/pull/1007))" msgstr "**新的 PyTorch 高级代码示例** ([#1007](https://github.com/adap/flower/pull/1007))" -#: ../../source/ref-changelog.md:1158 +#: ../../source/ref-changelog.md:1269 msgid "" "A new code example (`advanced_pytorch`) demonstrates advanced Flower " "concepts with PyTorch." msgstr "新代码示例 (`advanced_pytorch`) 演示了 PyTorch 的高级 Flower 概念。" -#: ../../source/ref-changelog.md:1160 +#: ../../source/ref-changelog.md:1271 msgid "" "**New JAX code example** " "([#906](https://github.com/adap/flower/pull/906), " @@ -23862,13 +24778,13 @@ msgstr "" "**新的 JAX 代码示例**([#906](https://github.com/adap/flower/pull/906), " "[#1143](https://github.com/adap/flower/pull/1143)" -#: ../../source/ref-changelog.md:1162 +#: ../../source/ref-changelog.md:1273 msgid "" "A new code example (`jax_from_centralized_to_federated`) shows federated " "learning with JAX and Flower." msgstr "新代码示例(`jax_from_centralized_to_federated`)展示了使用 JAX 和 Flower 的联邦学习。" -#: ../../source/ref-changelog.md:1166 +#: ../../source/ref-changelog.md:1277 msgid "" "New option to keep Ray running if Ray was already initialized in " "`start_simulation` ([#1177](https://github.com/adap/flower/pull/1177))" @@ -23876,7 +24792,7 @@ msgstr "" "新增选项,用于在 \"start_simulation\"(开始模拟)中已初始化 Ray 的情况下保持 Ray " "运行([#1177](https://github.com/adap/flower/pull/1177))" -#: ../../source/ref-changelog.md:1167 +#: ../../source/ref-changelog.md:1278 msgid "" "Add support for custom `ClientManager` as a `start_simulation` parameter " "([#1171](https://github.com/adap/flower/pull/1171))" @@ -23884,7 +24800,7 @@ msgstr "" "添加对自定义 \"客户端管理器 \"作为 \"start_simulation " "\"参数的支持([#1171](https://github.com/adap/flower/pull/1171))" -#: ../../source/ref-changelog.md:1168 +#: ../../source/ref-changelog.md:1279 msgid "" "New documentation for [implementing " "strategies](https://flower.ai/docs/framework/how-to-implement-" @@ -23895,13 +24811,13 @@ msgstr "" " 的新文件([#1097](https://github.com/adap/flower/pull/1097), " "[#1175](https://github.com/adap/flower/pull/1175)" -#: ../../source/ref-changelog.md:1169 +#: ../../source/ref-changelog.md:1280 msgid "" "New mobile-friendly documentation theme " "([#1174](https://github.com/adap/flower/pull/1174))" msgstr "新的移动友好型文档主题 ([#1174](https://github.com/adap/flower/pull/1174))" -#: ../../source/ref-changelog.md:1170 +#: ../../source/ref-changelog.md:1281 msgid "" "Limit version range for (optional) `ray` dependency to include only " "compatible releases (`>=1.9.2,<1.12.0`) " @@ -23910,25 +24826,25 @@ msgstr "" "限制(可选)`ray`依赖的版本范围,使其仅包含兼容版本(`>=1.9.2,<1.12.0`) " "([#1205](https://github.com/adap/flower/pull/1205))" -#: ../../source/ref-changelog.md:1174 +#: ../../source/ref-changelog.md:1285 msgid "" "**Remove deprecated support for Python 3.6** " "([#871](https://github.com/adap/flower/pull/871))" msgstr "**删除对 Python 3.6 的过时支持** ([#871](https://github.com/adap/flower/pull/871))" -#: ../../source/ref-changelog.md:1175 +#: ../../source/ref-changelog.md:1286 msgid "" "**Remove deprecated KerasClient** " "([#857](https://github.com/adap/flower/pull/857))" msgstr "**移除过时的 KerasClient**([#857](https://github.com/adap/flower/pull/857))" -#: ../../source/ref-changelog.md:1176 +#: ../../source/ref-changelog.md:1287 msgid "" "**Remove deprecated no-op extra installs** " "([#973](https://github.com/adap/flower/pull/973))" msgstr "**移除过时的不操作额外安装** ([#973](https://github.com/adap/flower/pull/973))" -#: ../../source/ref-changelog.md:1177 +#: ../../source/ref-changelog.md:1288 msgid "" "**Remove deprecated proto fields from** `FitRes` **and** `EvaluateRes` " "([#869](https://github.com/adap/flower/pull/869))" @@ -23936,7 +24852,7 @@ msgstr "" "**从** `FitRes` **和** `EvaluateRes` 中移除已废弃的 proto 字段 " "([#869](https://github.com/adap/flower/pull/869))" -#: ../../source/ref-changelog.md:1178 +#: ../../source/ref-changelog.md:1289 msgid "" "**Remove deprecated QffedAvg strategy (replaced by QFedAvg)** " "([#1107](https://github.com/adap/flower/pull/1107))" @@ -23944,7 +24860,7 @@ msgstr "" "**移除过时的 QffedAvg 策略(由 QFedAvg 取代)** " "([#1107](https://github.com/adap/flower/pull/1107))" -#: ../../source/ref-changelog.md:1179 +#: ../../source/ref-changelog.md:1290 msgid "" "**Remove deprecated DefaultStrategy strategy** " "([#1142](https://github.com/adap/flower/pull/1142))" @@ -23952,7 +24868,7 @@ msgstr "" "**删除过时的 DefaultStrategy 策略** " "([#1142](https://github.com/adap/flower/pull/1142))" -#: ../../source/ref-changelog.md:1180 +#: ../../source/ref-changelog.md:1291 msgid "" "**Remove deprecated support for eval_fn accuracy return value** " "([#1142](https://github.com/adap/flower/pull/1142))" @@ -23960,7 +24876,7 @@ msgstr "" "**删除已过时的对 eval_fn 返回值准确性的支持** " "([#1142](https://github.com/adap/flower/pull/1142))" -#: ../../source/ref-changelog.md:1181 +#: ../../source/ref-changelog.md:1292 msgid "" "**Remove deprecated support for passing initial parameters as NumPy " "ndarrays** ([#1142](https://github.com/adap/flower/pull/1142))" @@ -23968,11 +24884,11 @@ msgstr "" "**移除对以 NumPy ndarrays 传递初始参数的过时支持** " "([#1142](https://github.com/adap/flower/pull/1142))" -#: ../../source/ref-changelog.md:1183 +#: ../../source/ref-changelog.md:1294 msgid "v0.18.0 (2022-02-28)" msgstr "v0.18.0 (2022-02-28)" -#: ../../source/ref-changelog.md:1187 +#: ../../source/ref-changelog.md:1298 msgid "" "**Improved Virtual Client Engine compatibility with Jupyter Notebook / " "Google Colab** ([#866](https://github.com/adap/flower/pull/866), " @@ -23986,7 +24902,7 @@ msgstr "" "[#833](https://github.com/adap/flower/pull/833), " "[#1036](https://github.com/adap/flower/pull/1036))" -#: ../../source/ref-changelog.md:1189 +#: ../../source/ref-changelog.md:1300 msgid "" "Simulations (using the Virtual Client Engine through `start_simulation`) " "now work more smoothly on Jupyter Notebooks (incl. Google Colab) after " @@ -23997,7 +24913,7 @@ msgstr "" "`simulation` (`pip install 'flwr[simulation]'`)后,模拟(通过 `start_simulation`" " 使用虚拟客户端引擎)现在可以更流畅地运行。" -#: ../../source/ref-changelog.md:1191 +#: ../../source/ref-changelog.md:1302 msgid "" "**New Jupyter Notebook code example** " "([#833](https://github.com/adap/flower/pull/833))" @@ -24005,7 +24921,7 @@ msgstr "" "**新的 Jupyter Notebook 代码示例** " "([#833](https://github.com/adap/flower/pull/833))" -#: ../../source/ref-changelog.md:1193 +#: ../../source/ref-changelog.md:1304 msgid "" "A new code example (`quickstart_simulation`) demonstrates Flower " "simulations using the Virtual Client Engine through Jupyter Notebook " @@ -24014,25 +24930,25 @@ msgstr "" "新代码示例(`quickstart_simulation`)通过 Jupyter Notebook(包括 Google " "Colab)演示了使用虚拟客户端引擎进行 Flower 模拟。" -#: ../../source/ref-changelog.md:1195 +#: ../../source/ref-changelog.md:1306 msgid "" "**Client properties (feature preview)** " "([#795](https://github.com/adap/flower/pull/795))" msgstr "**客户端属性(功能预览)** ([#795](https://github.com/adap/flower/pull/795))" -#: ../../source/ref-changelog.md:1197 +#: ../../source/ref-changelog.md:1308 msgid "" "Clients can implement a new method `get_properties` to enable server-side" " strategies to query client properties." msgstr "客户端可以实现一个新方法 `get_properties`,以启用服务器端策略来查询客户端属性。" -#: ../../source/ref-changelog.md:1199 +#: ../../source/ref-changelog.md:1310 msgid "" "**Experimental Android support with TFLite** " "([#865](https://github.com/adap/flower/pull/865))" msgstr "** 使用 TFLite 实验性支持安卓系统** ([#865](https://github.com/adap/flower/pull/865))" -#: ../../source/ref-changelog.md:1201 +#: ../../source/ref-changelog.md:1312 msgid "" "Android support has finally arrived in `main`! Flower is both client-" "agnostic and framework-agnostic by design. One can integrate arbitrary " @@ -24042,7 +24958,7 @@ msgstr "" "`main`终于支持 Android 了!Flower 的设计与客户端和框架无关。我们可以集成任意客户端平台,有了这个版本,在安卓系统上使用 " "Flower 就变得更容易了。" -#: ../../source/ref-changelog.md:1203 +#: ../../source/ref-changelog.md:1314 msgid "" "The example uses TFLite on the client side, along with a new " "`FedAvgAndroid` strategy. The Android client and `FedAvgAndroid` are " @@ -24054,7 +24970,7 @@ msgstr "" "`FedAvgAndroid`仍处于试验阶段,但这是向成熟的 Android SDK 和集成了 `FedAvgAndroid`新功能的统一 " "`FedAvg`实现迈出的第一步。" -#: ../../source/ref-changelog.md:1205 +#: ../../source/ref-changelog.md:1316 msgid "" "**Make gRPC keepalive time user-configurable and decrease default " "keepalive time** ([#1069](https://github.com/adap/flower/pull/1069))" @@ -24062,7 +24978,7 @@ msgstr "" "**使 gRPC 保持连接时间可由用户配置,并缩短默认保持连接时间** " "([#1069](https://github.com/adap/flower/pull/1069))" -#: ../../source/ref-changelog.md:1207 +#: ../../source/ref-changelog.md:1318 msgid "" "The default gRPC keepalive time has been reduced to increase the " "compatibility of Flower with more cloud environments (for example, " @@ -24072,7 +24988,7 @@ msgstr "" "为提高 Flower 与更多云环境(如 Microsoft Azure)的兼容性,缩短了默认 gRPC 保持时间。用户可以根据具体要求配置 " "keepalive 时间,自定义 gRPC 堆栈。" -#: ../../source/ref-changelog.md:1209 +#: ../../source/ref-changelog.md:1320 msgid "" "**New differential privacy example using Opacus and PyTorch** " "([#805](https://github.com/adap/flower/pull/805))" @@ -24080,13 +24996,13 @@ msgstr "" "**使用 Opacus 和 PyTorch 的新差分隐私示例** " "([#805](https://github.com/adap/flower/pull/805))" -#: ../../source/ref-changelog.md:1211 +#: ../../source/ref-changelog.md:1322 msgid "" "A new code example (`opacus`) demonstrates differentially-private " "federated learning with Opacus, PyTorch, and Flower." msgstr "一个新的代码示例(\"opacus\")演示了使用 Opacus、PyTorch 和 Flower 进行差分隐私的联邦学习。" -#: ../../source/ref-changelog.md:1213 +#: ../../source/ref-changelog.md:1324 msgid "" "**New Hugging Face Transformers code example** " "([#863](https://github.com/adap/flower/pull/863))" @@ -24094,13 +25010,13 @@ msgstr "" "**新的Hugging Face Transformers代码示例** " "([#863](https://github.com/adap/flower/pull/863))" -#: ../../source/ref-changelog.md:1215 +#: ../../source/ref-changelog.md:1326 msgid "" "A new code example (`quickstart_huggingface`) demonstrates usage of " "Hugging Face Transformers with Flower." msgstr "新的代码示例(`quickstart_huggingface`)证明了结合Flower和Hugging Face Transformers的实用性。" -#: ../../source/ref-changelog.md:1217 +#: ../../source/ref-changelog.md:1328 msgid "" "**New MLCube code example** " "([#779](https://github.com/adap/flower/pull/779), " @@ -24113,13 +25029,13 @@ msgstr "" "[#1065](https://github.com/adap/flower/pull/1065), " "[#1090](https://github.com/adap/flower/pull/1090))" -#: ../../source/ref-changelog.md:1219 +#: ../../source/ref-changelog.md:1330 msgid "" "A new code example (`quickstart_mlcube`) demonstrates usage of MLCube " "with Flower." msgstr "新代码示例(\"quickstart_mlcube\")演示了 MLCube 与 Flower 的用法。" -#: ../../source/ref-changelog.md:1221 +#: ../../source/ref-changelog.md:1332 msgid "" "**SSL-enabled server and client** " "([#842](https://github.com/adap/flower/pull/842), " @@ -24136,14 +25052,14 @@ msgstr "" "[#993](https://github.com/adap/flower/pull/993), " "[#994](https://github.com/adap/flower/pull/994))" -#: ../../source/ref-changelog.md:1223 +#: ../../source/ref-changelog.md:1334 msgid "" "SSL enables secure encrypted connections between clients and servers. " "This release open-sources the Flower secure gRPC implementation to make " "encrypted communication channels accessible to all Flower users." msgstr "SSL 可实现客户端与服务器之间的安全加密连接。该版本开源了 Flower 安全 gRPC 实现,使所有 Flower 用户都能访问加密通信通道。" -#: ../../source/ref-changelog.md:1225 +#: ../../source/ref-changelog.md:1336 msgid "" "**Updated** `FedAdam` **and** `FedYogi` **strategies** " "([#885](https://github.com/adap/flower/pull/885), " @@ -24153,13 +25069,13 @@ msgstr "" "([#885](https://github.com/adap/flower/pull/885), " "[#895](https://github.com/adap/flower/pull/895))" -#: ../../source/ref-changelog.md:1227 +#: ../../source/ref-changelog.md:1338 msgid "" "`FedAdam` and `FedAdam` match the latest version of the Adaptive " "Federated Optimization paper." msgstr "FedAdam \"和 \"FedAdam \"与最新版本的 \"自适应联邦优化 \"论文相匹配。" -#: ../../source/ref-changelog.md:1229 +#: ../../source/ref-changelog.md:1340 msgid "" "**Initialize** `start_simulation` **with a list of client IDs** " "([#860](https://github.com/adap/flower/pull/860))" @@ -24167,7 +25083,7 @@ msgstr "" "**初始化** `start_simulation` **使用客户端 ID 列表** " "([#860](https://github.com/adap/flower/pull/860))" -#: ../../source/ref-changelog.md:1231 +#: ../../source/ref-changelog.md:1342 msgid "" "`start_simulation` can now be called with a list of client IDs " "(`clients_ids`, type: `List[str]`). Those IDs will be passed to the " @@ -24179,7 +25095,7 @@ msgstr "" "`start_simulation`。每当需要初始化客户端时,这些 ID 就会被传递到 `client_fn` 中,这样就能更轻松地加载无法通过 " "`int` 标识符访问的数据分区。" -#: ../../source/ref-changelog.md:1235 +#: ../../source/ref-changelog.md:1346 msgid "" "Update `num_examples` calculation in PyTorch code examples in " "([#909](https://github.com/adap/flower/pull/909))" @@ -24187,7 +25103,7 @@ msgstr "" "更新 PyTorch 代码示例中的 \"num_examples \"计算 " "([#909](https://github.com/adap/flower/pull/909))" -#: ../../source/ref-changelog.md:1236 +#: ../../source/ref-changelog.md:1347 msgid "" "Expose Flower version through `flwr.__version__` " "([#952](https://github.com/adap/flower/pull/952))" @@ -24195,7 +25111,7 @@ msgstr "" "通过 `flwr.__version__` 公开 Flower 版本 " "([#952](https://github.com/adap/flower/pull/952))" -#: ../../source/ref-changelog.md:1237 +#: ../../source/ref-changelog.md:1348 msgid "" "`start_server` in `app.py` now returns a `History` object containing " "metrics from training ([#974](https://github.com/adap/flower/pull/974))" @@ -24203,7 +25119,7 @@ msgstr "" "`app.py`中的 `start_server`现在会返回一个 `History` " "对象,其中包含训练中的指标([#974](https://github.com/adap/flower/pull/974))" -#: ../../source/ref-changelog.md:1238 +#: ../../source/ref-changelog.md:1349 msgid "" "Make `max_workers` (used by `ThreadPoolExecutor`) configurable " "([#978](https://github.com/adap/flower/pull/978))" @@ -24211,25 +25127,25 @@ msgstr "" "使 `max_workers`(由 " "`ThreadPoolExecutor`使用)可配置([#978](https://github.com/adap/flower/pull/978))" -#: ../../source/ref-changelog.md:1239 +#: ../../source/ref-changelog.md:1350 msgid "" "Increase sleep time after server start to three seconds in all code " "examples ([#1086](https://github.com/adap/flower/pull/1086))" msgstr "在所有代码示例中,将服务器启动后的休眠时间延长至三秒([#1086](https://github.com/adap/flower/pull/1086))" -#: ../../source/ref-changelog.md:1240 +#: ../../source/ref-changelog.md:1351 msgid "" "Added a new FAQ section to the documentation " "([#948](https://github.com/adap/flower/pull/948))" msgstr "在文档中添加了新的常见问题部分 ([#948](https://github.com/adap/flower/pull/948))" -#: ../../source/ref-changelog.md:1241 +#: ../../source/ref-changelog.md:1352 msgid "" "And many more under-the-hood changes, library updates, documentation " "changes, and tooling improvements!" msgstr "还有更多底层更改、库更新、文档更改和工具改进!" -#: ../../source/ref-changelog.md:1245 +#: ../../source/ref-changelog.md:1356 msgid "" "**Removed** `flwr_example` **and** `flwr_experimental` **from release " "build** ([#869](https://github.com/adap/flower/pull/869))" @@ -24237,7 +25153,7 @@ msgstr "" "**从发布版中删除**`flwr_example`**和**`flwr_experimental`** " "([#869](https://github.com/adap/flower/pull/869))" -#: ../../source/ref-changelog.md:1247 +#: ../../source/ref-changelog.md:1358 msgid "" "The packages `flwr_example` and `flwr_experimental` have been deprecated " "since Flower 0.12.0 and they are not longer included in Flower release " @@ -24249,11 +25165,11 @@ msgstr "" "Flower 的发布版本中。相关的额外包(`baseline`, `examples-pytorch`, `examples-" "tensorflow`, `http-logger`, `ops`)现在已不再使用,并将在即将发布的版本中移除。" -#: ../../source/ref-changelog.md:1249 +#: ../../source/ref-changelog.md:1360 msgid "v0.17.0 (2021-09-24)" msgstr "v0.17.0 (2021-09-24)" -#: ../../source/ref-changelog.md:1253 +#: ../../source/ref-changelog.md:1364 msgid "" "**Experimental virtual client engine** " "([#781](https://github.com/adap/flower/pull/781) " @@ -24264,7 +25180,7 @@ msgstr "" "[#790](https://github.com/adap/flower/pull/790) " "[#791](https://github.com/adap/flower/pull/791))" -#: ../../source/ref-changelog.md:1255 +#: ../../source/ref-changelog.md:1366 msgid "" "One of Flower's goals is to enable research at scale. This release " "enables a first (experimental) peek at a major new feature, codenamed the" @@ -24277,7 +25193,7 @@ msgstr "" "\"的重要新功能。虚拟客户端可以在单台机器或计算集群上对大量客户端进行模拟。测试新功能的最简单方法是查看名为 " "\"quickstart_simulation \"和 \"simulation_pytorch \"的两个新代码示例。" -#: ../../source/ref-changelog.md:1257 +#: ../../source/ref-changelog.md:1368 msgid "" "The feature is still experimental, so there's no stability guarantee for " "the API. It's also not quite ready for prime time and comes with a few " @@ -24287,7 +25203,7 @@ msgstr "" "该功能仍处于试验阶段,因此无法保证 API " "的稳定性。此外,它还没有完全准备好进入黄金时间,并有一些已知的注意事项。不过,我们鼓励好奇的用户尝试使用并分享他们的想法。" -#: ../../source/ref-changelog.md:1259 +#: ../../source/ref-changelog.md:1370 msgid "" "**New built-in strategies** " "([#828](https://github.com/adap/flower/pull/828) " @@ -24296,19 +25212,19 @@ msgstr "" "**新的内置策略**([#828](https://github.com/adap/flower/pull/828) " "[#822](https://github.com/adap/flower/pull/822)" -#: ../../source/ref-changelog.md:1261 +#: ../../source/ref-changelog.md:1372 msgid "" "FedYogi - Federated learning strategy using Yogi on server-side. " "Implementation based on https://arxiv.org/abs/2003.00295" msgstr "FedYogi - 在服务器端使用 Yogi 的联邦学习策略。基于 https://arxiv.org/abs/2003.00295 实现" -#: ../../source/ref-changelog.md:1262 +#: ../../source/ref-changelog.md:1373 msgid "" "FedAdam - Federated learning strategy using Adam on server-side. " "Implementation based on https://arxiv.org/abs/2003.00295" msgstr "FedAdam - 在服务器端使用 Adam 的联邦学习策略。基于 https://arxiv.org/abs/2003.00295 实现" -#: ../../source/ref-changelog.md:1264 +#: ../../source/ref-changelog.md:1375 msgid "" "**New PyTorch Lightning code example** " "([#617](https://github.com/adap/flower/pull/617))" @@ -24316,31 +25232,31 @@ msgstr "" "**新的 PyTorch Lightning 代码示例** " "([#617](https://github.com/adap/flower/pull/617))" -#: ../../source/ref-changelog.md:1266 +#: ../../source/ref-changelog.md:1377 msgid "" "**New Variational Auto-Encoder code example** " "([#752](https://github.com/adap/flower/pull/752))" msgstr "**新的变分自动编码器代码示例** ([#752](https://github.com/adap/flower/pull/752))" -#: ../../source/ref-changelog.md:1268 +#: ../../source/ref-changelog.md:1379 msgid "" "**New scikit-learn code example** " "([#748](https://github.com/adap/flower/pull/748))" msgstr "**新的 scikit-learn 代码示例** ([#748](https://github.com/adap/flower/pull/748))" -#: ../../source/ref-changelog.md:1270 +#: ../../source/ref-changelog.md:1381 msgid "" "**New experimental TensorBoard strategy** " "([#789](https://github.com/adap/flower/pull/789))" msgstr "**新的实验性 TensorBoard 策略**([#789](https://github.com/adap/flower/pull/789))" -#: ../../source/ref-changelog.md:1274 +#: ../../source/ref-changelog.md:1385 msgid "" "Improved advanced TensorFlow code example " "([#769](https://github.com/adap/flower/pull/769))" msgstr "改进的高级 TensorFlow 代码示例([#769](https://github.com/adap/flower/pull/769)" -#: ../../source/ref-changelog.md:1275 +#: ../../source/ref-changelog.md:1386 msgid "" "Warning when `min_available_clients` is misconfigured " "([#830](https://github.com/adap/flower/pull/830))" @@ -24348,31 +25264,31 @@ msgstr "" "当 `min_available_clients` 配置错误时发出警告 " "([#830](https://github.com/adap/flower/pull/830))" -#: ../../source/ref-changelog.md:1276 +#: ../../source/ref-changelog.md:1387 msgid "" "Improved gRPC server docs " "([#841](https://github.com/adap/flower/pull/841))" msgstr "改进了 gRPC 服务器文档([#841](https://github.com/adap/flower/pull/841))" -#: ../../source/ref-changelog.md:1277 +#: ../../source/ref-changelog.md:1388 msgid "" "Improved error message in `NumPyClient` " "([#851](https://github.com/adap/flower/pull/851))" msgstr "改进了 `NumPyClient` 中的错误信息 ([#851](https://github.com/adap/flower/pull/851))" -#: ../../source/ref-changelog.md:1278 +#: ../../source/ref-changelog.md:1389 msgid "" "Improved PyTorch quickstart code example " "([#852](https://github.com/adap/flower/pull/852))" msgstr "改进的 PyTorch 快速启动代码示例 ([#852](https://github.com/adap/flower/pull/852))" -#: ../../source/ref-changelog.md:1282 +#: ../../source/ref-changelog.md:1393 msgid "" "**Disabled final distributed evaluation** " "([#800](https://github.com/adap/flower/pull/800))" msgstr "**禁用最终分布式评价** ([#800](https://github.com/adap/flower/pull/800))" -#: ../../source/ref-changelog.md:1284 +#: ../../source/ref-changelog.md:1395 msgid "" "Prior behaviour was to perform a final round of distributed evaluation on" " all connected clients, which is often not required (e.g., when using " @@ -24382,13 +25298,13 @@ msgstr "" "之前的行为是在所有连接的客户端上执行最后一轮分布式评估,而这通常是不需要的(例如,在使用服务器端评估时)。可以通过向 `start_server`" " 传递 `force_final_distributed_eval=True` 来启用之前的行为。" -#: ../../source/ref-changelog.md:1286 +#: ../../source/ref-changelog.md:1397 msgid "" "**Renamed q-FedAvg strategy** " "([#802](https://github.com/adap/flower/pull/802))" msgstr "**更名为 q-FedAvg 策略** ([#802](https://github.com/adap/flower/pull/802))" -#: ../../source/ref-changelog.md:1288 +#: ../../source/ref-changelog.md:1399 msgid "" "The strategy named `QffedAvg` was renamed to `QFedAvg` to better reflect " "the notation given in the original paper (q-FFL is the optimization " @@ -24399,7 +25315,7 @@ msgstr "" "名为 `QffedAvg` 的策略已更名为 `QFedAvg`,以更好地反映原始论文中给出的符号(q-FFL 是优化目标,q-FedAvg " "是建议的求解器)。请注意,出于兼容性原因,原始(现已废弃)的 `QffedAvg` 类仍然可用(它将在未来的版本中移除)。" -#: ../../source/ref-changelog.md:1290 +#: ../../source/ref-changelog.md:1401 msgid "" "**Deprecated and renamed code example** `simulation_pytorch` **to** " "`simulation_pytorch_legacy` " @@ -24408,7 +25324,7 @@ msgstr "" "**删除并重命名代码示例**`simulation_pytorch`**为**`simulation_pytorch_legacy` " "([#791](https://github.com/adap/flower/pull/791))" -#: ../../source/ref-changelog.md:1292 +#: ../../source/ref-changelog.md:1403 msgid "" "This example has been replaced by a new example. The new example is based" " on the experimental virtual client engine, which will become the new " @@ -24419,27 +25335,27 @@ msgstr "" "该示例已被新示例取代。新示例基于试验性虚拟客户端引擎,它将成为在 Flower " "中进行大多数类型大规模模拟的新的默认方式。现有示例将作为参考保留,但将来可能会删除。" -#: ../../source/ref-changelog.md:1294 +#: ../../source/ref-changelog.md:1405 msgid "v0.16.0 (2021-05-11)" msgstr "v0.16.0 (2021-05-11)" -#: ../../source/ref-changelog.md:1298 +#: ../../source/ref-changelog.md:1409 msgid "" "**New built-in strategies** " "([#549](https://github.com/adap/flower/pull/549))" msgstr "**新的内置策略** ([#549](https://github.com/adap/flower/pull/549))" -#: ../../source/ref-changelog.md:1300 +#: ../../source/ref-changelog.md:1411 msgid "(abstract) FedOpt" msgstr "(摘要) FedOpt" -#: ../../source/ref-changelog.md:1303 +#: ../../source/ref-changelog.md:1414 msgid "" "**Custom metrics for server and strategies** " "([#717](https://github.com/adap/flower/pull/717))" msgstr "**服务器和策略的自定义指标** ([#717](https://github.com/adap/flower/pull/717))" -#: ../../source/ref-changelog.md:1305 +#: ../../source/ref-changelog.md:1416 msgid "" "The Flower server is now fully task-agnostic, all remaining instances of " "task-specific metrics (such as `accuracy`) have been replaced by custom " @@ -24450,7 +25366,7 @@ msgstr "" "Flower 服务器现在完全与任务无关,所有剩余的任务特定度量(如 \"准确度\")都已被自定义度量字典取代。Flower 0.15 " "引入了从客户端向服务器传递包含自定义指标的字典的功能。从本版本开始,自定义指标将取代服务器上的特定任务指标。" -#: ../../source/ref-changelog.md:1307 +#: ../../source/ref-changelog.md:1418 msgid "" "Custom metric dictionaries are now used in two user-facing APIs: they are" " returned from Strategy methods `aggregate_fit`/`aggregate_evaluate` and " @@ -24463,7 +25379,7 @@ msgstr "" "返回,还可使传递给内置策略(通过 `eval_fn`)的评估函数返回两个以上的评估度量。策略甚至可以返回 *aggregated* " "指标字典,以便服务器跟踪。" -#: ../../source/ref-changelog.md:1309 +#: ../../source/ref-changelog.md:1420 msgid "" "Strategy implementations should migrate their `aggregate_fit` and " "`aggregate_evaluate` methods to the new return type (e.g., by simply " @@ -24474,19 +25390,19 @@ msgstr "" "方法迁移到新的返回类型(例如,只需返回空的 `{}`),服务器端评估函数应从 `return loss, accuracy` 迁移到 " "`return loss, {\"accuracy\": accuracy}`。" -#: ../../source/ref-changelog.md:1311 +#: ../../source/ref-changelog.md:1422 msgid "" "Flower 0.15-style return types are deprecated (but still supported), " "compatibility will be removed in a future release." msgstr "Flower 0.15 风格的返回类型已被弃用(但仍受支持),兼容性将在未来的版本中移除。" -#: ../../source/ref-changelog.md:1313 +#: ../../source/ref-changelog.md:1424 msgid "" "**Migration warnings for deprecated functionality** " "([#690](https://github.com/adap/flower/pull/690))" msgstr "** 过时功能的迁移警告** ([#690](https://github.com/adap/flower/pull/690))" -#: ../../source/ref-changelog.md:1315 +#: ../../source/ref-changelog.md:1426 msgid "" "Earlier versions of Flower were often migrated to new APIs, while " "maintaining compatibility with legacy APIs. This release introduces " @@ -24497,7 +25413,7 @@ msgstr "" "Flower 早期版本通常会迁移到新的应用程序接口,同时保持与旧版应用程序接口的兼容。如果检测到使用了过时的 " "API,本版本将引入详细的警告信息。新的警告信息通常会详细说明如何迁移到更新的 API,从而简化从一个版本到另一个版本的过渡。" -#: ../../source/ref-changelog.md:1317 +#: ../../source/ref-changelog.md:1428 msgid "" "Improved docs and docstrings " "([#691](https://github.com/adap/flower/pull/691) " @@ -24508,11 +25424,11 @@ msgstr "" "[#692](https://github.com/adap/flower/pull/692) " "[#713](https://github.com/adap/flower/pull/713))" -#: ../../source/ref-changelog.md:1319 +#: ../../source/ref-changelog.md:1430 msgid "MXNet example and documentation" msgstr "MXNet 示例和文档" -#: ../../source/ref-changelog.md:1321 +#: ../../source/ref-changelog.md:1432 msgid "" "FedBN implementation in example PyTorch: From Centralized To Federated " "([#696](https://github.com/adap/flower/pull/696) " @@ -24524,13 +25440,13 @@ msgstr "" "[#702](https://github.com/adap/flower/pull/702) " "[#705](https://github.com/adap/flower/pull/705))" -#: ../../source/ref-changelog.md:1325 +#: ../../source/ref-changelog.md:1436 msgid "" "**Serialization-agnostic server** " "([#721](https://github.com/adap/flower/pull/721))" msgstr "**序列化无关服务器** ([#721](https://github.com/adap/flower/pull/721))" -#: ../../source/ref-changelog.md:1327 +#: ../../source/ref-changelog.md:1438 msgid "" "The Flower server is now fully serialization-agnostic. Prior usage of " "class `Weights` (which represents parameters as deserialized NumPy " @@ -24544,7 +25460,7 @@ msgstr "" "`Parameters` 类取代(例如在 `Strategy`中)。参数 " "\"对象与序列化完全无关,它以字节数组的形式表示参数,\"tensor_type \"属性表示如何解释这些字节数组(例如,用于序列化/反序列化)。" -#: ../../source/ref-changelog.md:1329 +#: ../../source/ref-changelog.md:1440 msgid "" "Built-in strategies implement this approach by handling serialization and" " deserialization to/from `Weights` internally. Custom/3rd-party Strategy " @@ -24556,7 +25472,7 @@ msgstr "" "内置策略通过在内部处理序列化和反序列化到/从`Weights`来实现这种方法。自定义/第三方策略实现应更新为稍有改动的策略方法定义。策略作者可查阅" " PR [#721](https://github.com/adap/flower/pull/721) 以了解如何将策略轻松迁移到新格式。" -#: ../../source/ref-changelog.md:1331 +#: ../../source/ref-changelog.md:1442 msgid "" "Deprecated `flwr.server.Server.evaluate`, use " "`flwr.server.Server.evaluate_round` instead " @@ -24565,17 +25481,17 @@ msgstr "" "已弃用 `flwr.server.Server.evaluate`,改用 " "`flwr.server.Server.evaluate_round`([#717](https://github.com/adap/flower/pull/717)" -#: ../../source/ref-changelog.md:1333 +#: ../../source/ref-changelog.md:1444 msgid "v0.15.0 (2021-03-12)" msgstr "v0.15.0 (2021-03-12)" -#: ../../source/ref-changelog.md:1337 +#: ../../source/ref-changelog.md:1448 msgid "" "**Server-side parameter initialization** " "([#658](https://github.com/adap/flower/pull/658))" msgstr "**服务器端参数初始化** ([#658](https://github.com/adap/flower/pull/658))" -#: ../../source/ref-changelog.md:1339 +#: ../../source/ref-changelog.md:1450 msgid "" "Model parameters can now be initialized on the server-side. Server-side " "parameter initialization works via a new `Strategy` method called " @@ -24584,7 +25500,7 @@ msgstr "" "现在可以在服务器端初始化模型参数。服务器端参数初始化通过名为 \"initialize_parameters \"的新 \"Strategy " "\"方法进行。" -#: ../../source/ref-changelog.md:1341 +#: ../../source/ref-changelog.md:1452 msgid "" "Built-in strategies support a new constructor argument called " "`initial_parameters` to set the initial parameters. Built-in strategies " @@ -24594,7 +25510,7 @@ msgstr "" "内置策略支持名为 \"initial_parameters " "\"的新构造函数参数,用于设置初始参数。内置策略会在启动时向服务器提供这些初始参数,然后删除它们以释放内存。" -#: ../../source/ref-changelog.md:1360 +#: ../../source/ref-changelog.md:1471 msgid "" "If no initial parameters are provided to the strategy, the server will " "continue to use the current behaviour (namely, it will ask one of the " @@ -24602,7 +25518,7 @@ msgid "" "parameters)." msgstr "如果没有向策略提供初始参数,服务器将继续使用当前行为(即向其中一个已连接的客户端询问参数,并将这些参数用作初始全局参数)。" -#: ../../source/ref-changelog.md:1364 +#: ../../source/ref-changelog.md:1475 msgid "" "Deprecate `flwr.server.strategy.DefaultStrategy` (migrate to " "`flwr.server.strategy.FedAvg`, which is equivalent)" @@ -24610,11 +25526,11 @@ msgstr "" "停用 `flwr.server.strategy.DefaultStrategy`(迁移到等价的 " "`flwr.server.strategy.FedAvg`)" -#: ../../source/ref-changelog.md:1366 +#: ../../source/ref-changelog.md:1477 msgid "v0.14.0 (2021-02-18)" msgstr "v0.14.0 (2021-02-18)" -#: ../../source/ref-changelog.md:1370 +#: ../../source/ref-changelog.md:1481 msgid "" "**Generalized** `Client.fit` **and** `Client.evaluate` **return values** " "([#610](https://github.com/adap/flower/pull/610) " @@ -24626,7 +25542,7 @@ msgstr "" "[#572](https://github.com/adap/flower/pull/572) " "[#633](https://github.com/adap/flower/pull/633))" -#: ../../source/ref-changelog.md:1372 +#: ../../source/ref-changelog.md:1483 msgid "" "Clients can now return an additional dictionary mapping `str` keys to " "values of the following types: `bool`, `bytes`, `float`, `int`, `str`. " @@ -24637,7 +25553,7 @@ msgstr "" "bool`、`bytes`、`float`、`int`、`str`。这意味着我们可以从 `fit`/`evaluate` " "返回几乎任意的值,并在服务器端使用它们!" -#: ../../source/ref-changelog.md:1374 +#: ../../source/ref-changelog.md:1485 msgid "" "This improvement also allowed for more consistent return types between " "`fit` and `evaluate`: `evaluate` should now return a tuple `(float, int, " @@ -24647,7 +25563,7 @@ msgstr "" "这一改进还使 `fit` 和 `evaluate` 之间的返回类型更加一致:`evaluate` 现在应返回一个元组`(float, int, " "dict)`,代表损失、示例数和一个包含特定问题任意值(如准确度)的字典。" -#: ../../source/ref-changelog.md:1376 +#: ../../source/ref-changelog.md:1487 msgid "" "In case you wondered: this feature is compatible with existing projects, " "the additional dictionary return value is optional. New code should " @@ -24660,13 +25576,13 @@ msgstr "" "版本兼容(`fit`: `List[np.ndarray], int, Dict[str, Scalar]`,`evaluate`: " "`float, int, Dict[str, Scalar]`)。详见下面的示例。" -#: ../../source/ref-changelog.md:1378 +#: ../../source/ref-changelog.md:1489 msgid "" "*Code example:* note the additional dictionary return values in both " "`FlwrClient.fit` and `FlwrClient.evaluate`:" msgstr "*代码示例:* 注意 `FlwrClient.fit` 和 `FlwrClient.evaluate` 中的附加字典返回值:" -#: ../../source/ref-changelog.md:1393 +#: ../../source/ref-changelog.md:1504 msgid "" "**Generalized** `config` **argument in** `Client.fit` **and** " "`Client.evaluate` ([#595](https://github.com/adap/flower/pull/595))" @@ -24674,7 +25590,7 @@ msgstr "" "**在**`Client.fit` " "**和**`Client.evaluate`中泛化**`config`参数([#595](https://github.com/adap/flower/pull/595))" -#: ../../source/ref-changelog.md:1395 +#: ../../source/ref-changelog.md:1506 msgid "" "The `config` argument used to be of type `Dict[str, str]`, which means " "that dictionary values were expected to be strings. The new release " @@ -24684,7 +25600,7 @@ msgstr "" "`config`参数曾是 \"字典[str, str]\"类型,这意味着字典值应是字符串。新版本将其扩展为以下类型的值: " "bool`、`bytes`、`float`、`int`、`str`。" -#: ../../source/ref-changelog.md:1397 +#: ../../source/ref-changelog.md:1508 msgid "" "This means one can now pass almost arbitrary values to `fit`/`evaluate` " "using the `config` dictionary. Yay, no more `str(epochs)` on the server-" @@ -24693,51 +25609,51 @@ msgstr "" "这意味着现在可以使用 `config` 字典向 `fit`/`evaluate` 传递几乎任意的值。耶,服务器端不再需要 " "`str(epochs)`,客户端不再需要 `int(config[\"epochs\"])`!" -#: ../../source/ref-changelog.md:1399 +#: ../../source/ref-changelog.md:1510 msgid "" "*Code example:* note that the `config` dictionary now contains non-`str` " "values in both `Client.fit` and `Client.evaluate`:" msgstr "*代码示例:* 注意 `config` 字典现在在 `Client.fit` 和 `Client.evaluate` 中都包含非 `str` 值:" -#: ../../source/ref-changelog.md:1416 +#: ../../source/ref-changelog.md:1527 msgid "v0.13.0 (2021-01-08)" msgstr "v0.13.0 (2021-01-08)" -#: ../../source/ref-changelog.md:1420 +#: ../../source/ref-changelog.md:1531 msgid "" "New example: PyTorch From Centralized To Federated " "([#549](https://github.com/adap/flower/pull/549))" msgstr "新示例: PyTorch 从集中到联邦 ([#549](https://github.com/adap/flower/pull/549))" -#: ../../source/ref-changelog.md:1421 +#: ../../source/ref-changelog.md:1532 msgid "Improved documentation" msgstr "改进文档" -#: ../../source/ref-changelog.md:1422 +#: ../../source/ref-changelog.md:1533 msgid "New documentation theme ([#551](https://github.com/adap/flower/pull/551))" msgstr "新文档主题 ([#551](https://github.com/adap/flower/pull/551))" -#: ../../source/ref-changelog.md:1423 +#: ../../source/ref-changelog.md:1534 msgid "New API reference ([#554](https://github.com/adap/flower/pull/554))" msgstr "新的 API 参考 ([#554](https://github.com/adap/flower/pull/554))" -#: ../../source/ref-changelog.md:1424 +#: ../../source/ref-changelog.md:1535 msgid "" "Updated examples documentation " "([#549](https://github.com/adap/flower/pull/549))" msgstr "更新了示例文档 ([#549](https://github.com/adap/flower/pull/549))" -#: ../../source/ref-changelog.md:1425 +#: ../../source/ref-changelog.md:1536 msgid "" "Removed obsolete documentation " "([#548](https://github.com/adap/flower/pull/548))" msgstr "删除了过时的文档 ([#548](https://github.com/adap/flower/pull/548))" -#: ../../source/ref-changelog.md:1427 +#: ../../source/ref-changelog.md:1538 msgid "Bugfix:" msgstr "错误修正:" -#: ../../source/ref-changelog.md:1429 +#: ../../source/ref-changelog.md:1540 msgid "" "`Server.fit` does not disconnect clients when finished, disconnecting the" " clients is now handled in `flwr.server.start_server` " @@ -24748,21 +25664,21 @@ msgstr "" "\"中处理的([#553](https://github.com/adap/flower/pull/553) " "[#540](https://github.com/adap/flower/issues/540))。" -#: ../../source/ref-changelog.md:1431 +#: ../../source/ref-changelog.md:1542 msgid "v0.12.0 (2020-12-07)" msgstr "v0.12.0 (2020-12-07)" -#: ../../source/ref-changelog.md:1433 ../../source/ref-changelog.md:1449 +#: ../../source/ref-changelog.md:1544 ../../source/ref-changelog.md:1560 msgid "Important changes:" msgstr "重要变更:" -#: ../../source/ref-changelog.md:1435 +#: ../../source/ref-changelog.md:1546 msgid "" "Added an example for embedded devices " "([#507](https://github.com/adap/flower/pull/507))" msgstr "添加了嵌入式设备示例 ([#507](https://github.com/adap/flower/pull/507))" -#: ../../source/ref-changelog.md:1436 +#: ../../source/ref-changelog.md:1547 msgid "" "Added a new NumPyClient (in addition to the existing KerasClient) " "([#504](https://github.com/adap/flower/pull/504) " @@ -24772,7 +25688,7 @@ msgstr "" "之外)([#504](https://github.com/adap/flower/pull/504) " "[#508](https://github.com/adap/flower/pull/508)" -#: ../../source/ref-changelog.md:1437 +#: ../../source/ref-changelog.md:1548 msgid "" "Deprecated `flwr_example` package and started to migrate examples into " "the top-level `examples` directory " @@ -24783,15 +25699,15 @@ msgstr "" "([#494](https://github.com/adap/flower/pull/494) " "[#512](https://github.com/adap/flower/pull/512))" -#: ../../source/ref-changelog.md:1439 +#: ../../source/ref-changelog.md:1550 msgid "v0.11.0 (2020-11-30)" msgstr "v0.11.0 (2020-11-30)" -#: ../../source/ref-changelog.md:1441 +#: ../../source/ref-changelog.md:1552 msgid "Incompatible changes:" msgstr "不兼容的更改:" -#: ../../source/ref-changelog.md:1443 +#: ../../source/ref-changelog.md:1554 msgid "" "Renamed strategy methods " "([#486](https://github.com/adap/flower/pull/486)) to unify the naming of " @@ -24804,23 +25720,23 @@ msgstr "" "API 的命名。其他公共方法/函数(例如 `Client` 中的每个方法,以及 `Strategy.evaluate`)不使用 `on_` " "前缀,这就是我们从 Strategy 中的四个方法中移除它的原因。迁移时,请相应地重命名以下 `Strategy` 方法:" -#: ../../source/ref-changelog.md:1444 +#: ../../source/ref-changelog.md:1555 msgid "`on_configure_evaluate` => `configure_evaluate`" msgstr "`on_configure_evaluate` => `configure_evaluate`" -#: ../../source/ref-changelog.md:1445 +#: ../../source/ref-changelog.md:1556 msgid "`on_aggregate_evaluate` => `aggregate_evaluate`" msgstr "`on_aggregate_evaluate` => `aggregate_evaluate`" -#: ../../source/ref-changelog.md:1446 +#: ../../source/ref-changelog.md:1557 msgid "`on_configure_fit` => `configure_fit`" msgstr "`on_configure_fit` => `configure_fit`" -#: ../../source/ref-changelog.md:1447 +#: ../../source/ref-changelog.md:1558 msgid "`on_aggregate_fit` => `aggregate_fit`" msgstr "`on_aggregate_fit` => `aggregate_fit`" -#: ../../source/ref-changelog.md:1451 +#: ../../source/ref-changelog.md:1562 msgid "" "Deprecated `DefaultStrategy` " "([#479](https://github.com/adap/flower/pull/479)). To migrate use " @@ -24829,13 +25745,13 @@ msgstr "" "已废弃的 `DefaultStrategy` ([#479](https://github.com/adap/flower/pull/479)) " "。迁移时请使用 `FedAvg`。" -#: ../../source/ref-changelog.md:1452 +#: ../../source/ref-changelog.md:1563 msgid "" "Simplified examples and baselines " "([#484](https://github.com/adap/flower/pull/484))." msgstr "简化示例和baselines([#484](https://github.com/adap/flower/pull/484))。" -#: ../../source/ref-changelog.md:1453 +#: ../../source/ref-changelog.md:1564 msgid "" "Removed presently unused `on_conclude_round` from strategy interface " "([#483](https://github.com/adap/flower/pull/483))." @@ -24843,7 +25759,7 @@ msgstr "" "删除了策略界面中目前未使用的 " "\"on_conclude_round\"([#483](https://github.com/adap/flower/pull/483))。" -#: ../../source/ref-changelog.md:1454 +#: ../../source/ref-changelog.md:1565 msgid "" "Set minimal Python version to 3.6.1 instead of 3.6.9 " "([#471](https://github.com/adap/flower/pull/471))." @@ -24851,7 +25767,7 @@ msgstr "" "将最小 Python 版本设为 3.6.1,而不是 3.6.9 " "([#471](https://github.com/adap/flower/pull/471))." -#: ../../source/ref-changelog.md:1455 +#: ../../source/ref-changelog.md:1566 msgid "" "Improved `Strategy` docstrings " "([#470](https://github.com/adap/flower/pull/470))." @@ -28769,7 +29685,7 @@ msgid "" msgstr "在机器学习中,我们有一个模型和数据。模型可以是一个神经网络(如图所示),也可以是其他东西,比如经典的线性回归。" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:41 -msgid "|c9344c3dfee24383908fabaac40a8504|" +msgid "|cf5fe148406b44b9a8b842fb01b5a7ea|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:109 @@ -28784,7 +29700,7 @@ msgid "" msgstr "我们使用数据来训练模型,以完成一项有用的任务。任务可以是检测图像中的物体、转录音频或玩围棋等游戏。" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:53 -msgid "|c10cd8f2177641bd8091c7b76d318ff9|" +msgid "|ba25c91426d64cc1ae2d3febc5715b35|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:111 @@ -28808,7 +29724,7 @@ msgid "" msgstr "它源于智能手机上用户与应用程序的交互、汽车上传感器数据的收集、笔记本电脑上键盘输入的接收,或者智能扬声器上某人试着唱的歌。" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:67 -msgid "|3c59c315e67945ea8b839381c5deb6c2|" +msgid "|fca67f83aaab4389aa9ebb4d9c5cd75e|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:113 @@ -28826,7 +29742,7 @@ msgstr "" "\"通常不只是一个地方,而是很多地方。它可能是多个运行同一应用程序的设备。但也可能是多个组织,都在为同一任务生成数据。" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:79 -msgid "|eadf87e1e20549789512f7aa9199fcff|" +msgid "|6f2e8f95c95443379b0df00ca9824654|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:115 @@ -28843,7 +29759,7 @@ msgid "" msgstr "因此,要使用机器学习或任何类型的数据分析,过去使用的方法是在中央服务器上收集所有数据。这个服务器可以在数据中心的某个地方,也可以在云端的某个地方。" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:91 -msgid "|66ce8f21aeb443fca1fc88f727458417|" +msgid "|c0ab3a1a733d4dbc9e1677aa608e8038|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:117 @@ -28858,7 +29774,7 @@ msgid "" msgstr "一旦所有数据都收集到一处,我们最终就可以使用机器学习算法在数据上训练我们的模型。这就是我们基本上一直依赖的机器学习方法。" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:103 -msgid "|f5768015a1014396b4761bb6cb3677f5|" +msgid "|8f0491bde07341ab9f2e23d50593c0be|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:119 @@ -28879,7 +29795,7 @@ msgid "" msgstr "我们刚刚看到的经典机器学习方法可以在某些情况下使用。很好的例子包括对假日照片进行分类或分析网络流量。在这些案例中,所有数据自然都可以在中央服务器上获得。" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:138 -msgid "|a746aa3f56064617a4e00f4c6a0cb140|" +msgid "|762fc099899943688361562252c5e600|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:173 @@ -28894,7 +29810,7 @@ msgid "" msgstr "但这种方法并不适用于许多其他情况。例如,集中服务器上没有数据,或者一台服务器上的数据不足以训练出一个好的模型。" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:150 -msgid "|cf8f676dd3534a44995c1b40910fd030|" +msgid "|f62d365fd0ae405b975d3ca01e7183fd|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:175 @@ -29054,7 +29970,7 @@ msgid "" msgstr "我们首先在服务器上初始化模型。这与经典的集中式学习完全相同:我们随机或从先前保存的检查点初始化模型参数。" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:210 -msgid "|d1c0e3a4c9dc4bfd88ee6f1fe626edaf|" +msgid "|2c78fc1816b143289f4d909388f92a80|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:307 @@ -29079,7 +29995,7 @@ msgid "" msgstr "接下来,我们会将全局模型的参数发送到连接的客户端节点(如智能手机等边缘设备或企业的服务器)。这是为了确保每个参与节点都使用相同的模型参数开始本地训练。我们通常只使用几个连接节点,而不是所有节点。这样做的原因是,选择越来越多的客户端节点会导致收益递减。" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:225 -msgid "|1d8d6298a4014ec3a717135bcc7a94f9|" +msgid "|4230725aeebe497d8ad84a3efc2a912b|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:309 @@ -29105,7 +30021,7 @@ msgstr "" "(mini-batches)。" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:240 -msgid "|e3ea79200ff44d459358b9f4713e582b|" +msgid "|64b66a88417240eabe52f5cc55d89d0b|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:311 @@ -29128,7 +30044,7 @@ msgid "" msgstr "经过本地训练后,每个客户节点最初收到的模型参数都会略有不同。参数之所以不同,是因为每个客户端节点的本地数据集中都有不同的数据。然后,客户端节点将这些模型更新发回服务器。它们发送的模型更新既可以是完整的模型参数,也可以只是本地训练过程中积累的梯度。" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:255 -msgid "|3e1061718a4a49d485764d30a4bfecdd|" +msgid "|726c8eca58bc4f859b06aa24a587b253|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:313 @@ -29175,7 +30091,7 @@ msgstr "" " 100 个示例的 10 倍。" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:273 -msgid "|7750e597d1ea4e319f7e0a40539bf214|" +msgid "|f9d869e4b33c4093b29cf24ed8dff80a|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:315 @@ -29283,7 +30199,7 @@ msgstr "" "为联邦学习、分析和评估提供了一种统一的方法。它允许用户联邦化任何工作负载、任何 ML 框架和任何编程语言。" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:334 -msgid "|dd4434075f374e99ac07f509a883778f|" +msgid "|4ab50bc01a9f426a91a2c0cbc3ab7a84|" msgstr "" #: ../../source/tutorial-series-what-is-federated-learning.ipynb:340 @@ -32599,7 +33515,7 @@ msgstr "" #~ msgstr "" #~ msgid "run\\_client\\_app" -#~ msgstr "run\\_client\\_app" +#~ msgstr "客户端" #~ msgid "run\\_supernode" #~ msgstr "flower-superlink" @@ -32625,13 +33541,13 @@ msgstr "" #~ msgstr "" #~ msgid "run\\_server\\_app" -#~ msgstr "run\\_server\\_app" +#~ msgstr "服务器" #~ msgid "run\\_superlink" #~ msgstr "flower-superlink" #~ msgid "Start a Ray-based Flower simulation server." -#~ msgstr "启动基于 Ray 的Flower模拟服务器。" +#~ msgstr "多节点 Flower 模拟" #~ msgid "" #~ "A function creating `Client` instances. " @@ -32652,11 +33568,6 @@ msgstr "" #~ "client methods (e.g., load evaluation " #~ "data in the `evaluate` method itself)." #~ msgstr "" -#~ "创建客户端实例的函数。该函数必须接受一个名为 `cid` 的 `str` 参数。它应返回一个" -#~ " Client " -#~ "类型的客户端实例。请注意,创建的客户端实例是短暂的,通常在调用一个方法后就会被销毁。由于客户机实例不是长期存在的,它们不应试图在方法调用时携带状态数据。实例所需的任何状态数据(模型、数据集、超参数......)都应在调用" -#~ " `client_fn` 或任何客户端方法(例如,在 `evaluate` " -#~ "方法中加载评估数据)时(重新)创建。" #~ msgid "The total number of clients in this simulation." #~ msgstr "需要等待的客户数量。" @@ -32671,8 +33582,6 @@ msgstr "" #~ "`num_clients` generates an error. Using " #~ "this argument will raise an error." #~ msgstr "" -#~ "列出每个客户的 `client_id`。只有在未设置 `num_clients` " -#~ "时才需要这样做。同时设置`num_clients`和`clients_ids`,且`len(clients_ids)`不等于`num_clients`,会产生错误。" #~ msgid "" #~ "CPU and GPU resources for a single" @@ -32682,17 +33591,16 @@ msgstr "" #~ "well as using custom resources, please" #~ " consult the Ray documentation." #~ msgstr "" -#~ "\"num_gpus\": 0.0` 单个客户端的 CPU 和 GPU " -#~ "资源。支持的键值为 `num_cpus` 和 `num_gpus`。要了解 " -#~ "`num_gpus` 所导致的 GPU 利用率,以及使用自定义资源的情况,请查阅 Ray" -#~ " 文档。" #~ msgid "" #~ "An implementation of the abstract base" #~ " class `flwr.server.Server`. If no instance" #~ " is provided, then `start_server` will " #~ "create one." -#~ msgstr "抽象基类 `flwr.server.Server`的实现。如果没有提供实例,`start_server` 将创建一个。" +#~ msgstr "" +#~ "抽象基类 `flwr.server.strategy.Strategy` " +#~ "的实现。如果没有提供策略,`start_server` 将使用 " +#~ "`flwr.server.strategy.FedAvg`。" #~ msgid "" #~ "An implementation of the abstract base" @@ -32700,8 +33608,9 @@ msgstr "" #~ "strategy is provided, then `start_server` " #~ "will use `flwr.server.strategy.FedAvg`." #~ msgstr "" -#~ "抽象基类 `flwr.server.strategy` 的实现。如果没有提供策略,`start_server`" -#~ " 将使用 `flwr.server.strategy.FedAvg`。" +#~ "抽象基类 `flwr.server.strategy.Strategy` " +#~ "的实现。如果没有提供策略,`start_server` 将使用 " +#~ "`flwr.server.strategy.FedAvg`。" #~ msgid "" #~ "An implementation of the abstract base" @@ -32711,7 +33620,7 @@ msgstr "" #~ "`flwr.server.client_manager.SimpleClientManager`." #~ msgstr "" #~ "抽象基类 `flwr.server.ClientManager` " -#~ "的实现。如果没有提供实现,`start_simulation` 将使用 " +#~ "的实现。如果没有提供实现,`start_server` 将使用 " #~ "`flwr.server.client_manager.SimpleClientManager`。" #~ msgid "" @@ -32726,11 +33635,6 @@ msgstr "" #~ "any arguments from being passed to " #~ "ray.init." #~ msgstr "" -#~ "可选字典,包含调用 `ray.init` 时的参数。如果 ray_init_args 为" -#~ " None(默认值),则将使用以下默认参数初始化 Ray: { " -#~ "\"ignore_reinit_error\": True, \"include_dashboard\": " -#~ "False } 可以使用空字典(ray_init_args={})来防止向 ray.init " -#~ "传递任何参数。" #~ msgid "" #~ "Optional dictionary containing arguments for" @@ -32739,22 +33643,20 @@ msgstr "" #~ " will be initialized with the " #~ "following default args:" #~ msgstr "" -#~ "可选字典,包含调用 `ray.init` 时的参数。如果 ray_init_args 为" -#~ " None(默认值),则将使用以下默认参数初始化 Ray:" #~ msgid "{ \"ignore_reinit_error\": True, \"include_dashboard\": False }" -#~ msgstr "{ \"ignore_reinit_error\": True, \"include_dashboard\": False }" +#~ msgstr "" #~ msgid "" #~ "An empty dictionary can be used " #~ "(ray_init_args={}) to prevent any arguments" #~ " from being passed to ray.init." -#~ msgstr "可以使用空字典 (ray_init_args={}) 来防止向 ray.init 传递任何参数。" +#~ msgstr "" #~ msgid "" #~ "Set to True to prevent `ray.shutdown()`" #~ " in case `ray.is_initialized()=True`." -#~ msgstr "设为 True 可在 `ray.is_initialized()=True` 情况下阻止 `ray.shutdown()` 。" +#~ msgstr "" #~ msgid "" #~ "Optionally specify the type of actor " @@ -32763,14 +33665,14 @@ msgstr "" #~ "be the process in charge of " #~ "executing a ClientApp wrapping input " #~ "argument `client_fn`." -#~ msgstr "可选择指定要使用的actor类型。actor对象将在整个模拟过程中持续存在,它将是负责运行客户端作业(即其 `fit()`方法)的进程。" +#~ msgstr "" #~ msgid "" #~ "If you want to create your own " #~ "Actor classes, you might need to " #~ "pass some input argument. You can " #~ "use this dictionary for such purpose." -#~ msgstr "如果您想创建自己的 Actor 类,可能需要传递一些输入参数。为此,您可以使用本字典。" +#~ msgstr "" #~ msgid "" #~ "(default: \"DEFAULT\") Optional string " @@ -32787,14 +33689,9 @@ msgstr "" #~ "documentation: https://docs.ray.io/en/latest/ray-" #~ "core/scheduling/index.html" #~ msgstr "" -#~ "(默认:\"DEFAULT\")可选字符串(\"DEFAULT \"或 \"SPREAD\"),供 " -#~ "VCE " -#~ "选择将行为体放置在哪个节点上。如果你是需要更多控制权的高级用户,可以使用低级调度策略将actor固定到特定计算节点(例如,通过 " -#~ "NodeAffinitySchedulingStrategy)。请注意,这是一项高级功能。有关详细信息,请参阅 Ray " -#~ "文档:https://docs.ray.io/en/latest/ray-core/scheduling/index.html" #~ msgid "**hist** -- Object containing metrics from training." -#~ msgstr "**hist** -- 包含训练指标的对象。" +#~ msgstr "**hist** -- 包含训练和评估指标的对象。" #~ msgid "" #~ "Check out this Federated Learning " @@ -36228,3 +37125,483 @@ msgstr "" #~ msgid "|55472eef61274ba1b739408607e109df|" #~ msgstr "" +#~ msgid "" +#~ "When operating in a production " +#~ "environment, it is strongly recommended " +#~ "to enable Transport Layer Security (TLS)" +#~ " for each Flower Component to ensure" +#~ " secure communication." +#~ msgstr "" + +#~ msgid "" +#~ "Assuming all files we need are in" +#~ " the local ``certificates`` directory, we" +#~ " can use the flag ``--volume`` to " +#~ "mount the local directory into the " +#~ "``/app/certificates/`` directory of the " +#~ "container:" +#~ msgstr "" + +#~ msgid "" +#~ "``--volume ./certificates/:/app/certificates/:ro``: Mount" +#~ " the ``certificates`` directory in" +#~ msgstr "" + +#~ msgid "" +#~ "the current working directory of the " +#~ "host machine as a read-only volume" +#~ " at the" +#~ msgstr "" + +#~ msgid "``/app/certificates`` directory inside the container." +#~ msgstr "" + +#~ msgid "" +#~ "``--volume ./ca.crt:/app/ca.crt/:ro``: Mount the " +#~ "``ca.crt`` file from the" +#~ msgstr "" + +#~ msgid "" +#~ "current working directory of the host" +#~ " machine as a read-only volume " +#~ "at the ``/app/ca.crt``" +#~ msgstr "" + +#~ msgid "SuperExec" +#~ msgstr "" + +#~ msgid "" +#~ "Assuming all files we need are in" +#~ " the local ``certificates`` directory where" +#~ " the SuperExec will be executed from," +#~ " we can use the flag ``--volume`` " +#~ "to mount the local directory into " +#~ "the ``/app/certificates/`` directory of the" +#~ " container:" +#~ msgstr "" + +#~ msgid "" +#~ ":substitution-code:`flwr/superexec:|stable_flwr_version|`: " +#~ "The name of the image to be " +#~ "run and the specific" +#~ msgstr "" + +#~ msgid "SuperExec." +#~ msgstr "" + +#~ msgid "" +#~ "``--ssl-certfile certificates/server.pem``: Specify" +#~ " the location of the SuperExec's" +#~ msgstr "" + +#~ msgid "" +#~ "The ``certificates/server.pem`` file is used" +#~ " to identify the SuperExec and to " +#~ "encrypt the" +#~ msgstr "" + +#~ msgid "" +#~ "``--ssl-keyfile certificates/server.key``: Specify" +#~ " the location of the SuperExec's" +#~ msgstr "" + +#~ msgid "" +#~ "``--executor-config root-" +#~ "certificates=\\\"certificates/superlink_ca.crt\\\"``: Specify" +#~ " the" +#~ msgstr "" + +#~ msgid "" +#~ "location of the CA certificate file " +#~ "inside the container that the SuperExec" +#~ " executor" +#~ msgstr "" + +#~ msgid "should use to verify the SuperLink's identity." +#~ msgstr "" + +#~ msgid "" +#~ "In this mode, the ClientApp is " +#~ "executed as a subprocess within the " +#~ "SuperNode Docker container, rather than " +#~ "running in a separate container. This" +#~ " approach reduces the number of " +#~ "running containers, which can be " +#~ "beneficial for environments with limited " +#~ "resources. However, it also means that" +#~ " the ClientApp is no longer isolated" +#~ " from the SuperNode, which may " +#~ "introduce additional security concerns." +#~ msgstr "" + +#~ msgid "" +#~ "Before running the ClientApp as a " +#~ "subprocess, ensure that the FAB " +#~ "dependencies have been installed in the" +#~ " SuperNode images. This can be done" +#~ " by extending the SuperNode image:" +#~ msgstr "" + +#~ msgid "Dockerfile.supernode" +#~ msgstr "Flower 服务器" + +#~ msgid "Run the ClientApp as a Subprocess" +#~ msgstr "" + +#~ msgid "" +#~ "Start the SuperNode with the flag " +#~ "``--isolation subprocess``, which tells the" +#~ " SuperNode to execute the ClientApp " +#~ "as a subprocess:" +#~ msgstr "" + +#~ msgid "Run the example and follow the logs of the ServerApp:" +#~ msgstr "" + +#~ msgid "" +#~ "That is all it takes! You can " +#~ "monitor the progress of the run " +#~ "through the logs of the SuperExec." +#~ msgstr "" + +#~ msgid "" +#~ "You will learn how to run the " +#~ "Flower client and server components on" +#~ " two separate machines, with Flower " +#~ "configured to use TLS encryption and " +#~ "persist SuperLink state across restarts. " +#~ "A server consists of a SuperLink " +#~ "and ``SuperExec``. For more details " +#~ "about the Flower architecture, refer to" +#~ " the :doc:`../explanation-flower-architecture`" +#~ " explainer page." +#~ msgstr "" + +#~ msgid "" +#~ "First, set the environment variables " +#~ "``SUPERLINK_IP`` and ``SUPEREXEC_IP`` with the" +#~ " IP address from the remote machine." +#~ " For example, if the IP is " +#~ "``192.168.2.33``, execute:" +#~ msgstr "" + +#~ msgid "" +#~ "Log into the remote machine using " +#~ "``ssh`` and run the following command" +#~ " to start the SuperLink and SuperExec" +#~ " services:" +#~ msgstr "" + +#~ msgid "" +#~ "Specify the remote SuperExec IP " +#~ "addresses and the path to the root" +#~ " certificate in the ``[tool.flwr.federations" +#~ ".remote-superexec]`` table in the " +#~ "``pyproject.toml`` file. Here, we have " +#~ "named our remote federation ``remote-" +#~ "superexec``:" +#~ msgstr "" + +#~ msgid "Run the project and follow the ServerApp logs:" +#~ msgstr "" + +#~ msgid "" +#~ "``-p 9091:9091 -p 9092:9092``: Map port" +#~ " ``9091`` and ``9092`` of the " +#~ "container to the same port of" +#~ msgstr "" + +#~ msgid "the host machine, allowing other services to access the Driver API on" +#~ msgstr "" + +#~ msgid "" +#~ "``http://localhost:9091`` and the Fleet API" +#~ " on ``http://localhost:9092``." +#~ msgstr "" + +#~ msgid "" +#~ "``flwr/supernode:|stable_flwr_version|``: This is " +#~ "the name of the image to be " +#~ "run and the specific tag" +#~ msgstr "" + +#~ msgid "" +#~ "``--supernode-address 0.0.0.0:9094``: Set the" +#~ " address and port number that the " +#~ "SuperNode" +#~ msgstr "" + +#~ msgid "is listening on." +#~ msgstr "" + +#~ msgid "Step 4: Start the ClientApp" +#~ msgstr "" + +#~ msgid "" +#~ "The ClientApp Docker image comes with" +#~ " a pre-installed version of Flower" +#~ " and serves as a base for " +#~ "building your own ClientApp image. In" +#~ " order to install the FAB " +#~ "dependencies, you will need to create" +#~ " a Dockerfile that extends the " +#~ "ClientApp image and installs the " +#~ "required dependencies." +#~ msgstr "" + +#~ msgid "" +#~ "Create a ClientApp Dockerfile called " +#~ "``Dockerfile.clientapp`` and paste the " +#~ "following code into it:" +#~ msgstr "" + +#~ msgid "Dockerfile.clientapp" +#~ msgstr "Flower 客户端。" + +#~ msgid "" +#~ "to be built from is the " +#~ "``flwr/clientapp image``, version :substitution-" +#~ "code:`|stable_flwr_version|`." +#~ msgstr "" + +#~ msgid "" +#~ "``--supernode supernode-1:9094``: Connect to " +#~ "the SuperNode's Fleet API at the " +#~ "address" +#~ msgstr "" + +#~ msgid "``supernode-1:9094``." +#~ msgstr "" + +#~ msgid "" +#~ "Similar to the ClientApp image, you " +#~ "will need to create a Dockerfile " +#~ "that extends the SuperExec image and " +#~ "installs the required FAB dependencies." +#~ msgstr "" + +#~ msgid "" +#~ "Create a SuperExec Dockerfile called " +#~ "``Dockerfile.superexec`` and paste the " +#~ "following code in:" +#~ msgstr "" + +#~ msgid "Dockerfile.superexec" +#~ msgstr "" + +#~ msgid "" +#~ ":substitution-code:`FROM " +#~ "flwr/superexec:|stable_flwr_version|`: This line " +#~ "specifies that the Docker image" +#~ msgstr "" + +#~ msgid "" +#~ "to be built from is the " +#~ "``flwr/superexec image``, version :substitution-" +#~ "code:`|stable_flwr_version|`." +#~ msgstr "" + +#~ msgid "" +#~ "``ENTRYPOINT [\"flower-superexec\"``: Set the" +#~ " command ``flower-superexec`` to be" +#~ msgstr "" + +#~ msgid "``\"--executor\", \"flwr.superexec.deployment:executor\"]`` Use the" +#~ msgstr "" + +#~ msgid "``flwr.superexec.deployment:executor`` executor to run the ServerApps." +#~ msgstr "" + +#~ msgid "" +#~ "Afterward, in the directory that holds" +#~ " the Dockerfile, execute this Docker " +#~ "command to build the SuperExec image:" +#~ msgstr "" + +#~ msgid "" +#~ "``-p 9093:9093``: Map port ``9093`` of" +#~ " the container to the same port " +#~ "of" +#~ msgstr "" + +#~ msgid "" +#~ "the host machine, allowing you to " +#~ "access the SuperExec API on " +#~ "``http://localhost:9093``." +#~ msgstr "" + +#~ msgid "``--name superexec``: Assign the name ``superexec`` to the container." +#~ msgstr "" + +#~ msgid "" +#~ "``--executor-config superlink=\\\"superlink:9091\\\"``:" +#~ " Configure the SuperExec executor to" +#~ msgstr "" + +#~ msgid "connect to the SuperLink running on port ``9091``." +#~ msgstr "" + +#~ msgid "Launch two new ClientApp containers based on the newly built image:" +#~ msgstr "" + +#~ msgid "" +#~ "Setting the ``PROJECT_DIR`` helps Docker " +#~ "Compose locate the ``pyproject.toml`` file," +#~ " allowing it to install dependencies " +#~ "in the SuperExec and SuperNode images" +#~ " correctly." +#~ msgstr "" + +#~ msgid "" +#~ "To ensure the ``flwr`` CLI connects " +#~ "to the SuperExec, you need to " +#~ "specify the SuperExec addresses in the" +#~ " ``pyproject.toml`` file." +#~ msgstr "" + +#~ msgid "" +#~ "Run the quickstart example, monitor the" +#~ " ServerApp logs and wait for the " +#~ "summary to appear:" +#~ msgstr "" + +#~ msgid "In the SuperExec logs, you should find the ``Get weights`` line:" +#~ msgstr "" + +#~ msgid "Step 7: Add another SuperNode" +#~ msgstr "" + +#~ msgid "" +#~ "You can add more SuperNodes and " +#~ "ClientApps by duplicating their definitions" +#~ " in the ``compose.yml`` file." +#~ msgstr "" + +#~ msgid "" +#~ "Just give each new SuperNode and " +#~ "ClientApp service a unique service name" +#~ " like ``supernode-3``, ``clientapp-3``, etc." +#~ msgstr "" + +#~ msgid "In ``compose.yml``, add the following:" +#~ msgstr "" + +#~ msgid "" +#~ "If you also want to enable TLS " +#~ "for the new SuperNodes, duplicate the" +#~ " SuperNode definition for each new " +#~ "SuperNode service in the ``with-" +#~ "tls.yml`` file." +#~ msgstr "" + +#~ msgid "" +#~ "Make sure that the names of the" +#~ " services match with the one in " +#~ "the ``compose.yml`` file." +#~ msgstr "" + +#~ msgid "In ``with-tls.yml``, add the following:" +#~ msgstr "" + +#~ msgid "Comment out the lines 2-4 and uncomment the lines 5-9:" +#~ msgstr "" + +#~ msgid "" +#~ "This guide is for users who have" +#~ " already worked with Flower 0.x and" +#~ " want to upgrade to Flower 1.0. " +#~ "Newer versions of Flower (1.12+) are " +#~ "based on a new architecture (previously" +#~ " called Flower Next) and not covered" +#~ " in this guide. After upgrading " +#~ "Flower 0.x projects to Flower 1.0, " +#~ "please refer to :doc:`Upgrade to Flower" +#~ " Next ` to make your project compatible" +#~ " with the lastest version of Flower." +#~ msgstr "" + +#~ msgid "Upgrade to Flower Next" +#~ msgstr "升级至 Flower 1.0" + +#~ msgid "" +#~ "This guide shows how to reuse " +#~ "pre-``1.8`` Flower code with minimum " +#~ "code changes by using the *compatibility" +#~ " layer* in Flower Next. In another" +#~ " guide, we will show how to run" +#~ " Flower Next end-to-end with " +#~ "pure Flower Next APIs." +#~ msgstr "" +#~ "本指南展示了如何通过使用 Flower Next " +#~ "中的*可兼容层*,以最小的代码改动重用```1.8```前的 Flower " +#~ "代码。在另一个指南中,我们将介绍如何使用纯 Flower Next API 端到端运行" +#~ " Flower Next。" + +#~ msgid "Using Poetry" +#~ msgstr "使用 pip" + +#~ msgid "" +#~ "Update the ``flwr`` dependency in " +#~ "``pyproject.toml`` and then reinstall (don't" +#~ " forget to delete ``poetry.lock`` via " +#~ "``rm poetry.lock`` before running ``poetry " +#~ "install``)." +#~ msgstr "" +#~ "Poetry:更新 ``pyproject.toml`` 中的 ``flwr`` " +#~ "依赖包,然后重新安装(运行 ``poetry install`` 前,别忘了通过 ``rm" +#~ " poetry.lock` 删除 ``poetry.lock`)。" + +#~ msgid "" +#~ "Ensure you set the following version " +#~ "constraint in your ``pyproject.toml``:" +#~ msgstr "将 ``pyproject.toml`` 中的次要版本增加一个。" + +#~ msgid "" +#~ "This function is deprecated since " +#~ "1.13.0. Use :code: `flwr run` to " +#~ "start a Flower simulation." +#~ msgstr "" + +#~ msgid "|c9344c3dfee24383908fabaac40a8504|" +#~ msgstr "" + +#~ msgid "|c10cd8f2177641bd8091c7b76d318ff9|" +#~ msgstr "" + +#~ msgid "|3c59c315e67945ea8b839381c5deb6c2|" +#~ msgstr "" + +#~ msgid "|eadf87e1e20549789512f7aa9199fcff|" +#~ msgstr "" + +#~ msgid "|66ce8f21aeb443fca1fc88f727458417|" +#~ msgstr "" + +#~ msgid "|f5768015a1014396b4761bb6cb3677f5|" +#~ msgstr "" + +#~ msgid "|a746aa3f56064617a4e00f4c6a0cb140|" +#~ msgstr "" + +#~ msgid "|cf8f676dd3534a44995c1b40910fd030|" +#~ msgstr "" + +#~ msgid "|d1c0e3a4c9dc4bfd88ee6f1fe626edaf|" +#~ msgstr "" + +#~ msgid "|1d8d6298a4014ec3a717135bcc7a94f9|" +#~ msgstr "" + +#~ msgid "|e3ea79200ff44d459358b9f4713e582b|" +#~ msgstr "" + +#~ msgid "|3e1061718a4a49d485764d30a4bfecdd|" +#~ msgstr "" + +#~ msgid "|7750e597d1ea4e319f7e0a40539bf214|" +#~ msgstr "" + +#~ msgid "|dd4434075f374e99ac07f509a883778f|" +#~ msgstr "" +