Introduce a "minor" tag for low-risk PRs that don't need a Trac ticket

Thank you for your feedback :slight_smile:

I realize my explanation above was quite lacking.

This also connects pretty directly to what’s being built in pr-playground. As you mentioned in the other thread, it’s still in a “trial in a separate repo” stage, and the current check_pr.py setup requires a ticket reference for every PR and auto-closes anything without one. Right now the only exception is docs-only changes.

I took a look at the data, and that docs exception only covers about 31.7% of historically ticketless PRs. The remaining ~68% (over 2,100 PRs) were all merged without tickets, but would’ve been auto-closed under the current logic. (ref. django-minor-tag-proposal/reports/ticketless-summary.md at main · JaeHyuckSa/django-minor-tag-proposal · GitHub)

You could try to add path-based exemptions for each category, but that seems like it would get messy pretty quickly. Docs are easy since they live under a clear directory, but things like tests, typo fixes in code, or CI changes don’t really have that kind of structure. At some point the automation is just guessing intent from file paths.

And that’s kind of the core issue — “no ticket” is ambiguous. It can mean “this doesn’t need a ticket” or “I forgot to reference one,” and automation can’t reliably tell the difference.

I definitely agree that human review is still where the actual decision should happen. This isn’t about replacing that, just about making the author’s intent clearer before it gets there, so both automation and reviewers have a bit more context.

Since the workflow is still in a trial phase, it felt like a reasonable time to explore something like:

  • has a ticket reference → normal flow
  • has a minor tag → intentionally ticketless, reviewer decides
  • neither → safe to auto-close

That way we don’t need to keep adding more and more heuristics, and the overall logic stays pretty simple.

cc. @frankwiles