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 license.
Getting Started for Developers¶
Fork & Clone the Repository: CreativeDynamics is a private repository. You’ll need a Personal Access Token (PAT) to clone it.
First, create a GitHub Personal Access Token:
Go to GitHub Settings → Developer settings → Personal access tokens → Tokens (classic)
Generate a new token with
reposcope permissionsCopy the token (you won’t be able to see it again)
Then clone the repository:
git clone https://github.com/tandpds/CreativeDynamics.git # Or your fork's URL cd CreativeDynamics
When prompted for your password, use your PAT instead of your GitHub password.
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:
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:
pre-commit install pre-commit run --all-files
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¶
To run all tests:
pytest
Add new tests for new features or bug fixes.
Ensure tests pass before submitting a PR.
Building Documentation¶
Local build: from
docs/run:make htmlOr from root:
sphinx-build -b html docs docs/_build/html
Or:
make docsEnsure docs build without errors or warnings.
Branching Strategy¶
Branch from
main(ordevelop).Use descriptive names, e.g.,
feature/xyz,fix/123-bug.
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¶
Version defined in creativedynamics/_version.py (__version__), follow SemVer (MAJOR.MINOR.PATCH).
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 license terms outlined in LICENSE.md.
For inquiries or permissions regarding contributions, please contact hello@tandpgroup.com.