Skip to content

Latest commit

 

History

History
129 lines (89 loc) · 3.82 KB

File metadata and controls

129 lines (89 loc) · 3.82 KB

Contributing to Compozy

First off, thank you for considering contributing to Compozy! It's people like you that make Compozy such a great tool. We welcome contributions from the community, whether it's reporting a bug, suggesting a feature, or submitting a pull request.

Table of Contents

Code of Conduct

This project and everyone participating in it is governed by the Compozy Code of Conduct. By participating, you are expected to uphold this code.

Getting Started

Prerequisites

  • Go (version 1.25 or later)
  • Bun (v0.7.0 or later required for optimal memory management)
  • Docker
  • Make

Installation

  1. Fork the repository on GitHub.
  2. Clone your fork locally:
    git clone https://github.com/YOUR_USERNAME/compozy.git
    cd compozy
  3. Install dependencies:
    make deps
  4. Set up the database and other services:
    make start-docker
    make migrate-up

Development Workflow

Running the Development Server

First, you need to set up the environment variables. Copy the .env.example file to .env and fill in the values.

cp .env.example .env

To start the development server with hot-reloading, you can run any example workflow with:

make dev EXAMPLE=[example-name] # example name is the folder name under the examples/ directory

This will start the Compozy server and watch for changes in the source code.

Running Tests

To run the test suite, use the following command:

make test

This command runs both Go and Bun tests.

Linting and Formatting

Before committing your changes, make sure to lint and format your code:

make fmt
make lint

This will format both Go and TypeScript/JavaScript code and run the linters.

Commit Message Guidelines

We follow the Conventional Commits specification. This allows for automated changelog generation and helps keep the commit history clean and readable.

Format:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

Example:

feat(engine): add support for parallel tasks

Submitting Changes

Pull Request Process

  1. Ensure that your code adheres to the project's coding standards and that all tests pass.
  2. Create a new pull request from your fork to the main branch of the Compozy repository.
  3. Provide a clear and descriptive title and description for your pull request.
  4. The team will review your pull request and may suggest changes.
  5. Once your pull request is approved, it will be merged into the main branch.

Coding Standards

We have a set of coding standards that we follow to ensure code quality and consistency. These are documented in the .cursor/rules directory. Please review these documents before contributing.

License

By contributing to Compozy, you agree that your contributions will be licensed under its Business Source License 1.1 (BUSL-1.1).