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.
Getting Started for Developers
Section titled “Getting Started for Developers”-
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.gitcd CreativeDynamics -
Set Up a Virtual Environment:
Follow the instructions in the Installation Guide to create and activate a Python virtual environment.
-
Install in Editable Mode with Development Extras:
Terminal window pip install -e ".[dev]"This uses the
devextra defined inpyproject.toml, which pulls in the testing, documentation, linting, and AI dependencies in a single step. -
Set Up Pre-commit Hooks:
Terminal window pre-commit installpre-commit run --all-files
Coding Standards
Section titled “Coding Standards”- Formatting: Black for code formatting and
isortfor import sorting, enforced by pre-commit. - Linting:
Flake8for linting, enforced by pre-commit. - Editor Configuration:
.editorconfigat the root for consistent styles. - Docstrings: Use Google style docstrings for public APIs to generate Sphinx docs with
napoleon.
Running Tests
Section titled “Running Tests”-
To run all tests:
Terminal window pytest -
Add new tests for new features or bug fixes.
-
Ensure tests pass before submitting a PR.
Building Documentation
Section titled “Building Documentation”-
Local build: from
docs/run:Terminal window make htmlOr from root:
Terminal window sphinx-build -b html docs docs/_build/htmlOr:
Terminal window make docs -
Ensure docs build without errors or warnings.
Branching Strategy
Section titled “Branching Strategy”- Branch from
main(ordevelop). - Use descriptive names, e.g.,
feature/xyz,fix/123-bug.
Pull Request Process
Section titled “Pull Request Process”- Before submitting: tests and pre-commit hooks pass, docs build.
- Submit PR: push branch, create PR against
main, add title and description. - Review: address feedback, ensure CI passes, then merge.
Versioning
Section titled “Versioning”Version defined in creativedynamics/_version.py (__version__), follow SemVer (MAJOR.MINOR.PATCH).
Intellectual Property
Section titled “Intellectual Property”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.