Skip to content

docs: add contributor scaffolding (CONTRIBUTING, issue templates, Dependabot, CHANGELOG) - #61

Open
christian-byrne wants to merge 5 commits into
mainfrom
docs/contributor-scaffolding
Open

docs: add contributor scaffolding (CONTRIBUTING, issue templates, Dependabot, CHANGELOG)#61
christian-byrne wants to merge 5 commits into
mainfrom
docs/contributor-scaffolding

Conversation

@christian-byrne

Copy link
Copy Markdown

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

… codegen gate

Public SDK with no contributor guide. Documents uv-based setup (--extra dev is
required: the dev tools are a PEP 621 extra, so uv does not install them by
default), the four checks CI enforces, and the pip path CI itself uses.

Calls out the trap an outside contributor hits first: src/comfy_low/models/
_generated.py is generated, ruff and mypy both exclude it, so a hand-edit is
invisible locally and only fails in the codegen-drift job.

Also fixes the README's gen_models.sh invocation (it is a bash script, not a
python one) and links the new guide from the Development section.
Adapted from Comfy-Org/comfy-cli's templates, with the fields a client-library
report needs to be actionable: SDK version, Python version, which deployment
(Cloud / serverless / self-hosted proxy), and a minimal repro.
Weekly, with minor/patch grouped into a single PR per ecosystem so routine
churn does not hide a major that needs review.

datamodel-code-generator is excluded from minor/patch bumps: the codegen-drift
job diffs the generated models byte-for-byte, so a generator bump reformats the
output and reds CI until _generated.py is regenerated in the same commit.
Keep a Changelog format, reconstructed from the eight published GitHub Releases
(v0.1.0 through v0.1.8). No entries were invented; where a release's notes were
sparse the entry stays sparse and links back.

Records that 0.1.6 was never published (consumed by a release-pipeline failure)
so the version gap is not read as a missing entry.
@christian-byrne
christian-byrne requested review from a team as code owners August 20, 2026 02:18
@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your current included review allowance is based on your included PR review attempts over the past 7 days.

Next review available in: 7 minutes

Limit details: You’ve used all 3 included reviews currently available. Your 75 included PR review attempts over the past 7 days set your current allowance at 3 reviews per hour.

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

Wait for the limit to reset, then comment @coderabbitai review or push new commits to the PR.

An organization admin can change what happens after included review limits in Billing.

How do review limits work?

CodeRabbit enforces per-developer PR review limits within each organization.

For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 47acd4e4-a0fe-4c2f-86ce-ae266826d6ff

📥 Commits

Reviewing files that changed from the base of the PR and between c96eb09 and fc02845.

📒 Files selected for processing (7)
  • .github/ISSUE_TEMPLATE/bug_report.md
  • .github/ISSUE_TEMPLATE/feature_request.md
  • .github/dependabot.yml
  • CHANGELOG.md
  • CONTRIBUTING.md
  • README.md
  • scripts/check_public_repo_hygiene.py

Comment @coderabbitai help to get the list of available commands.

…heck

The CHANGELOG's v0.1.5 entry records the ComfyPythonSDK -> comfy-python-sdk
rename, and the hygiene check's default-deny repo allowlist flagged the old
name. It is this same public repo (GitHub still redirects it), so the reference
is legitimate; allowlist it rather than scrub the history note.
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.

Add a CHANGELOG Enable Dependabot or Renovate Add issue templates Add CONTRIBUTING.md

1 participant