Skip to content

docs: add PR template, YAML issue forms, and CONTRIBUTING.md#85

Open
haroldfabla2-hue wants to merge 1 commit into
dgenio:mainfrom
haroldfabla2-hue:issue-41/add-pr-template-issue-forms-contributing
Open

docs: add PR template, YAML issue forms, and CONTRIBUTING.md#85
haroldfabla2-hue wants to merge 1 commit into
dgenio:mainfrom
haroldfabla2-hue:issue-41/add-pr-template-issue-forms-contributing

Conversation

@haroldfabla2-hue
Copy link
Copy Markdown

Summary

Adds structured templates and contributor guide as described in #41.

Changes

  • Added .github/pull_request_template.md with testing checklist and conventions
  • Added .github/ISSUE_TEMPLATE/bug_report.yml (YAML form with Python/ChainWeaver version fields)
  • Added .github/ISSUE_TEMPLATE/feature_request.yml (YAML form)
  • Added CONTRIBUTING.md with setup, workflow, commit, and PR guidelines

Testing

  • All files are valid YAML/Markdown (validated locally)
  • No code changes — docs only

Related Issues

Closes #41

Checklist

  • No secrets or credentials included
  • Public API changes are documented (N/A — docs only)

Closes dgenio#41

- Add .github/pull_request_template.md
- Add .github/ISSUE_TEMPLATE/bug_report.yml
- Add .github/ISSUE_TEMPLATE/feature_request.yml
- Add CONTRIBUTING.md at root
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds GitHub contribution scaffolding (PR template, issue forms) and a contributor guide to standardize how changes/requests are submitted, per #41.

Changes:

  • Added a root CONTRIBUTING.md describing setup, workflow, and contribution guidelines
  • Added a PR template with summary/changes/testing/checklist sections
  • Added GitHub Issue Forms for bug reports and feature requests

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 7 comments.

File Description
CONTRIBUTING.md New contributor onboarding/workflow guide (setup, style, testing, PR process).
.github/pull_request_template.md New PR template to standardize PR metadata and pre-merge checks.
.github/ISSUE_TEMPLATE/bug_report.yml New structured bug report issue form (repro + version fields).
.github/ISSUE_TEMPLATE/feature_request.yml New structured feature request issue form.

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

You can also share your feedback on Copilot code review. Take the survey.

- [ ] All existing tests pass (`pytest`)
- [ ] New tests added for new functionality
- [ ] Linting passes (`ruff check`)
- [ ] Type checking passes (`mypy`)
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

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

The template asks for mypy to pass, but mypy is not part of the repo's .[dev] dependencies, and CI doesn't run it. Either add mypy to the dev extra/CI, or remove/soften this checklist item so contributors aren't required to run a tool that isn't provided by the project.

Suggested change
- [ ] Type checking passes (`mypy`)
- [ ] Type checking passes (e.g., `mypy`, if configured)

Copilot uses AI. Check for mistakes.

- [ ] All existing tests pass (`pytest`)
- [ ] New tests added for new functionality
- [ ] Linting passes (`ruff check`)
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

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

CI also checks formatting with ruff format --check in addition to ruff check. Consider adding an explicit formatting checklist item (and/or clarifying the exact command/paths) so the PR template matches the checks contributors will see in CI.

Suggested change
- [ ] Linting passes (`ruff check`)
- [ ] Linting passes (`ruff check`)
- [ ] Formatting passes (`ruff format --check`)

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +5
name: Bug Report
description: Report a bug in ChainWeaver
title: "[Bug]: "
labels: ["bug"]
body:
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

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

This PR is marked as closing #41, but #41's definition of done includes adding .github/ISSUE_TEMPLATE/config.yml (e.g., to control blank_issues_enabled). That file isn't included in this PR; either add it or update the PR description/issue linkage so the closure is accurate.

Copilot uses AI. Check for mistakes.
Comment on lines +14 to +21
- type: textarea
id: solution
attributes:
label: Proposed Solution
description: Describe the solution you'd like.
validations:
required: true

Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

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

