Skip to content

Latest commit

 

History

History
186 lines (134 loc) · 4.1 KB

File metadata and controls

186 lines (134 loc) · 4.1 KB

Contributing to 01CLOUD-SUPPORT

Thank you for your interest in contributing to 01CLOUD-SUPPORT! We welcome contributions from the community. This document provides guidelines and instructions for contributing.

Code of Conduct

By participating in this project, you agree to abide by our Code of Conduct. Please be respectful and inclusive in all interactions.

How to Contribute

Reporting Bugs

  1. Check if the bug has already been reported in Issues
  2. If not found, create a new issue with:
    • Clear, descriptive title
    • Detailed description of the problem
    • Steps to reproduce
    • Expected behavior vs. actual behavior
    • Your environment (Go version, OS, database, etc.)
    • Relevant logs or screenshots

Suggesting Enhancements

  1. Check if the feature/enhancement has been suggested in Issues
  2. Create a new issue/discussion with:
    • Clear title describing the enhancement
    • Detailed description of the proposed feature
    • Possible implementation approach (optional)
    • Use cases and benefits

Pull Requests

Process

  1. Fork the repository and create your branch from main

    git checkout -b feature/your-feature-name
  2. Set up development environment

    cp .env.sample .env
    # Configure .env with your local settings
  3. Make your changes

    • Write clean, readable code
    • Add comments for complex logic
    • Follow the project's code style
    • Keep commits atomic and logical
  4. Test your changes

    make test-dev
    make lint
  5. Commit your changes (follow Conventional Commits)

    git commit -m "type(scope): description"

    Types: feat, fix, docs, style, refactor, test, chore

    Example: feat(ticket): add ticket filtering by status

  6. Push to your fork

    git push origin feature/your-feature-name
  7. Open a Pull Request against the main branch

    • Use the PR template
    • Provide clear description of changes
    • Reference related issues
    • Ensure all CI checks pass

PR Guidelines

  • One feature/fix per PR when possible
  • Keep PRs focused and manageable
  • Update tests for new functionality
  • Update documentation if needed
  • Be responsive to feedback and reviews

Development Workflow

Setting up your environment

# Clone the repository
git clone https://github.com/berrybytes/01cloud-support.git
cd 01cloud-support

# Install dependencies
go mod download

# Copy environment file
cp .env.sample .env

Common commands

# Run gRPC server
make run

# Run HTTP API server
make run-api

# Run tests
make test-dev

# Run linter
make lint

# Generate protobuf code
make gen-proto

# Build the project image
make build

Testing

  • Write tests for new features
  • Ensure existing tests pass
  • Aim for good test coverage
  • Run tests locally before pushing:
    make test-dev

Code Style

  • Follow Go conventions: Effective Go
  • Use gofmt for formatting
  • Run golangci-lint before committing:
    make lint

Commit Messages

Follow Conventional Commits format:

<type>(<scope>): <subject>

<body>

<footer>
  • type: feat, fix, docs, style, refactor, test, chore
  • scope: Component affected (optional)
  • subject: Clear, concise description (imperative mood)
  • body: Detailed explanation (optional)
  • footer: Issue references like Fixes #123

Documentation

  • Update README.md for user-facing changes
  • Add/update API documentation
  • Include code comments for complex logic
  • Update CHANGELOG.md with notable changes

Review Process

  1. Maintainers review your PR
  2. Address review feedback
  3. Re-request review after changes
  4. Once approved, maintainers merge the PR

Questions?

Feel free to:

  • Open an issue for discussion
  • Start a GitHub Discussion
  • Reach out to the maintainers

Recognition

Contributors are recognized in the project. Your efforts matter to us!

Thank you for contributing!