Uniformize dependency translation errors.

Review Request #22 — Created Feb. 24, 2014 and submitted

patricklaw, travis, wickman
Uniformize dependency translation errors.

There was a non-uniform set of exceptions being raised and trapped (or not!)
in the translation call paths.  This unfiromizes Web and CachedWeb to always
raise FetchError when opening urls and then hardens SourceLink and EggLink
to trap for this and re-raise UnreadableLink when attempting link fetches.
Finally, EggTranslator and SourceTranslator now trap Link fetch errors and
log & return None to allow Obtainer to proceed to the next available link if
any instead of failing fast on a bad link.
$ ./pants tests/python/twitter/common/python/:all

Travis-ci is away here: https://travis-ci.org/twitter/commons/builds/19521497
That should get past the error:
  FetchError: <urlopen error Could not reach http://antlr3.org/download/Python/antlr_python_runtime-3.1.3.tar.gz within deadline.>
And fall back to the sdist here: https://github.com/twitter/commons/tree/binaries/pants/third_party/python
  1. can we prioritize syncing these changes internally?  i've unknowingly published two separate versions of t.c.p that don't reflect changes in the commons.
    1. Sure - need to figure out a strategy where we != me.  Whether that means more sapling split syncers doing this or gutting t.c from Twitter internal.
    2. I'd personally love to see t.c pulled out entirely.
    3. Sounds like a plan - I _hate_ it conceptually but not having developed tooling to make sync transparent its a burden I can't handle.
Review request changed

Status: Closed (submitted)