See PHI1226. An install would like reviews assigned to some projects (say, #widget-service) to only email/notify the current oncall for that project.
We've had a handful of other similar requests in the past, including T401.
I'm not wildly excited about these specific use cases, but think there's likely some flavor of reasonable feature here, and that oncall support makes sense in Phabricator in general in the long term.
Almost all of the complexity in this feature is in the scheduling UI (setting up rotations, making exceptions to rotations, letting users trade rotations, letting users propose rotation trades, requiring users to MFA-sign their rotation trades, etc). We don't actually have to build it to make the feature useful: installs can synchronize to an external source or handle rotations manually until we do build it. We can just cheat and implement all the interesting application parts of oncall first, then do actual terrible awful scheduling part later.
I think this likely looks like this, in Projects:
- Projects can be marked as having oncall users.
- A (temporary?) API call allows you to set oncall windows, so you can synchronize from an external source or cron a weekly schedule or whatever.
- When you view an oncall project, the UI shows that the project has oncall and who the oncall users are.
- The members list shows current oncalls.
- The projects list allows you to search for projects you're currently on call for.
- Only projects with members may be oncall projects (no parent projects).
- A project may have multiple current oncalls.
This stuff we can skip:
- Actual scheduling.
- Reviewing your oncall schedule in the future (vs "projects you are oncall for right now").
- Perhaps: tasks may be assigned to an oncall project. Not a v1 feature.
- "Responsible Users: Oncall Project" expands to only the oncalls.
- A new everyone(project) or similar expands oncall projects without regard for current oncalls.
- When a project is an oncall project, it expands only into the current oncall users.
- Current oncalls are added as mail stamps.
- If a project has members but no oncalls, it expands to everyone?
- Oncall projects render specially and show the current oncall (either in the token or hovecard).
- Can you have a "Primary Oncall" and "Backup Oncall"?
- Can you have a "Review Oncall" and "Triage Oncall"?
- Can you have a separate "Review" rotation and "Triage" rotation?