diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..5137a43 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,38 @@ +name: Bug Report +description: Report a bug +labels: ["bug"] +body: + - type: textarea + id: what-happened + attributes: + label: What happened? + description: Describe the bug + placeholder: Tell us what went wrong + validations: + required: true + + - type: textarea + id: steps + attributes: + label: Steps to reproduce + description: How can we reproduce the issue? + placeholder: | + 1. Configure... + 2. Run... + 3. See error... + + - type: textarea + id: expected + attributes: + label: Expected behavior + description: What did you expect to happen? + + - type: textarea + id: environment + attributes: + label: Environment + description: Any relevant version info + placeholder: | + - Python version: + - MCP client (Claude Desktop, etc): + - OS: diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..cdf010e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,25 @@ +name: Feature Request +description: Suggest an idea +labels: ["enhancement"] +body: + - type: textarea + id: description + attributes: + label: Describe the feature + description: What would you like to see added? + placeholder: A clear description of the feature + validations: + required: true + + - type: textarea + id: use-case + attributes: + label: Use case + description: How would you use this feature? + placeholder: Describe your workflow or problem this would solve + + - type: textarea + id: alternatives + attributes: + label: Alternatives considered + description: Any workarounds or alternative solutions you've thought of? diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..ae62689 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,8 @@ +## What does this PR do? + + + +## Checklist + +- [ ] I ran `uv run pre-commit install` and committed with hooks enabled +- [ ] Tests pass locally (`uv run pytest tests/ -v`) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..2dc892e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,43 @@ +# Contributing + +Contributions are welcome! This guide will get you set up quickly. + +## Quick Setup + +```bash +# 1. Fork and clone the repo +git clone https://github.com/YOUR_USERNAME/mcp-outline.git +cd mcp-outline + +# 2. Install dependencies +uv sync --extra dev + +# 3. Install pre-commit hooks (important!) +uv run pre-commit install +``` + +That's it! The pre-commit hooks will automatically format and lint your code on every commit. + +## Making Changes + +1. Fork the repo on GitHub +2. Clone your fork and run the Quick Setup above +3. Create a branch: `git checkout -b my-feature` +4. Make your changes +5. Commit - pre-commit runs automatically and fixes formatting +6. Push to your fork and open a PR + +## Running Checks Manually + +If you want to run checks before committing: + +```bash +uv run ruff format . # Format code +uv run ruff check . # Lint code +uv run pyright src/ # Type check +uv run pytest tests/ -v # Run tests +``` + +## Questions? + +Open an issue on GitHub. diff --git a/README.md b/README.md index 8c1a5e7..de4168d 100644 --- a/README.md +++ b/README.md @@ -452,7 +452,7 @@ The server automatically handles rate limiting with retry logic. If you see pers ## Contributing -Contributions welcome! Please submit a Pull Request. +Contributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for setup instructions. ## License