Page MenuHomePhabricator

"Watching Projects" doc section seems wrong
Closed, ResolvedPublic

Description

In the Projects User Guide, the section on "watching" a project reads in part:

When you watch a project, you will receive a copy of mail about any objects (like tasks or revisions) that are tagged with the project, or that the project is a subscriber, reviewer, or auditor for.

Empirically, the behavior I think we see is different -- watching controls mail for objects where the project is merely tagged, but (at least for revisions) if the project is a subscriber or reviewer, then *members* get email even if they're not watching. In fact, the section above it seems to agree, more or less:

Once you join a project, you become a member and will receive mail sent to the project, like a mailing list. For example, if a project is added as a subscriber on a task or a reviewer on a revision, you will receive mail about that task or revision.

Is the behavior I think I'm seeing the intended one and the docs should adjust, or is the behavior a bug, or are I misunderstanding something so that they're consistent with each other?

I've actually always found it at least a little confusing to predict what will cause project members to get mail and what will only go to watchers -- I remember being quite surprised when after the Nth time I mentioned a project by hashtag ("ask #otherteam their thoughts") I learned it didn't cause them to get notified, unlike @-mentioning a person ("ask @coworker their thoughts"). In any event, whatever the semantics are, it'd be good to make sure they're clearly described in the docs.

/cc @alexmv who pointed this discrepancy out to me after I quoted that doc for an internal user, thinking it was right -- which I guess underlines that I apparently don't have this logic quite straight in my head.

Event Timeline

gregprice added a project: Restricted Project.

I believe the semantics are consistent, but let me know if I'm misunderstanding or you're seeing something different:

First, the simpler case: mentioning projects with #project never notifies anyone on its own. In the past, it did have some effects (it caused the object to become tagged with the project), but this seemed to rarely be useful and often misfire. I can't recall any complaints after it was removed. So #project just generates a link, with no other effects.

When a revision is updated, ALL OF these users are notified via projects (possibly subject to further account settings, etc):

  • All members of all reviewer projects who have not disabled mail from the project.
  • All watchers of all reviewer projects (from the code, it looks like "watch" is stronger than "disable mail"; this state is a little ambiguous/silly).
  • All members of all subscribed projects who have not disabled mail from the project.
  • All watchers of all subscribed projects.
  • All watchers of all tagged projects.
  • (For completeness: all members and watchers of all projects which are listed as owners of reviewing packages, except those who have disabled mail and are not watching.)

The first statement you quote reflects this, I think, but maybe it would be more clear as a less-awkward version of this?

When you watch a project, you will receive a copy of mail about any objects (like tasks or revisions) that are tagged with the project, or that the project is a subscriber, reviewer, or auditor for; this is not an exhaustive description of all project-related mail which will be sent and other sections of this document describe other mail.

The general intent of these rules, in terms of predicting who will receive mail, is:

  • Mentioning #project doesn't do anything since it seemed confusing when it did.
  • Watchers get mail about everything else.
  • Additionally, members get mail if the project is directly involved with the object (as a subscriber, reviewer, auditor, owner, etc).
epriestley claimed this task.

(Presuming this is resolved since it's been open for a while without feedback.)