fix_code_gen

Fix Scroogen and add tests

Testing Done:
Local
[tw-172-25-147-196 pants]$ ./pants tests/python/pants_test/tasks:scrooge_gen
Build operating on top level addresses: set([BuildFileAddress(tests/python/pants_test/tasks/BUILD, scrooge_gen)])
================================================================================ test session starts ================================================================================
platform darwin -- Python 2.6.7 -- py-1.4.20 -- pytest-2.5.2
plugins: cov, timeout
collected 2 items

tests/python/pants_test/tasks/test_scrooge_gen.py ..

============================================================================= 2 passed in 0.41 seconds ==============================================================================
tests.python.pants_test.tasks.scrooge_gen                                       .....   SUCCESS
[tw-172-25-147-196 pants]$

CI:
https://travis-ci.org/pantsbuild/pants/builds/27696757

Bugs closed: 226

Reviewed at https://rbcommons.com/s/twitter/r/538/
homogenize some test-ish code. source lives in testproject. inherit from pants-int

some of our code-meant-for-testing was in 'examples', some was in 'testproject'.
mv */examples/unicode -> */testproject/unicode

add integration tests to exercise commands that have revealed regressions before

Testing Done:
./build-support/bin/ci.sh

Reviewed at https://rbcommons.com/s/twitter/r/508/
A PythonRun task.

Brings python running under goal.
Collect python interpreter constraints from all targets.

Not just the python_binary target. This allows specifying the
constraints where they belong - on the targets containing the
code that require them.
Fix missing # coding=utf-8 directives.
Fix scrooge unittest.
Added zundel to ci emails

Reviewed at https://rbcommons.com/s/twitter/r/553/
Make jvm and python binary running play nicely with each other.

Previously PythonRun threw an exception if it saw a jvm binary target
on the cmd line. Since it happens to run first, that prevents ever
running a jvm target...

TODO: It would be nice if there was a more principled way for
tasks to coordinate claiming targets, so that we can error out
if the task we're trying to run is neither a jvm_binary nor a
python_binary.
wire these integration tests to the tests/python/pants_test:integration target

"All integration tests should be wired up to the tests/python/pants_test:integration target, I think."

oh yeah, good idea; that's probably what it's there for, d'oh

Testing Done:
./pants tests/python/pants_test/BUILD:integration

Now runs fou^W FIVE tests.

Reviewed at https://rbcommons.com/s/twitter/r/543/
travis CI mail += lhosken

reviewed at https://rbcommons.com/s/twitter/r/552/

but patched in by hand like an animal
Fix resources path in src/python/pants/BUILD:pants_transitional_publishable_library target consumed at twitter

Bugs closed: 245

Reviewed at https://rbcommons.com/s/twitter/r/544/
Add benjyw@gmail.com to travis ci emails.
Convenient scripts for working with rbt.

Prevents having to memorize flags, and saves some editing in the web form.
encourage folks to add themselves to .travis.yml

Testing Done:
./build-support/bin/publish_docs.sh -o # oh pretty

Reviewed at https://rbcommons.com/s/twitter/r/557/
Break out stty settings handling into a utility.

So we can reuse it for python REPL running, eventually.
Fixes the bug where pants doesn't recognize build targets on top-level directories.

The previous argument parser naively simply checked whether a command-line argument contained a slash (/) or a colon (:). This is a reasonable assumption most of the time, but in the case where a BUILD file is located only one directory deep, (eg, buildroot/folder/BUILD), this makes it impossible to run pants on the target simply by calling (eg) ./pants goal bundle folder.

See github issue for example: https://github.com/pantsbuild/pants/pull/159

This fixes it by actually checking to see if a phase with goals is defined by the command-line argument. It still checks before that whether the argument contains a slash or a colon, because that if an argument has those characters it can't mean a goal. But an argument not having those characters doesn't mean it is a goal.

In a completely ambiguous situation (eg, given a command argument 'bundle', and there is a valid BUILD file at bundle/BUILD), we err on the side of the goal, and print out a warning. This makes sense, because it allows the user to disambiguate the situation using the '--' syntax.

Testing done:
Added unit tests to pants_test/commands/test_goal.py; everything passes.

Bugs Fixed 218

Reviewed at https://rbcommons.com/s/twitter/r/551/
Added support for multiple pants_support_baseurls.

Changed pants_support_baseurl to a list. Pants now goes through each url in the list from first to last, downloading the first binary with a valid url (and then breaking). This way, pants users can set their own support repo online and add it to the beginning of the list, so that their repo will be queried before the default repo on pantsbuild.github.io.

Testing Done:
Added pants_test/test_binary_util.py with unit tests to ensure old functionality still works, and new functionality will work.

Bugs closed: 244

Reviewed at https://rbcommons.com/s/twitter/r/556/
kick this red test out of the CI for now

(That test works on my machine, I swearz! In another branch, I'm trying out some printf-debugging to find out why it fails in Travis-land. If nothing comes of that, I'll scream for help on the list.)

Testing Done:
./pants tests/python/pants_test:integration

Reviewed at https://rbcommons.com/s/twitter/r/560/
Scrooge generation uses an absolute path. However the jvm_compile._register_products method assumes paths relative to the build root, causing it to miss classes.
Added two example (java/scala) projects that depend on code generated from thrift, they no longer throw an incorrect dependency warning
A python REPL task.

Also, changes to scala REPL to match functionality.

Also, integration tests for both.