HomePhabricator

Make Owners behavior when multiple packages own the same path with different…

Description

Make Owners behavior when multiple packages own the same path with different dominion rules more consistent

Summary:
Fixes T12789. See that task for discussion. Currently, when multiple packages own the same path but have different dominion rules we get some weird/aribtrary/inconsistent results.

Instead, implement these rules:

  • If zero or more weak and one or more strong packages claim a path, the strong packages (exactly) all own it.
  • If one or more weak packages and zero strong packages claim a path, the weak packages all own it.

The major change here is that instead of keeping the first weak package we run into, we keep all the weak packages with the longest claim that we run into.

This needs to be implemented twice because Owners has two different near-copies of this logic, only one of which has test coverage. Some day maybe this will get fixed.

Test Plan:

  • Added failing unit tests, made them pass.
  • Viewed all A/B strong/weak combinations in Diffusion, saw sensible ownership results.

Reviewers: chad, lvital

Reviewed By: lvital

Subscribers: lvital

Maniphest Tasks: T12789

Differential Revision: https://secure.phabricator.com/D18064