Skip to content

Latest commit

 

History

History
61 lines (43 loc) · 1.97 KB

File metadata and controls

61 lines (43 loc) · 1.97 KB

Contributing

Thanks for your interest in contributing to claude-code-python-setup!

How to Contribute

Reporting Bugs

Open an issue with:

  • A clear description of the problem
  • Steps to reproduce
  • Expected vs actual behavior
  • Your OS, Python version, and Claude Code version

Suggesting Features

Open a feature request describing the use case and expected behavior.

Submitting Changes

  1. Fork the repository
  2. Create a branch from main: git checkout -b feature/your-change
  3. Make your changes
  4. Run the verification checks — the same ones CI runs, so passing here means passing there:
    uv run ruff check . && uv run ruff format --check . && uv run pytest
    CI additionally runs shellcheck --severity=warning .claude/hooks/*.sh, which needs shellcheck locally.
  5. Commit using Conventional Commits format:
    feat(rules): add new testing pattern for async fixtures
    
  6. Push and open a Pull Request against main

Development Setup

# Clone your fork
git clone https://github.com/<your-username>/claude-code-python-setup.git
cd claude-code-python-setup

# Install dependencies
uv sync

# Verify everything works
uv run ruff check . && uv run ruff format --check . && uv run pytest

The hook tests shell out to the scripts in .claude/hooks/, so they need bash and jq on your PATH. Without them the suite skips rather than fails.

Coding Standards

  • Follow the rules defined in .claude/rules/
  • Python 3.10+ syntax (see python-idioms.md)
  • Conventional Commits for all commit messages (see git-workflow.md)
  • One logical change per PR

Code of Conduct

By participating, you agree to follow our Code of Conduct.