[PR #61] [MERGED] docs: add contributor scaffolding (CONTRIBUTING, issue templates, Dependabot, CHANGELOG) #61

Closed
opened 2026-10-31 22:01:05 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Comfy-Org/comfy-python-sdk/pull/61
Author: @christian-byrne
Created: 8/20/2026
Status: ✅ Merged
Merged: 8/23/2026
Merged by: @christian-byrne

Base: main ← Head: docs/contributor-scaffolding


📝 Commits (5)

  • cd41b98 docs: add CONTRIBUTING.md covering uv setup, required checks, and the codegen gate
  • c406d2e docs: add bug report and feature request issue templates
  • 0f85c49 ci: enable Dependabot for pip and github-actions
  • e95edae docs: add CHANGELOG seeded from the published release history
  • fc02845 ci: allowlist the repo's pre-rename name in the public-repo hygiene check

📊 Changes

7 files changed (+489 additions, -1 deletions)

View changed files

➕ .github/ISSUE_TEMPLATE/bug_report.md (+48 -0)
➕ .github/ISSUE_TEMPLATE/feature_request.md (+35 -0)
➕ .github/dependabot.yml (+53 -0)
➕ CHANGELOG.md (+165 -0)
➕ CONTRIBUTING.md (+179 -0)
📝 README.md (+5 -1)
📝 scripts/check_public_repo_hygiene.py (+4 -0)

📄 Description

Adds the contributor scaffolding this repo was missing. Four independent files, one commit each.

CONTRIBUTING.md

uv-based setup plus the checks CI actually enforces:

uv run --extra dev ruff check .
uv run --extra dev ruff format --check .
uv run --extra dev mypy src
uv run --extra dev pytest -v

--extra dev is load-bearing and is called out explicitly: the dev tools are declared under [project.optional-dependencies], a PEP 621 extra rather than a [dependency-groups] entry, so uv does not install them unless asked. Omitting it leaves you with no ruff, mypy, or pytest. The pip path CI itself uses (pip install -e .[dev] then bare commands) is documented alongside it, so neither workflow is a surprise.

The main thing the doc exists for is the codegen trap from #54: src/comfy_low/models/_generated.py is the only generated file, both ruff (extend-exclude) and mypy (exclude) skip it so its bytes stay identical to the generator's output, and therefore a hand-edit passes every local check and fails only in the codegen-drift job. The fix — edit spec/openapi.yaml, then uv run --extra codegen bash scripts/gen_models.sh — is spelled out, along with why datamodel-code-generator is pinned.

Also covers the less obvious CI gates (build-check, public-repo-hygiene), the strict pytest config (deprecations are errors, --strict-markers), the env-gated integration suite, conventional commits, the CLA bot, and CODEOWNERS review.

Two small README changes ride along: a link to the new guide from the Development section, and a fix to python scripts/gen_models.sh — it is a bash script, so that command as written fails.

.github/ISSUE_TEMPLATE/

Adapted from Comfy-Org/comfy-cli's bug_report.md / feature_request.md rather than written from scratch, so the shape matches the org's other repos. Added the fields a client library needs to triage anything: SDK version, Python version, which deployment (Cloud / serverless / self-hosted proxy, with proxy version), and a minimal repro with the key redacted.

.github/dependabot.yml

pip (reads pyproject.toml) and github-actions, both weekly, minor/patch grouped into one PR per ecosystem so routine churn does not consume the PR limit and bury a major.

One deliberate exclusion: datamodel-code-generator minor/patch bumps are ignored. The drift gate compares byte-for-byte, so a generator bump reformats _generated.py and reds CI until the file is regenerated in the same commit — a Dependabot PR could never be green on its own. Majors still come through for a deliberate upgrade.

CHANGELOG.md

Keep a Changelog, reconstructed from all eight published GitHub Releases. The release notes here were detailed enough to rebuild real entries — nothing is invented, and the notes are linked as the fuller account. The gap at 0.1.6 is recorded explicitly (consumed by a release-pipeline failure, never published) so it does not read as a missing entry. Unreleased is empty because the only commit since v0.1.8 is a docs change.

Notes

  • No package install was run in this branch; the commands are verified against pyproject.toml, uv.lock, and .github/workflows/ci.yml rather than executed.
  • scripts/check_public_repo_hygiene.py passes on the branch.

Closes #54
Closes #55
Closes #56
Closes #57


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Comfy-Org/comfy-python-sdk/pull/61 **Author:** [@christian-byrne](https://github.com/christian-byrne) **Created:** 8/20/2026 **Status:** ✅ Merged **Merged:** 8/23/2026 **Merged by:** [@christian-byrne](https://github.com/christian-byrne) **Base:** `main` ← **Head:** `docs/contributor-scaffolding` --- ### 📝 Commits (5) - [`cd41b98`](https://github.com/Comfy-Org/comfy-python-sdk/commit/cd41b981965515a415fee9af8e7f1cd0e3f5a688) docs: add CONTRIBUTING.md covering uv setup, required checks, and the codegen gate - [`c406d2e`](https://github.com/Comfy-Org/comfy-python-sdk/commit/c406d2ed00413d938b44c3e2d5c93c9a80e7d7d3) docs: add bug report and feature request issue templates - [`0f85c49`](https://github.com/Comfy-Org/comfy-python-sdk/commit/0f85c49557197d565a519476741b18d8924b4c36) ci: enable Dependabot for pip and github-actions - [`e95edae`](https://github.com/Comfy-Org/comfy-python-sdk/commit/e95edaec095dfe0ed148808c3e9370065c2c4407) docs: add CHANGELOG seeded from the published release history - [`fc02845`](https://github.com/Comfy-Org/comfy-python-sdk/commit/fc02845190c7b43d30fb9e6feb329bb45536fb80) ci: allowlist the repo's pre-rename name in the public-repo hygiene check ### 📊 Changes **7 files changed** (+489 additions, -1 deletions) <details> <summary>View changed files</summary> ➕ `.github/ISSUE_TEMPLATE/bug_report.md` (+48 -0) ➕ `.github/ISSUE_TEMPLATE/feature_request.md` (+35 -0) ➕ `.github/dependabot.yml` (+53 -0) ➕ `CHANGELOG.md` (+165 -0) ➕ `CONTRIBUTING.md` (+179 -0) 📝 `README.md` (+5 -1) 📝 `scripts/check_public_repo_hygiene.py` (+4 -0) </details> ### 📄 Description Adds the contributor scaffolding this repo was missing. Four independent files, one commit each. ## CONTRIBUTING.md uv-based setup plus the checks CI actually enforces: ```bash uv run --extra dev ruff check . uv run --extra dev ruff format --check . uv run --extra dev mypy src uv run --extra dev pytest -v ``` `--extra dev` is load-bearing and is called out explicitly: the dev tools are declared under `[project.optional-dependencies]`, a PEP 621 *extra* rather than a `[dependency-groups]` entry, so uv does not install them unless asked. Omitting it leaves you with no ruff, mypy, or pytest. The pip path CI itself uses (`pip install -e .[dev]` then bare commands) is documented alongside it, so neither workflow is a surprise. The main thing the doc exists for is the codegen trap from #54: `src/comfy_low/models/_generated.py` is the only generated file, both ruff (`extend-exclude`) and mypy (`exclude`) skip it so its bytes stay identical to the generator's output, and therefore a hand-edit passes every local check and fails only in the `codegen-drift` job. The fix — edit `spec/openapi.yaml`, then `uv run --extra codegen bash scripts/gen_models.sh` — is spelled out, along with why `datamodel-code-generator` is pinned. Also covers the less obvious CI gates (`build-check`, `public-repo-hygiene`), the strict pytest config (deprecations are errors, `--strict-markers`), the env-gated integration suite, conventional commits, the CLA bot, and CODEOWNERS review. Two small README changes ride along: a link to the new guide from the Development section, and a fix to `python scripts/gen_models.sh` — it is a bash script, so that command as written fails. ## .github/ISSUE_TEMPLATE/ Adapted from `Comfy-Org/comfy-cli`'s `bug_report.md` / `feature_request.md` rather than written from scratch, so the shape matches the org's other repos. Added the fields a client library needs to triage anything: SDK version, Python version, which deployment (Cloud / serverless / self-hosted proxy, with proxy version), and a minimal repro with the key redacted. ## .github/dependabot.yml `pip` (reads `pyproject.toml`) and `github-actions`, both weekly, minor/patch grouped into one PR per ecosystem so routine churn does not consume the PR limit and bury a major. One deliberate exclusion: `datamodel-code-generator` minor/patch bumps are ignored. The drift gate compares byte-for-byte, so a generator bump reformats `_generated.py` and reds CI until the file is regenerated in the same commit — a Dependabot PR could never be green on its own. Majors still come through for a deliberate upgrade. ## CHANGELOG.md Keep a Changelog, reconstructed from all eight published GitHub Releases. The release notes here were detailed enough to rebuild real entries — nothing is invented, and the notes are linked as the fuller account. The gap at 0.1.6 is recorded explicitly (consumed by a release-pipeline failure, never published) so it does not read as a missing entry. `Unreleased` is empty because the only commit since v0.1.8 is a docs change. ## Notes - No package install was run in this branch; the commands are verified against `pyproject.toml`, `uv.lock`, and `.github/workflows/ci.yml` rather than executed. - `scripts/check_public_repo_hygiene.py` passes on the branch. Closes #54 Closes #55 Closes #56 Closes #57 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 22:01:05 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Comfy-Org/comfy-python-sdk#61
No description provided.