FedML is an open and community-driven project. Everyone is welcome to contribute!
- GitHub issues tracker: addressing and discussing functional issues and problems of the FedML library.
- Slack channel #general: open-ended questions and issues related to the FedML open-source library.
- Slack channel #fedml-system: open-ended questions and issues related to system errors and issues.
- Slack channel #fedml-model-and-dataset: open-ended questions and issues related to model definitions and (customized) dataset loaders.
- Slack channel #fedml-algorithms: open-ended questions and issues related to algorithmic optimizations and implementations.
- Discord: open-ended questions and issues related to the FedML open-source library, similar to Slack.
Before submitting a github issue or a feature request, ensure the issue has not been already reported under Issues, either in the open or closed issues list and it is not currently being addressed by other pull requests. For questions that required to be asnwered in a timely manner it is recommended to ask the Slack community.
If you're unable to find an open issue addressing your problem, then you can open a new one. Please make sure to include:
- Issue Title: a consice explanation of the issue
- Description: be as descriptive as possible so that the issue can be reproduced by others. The description needs to contain the following checklist:
- your environment's fedml library and environment
- hint: run
fedml env
- hint: run
- your environment's operating system specs
- your environment's hardware specs
- the sequence of execution commands creating this issue
- source code to reproduce the error wherever necessary
- your environment's fedml library and environment
- Label: need to select at least one label from the following list:
bug
: something is not working at alldocumentation
: improvements or additions to documentationgood first issue
: if this is the first issue of the userhelp wanted
: if this is an advance feature request and critical help is neededhotfix
: a small change to a speficic functionality is neededquestion
: if the issue is an implementation or other open-ended questionresearch-projects
: if the issue is related to a research project/questionTODO features
: if the issue requests the implementation of new feature
Before you open a new pull request or contribute code, please make sure you have gone over the documentation, have successfully installed the FedML library and you are able to run a working example:
However, to avoid duplicating work, it is highly recommended before a new PR is opened to search through the
issue tracker and
pull requests list. One easy way to scan over existing issues and PRs, is by searching using one of the following labels
(bug, help wanted, hotfix, TODO features
), for instance for an existing TODO features
you can look here.
The procedure to start working on a new PR is:
- checkout the development branch
- make any necessary changes locally and push to a new branch following the convention
<username>/<PR_name>
username
is the name of your GitHub account andPR_name
is a succint name describing your PR
- once you have pushed your PR you need to request a merge with the development branch
Once the PR is approved, it will be merged into dev/v0.7.0
and subsequently to the main
branch in the next FedML Release.