Skip to content

Contributing

Thank you for your interest in contributing to gds-idea-cdk-constructs.

We welcome contributions of all kinds:

  • ๐Ÿ› Bug fixes
  • โœจ New features
  • ๐Ÿ“ Documentation improvements
  • ๐Ÿงช Additional tests
  • ๐Ÿ’ก Feature requests and ideas

Quick Start

# Clone the repository
git clone https://github.com/co-cddo/gds-idea-cdk-constructs-new.git
cd gds-idea-cdk-constructs-new

# Install dependencies
uv sync --all-groups

# Set up pre-commit hooks
uv run pre-commit install

# Run tests
uv run pytest

# Build documentation
uv run mkdocs serve

Development Workflow

  1. Fork and clone the repository
  2. Create a branch for your changes (git checkout -b feature/my-feature)
  3. Make your changes with tests and documentation
  4. Push and create a PR targeting the main branch
  5. Add a bump label (bump:major, bump:minor, or default patch) to the PR

Code Quality

We use:

  • Ruff for linting and formatting (configured in pyproject.toml)
  • pytest for testing (aim for 100% coverage)
  • pre-commit hooks to ensure code quality before commit

All PRs must pass:

  • โœ… Linting (ruff check)
  • โœ… Formatting (ruff format --check)
  • โœ… Tests (pytest)
  • โœ… Build (uv build)

Documentation

  • Update docstrings for any API changes
  • Add examples to relevant documentation pages
  • Build docs locally to verify: uv run mkdocs serve

Need Help?

Thank you for contributing.