From 82efcbdd5baf542d1a3aff0fa53406f14928e06f Mon Sep 17 00:00:00 2001 From: mgqa34 Date: Mon, 18 Sep 2023 16:22:16 +0800 Subject: [PATCH 1/2] update readme, add fate_test link Signed-off-by: mgqa34 --- README.md | 1 + README_zh.md | 1 + 2 files changed, 2 insertions(+) diff --git a/README.md b/README.md index 887a67b8a3..00d8306e91 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,7 @@ Deploying FATE to multiple nodes to achieve scalability, reliability and managea - [AnsibleFATE](https://github.com/FederatedAI/AnsibleFATE): A tool to optimize and automate the configuration and deployment operations via Ansible. - [FATE-Builder](https://github.com/FederatedAI/FATE-Builder): A tool to build package and docker image for FATE and KubeFATE. - [FATE-Client](https://github.com/FederatedAI/FATE-Client): A tool to enable fast federated modeling tasks for FATE. +- [FATE-Test](https://github.com/FederatedAI/FATE-Test): An automated testing tool for FATE, including tests and benchmark comparisons. ## Governance diff --git a/README_zh.md b/README_zh.md index 8cb07dcff0..2fee074553 100644 --- a/README_zh.md +++ b/README_zh.md @@ -45,6 +45,7 @@ FATE 2.0以前的版本在[发布页](https://github.com/FederatedAI/FATE/releas - [AnsibleFATE](https://github.com/FederatedAI/AnsibleFATE) - [FATE-Builder](https://github.com/FederatedAI/FATE-Builder) - [FATE-Client](https://github.com/FederatedAI/FATE-Client) +- [FATE-Test](https://github.com/FederatedAI/FATE-Test) ## 社区治理 From 5232e5de59c5ca5e6388612ab0a01377110cc36f Mon Sep 17 00:00:00 2001 From: mgqa34 Date: Mon, 18 Sep 2023 16:28:06 +0800 Subject: [PATCH 2/2] recovery FATE_logo Signed-off-by: mgqa34 --- doc/images/FATE_logo.png | Bin 0 -> 16941 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/images/FATE_logo.png diff --git a/doc/images/FATE_logo.png b/doc/images/FATE_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..672e286a8cc997cac7b59af3ac8ed568b69ad5b6 GIT binary patch literal 16941 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 SfBrQEIC*ImscH$6;Qt4{bX#Ho literal 0 HcmV?d00001