Issue #41 specifies the feature request form should have an optional proposed-solution field, but this form currently makes Proposed Solution required. Consider making it optional so reporters can submit a request even when they don't have a concrete solution yet.

Copilot uses AI. Check for mistakes.
Comment thread CONTRIBUTING.md

- Follow existing project conventions (see `.github/copilot-instructions.md`)
- Use [ruff](https://github.com/astral-sh/ruff) for linting: `ruff check .`
- Use [mypy](https://mypy-lang.org/) for type checking: `mypy .`
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

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

mypy is listed as a required/expected type-checking tool, but it is not included in the project's dev extra in pyproject.toml. Either add mypy to [project.optional-dependencies].dev (and ideally CI) or adjust this guidance so contributors following pip install -e ".[dev]" aren't blocked by a missing tool.

Suggested change
- Use [mypy](https://mypy-lang.org/) for type checking: `mypy .`
- (Optional but recommended) Use [mypy](https://mypy-lang.org/) for type checking: `mypy .` (install with `pip install mypy` if it is not already available)

Copilot uses AI. Check for mistakes.
Comment thread CONTRIBUTING.md
### Code Style

- Follow existing project conventions (see `.github/copilot-instructions.md`)
- Use [ruff](https://github.com/astral-sh/ruff) for linting: `ruff check .`
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

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

CI runs Ruff on specific paths and also enforces formatting with ruff format --check (see .github/workflows/ci.yml). Consider updating these commands to match CI (e.g., include formatting check and align the lint target paths) so contributors can reproduce CI results locally.

Suggested change
- Use [ruff](https://github.com/astral-sh/ruff) for linting: `ruff check .`
- Use [ruff](https://github.com/astral-sh/ruff) for linting and formatting (mirroring the CI configuration in `.github/workflows/ci.yml`):
```bash
ruff check src tests
ruff format --check src tests

Copilot uses AI. Check for mistakes.
Comment thread CONTRIBUTING.md

- Run the test suite before submitting:
```bash
pytest
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

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

Local test instructions use pytest, while CI runs python -m pytest tests/ -v. Since this guide is meant to help contributors preflight CI, consider matching the CI invocation (including tests/ and -v) to reduce surprises.

Suggested change
pytest
python -m pytest tests/ -v

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Owner

@dgenio dgenio left a comment

Choose a reason for hiding this comment

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

Good docs-only PR — the templates and CONTRIBUTING.md are well-structured. One item needs to be addressed before merge:

  • Missing config.yml — Issue #41's definition-of-done requires .github/ISSUE_TEMPLATE/config.yml with blank_issues_enabled: true. Since this PR says "Closes #41," it should complete the full spec.

Additionally (non-blocking):

  • feature_request.yml: consider splitting "Problem Statement" into separate "Description" and "Use case" fields, and marking "Proposed Solution" as optional, per the issue spec.
  • CONTRIBUTING.md: references .github/copilot-instructions.md which doesn't exist yet (issue #53), and uses bare ruff check . / mypy . instead of the project's scoped paths.

Comment on lines +6 to +20
- type: textarea
id: problem
attributes:
label: Problem Statement
description: What problem does this feature solve?
validations:
required: true

- type: textarea
id: solution
attributes:
label: Proposed Solution
description: Describe the solution you'd like.
validations:
required: true
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Issue #41 specifies separate "Description" and "Use case" fields. This collapses them into "Problem Statement" (L9). Also "Proposed Solution" is required: true (L20) but the spec says optional. Consider aligning with the issue spec.

Comment thread CONTRIBUTING.md
Comment on lines +28 to +30
- Use [ruff](https://github.com/astral-sh/ruff) for linting: `ruff check .`
- Use [mypy](https://mypy-lang.org/) for type checking: `mypy .`

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Two minor items:

Copy link
Copy Markdown
Owner

dgenio commented May 16, 2026

Thanks for the PR @haroldfabla2-hue — and for tolerating a long review cycle on this one. Consolidating the maintainer position on the 9 review threads so the action items are in one place.

Apply (7 threads)

These all align with the project's authoritative conventions in AGENTS.md §7.9 and the CI workflow in .github/workflows/ci.yml:

  1. .github/pull_request_template.md:12 — add an explicit ruff format --check line. CI runs both ruff check and ruff format --check on the Python 3.10 / ubuntu leg, so the template should mirror both.
  2. .github/ISSUE_TEMPLATE/bug_report.yml — add the missing .github/ISSUE_TEMPLATE/config.yml (e.g. for blank_issues_enabled) so Add PR template, YAML issue forms, and CONTRIBUTING.md #41's definition-of-done is actually met. Otherwise this PR should not claim Closes #41.
  3. .github/ISSUE_TEMPLATE/feature_request.yml — split the collapsed Problem Statement field back into separate Description and Use case fields per Add PR template, YAML issue forms, and CONTRIBUTING.md #41, and flip Proposed Solution from required: true to required: false. (Threads Add py.typed marker, CI pipeline, and contributing guide #4 and Implement execution checkpoints and determinism-level metadata #8 are duplicates of this.)
  4. CONTRIBUTING.md:28 — scope the ruff commands to match CI verbatim:
    ruff check chainweaver/ tests/ examples/
    ruff format --check chainweaver/ tests/ examples/
  5. CONTRIBUTING.md:35 — use python -m pytest tests/ -v, not bare pytest. AGENTS.md §7.9 calls this out explicitly.
  6. CONTRIBUTING.md:30.github/copilot-instructions.md doesn't exist yet (tracked in Add .github/copilot-instructions.md with coding conventions and validation commands #53). Either drop the reference or note that it is forthcoming. While in this file, also scope the mypy command to python -m mypy chainweaver/ tests/.

Reject (2 threads)

The Copilot reviewer based these on a stale read of pyproject.toml. Both claim mypy is not a project dev dependency:

  • .github/pull_request_template.md:13 — mypy is in [project.optional-dependencies].dev (mypy>=1.0) and CI runs python -m mypy chainweaver/ tests/. Keep the checklist item, just reword the local command to match CI (python -m mypy chainweaver/ tests/).
  • CONTRIBUTING.md:29 — same; do not soften to "optional / install separately." Reword to the scoped CI command.

Followups

  • CI workflows are not running on this PR (the Approve and run gate hasn't been hit yet). Once the above changes land, please push to the same branch (issue-41/add-pr-template-issue-forms-contributing) and I'll approve the CI run so we can verify the YAML + Markdown parse cleanly.
  • Please leave the threads unresolved until each underlying fix lands — I'll resolve them on the maintainer side after a green CI run on the new HEAD.

Holler if any of this is unclear.


Generated by Claude Code

Copy link
Copy Markdown
Owner

dgenio commented May 16, 2026

One more pass turned up two CONTRIBUTING.md items that the original review missed — both are spec divergence from #41's What to do §5, not new opinions:

N1 — Code Style section is missing the prose requirements.
#41 calls for: "type annotations required, Pydantic models for schemas". The current file only lists ruff/mypy commands, which is the enforcement but not the expectation. Please add a short bullet or two under ## Development Workflow → Code Style, e.g.:

  • All public functions and methods require type annotations.
  • Use Pydantic models for structured schemas (flow definitions, tool I/O, etc.).

N2 — PR process is missing the "one logical change per PR" guidance.
#41 calls for: "one logical change per PR, all tests pass, link to relevant issue". The current ## Submitting a Pull Request list has the linking and CI bits but not the scope guidance. Suggest adding as the first bullet:

  1. Keep each PR focused on one logical change — split unrelated work into separate PRs.

These can ship in the same push as the other CONTRIBUTING.md fixes (#5, #6, #9 in the prior comment).

No other audit findings of note — the V1-V12 sweep was clean (no secrets, no schema bugs, no security issues). The only remaining caveat is that CI hasn't actually run on this PR yet (fork PRs need maintainer approval to dispatch workflows), so the YAML files haven't been validated against GitHub's issue-form parser end-to-end. We'll catch any schema errors on the next push once CI is approved.


Generated by Claude Code

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 PR template, YAML issue forms, and CONTRIBUTING.md

3 participants