Contributing to gztobgzf

December 19, 2025 ยท View on GitHub

Thank you for your interest in contributing! This document provides guidelines for contributing to the project.

Bug Reports

When filing a bug report, please include:

  1. Version information: Output of gz2bgzf --version
  2. Operating system: e.g., Ubuntu 22.04, macOS 14
  3. Steps to reproduce: Minimal commands/code to reproduce the issue
  4. Expected behavior: What you expected to happen
  5. Actual behavior: What actually happened
  6. Sample data: If possible, provide a minimal test file that reproduces the issue

Feature Requests

For feature requests, please describe:

  1. Use case: What problem are you trying to solve?
  2. Proposed solution: How do you envision the feature working?
  3. Alternatives: Have you considered other approaches?

Pull Requests

Before Submitting

  1. Check for existing issues/PRs: Search to avoid duplicates
  2. Open an issue first: For significant changes, discuss the approach before implementing
  3. Keep PRs focused: One feature or fix per PR

Development Workflow

  1. Fork the repository
  2. Create a feature branch from main:
    git checkout -b feature/my-feature
    
  3. Make your changes
  4. Run the test suite:
    cargo test
    
  5. Run linting and formatting:
    cargo fmt
    cargo clippy --all-targets --all-features -- -D warnings
    
  6. Commit with a descriptive message
  7. Push to your fork and open a PR

Commit Messages

Use conventional commit format:

  • feat: add new feature
  • fix: resolve bug
  • docs: update documentation
  • test: add tests
  • refactor: restructure code
  • perf: improve performance

Code Style

  • Follow Rust idioms and best practices
  • Run cargo fmt before committing
  • Ensure cargo clippy passes with no warnings
  • Add tests for new functionality
  • Document public APIs with doc comments

Testing

  • All new features should include tests
  • Bug fixes should include regression tests
  • Run the full test suite before submitting:
    cargo test --all-features
    

Code of Conduct

Be respectful and constructive in all interactions. We're all here to build great software together.

Questions?

If you have questions about contributing, feel free to open a discussion or issue.