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.
Changed the error message received when specifying an invalid target in a BUILD file to actually be helpful.

Previously pants just choked with a ValueError stating that the spec was not found in the BUILD file. Now it actually lists valid specs that are contained in the build file, so that the user can recover easily without inspecting the BUILD file's contents.

See issue: https://github.com/pantsbuild/pants/issues/224

Testing Done:

Added unit tests under pants_test/base/test_build_file_parser.py (in addition to just running it on invalid targets).

Bugs closed: 251

Reviewed at: https://rbcommons.com/s/twitter/r/564/
Fix wiki publishing post-refactor.

RB_ID=https://rbcommons.com/s/twitter/r/522/
noisier asserts: show stderr, stdout on a couple of integration tests

When Travis-CI tells you that an integration test failed because './pants goal whatever' retcode != 0, you're suddenly very curious to know what stderr was. E.g., on https://travis-ci.org/pantsbuild/pants/jobs/27826597 , a usually-successful test failed. Sure would have been nice to know more about why it failed.

Testing Done:
(tweak the asserts so they fail)
./pants goal test tests/python/pants_test/tasks:integration
(un-tweak the asserts)
./pants goal test tests/python/pants_test/tasks:integration

Reviewed at https://rbcommons.com/s/twitter/r/565/
Correctly add requirements of included dependencies that provide distributions.

Testing Done:
When we upgraded from twitter.pants to pantsbuild.pants, setup_py broke for us in that not all source distributions had the correct set of install_requires dependencies.  This elif clause was in the original setup_py so I'm not sure why it was removed.

Submitted on behalf of Brian Wickman
Reviewed at https://rbcommons.com/s/twitter/r/566/
Fix travis-ci for wiki changes & add areitz to CI emails

RB_ID=https://rbcommons.com/s/twitter/r/567/
reenable this integration test. don't assume goal test retcode is 0 on success

I previously commented out this test, which was breaking in Travis-CI.

It assumed the exit code was 0 on success.
Empirical evidence suggests that's not always true for 'goal test'
in Travis-CI within a PantsRunIntegrationTest.
(Yeah, that's weird: https://github.com/pantsbuild/pants/issues/254)
So invoke './pants goal compile' instead; that still tests the scala-java stuff.

While I was in there, printed more info in the assert.

Testing Done:
on my laptop: ./pants goal test tests/python/pants_test/targets:integration
on Travis-CI: https://travis-ci.org/pantsbuild/pants/builds/27914227

Bugs closed: 250

Reviewed at https://rbcommons.com/s/twitter/r/569/
Fix for pants bootstrapping error caused by Wno-error=unused-command-line-argument-hard-error-in-future

Reviewed at https://rbcommons.com/s/twitter/r/562/
Fixed jaxb documentation formatting issues

Previously there were (mostly indentation) issues that were making Sphinx choke.

Testing Done:
Ran /build-support/bin/publish_docs.sh -o end examined output.

Bugs fixed 252

Reviewed at https://rbcommons.com/s/twitter/r/575/
Move the bang algorithm to GroupIterator - the sole user.

Testing Done:
PANTS_DEV=1 ./pants goal test tests::

Bugs closed: 255

Reviewed at https://rbcommons.com/s/twitter/r/580/
Squashed commit of the following:

    Credit Larry and Tejal
    Fix antlr_gen task and java_antly_library target
Scrub more variables when spawning java processes.

This adds scrubbing for `_JAVA_OPTIONS` and `JAVA_TOOL_OPTIONS`
which will quasi-silently add trumping jvm options to the command line
when present.  This leads to hermeticity leaks that can affect
correctness and are hard to debug.

Testing Done:
$ PANTS_DEV=1 ./pants goal test tests/python/pants_test/java:executor --test-pytest-options="-vs"
...
17:14:57 00:02   [test]
17:14:57 00:02     [pytest]
17:14:57 00:02       [run]
                     WARNING:root:Scrubbing CLASSPATH=/tmp/tmpnitp8W
                     WARNING:root:Scrubbing _JAVA_OPTIONS=-target 6
                     WARNING:root:Scrubbing JAVA_TOOL_OPTIONS=-Xmx1g
                     ============== test session starts ===============
                     platform linux3 -- Python 2.6.8 -- py-1.4.20 -- pytest-2.5.2 -- /home/jsirois/dev/3rdparty/pyenv/versions/2.6.8/bin/python
                     plugins: cov, timeout
                     collected 4 items

                     tests/python/pants_test/java/test_executor.py:47: SubprocessExecutorTest.test_not_scrubbed PASSED
                     tests/python/pants_test/java/test_executor.py:50: SubprocessExecutorTest.test_scrubbed_classpath PASSED
                     tests/python/pants_test/java/test_executor.py:54: SubprocessExecutorTest.test_scrubbed_java_options PASSED
                     tests/python/pants_test/java/test_executor.py:57: SubprocessExecutorTest.test_scrubbed_java_tool_options PASSED

                     ============ 4 passed in 0.15 seconds ============

17:15:02 00:07     [junit]
17:15:02 00:07     [specs]
               SUCCESS

Bugs closed: 260, 264

Reviewed at https://rbcommons.com/s/twitter/r/583/
Add AndroidTarget and AndroidBinary to pants

Several of the fields are passed default values, which will later be
either defined elsewhere or will be filled by the future
AndroidManifest parser (which will fill fields like target_sdk and package).

AndroidBinary has little difference from AndroidTarget, but was created
with future support of AndroidLibrary in mind.

Testing Done:
./pants goal test tests/python/pants_test:all and ci.sh both passed.

Adding pants.backend.android to base/dev_backend_loader causes tests to fail, so that has been left out of this patch for now.

Reviewed at https://rbcommons.com/s/twitter/r/572/
Added support for including .proto files in remote .jars on the --proto_path when compiling with protoc.

This is done by way of a new 'imports' parameter added to the java_protobuf_library target, which accepts jar dependencies as inputs. The syntax for this is:

java_protobuf_library(name='foo',
  imports=jar_sources(jar(org='foo.com', name='bar', rev='1.2.3'), jar(org='bar.com', name='foo', rev='3.2.1')),
  ...,
)

An extra ivy step called 'ivy-imports' (rather than ivy-resolve) has been added to accomodate this. It occurs after bootstrap and before codegen. The build was failing for a while on my machine due unrecognized symbols generated by protoc; this was fixed by deleting ~/.pants.d and re-running (for reasons that are still opaque to me).