Prerequisites
Before you begin, ensure you have the following installed:- Python: 3.12 or higher (< 3.14)
- uv: Fast Python package manager (install instructions)
- just: Command runner (optional, but recommended) -
brew install justorcargo install just
Project Structure
The Syft-Flwr repository is organized as follows:Development Workflow
The typical development workflow follows these steps:Clone and Setup
Clone the repository and set up your development environment. See Development Setup for detailed instructions.
Feature Development
Create a feature branch and implement your changes. Follow the code quality guidelines and ensure all pre-commit hooks pass.
Testing
Run unit tests and integration tests to verify your changes. See Testing for test commands.
Code Quality
Run linters, formatters, and pre-commit hooks to ensure code quality. See Code Quality for details.
Release
When ready to publish a new version, follow the Release Process to bump the version and publish to PyPI.
Available Commands
The project usesjust as a command runner. To see all available commands:
CI/CD
The project uses GitHub Actions for continuous integration and deployment:- Unit Tests: Run automatically on push/PR to main branch across Ubuntu, Windows, and macOS with Python 3.10, 3.11, and 3.12
- Integration Tests: Can be triggered manually via GitHub Actions
- Release Workflow: Fully automated release process including version bumping, testing, building, and publishing to PyPI
Getting Help
If you encounter issues during development:- Check the Development Setup guide for installation issues
- Review Testing for test-related problems
- Consult Code Quality for linting and formatting issues
- See Releasing for release process troubleshooting