Skip to content

docs: add CONTRIBUTING.md with dev setup, testing, and PR workflow#488

Open
dashitongzhi wants to merge 1 commit into
drivendataorg:masterfrom
dashitongzhi:docs/add-contributing-guide-20260614090911
Open

docs: add CONTRIBUTING.md with dev setup, testing, and PR workflow#488
dashitongzhi wants to merge 1 commit into
drivendataorg:masterfrom
dashitongzhi:docs/add-contributing-guide-20260614090911

Conversation

@dashitongzhi

Copy link
Copy Markdown

Summary

Adds an in-repo CONTRIBUTING.md to drivendataorg/cookiecutter-data-science. The README currently points contributors to an external docs site (cookiecutter-data-science.drivendata.org/contributing/) and there is no contribution guide in the repository itself, so first-time contributors cannot find the dev workflow offline or via GitHub's standard "Contributing" link.

The new file covers:

  • Code of conduct — short, friendly reminder about respectful participation.
  • Where to start — how to find good first issue tickets and why to file an issue first.
  • Development setup — Python 3.9+, virtualenv, dev-requirements.txt, fork/clone/upstream-remote flow.
  • Project layout — quick map of ccds/, the cookiecutter template, tests, docs, hooks, workflows.
  • Running the testsmake test and direct pytest usage.
  • Code style and quality — black (line length 99), isort (black profile), flake8, ruff, make lint.
  • Submitting a pull request — branch naming convention (feat/, fix/, docs/, ci/, ...), commit conventions, PR template usage, review etiquette.
  • Reporting bugs & suggesting enhancements — what info to include and how to use the issue templates.
  • Release process & license — pointer to RELEASING.md and confirmation of MIT licensing.

This is a pure docs change; no source code or template is modified, and CI is unaffected.

Motivation

Every OSS project benefits from a discoverable CONTRIBUTING.md: GitHub surfaces it on the repo home page and in the PR-creation flow, lowering the barrier for first-time contributors. The existing link to the external docs site is good for long-form content, but having the canonical contributor guide in-tree keeps it discoverable, reviewable in PRs, and robust to site outages.

Test Plan

  • File renders correctly in GitHub Markdown preview.
  • make lint and make test are unaffected (no source changes).
  • All internal links (LICENSE, RELEASING.md, paths under ccds/, {{ cookiecutter.repo_name }}/) resolve.
  • CI passes on the tests.yml workflow.

- Provide an in-repo contributing guide since README only links externally
- Document Python 3.9+ dev setup with virtualenv and dev-requirements.txt
- Cover project layout, running tests via `make test` / pytest
- Document code style (black, isort, flake8, ruff) and lint workflow
- Spell out PR branch naming convention (feat/, fix/, docs/, ci/, ...)
- Add bug-report and feature-request guidance, plus release/license notes
Copilot AI review requested due to automatic review settings June 14, 2026 01:10

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds a comprehensive contributor guide to help new and existing contributors set up dev environments, run tests/linting, and submit PRs consistently.

Changes:

  • Introduces a new CONTRIBUTING.md with setup, testing, style, and PR workflow guidance
  • Documents repo layout and where common changes typically occur
  • Clarifies bug/enhancement reporting and a high-level release process

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread CONTRIBUTING.md

## Submitting a pull request

1. **Create a topic branch** off `master` with a descriptive name:
Comment thread CONTRIBUTING.md
Comment on lines +96 to +101
We follow the configuration baked into `pyproject.toml`. The project is configured for:

- **[Black](https://black.readthedocs.io/)** — opinionated code formatter, line length 99.
- **[isort](https://pycqa.github.io/isort/)** — import sorter, profile set to `black`.
- **[flake8](https://flake8.pycqa.org/)** — linting (configured in `setup.cfg`).
- **[ruff](https://docs.astral.sh/ruff/)** — fast additional linter (where applicable).
Comment thread CONTRIBUTING.md
pip install -r dev-requirements.txt
```

`dev-requirements.txt` installs CCDS in editable mode (`-e .`) along with the testing and documentation tooling used by the CI pipeline.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants