Page MenuHomePhabricator

Add Conduit Support for Differential Dependencies
Closed, DuplicatePublic

Description

Conduit outputs a phabricator:depends-on field in the auxiliary section of differential revision queries, but does not output the diffs which depend on it. As there is no way to filter a search by dependencies, this means there is currently no programatic way to determine which diffs depend on the specified diff.

I propose adding a phabricator:dependencies field to the request, to follow the same naming scheme currently in use.

Event Timeline

This feature request doesn't describe a problem, see Describing Root Problems. What problem are you trying to solve by accessing this data?

Sure thing. We have a microservices architecture, and frequently make co-dependent revisions in multiple repositories. Our build system pulls diff information from conduit, and patches all required services before running integration tests. Currently, we can only correctly test the revision which depends on all the other ones, since that information is available. Returning dependencies as well as dependent diffs will allow tests to be run on each diff without failing.

I already have the commit put together to add this. I just wanted to get a contributor on board before making the diff, in line with the code contribution guidelines.

I wouldn't spend time writing a patch for this until @epriestley has weighed in and determined that it's an acceptable feature request and that it would be worth the time to review an external contribution for this (it's possible he'll just write the functionality himself). See Contributing Code.

I already fixed it locally already, since it's functionality we needed.

Just thought I would try to give it back to the community, since I doubt I'm the only one who will have this problem, especially as more people start using harbormaster.

Judging from that merge, you should expect to have rebase conflicts when upgrading in future, since those Conduit updates will replace the existing methods (which your patch is applied on). When that happens, you should probably also be aware that the request parameters to Conduit and the returned response may be different from what you've currently implemented, so you'll need to update your build server system to handle it.

From my experience, making custom patches or extensions on Phabricator is generally not worth the time or effort, because upstream changes too rapidly here and you'll be forever maintaining things.

That task has been open since august 2014... I'm not terribly concerned about it getting landed and ruining my day any time soon. And I can hold my own in a rebase, don't worry.

It is actively being developed right now, as per the transaction log. Maniphest, Paste and Owners have already been converted over to the new APIs.