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/
Remove unused import from backend.android.register.py

Testing Done:
ci.sh ran successfully.

Reviewed at https://rbcommons.com/s/twitter/r/589/
doc doc.py

a page about 'page' and 'goal markdown'

gave src/java/examples/hello a README.md and a corresponding BUILD target

tweaked a couple of doc pages that "included" hello/main/BUILD for a code example: tweaked them so that they wouldn't mention the page target; would be strange in that context.

Bugs closed: 257

Reviewed at https://rbcommons.com/s/twitter/r/582/
Fix missing search&replace of .buildfile -> .build_file

Find cases of .buildfile and replace with .build_file.  Running python tests with coverage was broken.

Testing Done:
Ran python tests with PANTS_PY_COVERAGE=1

Reviewed at https://rbcommons.com/s/twitter/r/593/
rm java/examples/pingpong and many of its 3rdparty deps

rm {src|tests}/java/com/pants/examples/pingpong

rm -r 3rdparty/jvm/com/

3rdparty/BUILD -= ['guice', 'easymock']

3rdparty/BUILD -= ['mockito'] <- pingpong didn't use this; 'git grep' says nothing else did either

Testing Done:
https://travis-ci.org/pantsbuild/pants/builds/28428093

Reviewed at https://rbcommons.com/s/twitter/r/596/
Payloads with sources now give more useful errors for nesting

Because the creation of the Payloads happens later in the process
(rather than during the build file parsing), we still seem to lose track
of which file the error occurred in... is there a solution for that?

- Adds validation to SourcesMixin and switches it to inheritance with
  SourcesPayload
- Adds a Payloads test file

Reviewed on https://rbcommons.com/s/twitter/r/586/
doc: kick jar_library out of the list of Python-related BUILD file things

back when this was "dependencies", it made sense to list it with Pythonic things. Now, not so much.

Reviewed at https://rbcommons.com/s/twitter/r/598/
dev docs: talk about Travis-CI in one place, not two. Pull requests trigger CI

Mateo was surprised to find out a pull request gets Travis-CI's attention. I'd like to tease him for that, but, uhm, I didn't know it either. So document it. Once it's documented, I can tease the *next* nerd to hit this.

While I was in there, saw an old claim that pants_tests:all ran all the tests. But now our integration tests are separate. So tweaked that wording.

We had two places that talked about running all the tests (ci.sh/Travis). I was too lazy to add this pull-request blurb to both of 'em, so I consolidated. Now one of them is a hyperlink to the other.

Bugs closed: 267

Reviewed at https://rbcommons.com/s/twitter/r/597/
Add support for explicit absolute target address sepcs.

This provides a clear  way to refer to root level targets
from deeper in the BUILD tree.

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

travis-ci went green here: https://travis-ci.org/pantsbuild/pants/builds/28347405

Bugs closed: 269, 272, 278

Reviewed at https://rbcommons.com/s/twitter/r/590/
Fixup ScalaLibrary dep injection - do this at BuildGraph population time.

This is effectively a restoration of 24681429b by Ryan Williams.

Previously ScalaLibrary runtime deps were injected in the classpath by
ScalaCompile at execute time.  This let downstream goals like test and
run that just use an aggregate classpath work, but it failed for any goal
needing correct deps at a per-target level like binary, bundle and publish.

This change introduces a scala TargetPlatform class as a very rough start
to centralizing the scala version to target and uses this in ScalaLibrary and
ZincUtils.

Testing Done:

Before:
=======
$ PANTS_DEV=1 ./pants goal bundle src/scala/com/pants/example/hello/exe
$ java -jar dist/exe-bundle/exe.jar
Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject
...
$ tree dist/exe-bundle/
dist/exe-bundle/
├── exe.jar
└── libs

1 directory, 1 file

After:
======
$ PANTS_DEV=1 ./pants goal bundle src/scala/com/pants/example/hello/exe
$ java -jar dist/exe-bundle/exe.jar
$ java -jar dist/exe-bundle/exe.jar
Num args passed: 0. Stand by for welcome...
Hello, Resource World!
$ tree dist/exe-bundle/
dist/exe-bundle/
├── exe.jar
└── libs
    └── org.scala-lang-scala-library-2.9.3.jar -> /home/jsirois/dev/3rdparty/jsirois-pantsbuild-pants/.pants.d/ivy/mapped-jars/src.scala.com.pants.example.hello.exe.exe/org.scala-lang/scala-library/default/org.scala-lang-scala-library-2.9.3.jar

1 directory, 2 files

Bugs closed: 208, 256

Reviewed at https://rbcommons.com/s/twitter/r/581/