Skip to content

Contributing to Bolt

Thank you for your interest in contributing to Bolt! This document provides guidelines and instructions for contributing to the project.

Bolt is hosted on SourceHut. If you're new to SourceHut, see the git.sr.ht quickstart.

You do not need an account on SourceHut to contribute.

How to Contribute

Bolt uses an email-based workflow for accepting contributions.

  • All questions, discussions, requests, or patches should be submitted via email to my public-inbox mailing list. For patches, use the subject prefix [PATCH bolt]. For anything else, please make it obvious it is for the bolt project.

Development Setup

Prerequisites

  • Go 1.24.0 or later
  • Docker (for running database integration tests)
  • git

Initial Setup

  1. Clone the repository:

    git clone https://git.sr.ht/~eugenetriguba/bolt
    cd bolt
    

  2. Install dependencies:

    go mod download
    

  3. Build the project:

    ./scripts/build.sh
    

Running Tests

Bolt has integration tests for all supported databases. The test suite uses docker containers to run database instances.

Run all tests:

./scripts/test.sh

Run all tests and leave database containers running:

./scripts/test.sh --keepdb

Run tests for a specific database:

./scripts/test.sh postgres
./scripts/test.sh mysql
./scripts/test.sh mssql
./scripts/test.sh sqlite3

Running Linters/Formatters

To lint:

./scripts/lint.sh

To format:

./scripts/format.sh