Skip to content

v0.0.17

Summary:
The idea of keeping all errors under a push blocking local configuration is actually fundamentally flawed. When running pyre on a set of targets, you'll get errors within that target and errors in the dependencies of that target; so if the project depends on anything push blocking, you'll see those errors too.

This is problematic for two totally separate reasons:
1. This came up because an error was introduced into one world, and all of one world's reverse dependencies with differential=false were getting their diffs land blocked on that one world error. Sandcastle shells out to the local project and this one world dependency error is being returned as an error of the local project. Sandcastle will figure out what targets are affected by a diff and run pyre on all those projects if they are push blocking, but this dependency error was bypassing that system entirely.
2. **This is fundamentally flawed because we don't care about errors in dependencies.** We care about errors in *reverse dependences*. rdeps is the right way to do this, though we may want to hide it in a flag to avoid huge perf costs to buck building dependents if that's not what you care most about when running on the cmd line.

We still want to filter by root of the local config, and want to keep this function around because implementing rdeps in the future. will mean we still need to determine a collection of local roots to filter by.

This diff solves the frustrating push blocking issues for users; follow-up would look something like: T35566546

Reviewed By: dark

Differential Revision: D10510665

fbshipit-source-id: 2c44ebfaa725159f2aa8e271174a01b0651ee7e9
Assets 2