Skip to content

Conversation

@ascerra
Copy link
Contributor

@ascerra ascerra commented Dec 19, 2025

Description

Add GitHub issue templates and a pull request template to help standardize contributions and bug reports as the project grows.

Type of Change

  • 📚 Documentation update

Changes Made

  • Add Bug Report issue template (bug_report.yml) with structured fields for:

    • Environment details (Python version, OS, Cordon version)
    • Backend and device/acceleration info
    • GPU model (when applicable)
    • Reproduction steps and error logs
  • Add Feature Request issue template (feature_request.yml) with fields for:

    • Problem statement / use case
    • Proposed solution
    • Component affected
    • Contributor interest checkbox
  • Add Pull Request template with:

    • Change type classification
    • Testing checklist
    • Standard PR guidelines

Preview

You can see these templates in action on my fork:

Why This Matters

As Cordon gains traction, these templates will:

  • Ensure bug reports include the technical details needed for debugging (GPU type, backend, Python version)
  • Help contributors understand what information is needed
  • Maintain consistency in pull request quality

Assisted-by: Cursor

Summary by CodeRabbit

  • Chores
    • Added a standardized bug report template to streamline issue submissions
    • Added a standardized feature request template to structure contribution proposals
    • Added a standardized pull request template to guide the review process
    • Updated CI to ignore template files in push and pull_request triggers

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Dec 19, 2025

Walkthrough

Added three GitHub template files (bug report, feature request, pull request) and updated the CI workflow to ignore those template paths for push and pull_request events. Templates define metadata and structured form fields for issue/PR submission.

Changes

