加入FedLab开源#

报告bugs#

我们使用GitHub issues来跟进所有bugs以及新的功能请求。如果您发现了bug或者希望FedLab提供新的功能,请在GitHub上开新的issues方便我们后续跟进开发。

如果您在使用FedLab框架时发现了各种问题,请向 Bug Tracker 提交表单。当然我们也欢迎大家积极提出新功能需求或者发起pull request。

贡献代码#

我们欢迎大家通过 Pull Request 向FedLab贡献代码。当您贡献代码的时候我们将默认您允许自己提交的代码遵从 Apache License, Version 2.0

我们鼓励您向FedLab提交贡献,可以是功能改进或是联邦学习算法的实现。我们推荐的向FedLab提交贡献的流程是先fork FedLab的主仓库,clone到本地,然后在新的分支上进行开发。步骤如下所示:

  1. 点击’Fork’按钮来fork项目仓库。如果想要贡献新功能,请fork FedLab框架仓库,如果想要贡献新的联邦学习的算法实现,请fork FedLab-benchmarks仓库.

  2. 将你fork得到的仓库clone到本地:

    $ git clone git@github.com:YourLogin/FedLab.git
    $ cd FedLab
    
  3. 创建新的分支来保存您的代码改动:

    $ git checkout -b my-feature
    
  4. 在您自己的分支上开发新功能。

    $ git add modified_files
    $ git commit
    

Pull Request清单#

  • 请让新功能开发分支中遵循以下文件结构,或者按照新的需求创建新的文件。

    fedlab
        ├── core
        │   ├── communicator            # communication module
        │   ├── client                  # client related implementations
        │   └── server                  # server related implementations
        │       └── hierarchical        # hierarchical communication pattern modules
        └── utils                       # functional modules
            └── dataset                 # functional modules about dataset
    
  • 代码应该提供使用 unittest.TestCase 编写的测试样例,并且保证所有的本地测试均能通过:

    $ python test_bench.py
    
  • 所有公开提交的代码应包含有效的说明文档以及使用样例。说明文档和代码应遵循谷歌Python风格指南:中文版 | English