Contributing to flowyml ๐ค
We welcome contributions to flowyml! Whether it's reporting a bug, improving documentation, or adding a new feature, your help is appreciated.
Development Setup ๐ ๏ธ
Prerequisites
- Python 3.8+
- Node.js 16+ (for UI development)
- Poetry (recommended) or pip
Setting up the Environment
-
Clone the repository:
-
Install dependencies:
-
Install pre-commit hooks:
UI Development ๐ฅ๏ธ
The UI consists of a FastAPI backend and a React frontend.
Running in Development Mode
-
Start the Backend:
This starts the FastAPI server on port 8000 with auto-reload. -
Start the Frontend:
This starts the Vite dev server on port 5173 with Hot Module Replacement (HMR).
The frontend proxies API requests to the backend at http://localhost:8000.
Building for Production ๐ฆ
To build the frontend for production distribution:
This generates static assets in flowyml/ui/frontend/dist, which are served by the Python backend in production mode.
Testing ๐งช
Running Tests
Run the full test suite:
Run specific tests:
Writing Tests
- Place unit tests in the
tests/directory. - Use the
BaseTestCaseclass for tests that require a temporary directory or isolated configuration. - Ensure all new features have accompanying tests.
Code Style ๐จ
We follow PEP 8 and use black for formatting.
Pull Request Process ๐
- Fork the repository.
- Create a feature branch (
git checkout -b feature/amazing-feature). - Commit your changes.
- Push to the branch.
- Open a Pull Request.
Documentation ๐
Documentation is built with MkDocs.
Update documentation in the docs/ directory for any API changes.