docs: add contributor scaffolding (CONTRIBUTING, issue templates, Dependabot, CHANGELOG) - #61
docs: add contributor scaffolding (CONTRIBUTING, issue templates, Dependabot, CHANGELOG)#61christian-byrne wants to merge 5 commits into
Conversation
… 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.
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. 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. How can I continue?Wait for the limit to reset, then comment 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 configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
Comment |
…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.
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:
--extra devis 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.pyis 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 thecodegen-driftjob. The fix — editspec/openapi.yaml, thenuv run --extra codegen bash scripts/gen_models.sh— is spelled out, along with whydatamodel-code-generatoris 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'sbug_report.md/feature_request.mdrather 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(readspyproject.toml) andgithub-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-generatorminor/patch bumps are ignored. The drift gate compares byte-for-byte, so a generator bump reformats_generated.pyand 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.
Unreleasedis empty because the only commit since v0.1.8 is a docs change.Notes
pyproject.toml,uv.lock, and.github/workflows/ci.ymlrather than executed.scripts/check_public_repo_hygiene.pypasses on the branch.Closes #54
Closes #55
Closes #56
Closes #57