Cohort / File(s) Change Summary
GitHub issue & PR templates
​.github/ISSUE_TEMPLATE/bug_report.yml, ​.github/ISSUE_TEMPLATE/feature_request.yml, ​.github/PULL_REQUEST_TEMPLATE.md
New templates: bug report includes structured inputs for description, reproduction, expected/actual behavior, environment (OS, Python, backend, device, GPU) and logs; feature request captures problem, proposed solution, alternatives, component, priority, contribution intent, and context; PR template provides Description, Type of Change, Related Issues, Changes Made, Testing, Checklist.
CI workflow
​.github/workflows/ci.yml
Updated workflow triggers to ignore changes under .github/ISSUE_TEMPLATE/** and .github/PULL_REQUEST_TEMPLATE.md for push and pull_request events.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Focus areas for review:
    • bug_report.yml and feature_request.yml — validate required fields, IDs, and expected GitHub issue form schema fields.
    • ci.yml — confirm ignore paths are syntactically correct and cover intended events.
    • PULL_REQUEST_TEMPLATE.md — check formatting and clarity for contributors.

Poem

🐇 I hopped along the repo trail,

planted forms in YAML vale;
Bugs and features now stand in line,
PRs march tidy, neat, and fine.
A carrot for order — code will prevail! 🥕

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'add issue & PR templates' directly and accurately summarizes the main changes: adding GitHub issue templates (bug report and feature request) and a pull request template.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e27830b and 136ae97.

📒 Files selected for processing (4)
  • .github/ISSUE_TEMPLATE/bug_report.yml (1 hunks)
  • .github/ISSUE_TEMPLATE/feature_request.yml (1 hunks)
  • .github/PULL_REQUEST_TEMPLATE.md (1 hunks)
  • .github/workflows/ci.yml (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • .github/ISSUE_TEMPLATE/feature_request.yml
  • .github/PULL_REQUEST_TEMPLATE.md
🔇 Additional comments (5)
.github/workflows/ci.yml (2)

13-14: LGTM! Correctly implements maintainer's request.

The path-ignore entries properly exclude the new issue and PR template files from triggering CI on pull requests. The glob pattern .github/ISSUE_TEMPLATE/** correctly matches all template files in that directory.


27-28: LGTM! Consistent with pull_request trigger.

The path-ignore entries for push events mirror those in the pull_request section, ensuring template file changes don't trigger CI in either scenario. This consistency is good practice.

.github/ISSUE_TEMPLATE/bug_report.yml (3)

1-9: LGTM! Well-structured template metadata.

The template metadata is properly configured with appropriate labels and a clear introductory message for bug reporters.


11-86: LGTM! Comprehensive bug reporting fields.

The core bug report fields are well-designed with appropriate field types, clear labels, helpful placeholders, and sensible required/optional designations. The OS dropdown including "Container (Docker/Podman)" is a nice touch for containerized environments.


88-131: LGTM! Well-designed backend and environment fields.

The backend, device, and environment-specific fields are thoughtfully structured:

  • Backend and device dropdowns provide clear options relevant to Cordon
  • GPU model is appropriately optional
  • The render: shell attribute on the logs field will nicely format error output
  • Optional additional context field provides flexibility for edge cases

Warning

Review ran into problems

🔥 Problems

Git: Failed to clone repository. Please run the @coderabbitai full review command to re-trigger a full review. If the issue persists, set path_filters to include or exclude specific files.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@calebevans
Copy link
Owner

Do you mind updating the paths to ignore in the CI workflows to include these templates? You'll have to add it to:

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
.github/ISSUE_TEMPLATE/feature_request.yml (1)

42-56: Consider making Component dropdown required.

While the Component dropdown has a good selection of options, making it required could improve issue triage and routing. This would ensure all feature requests are properly categorized.

🔎 Proposed change to make Component required
   - type: dropdown
     id: component
     attributes:
       label: Component
       description: Which part of Cordon does this affect?
       options:
         - CLI Interface
         - Python API
         - Embedding Backends
         - Scoring/Analysis
         - Output Formatting
         - Container/Deployment
         - Documentation
         - Other
+    validations:
+      required: true
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0f75e0c and e27830b.

📒 Files selected for processing (3)
  • .github/ISSUE_TEMPLATE/bug_report.yml (1 hunks)
  • .github/ISSUE_TEMPLATE/feature_request.yml (1 hunks)
  • .github/PULL_REQUEST_TEMPLATE.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
.github/PULL_REQUEST_TEMPLATE.md

[style] ~9-~9: Consider using a different verb for a more formal wording.
Context: ... ] 🐛 Bug fix (non-breaking change that fixes an issue) - [ ] ✨ New feature (non-brea...

(FIX_RESOLVE)


[style] ~41-~41: Consider using a different verb for a more formal wording.
Context: ...ve run pre-commit run --all-files and fixed any issues - [ ] I have updated the doc...

(FIX_RESOLVE)

🔇 Additional comments (7)
.github/PULL_REQUEST_TEMPLATE.md (1)

1-48: LGTM! Comprehensive and well-structured PR template.

The template covers all essential aspects of a pull request:

  • Clear categorization of change types
  • Testing requirements including pytest and manual validation
  • Quality enforcement through ruff and pre-commit checks
  • Appropriate use of placeholders for contributors to fill in

The static analysis hints about verb choice ("fixes" and "fixed") are false positives in this context—the wording is appropriate for a PR template.

.github/ISSUE_TEMPLATE/feature_request.yml (2)

1-41: LGTM! Well-structured metadata and core fields.

The feature request template has:

  • Clear metadata with appropriate labels
  • Required fields for Problem Statement and Proposed Solution with helpful placeholders
  • Optional Alternatives Considered field for thoughtful feature proposals

The structure guides users to provide comprehensive feature descriptions.


57-80: LGTM! Well-designed optional fields.

The Priority dropdown, Contribution checkbox, and Additional Context fields appropriately remain optional, allowing contributors flexibility while still gathering useful triage information.

.github/ISSUE_TEMPLATE/bug_report.yml (4)

1-49: LGTM! Comprehensive bug description fields.

The template metadata and core fields are well-structured:

  • Appropriate labels for bug tracking and triage
  • Clear separation between bug description, reproduction steps, expected behavior, and actual behavior
  • All critical narrative fields are marked as required
  • Helpful placeholders guide users to provide actionable information

50-87: LGTM! Thorough version and OS information collection.

The template appropriately requires:

  • Cordon and Python versions (essential for reproducibility)
  • Operating system selection with comprehensive options including containers
  • Optional OS version for additional context

The placeholders clearly show users what information to provide and how to retrieve it.


88-118: LGTM! Well-designed backend and acceleration fields.

The template effectively captures Cordon-specific technical environment:

  • Backend dropdown covers the main embedding backends (sentence-transformers, llama-cpp, remote)
  • Device/Acceleration dropdown includes CPU, CUDA, MPS, Vulkan, and auto-detection
  • GPU model is appropriately optional and conditional

This information is essential for diagnosing backend-specific and acceleration-related issues.


119-130: LGTM! Appropriate optional diagnostic fields.

The template concludes with well-designed optional fields:

  • Error logs textarea with render: shell for proper formatting of stack traces
  • Additional context field for edge cases and supplementary information

These optional fields allow users to provide rich diagnostic details without being overly prescriptive.

Assisted-by: Cursor
Signed-off-by: Adam Scerra <ascerra@redhat.com>
@ascerra ascerra force-pushed the add-issue-pr-templates branch from e27830b to 136ae97 Compare December 19, 2025 17:27
@sonarqubecloud
Copy link

Copy link
Owner

@calebevans calebevans left a comment

Choose a reason for hiding this comment

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

LGTM - Thanks!

@calebevans calebevans merged commit 2d5ae3b into calebevans:main Dec 19, 2025
8 checks passed
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