Welcome
Welcome to the FL-Net contribution guide.
This guide is for developers who want to change the FL-Net software itself:
- the Client and Platform services including the frontends
- the federated communication layer
- the Tool handling
- this documentation itself
Who this is for
- Backend developers working on the Java/Quarkus services (Learning APIs, Orchestration API).
- Frontend developers working on the Angular workspace that contains the local (Client) and global (Platform) frontends.
- Developers of the federated communication layer, the Go-based controller and relay server.
- Developers of the Tool handling, e.g. via the Python Tool API and the Tool Build Pipeline.
- Documentation writers improving this site.
If you want to contribute by building a Tool for the network rather than changing FL-Net itself, see Tool development instead.
How the codebase is organized at a glance
- FL-Net is not a monorepo. Each component lives in its own repository in the FedLearnNet GitHub organization, with its own README, CI, and Docker images.
- The Client and the Platform are built using shared repositories: for example, the
local-learning-apiandglobal-learning-apimodules both live in Learning-APIs, and the local and global frontends both live in Frontends. - The federated communication layer also uses shared repositories: the
controllerandrelay-servermodules both live in Federated-Learning-Communication-API. -The CLI securely assembles the published Docker images into a running Client or Platform.
See the Repository map to find out which repository owns which part.
Quickstart
If you wish to contribute, please make sure you read in any case the Development workflow!
For a Quickstart, jump directly to what you need:
- Quickstart: prerequisites, getting the code, and running and testing a component locally
- Repository map: which repository to change
- Development workflow: issues, branches, pull requests, and CI
- Documentation workflow: changing this documentation site
However, we recommend the following reading order for new contributors:
- Welcome (you are here)
- Read the general welcome page for FL-Net
- Optional: Understanding the architecture
- Repository map
- Quickstart
- Development workflow
- Documentation workflow
- One of the detailed sections, depending on your change:
- Frontend
- Backend: Environment secrets and Federated learning flow, followed by the
global-learning-apiandlocal-learning-apipages - Authentication
- Documentation workflow