Skip to content

Latest commit

 

History

History
124 lines (85 loc) · 3.73 KB

File metadata and controls

124 lines (85 loc) · 3.73 KB

Contributing to hexaFn

Thank you for your interest in contributing to hexaFn!
This document outlines how to get involved, contribute code or ideas, and follow our development process.


📚 Before You Start

Please review the following core documents:


🧩 Contribution Types

  • Code: New features, bugfixes, enhancements to modules or core
  • Plugins: External integrations, reusable logic extensions
  • Docs: Fixing typos, improving structure, or writing new guides
  • Issues & Feedback: Filing issues, proposing ideas or improvements

🔀 Branch Strategy

Please follow our Branching Guide

  • Always branch from develop
  • Use one of the allowed types as prefix:
    feat/, fix/, chore/, refactor/, test/, docs/, ci/, perf/, build/, release/, hotfix/, style/
  • Example: feat/auth-handler, fix/login-bug, docs/contributing
  • Never branch from main
  • Only maintainers may merge to main or release/*

✏️ Commit & PR Formatting

All commits and pull requests must follow Conventional Commits:

✅ Allowed Types

feat, fix, chore, refactor, test, docs, ci, perf, build, release, hotfix, style

📝 Examples

feat: add user authentication module
fix: resolve panic on empty payload
chore: remove unused dependencies
refactor: simplify scheduler logic
test: add unit tests for HexaStore
docs: improve contributing guide
ci: update GitHub Actions for linting
perf: optimize event matching engine
build: update cargo manifest and version
release: prepare v0.2.0 release
hotfix: patch critical runtime bug
style: reformat codebase with rustfmt

PR titles must follow the same format. Title linting is enforced.


✅ Coding Conventions

Please run these before opening a PR:

cargo fmt                               # Format code
cargo clippy --all-targets --all-features -- -D warnings  # Lint
cargo test --locked --all-targets       # Test

🧪 PR Flow & Project Board

All contributions are tracked in the Project Board:

  1. Choose or create an issue
  2. Fork the repo and branch from develop
  3. Submit a PR with a descriptive title
  4. PR flows through:
    • 🟡 In Progress
    • 🔍 In Review
    • ✅ Done

🏷 Label System

Labels are automatically assigned based on the module or type.
Refer to Labelling Strategy


🔁 CI/CD & Releases

  • All PRs must pass checks (build, test, format, lint)
  • PRs are merged into develop, then promoted to release/*
  • Only merges into main trigger semantic-release automation

🙋 Support & Communication

We’re excited to build hexaFn with your help 🚀