Skip to content

Latest commit

 

History

History
126 lines (83 loc) · 2.96 KB

File metadata and controls

126 lines (83 loc) · 2.96 KB

Contributing to Arfa

Thank you for your interest in contributing to Arfa! This document provides guidelines and information for contributors.

Quick Links

Getting Started

  1. Fork the repository and clone your fork
  2. Set up the development environment following Getting Started
  3. Create a branch for your changes: git checkout -b feature/your-feature-name
  4. Make your changes with tests
  5. Submit a pull request

Development Workflow

Prerequisites

  • Go 1.24+
  • PostgreSQL 15+
  • Node.js 20+ (for web UI)
  • Docker (for local development)

Running Locally

# Start dependencies
docker compose up -d

# Install tools and generate code
make install-tools
make generate

# Run tests
make test

# Build all services
make build

Code Generation

We use code generation for type-safe database queries and API types:

make generate  # Regenerate all code

Never edit files in generated/ - they are regenerated from source.

Pull Request Guidelines

Before Submitting

  • Run make test and ensure all tests pass
  • Run make lint and fix any issues
  • Add tests for new functionality
  • Update documentation if needed

PR Title Format

Use conventional commits format:

  • feat: Add new feature
  • fix: Fix bug in X
  • docs: Update documentation
  • refactor: Refactor X for clarity
  • test: Add tests for X
  • chore: Update dependencies

Review Process

  1. All PRs require at least one approval
  2. CI checks must pass
  3. Maintain test coverage (target: 85%)

Architecture

See Architecture Overview for details on:

  • Service structure (API, CLI, Web)
  • Database schema
  • Code generation pipeline
  • Multi-tenancy design

Testing

We follow test-driven development (TDD). See Testing Guide for:

  • Unit testing patterns
  • Integration testing with TestContainers
  • Test fixtures and utilities

Security

Reporting Vulnerabilities

Please report security vulnerabilities to sergei@rastrigin.systems. Do not open public issues for security concerns.

Security Guidelines

  • All database queries must include org_id for multi-tenancy
  • Never commit secrets or credentials
  • Use parameterized queries (sqlc handles this)

Code of Conduct

We are committed to providing a welcoming and inclusive environment. Please:

  • Be respectful and constructive
  • Welcome newcomers
  • Focus on what is best for the community

Questions?

License

By contributing, you agree that your contributions will be licensed under the MIT License.