Skip to content

Latest commit

 

History

History
55 lines (37 loc) · 1.55 KB

File metadata and controls

55 lines (37 loc) · 1.55 KB

Contributing to ZenHive

Thank you for your interest in contributing. These guidelines apply to all ZenHive repositories.

Getting Started

  1. Fork the repository
  2. Create a feature branch from development (or main if no development branch exists)
  3. Make your changes
  4. Run the test suite and ensure all checks pass
  5. Submit a pull request

Development Standards

Code Quality

All ZenHive Elixir projects enforce:

mix test              # All tests pass
mix dialyzer          # Zero warnings
mix credo --strict    # Static analysis passes
mix format --check-formatted  # Code is formatted

Commit Messages

Use imperative mood: Add feature, Fix bug, Update docs — not Added, Fixes, Updated.

Pull Requests

  • Keep PRs focused on a single change
  • Include tests for new functionality
  • Update documentation if behavior changes
  • Reference any related issues

Architecture Principles

Before contributing, understand the project's core principles:

  • Extract, don't hand-write — if something can be derived from upstream data, extend the extractor
  • Patterns over instances — solve for N exchanges/cases, not one
  • Pure functions first — provide computation, let consumers manage state
  • No silent fallbacks — fail loudly with actionable messages

Reporting Issues

  • Use GitHub Issues
  • Include reproduction steps
  • Include Elixir/OTP version (elixir --version)
  • Include relevant error output

License

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