Page MenuHomePhabricator

Crosslink object if mentioned somewhere
Closed, ResolvedPublic

Assigned To
Authored By
Oct 30 2013, 9:07 PM
Referenced Files
"Pterodactyl" token, awarded by epriestley."Baby Tequila" token, awarded by chad."Like" token, awarded by qgil.


seems fabricator user often uses the special syntax to reference objects like T603 or users line @hwinkel. the markup renders the links already quite good.

It would be great to have this links bidirectional, if somebody mention a user the user could have a notification, if somebody have mentioned a Object like Task T603 or Revision this could me added as a kind of comment or reference in the corresponding object.

This way even links in text would be liked and not only explicit dependencies ?!?


Event Timeline

hwinkel raised the priority of this task from to Needs Triage.
hwinkel updated the task description. (Show Details)
hwinkel added a subscriber: hwinkel.
epriestley added a subscriber: epriestley.

This interacts with all the ref/closes/fixes stuff -- generally, I want to add an object-mention edge. We need this for some other stuff too.

I'm planning to implement this relatively soon, as the ref/closes/fixes stuff is mostly done. There are basically two open questions:

  • What does this look like when you look at a mentioned object? If we just dump the mention into the transaction record, it will tend to make things noisier, and I feel like we're leaning heavy on the amount of fluff in transaction records right now. Just dumping it in is easiest by far, though, and maybe it'll be fine.
  • From a technical perspective, the way edge editing works is weird and backwards, and predates TransactionEditors. It would be good for this to at least move us toward a workable implementation for the other edge relationships (Fixes/Closes, Depends On, etc). I need to think about this a bit and come up with something which gives us a pathway forward.

@carl and I talked about activating it for commits to tracked-but-not-autoclose branches in particular, which seems reasonable to me.

chad renamed this task from crosslink object if mentioned somewhere to Crosslink object if mentioned somewhere.Jun 13 2014, 5:20 PM
chad added a project: Transactions.

What about

$someone mentioned this $currentobject in $objectwithmention


chad mentioned this task in {T5074: Add `setDisabled(true)` to PHUIPinboardItemView}

  • In ApplicationTransactionEditor, we currently extract all mentioned objects from transactions (in expandRemarkupBlockTransactions()) and then filter out everything that's not a project.
  • Add some new code to load all the mentioned objects and check which ones implement a new PhabricatorMentionableInterface.
  • Write a new edge type (e.g., OBJECT_MENTIONS_OBJECT / OBJECT_MENTIONED_BY_OBJECT) against all these objects.
  • Let's hide this story in the mentioning object and not generate feed stories, email, or notifications for it for now? So the mentioned object just gets a epriestley mentioned this in D123: blah blah transaction with no fanfare.
  • Implement MentionableInterface on some objects, but not Users, Projects, or Files (since these already have other behaviors).
  • It would also be nice to not write this edge if we're writing a Ref/Fixes edge. That is, for comment text Fixes T123, it would be nice to interpret that as not being a mention. You might have to add some getPHIDsWhichShallNotBeMentioned($xaction) to support that.

Kind of a silly question but where should MentionableInterface live? I was thinking about making a new application mentions, except there's nothing in there except the interface folder.

This is a good idea I think if we figure we'll ever have a "mentions" application - which is presumably just stats about what was mentioned, maybe a mention feed, and generally not that much utility. So I am not sure if we'll have a Mentions application. :/

The best alternative I can think of is in the "transactions" application.

Transactions application sounds good to me. I doubt we'll ever have a mentions app, although who knows.

In T4036#27, @btrahan wrote:

Closed by commit rPc75495e63fa0.

Doesn't work with php 5.3.3 on centos 6. Fix with php upgrade (from webtatic repo)