MCP Atlassian

# Contributing to MCP Atlassian Thank you for your interest in contributing to MCP Atlassian! This document provides guidelines and instructions for contributing to this project. ## Development Setup 1. Make sure you have Python 3.10+ installed 2. Install [uv](https://docs.astral.sh/uv/getting-started/installation/) 3. Fork the repository 4. Clone your fork: `git clone https://github.com/YOUR-USERNAME/mcp-atlassian.git` 5. Add the upstream remote: `git remote add upstream https://github.com/sooperset/mcp-atlassian.git` 6. Install dependencies: ```bash uv sync --frozen --all-extras --dev ``` 7. Set up pre-commit hooks: ```bash pre-commit install ``` 8. Set up environment variables (copy from .env.example): ```bash cp .env.example .env ``` ## Development Workflow 1. Create a feature or fix branch: ```bash git checkout -b feature/your-feature-name # or git checkout -b fix/issue-description ``` 2. Make your changes 3. Ensure tests pass: ```bash uv run pytest # With coverage uv run pytest --cov=mcp_atlassian ``` 4. Run code quality checks using pre-commit: ```bash pre-commit run --all-files ``` 6. Commit your changes with clear, concise commit messages referencing issues when applicable 7. Submit a pull request to the main branch ## Code Style - We use pre-commit hooks to enforce code quality - Code quality tools include: - `ruff-format` for code formatting - `ruff` for linting, with configured rules and fixes - `mypy` for type checking, with specific error code configurations - Additional checks for trailing whitespace, file endings, YAML/TOML validity - Follow type annotation patterns: - `type[T]` for class types - Union types with pipe syntax: `str | None` - Standard collection types with subscripts: `list[str]`, `dict[str, Any]` - Add docstrings to all public modules, functions, classes, and methods using Google-style format: ```python def function_name(param1: str, param2: int) -> bool: """Summary of function purpose. More detailed description if needed. Args: param1: Description of param1 param2: Description of param2 Returns: Description of return value Raises: ValueError: When and why this exception is raised """ ``` ## Pull Request Process 1. Fill out the PR template with a description of your changes 2. Ensure all CI checks pass 3. Request review from maintainers 4. Address review feedback if requested ## Release Process Releases follow semantic versioning: - **MAJOR** version for incompatible API changes - **MINOR** version for backwards-compatible functionality additions - **PATCH** version for backwards-compatible bug fixes --- Thank you for contributing to MCP Atlassian!