Skip to content

Contributing to Pipelex

Thank you for your interest in contributing! Contributions are very welcome. We appreciate first time contributors and we are happy help you get started. Join our community on Discord and feel free to reach out with questions in the #code-contributions and #pipeline-contributions channels.

Everyone interacting in Discord, codebases, mailing lists, events, or any other Pipelex activities is expected to follow the Code of Conduct. Please review it before getting started.

Most of the issues that are open for contributions are tagged with good first issue or help-welcome. If you see an issue that isn't tagged that you're interested in, post a comment with your approach, and we'll be happy to assign it to you. If you submit a fix that isn't linked to an issue you're assigned, there's chance it won't be accepted. Don't hesitate to ping the Pipelex team on Discord to discuss your choice of issue before getting to work.

We are open to contributions in all areas of our core Pipelex library:

  • Bug fixes: Crashes, incorrect output, performance issues
  • Feature: New API, CLI flag, module, test coverage
  • Refactor: Rethink architecture
  • Chore: Dependency updates, config tweaks, file renames
  • Docs: Main docs, SWE Agent rules, tutorials, examples, READMEs
  • CI/CD: GitHub Actions, packaging, release tooling

Contribution process

  • Fork the Pipelex repository
  • Clone the repository locally
  • Install dependencies: make install (creates .venv and installs dependencies)
  • Copy .env.example to .env and fill in required API keys (at least OpenAI)
  • Run checks to make sure all is good: make check & make test
  • Create a branch with the format user_name/category/short_slug where category is one of: feature, fix, refactor, docs, cicd or chore
  • Make and commit changes
  • Push your local branch to your fork
  • Open a PR that links to an existing Issue which does not include the needs triage label
  • Write a PR title and description by filling the template
  • CI tests will be triggered and maintainers will review the code
  • Respond to feedback if required
  • Merge the contribution

Requirements

  • Python ≥3.10
  • uv ≥ 0.7.2

Development Setup

  • Fork & clone the repository
  • Run make install to set up virtualenv and dependencies
  • Copy .env.example to .env and configure API keys
  • Use uv for dependency management:
  • Runtime deps: uv pip install <package>
  • Dev deps: uv pip install --extra dev <package>
  • Keep dependencies alphabetically ordered in pyproject.toml

Pull Request Process

  • Fork the Pipelex repository
  • Clone the repository locally
  • Install dependencies: make install (creates .venv and installs dependencies)
  • Copy .env.example to .env and fill in required API keys (at least OpenAI)
  • Run checks to make sure all is good: make check & make test
  • Create a branch for your feature/bug-fix with the format user_name/feature/some_feature or user_name/fix/some_bugfix
  • Make and commit changes
  • Push your local branch to your fork
  • When it's ready, re-run quality tests:
  • Run make fix-unused-imports to removed unused imports
  • Run make check for formatting & linting with Ruff, and type-checking with Pyright and Mypy
  • Run make test for test suite
  • Open a PR that links to an existing Issue including a PR title and description
  • Mark as Draft until CI passes
  • Maintainers will review the code
  • Respond to feedback if required
  • Merge the contribution

Environment Setup

  • Copy .env.example to .env
  • Fill in required credentials (OPENAI_API_KEY, AWS_ACCESS_KEY_ID, etc.)
  • Never commit .env

License

  • CLA – The first time you open a PR, the CLA-assistant bot will guide you through signing the Contributor License Agreement. The process signature uses the CLA assistant lite.
  • Code of Conduct – Be kind. All interactions fall under CODE_OF_CONDUCT.md.