Skip to content
This repository was archived by the owner on Oct 24, 2025. It is now read-only.

Latest commit

 

History

History
143 lines (105 loc) · 4.04 KB

File metadata and controls

143 lines (105 loc) · 4.04 KB

v# Contributing to Stroppy

Thank you for your interest in contributing to Stroppy! We welcome all contributions, including bug reports, feature requests, documentation improvements, and code contributions.

Table of Contents

Code of Conduct

This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.

How to Contribute

Reporting Bugs

Before creating a bug report, please check the existing issues to see if the problem has already been reported.

When creating a bug report, please include:

  • A clear and descriptive title
  • Steps to reproduce the issue
  • Expected vs actual behavior
  • Environment details (OS, Go version, etc.)
  • Any relevant logs or error messages

Suggesting Enhancements

We welcome suggestions for new features and improvements. Before submitting a new feature request:

  • Check if a similar feature request already exists
  • Explain why this enhancement would be useful
  • Describe your proposed solution or approach
  • Include any relevant examples or documentation

Your First Code Contribution

  1. Fork the repository on GitHub
  2. Clone your fork locally
  3. Create a new branch for your changes
  4. Make your changes following the coding standards
  5. Run tests and ensure they pass
  6. Commit your changes following the commit message guidelines
  7. Push your changes to your fork
  8. Open a pull request

Pull Requests

  • Keep pull requests focused on a single feature or bug fix
  • Include tests for new functionality
  • Update documentation as needed
  • Ensure all tests pass
  • Follow the project's coding standards
  • Reference any related issues in your PR description

Development Setup

Prerequisites

  • Go 1.24.3 or later
  • Protocol Buffers compiler (e.g. protoc, for generating schemes)
  • Node.js and npm (for TypeScript SDK generation)
  • Make (for building the project)

Building the Project

  1. Clone the repository:

    git clone https://github.com/picodata/stroppy.git
    cd stroppy
  2. Install dependencies:

    make .bin_deps
    go mod tidy
  3. Build the project:

    make build

Running Tests

Run all tests:

make test

Coding Standards

  • Follow the Effective Go guidelines
  • Run gofmt, make lint, and make test on your code before committing
  • Keep functions small and focused on a single responsibility
  • Write clear and concise comments for exported functions and types
  • Follow the existing code style in the codebase

Commit Message Guidelines

We follow the Conventional Commits specification. Format your commit messages as follows:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

Types:

  • feat: A new feature
  • fix: A bug fix
  • docs: Documentation only changes
  • style: Changes that do not affect the meaning of the code
  • refactor: A code change that neither fixes a bug nor adds a feature
  • perf: A code change that improves performance
  • test: Adding missing tests or correcting existing tests
  • chore: Changes to the build process or auxiliary tools

Example:

feat(api): add user authentication endpoint

Add new POST /auth endpoint for user authentication with JWT tokens.

Closes #123

License

By contributing to this project, you agree that your contributions will be licensed under its LICENSE file.