Skip to content

Contributing Guide

CreativeDynamics Library v0.9.8.1

This document provides guidance for contributing to the CreativeDynamics library. Please note that CreativeDynamics is proprietary software owned by The & Partners Group Limited. All contributions are subject to the terms of the proprietary licence.

  1. Clone the Repository:

    CreativeDynamics is hosted in a private Git repository. Obtain access through your administrator.

    Recommended access methods:

    • SSH access via your GitHub account key
    • Deploy keys for automation (managed by administrators)

    Do not embed credentials in Git remote URLs.

    Example:

    Terminal window
    git clone git@github.com:tandpds/CreativeDynamics.git
    cd CreativeDynamics
  2. Set Up a Virtual Environment:

    Follow the instructions in the Installation Guide to create and activate a Python virtual environment.

  3. Install in Editable Mode with Development Extras:

    Terminal window
    pip install -e ".[dev]"

    This uses the dev extra defined in pyproject.toml, which pulls in the testing, documentation, linting, and AI dependencies in a single step.

  4. Set Up Pre-commit Hooks:

    Terminal window
    pre-commit install
    pre-commit run --all-files
  1. Formatting: Black for code formatting and isort for import sorting, enforced by pre-commit.
  2. Linting: Flake8 for linting, enforced by pre-commit.
  3. Editor Configuration: .editorconfig at the root for consistent styles.
  4. Docstrings: Use Google style docstrings for public APIs to generate Sphinx docs with napoleon.
  1. To run all tests:

    Terminal window
    pytest
  2. Add new tests for new features or bug fixes.

  3. Ensure tests pass before submitting a PR.

  1. Local build: from docs/ run:

    Terminal window
    make html

    Or from root:

    Terminal window
    sphinx-build -b html docs docs/_build/html

    Or:

    Terminal window
    make docs
  2. Ensure docs build without errors or warnings.

  1. Branch from main (or develop).
  2. Use descriptive names, e.g., feature/xyz, fix/123-bug.
  1. Before submitting: tests and pre-commit hooks pass, docs build.
  2. Submit PR: push branch, create PR against main, add title and description.
  3. Review: address feedback, ensure CI passes, then merge.

Version defined in creativedynamics/_version.py (__version__), follow SemVer (MAJOR.MINOR.PATCH).

All contributions to the CreativeDynamics library become the property of The & Partners Group Limited. By submitting a contribution, you agree that your work will be subject to the proprietary licence terms outlined in LICENSE.md.

For inquiries or permissions regarding contributions, please contact hello@tandpgroup.com.