Skip to content

Contributing

Thank you for your interest in contributing to Pipelit! This section covers everything you need to get started as a developer.

Guides

Development Setup

Fork the repository, install dependencies, and run the backend, worker, and frontend in development mode.

Testing

Run the test suite, understand the test structure, write new tests with Bearer token authentication, and check coverage.

Adding Components

Step-by-step guide to creating new workflow node types: registry entries, component implementations, SQLAlchemy models, Pydantic schemas, and frontend types.

Migrations

Alembic migration best practices: checking for conflicts, handling SQLite batch operations, testing against existing data, and common commands.

Code Style

Python and TypeScript conventions, type hints, formatting, and the most important rule: this project uses FastAPI + SQLAlchemy, not Django.

Releasing

How to create a new Pipelit release: version bumping, changelog updates, tagging, and the automated GitHub Release workflow.

Quick Contribution Checklist

Before submitting a pull request:

  1. Branch -- create a feature branch from master
  2. Code -- follow the project's code style and conventions
  3. Test -- add or update tests for your changes
  4. Migrate -- create an Alembic migration if you changed database models
  5. Register -- if adding a new component type, register it in all required places
  6. Run tests -- ensure the full test suite passes
  7. Commit -- write clear, descriptive commit messages

Tech Stack Reminder

This project uses:

Layer Technologies
Backend FastAPI, SQLAlchemy 2.0, Alembic, Pydantic, RQ (Redis Queue)
Frontend React, Vite, TypeScript, Shadcn/ui, React Flow, TanStack Query
Execution LangGraph, LangChain, Redis pub/sub, WebSocket

Not Django

This project uses FastAPI + SQLAlchemy + RQ. Never reference Django models, Django ORM, Django settings, or any Django concepts. The backend is Python/FastAPI with SQLAlchemy models and Alembic migrations.