Contributing

Contributions are welcome! This document outlines the process for setting up your development environment and submitting changes.

Development Environment

  • Go: Version 1.21 or higher.
  • Make: For running build scripts.
  • golangci-lint: For linting code.

Build Commands

The project uses a Makefile for common tasks:

  • make all: Build both server and client.
  • make juicity-server: Build only the server.
  • make juicity-client: Build only the client.

Code Quality

We use golangci-lint to ensure code quality. A configuration file .golangci.yml is provided in the root.

Additionally, pre-commit hooks are available in .pre-commit-config.yaml to enforce standards before you commit:

  1. Install pre-commit.
  2. Run pre-commit install.

Submitting a Pull Request

  1. Fork the repository.
  2. Create a feature branch.
  3. Ensure all tests pass and linters are happy.
  4. Submit a Pull Request describing your changes.