[MAINTENANCE] Surface the RFC threshold in the PR template, AGENTS.md, and a new check - #12043
Draft
joshua-stauffer wants to merge 1 commit into
Draft
[MAINTENANCE] Surface the RFC threshold in the PR template, AGENTS.md, and a new check#12043joshua-stauffer wants to merge 1 commit into
joshua-stauffer wants to merge 1 commit into
Conversation
A contributor opening a pull request for new data source support had no way to learn an RFC was expected: the criteria live in CONTRIBUTING.md, and nothing in the pull-request path pointed at them. The cost lands on the contributor, who finds out only after writing the code. Three changes, aimed at the three places that signal can land: - The pull-request template now states the RFC threshold inline and carries a checklist item for it. It also fixes the AGENTS.md link, which used a relative path and resolved to .github/AGENTS.md rather than the file at the repo root, and normalizes the remaining github.com links onto the current repository path. - AGENTS.md gains a "Before opening a pull request" section. Tools that compose a pull-request body programmatically never load the template, so a template-only fix reaches humans and misses everything else; AGENTS.md is the file those tools do read. - A new pr-hygiene check flags changes that look like new backend support (a new compatibility module, a new fluent datasource, or a new reqs/requirements-dev-* file) and asks for one line in the description: either a link to an accepted RFC or a statement that none is needed. It enforces that the question was answered, never what the answer is, so a false positive costs one line rather than a blocked pull request. It reads pull-request metadata through the API and never checks out pull-request code, so it can run on fork pull requests immediately instead of waiting for a maintainer to approve a CI run. Also removes the legacy Markdown issue templates. They were superseded by the structured issue forms but left in place, so GitHub kept offering all four in the chooser. Because the Markdown templates apply no labels, issues filed through them arrived with neither a type label nor `triage`, silently bypassing the triage queue that the ready-for-work claiming gate depends on.
✅ Deploy Preview for niobium-lead-7998 canceled.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
@abdullah094 opened #12012 adding Exasol support and got told an RFC was required after writing the code. That's on us — the RFC criteria live in
CONTRIBUTING.md, and nothing in the pull-request path pointed at them. I said on that PR I'd fix it for the future; this is that fix.What changed
1. Pull-request template — states the RFC threshold inline (in a comment above the checklist, so the criteria are visible while writing the description) and adds a checklist item for it.
Two drive-by fixes in the same file:
AGENTS.mdlink was relative, so it resolved to.github/AGENTS.md(404) rather than the file at the repo root. Now absolute.github.com/great-expectations/...links normalized tofivetran/..., matchingCONTRIBUTING.mdand the rest of.github/.2.
AGENTS.mdgains a "Before opening a pull request" section. This is the part that matters for tooling.gh pr create --bodydiscards the pull-request template entirely, and nothing injects it into a coding agent's context — so a template-only fix reaches humans opening PRs in the web UI and misses every programmatically-opened PR.AGENTS.mdis the file agents read from the repo root by convention, which makes it the highest-leverage place to put this.3. New
pr-hygienecheck (.github/workflows/pr-hygiene.yml).Flags changes that look like new backend support and asks for one line in the description — either
RFC: <link>orNo RFC needed: <reason>. Signals, all added-file only, so modifying an existing datasource doesn't trip it:great_expectations/compatibility/*.pygreat_expectations/datasource/fluent/*_datasource.pyreqs/requirements-dev-*.txtDesign notes:
pull_request_target, metadata-only. It reads PR metadata through the API and never checks out or executes PR code, so it's safe on fork PRs. That trigger is the point: it fires the moment a PR opens, rather than waiting for a maintainer to approve a CI run — which is exactly the delay that made [FEATURE] Exasol integration #12012 go wrong.4. Removes the legacy Markdown issue templates.
bug_report.mdandfeature_request.mdwere superseded by the structured issue forms but never deleted, so GitHub kept offering all four in the chooser. Because the Markdown templates carrylabels: '', issues filed through them arrived with neither a type label nortriage— silently bypassing the triage queue that theready-for-workclaiming gate depends on.Verification
pre-commit run --files ...— all hooks pass (check-yaml,prettier,end-of-file-fixer,trailing-whitespace)node --checkci/checks/check_repo_root_size.shpasses (no root files added)Not done here
pr-hygieneis not yet a required check. It's a separate workflow, so it can't joinci-required'sneeds:list — that would also put it behind the actor-permission gate and destroy the early-feedback property. Making it blocking is a branch-protection setting; I'd suggest living with it advisory for a few weeks first to see the false-positive rate.pull_request_targetuses the workflow from the base branch, so it goes live on the first PR opened after merge.