Enforce PR template compliance and require related issue/discussion reference #4246
Replies: 3 comments 4 replies
-
|
Hi, one question, for a PR with no logical change and few changes (even 2 chars), an issue is still a good practice? |
Beta Was this translation helpful? Give feedback.
-
|
We have an ongoing discussion #4228 about this topic. We will conclude there first. |
Beta Was this translation helpful? Give feedback.
-
|
Let’s have an informal discussion here first, and we can do an official vote if needed. My point is simple: we should enforce an “issue first” policy. In most open source projects, the issue tracker is the system of record for proposals, bugs, and planned work (todo). The expected flow is: open an issue, discuss and align, then implement via one or more PRs. In Spark and many earlier apache projects, issue refers to JIRA. In our context, by issue I am referring to "GitHub Issue" or "GitHub Discussion" (they are parallel). This mattered less when the project was small and centralized, and people could coordinate through face to face chats. But as the project grows and more contributors work async, that model breaks down. We need a shared, durable place for context and decisions. Issues provide that context. A single issue can capture the motivation, alternatives, and decisions, and then link to one or multiple PRs over time: initial attempt, revisions, follow ups, even reverts. Without an issue, a PR shows up with no background. Reviewers don’t know why it exists, what options were considered, or whether there were prior attempts. If a PR gets closed and a new one appears later without linkage, all the context is lost. It also hurts contributors. Without issues, it’s hard to see what work is in flight and where the project is headed, so people duplicate effort or build something that gets rejected simply because the direction was decided elsewhere. In the last 25 merged PRs, 15/25 had no linked issue. In the latest 25 open PRs, 18/25 have no linked issue. I tried to review some of them last week but found myself have no context at all. An example is this one, where the PR describes only dropping CI tests for Python 3.10 and 3.11 without providing any context or reasons. Another merged PR unfortunately only described the removal of the deprecated feature without providing history or reason. By enforcing "issue first" or "issue before PR", many of those problems can be solved.
I understand this adds one extra step, especially for small fixes. But for a growing project, it’s a small cost that pays back quickly in reviewer time, fewer misunderstandings, and smoother collaboration. If we want a lightweight rule: bugs, features, and behavior changes must have an issue; truly trivial changes (typos, comment fixes) can be exempt. That is the main thing I wanted to enforce. And the enforcement of PR template + Github Action (the implementation in #4228) is just one way to enforce "issue first". I am fine if we use another method to enforce it. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Task Summary
Many pull requests are not following the PR template well, especially the "Any related issues, documentation, discussions?" section. In multiple PRs, there is no linked issue/discussion (e.g.,
#1234), which makes review and traceability harder.Why this is a bad practice
Priority
P1 – High
Task Type
Beta Was this translation helpful? Give feedback.
All reactions