Skip to content

Latest commit

 

History

History
65 lines (45 loc) · 2.29 KB

File metadata and controls

65 lines (45 loc) · 2.29 KB

Contributing to optimum-gateway

Thank you for your interest in contributing! We want to make it as easy as possible for you to get your code into the project. For more detailed documentation, please refer to our Official Guide.

Quick Start

1. Setup

# 1. Fork the repo on GitHub
# 2. Clone your fork
git clone git@github.com:<your-username>/optimum-gateway.git
cd optimum-gateway

# 3. Add the official repo as 'upstream'
git remote add upstream git@github.com:getoptimum/optimum-gateway.git
make build   # Verify it compiles
make test    # Run unit tests
make run     # Run the service locally

How to Contribute

Here are some ways you can contribute:

  • Open a new issue (please check the issue does not already exist).
  • Work on an existing issue (check out the issue list).

Submitting a Pull Request

  1. Synchronize your fork with the latest upstream/main.
  2. Create a branch for your work:
    • Features: feat/<description>
    • Bug fixes: fix/<description>
    • Documentation: docs/<description>
  3. Commit your changes following Conventional Commits.
  4. Push to your fork and Open a PR against getoptimum/optimum-gateway:main.

PR Checklist

Before submitting, ensure:

  • make test passes (including coverage)
  • make lint passes (we use golangci-lint)
  • Your code is formatted using go fmt
  • You've explained what changed and why in the PR description

Standards

  • Error Handling: All errors must be checked.
  • Logging: Use the internal logger, not logrus.
  • Imports: Use the standard errors package, avoid github.com/pkg/errors.
  • Commit Messages: Follow Conventional Commits (e.g., feat:, fix:, docs:).
  • Generated Code: If you modify .proto files, run make proto before committing.

CI Checks

All Pull Requests must pass our CI pipeline (Linting, Tests, Building) before they can be merged. If CI fails, please check the logs and fix the reported issues.

Questions?

Open a GitHub Issue.