Contributing to resonance

Thank you for your interest in contributing to resonance.

Development setup

  1. Fork and clone the repository:
    git clone https://github.com/ALS-RSOXS/auto-reflect.git
    cd auto-reflect
    
  2. Install dependencies:
    uv sync --all-groups
    
  3. Install hooks:
    prek install
    

Making changes

  1. Create a branch:
    git checkout -b feature/your-feature-name
    
  2. Implement your changes and run tests:
    make test
    
  3. Run quality checks:
    make lint
    make format-check
    make type-check
    
  4. Commit using Conventional Commits:
    git commit -m "feat: describe your change"
    

Commit message format

We use Conventional Commits. Examples:

  • feat: add beamline feature
  • fix: handle scan edge case
  • docs: update quickstart
  • refactor: simplify scan planner
  • test: add executor regression test
  • chore: update dependency pins

Pull request process

  1. Update documentation for behavior changes
  2. Add tests for new functionality
  3. Ensure all checks pass
  4. Open a pull request with a clear summary

Code style

  • Ruff for linting and formatting
  • ty for type checking
  • Typed public APIs and complete docstrings