Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion .github/workflows/pr-conventions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -124,9 +124,18 @@ jobs:
}

// Assignee and reviewer need a human decision, so comment rather than block.
// A reviewer counts as named whether or not they have acted yet. GitHub drops a
// reviewer from requested_reviewers the moment they submit a review, so the
// submitted reviews are what remember an assignment that has already been acted
// on; without them this nags precisely the pull requests that got reviewed.
const { data: reviews } = await github.rest.pulls.listReviews({
owner, repo, pull_number: pr.number, per_page: 100,
});
const reviewedByOther = reviews.some(r => r.user && r.user.login !== pr.user.login);

const missing = [];
if (!pr.assignees.length) missing.push('an **assignee**');
if (!pr.requested_reviewers.length && !pr.requested_teams.length) {
if (!pr.requested_reviewers.length && !pr.requested_teams.length && !reviewedByOther) {
missing.push('a **reviewer**');
}

Expand Down
6 changes: 4 additions & 2 deletions docs/development/contributors.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,16 @@ A short list of who to suggest as a reviewer or assignee, and the GitHub handle

**This is a suggestion list, not a roster.** It names lead developers only — many more people contribute, and their absence here means nothing. It exists mainly so an AI agent has somewhere sensible to start; a human opening a pull request can simply pick from GitHub's own dropdown and does not need this file.

**Focus names Areas, including the ones outside `src/`.** Focus values are the Area names from [`naming.md`](naming.md), so they cover repository maintenance as well as physics modules: `CI` is the workflows under `.github/`, and `Repo` is the cross-cutting plumbing — conventions, templates, the changelog, and the regression harness. Those rows exist so a tooling change has somewhere to go; without them a CI fix has no obvious reviewer and lands unassigned.

**Focus is advisory, not ownership.** Nobody is obliged to review a change because they appear in a row, and nobody is barred from one because they do not. There is no `CODEOWNERS` file, so GitHub requests no reviewers automatically — choosing them is the author's job. When it is not obvious who should review, ask rather than guess, and open the pull request as a draft until it has a reviewer and an assignee.

This file is not published to the documentation site; `docs/development/` sits outside the Documenter source tree.

| Name | Handle | Focus |
|---|---|---|
| Nikolas Logan | `@logan-nc` | KineticForces, PerturbedEquilibrium, Equilibrium, ForceFreeStates |
| Matthew Pharr | `@matt-pharr` | ForceFreeStates, InnerLayer |
| Nikolas Logan | `@logan-nc` | KineticForces, PerturbedEquilibrium, Equilibrium, ForceFreeStates, CI, Repo |
| Matthew Pharr | `@matt-pharr` | ForceFreeStates, InnerLayer, CI, Repo |
| Jake Halpern | `@jhalpern30` | Vacuum, ForceFreeStates, Equilibrium |
| Daniel Burgess | `@d-burg` | Tearing, ForceFreeStates |
| Jaebeom Cho | `@JaeBeom1019` | Vacuum, Equilibrium, ForceFreeStates |
Expand Down
Loading