Author: Dan Davydov <davydovdan@gmail.com>
Date:   Fri Jul 18 10:39:00 2014 -0700

    Enable Nailgun Per Task

    For discussion around this patch please see: https://groups.google.com/forum/#!searchin/pants-devel/nailgun/pants-devel/wcvYfUvhPeg/uyFfy6_IqPEJ
    Note for antlr3 / antlr4 I made their ng-killall option under a new more generic [antlr] config section. Also note that any classes that extend NailgunTask must supply
    the config_section constructor parameter (otherwise when nailgun is attempted to be used it will fail), this is intentional
    (though this would obviously be better do to during compile time rather than run time).

    Also did a bit of style/duplicate code refactoring.

    Testing Done:
    Added print statements to nailgun/non-nailgun execution paths, and tested different combinations of pants configs:
    -No use_nailgun flags (should always use nailgun)
    -use_nailgun: False in [DEFAULT] (should never use nailgun)
    -use_nailgun: False in [DEFAULT] and use_nailgun: True in [scala-compile] (nailgun was only used for scala)

    Also
    ./build-support/ci.sh

    Reviewed at https://rbcommons.com/s/twitter/r/687/
Fix pants test libraries missing dependencies

Currently on master if you don't have PANTS_DEV=1, pants_test:all target fails.

Fixed following python test targets:
1. tests/python/pants_test/test_utf8_header.py F due to
BackendConfigurationError: Failed to load the pants.backend.core.register backend: No module named goal

2.tests/python/pants_test/base/test_build_configuration.py:16: in <module>
    from pants.base.build_configuration import BuildConfiguration
/var/folders/t_/ck6c3zvj2z5cg77dqx2kh8tr0000gp/T/tmpy8_YJ_/pants/base/build_configuration.py:12: in <module>
    from pants.base.build_file_aliases import BuildFileAliases
E   ImportError: No module named build_file_aliases

3. tests/python/pants_test/java/test_executor.py:18: in <module>
    from pants.java.executor import SubprocessExecutor
/var/folders/t_/ck6c3zvj2z5cg77dqx2kh8tr0000gp/T/tmp3lxmyq/pants/java/executor.py:18: in <module>
    from pants.base.build_environment import get_buildroot
E   ImportError: No module named build_environment

4. >   ???
E   ImportError: No module named authentication.netrc_util

Testing Done:
CI passes as usual.
https://travis-ci.org/pantsbuild/pants/builds/30308887

On my branch:- Following command succeeds.
 rm pants.pex && ./pants tests/python/pants_test:all

Bugs closed: 355

Reviewed at https://rbcommons.com/s/twitter/r/685/
rm doc-generation code that made mostly-unused docs

This code worked hard to generate some documentation pages.
The Google analytics numbers point out: these pages were largely unread.
Some (but not all) of this code broke in a refactor: it generated empty docs.
Yet nobody complained.

Rather than work hard to fix and maintain this code, I'm ripping it out.
Behold the fiery debate: https://groups.google.com/forum/#!topic/pants-devel/f7V4_6kLdZs

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

Reviewed at https://rbcommons.com/s/twitter/r/704/
This is a fix for issue #367

Objects of class BinaryNotFound can not be instantiated because the constructor does not qualify the class name with its parent when it invokes the constructor of the superclass.

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

Reviewed at https://rbcommons.com/s/twitter/r/705/
Resurrected pants goal idea.

This mostly involved updating outdated references, and making utility functions to mimick functionality refactored long ago.

Source and Javadoc jars are not mapped in, and I'm not quite sure how to get that working again. I'd appreciate any input on that matter.

The code in idea_gen and ide_gen isn't very clean, because it wasn't very clean in the first place. It would be good to go back at some point and tidy it up.

Idea gen is also much more efficient than it used to be, thanks to the round manager: it now avoids compiling or jarring anything, which saves tons of time. It would still be nice to include a flag to optionally disable codegen, but I'm not sure how (un)trivial that is at this juncture.

Testing Done:
Added (passing) integration tests under tasks/test_idea_integration.py
Tests under tasks:integration pass.

Bugs closed: 349

Reviewed at https://rbcommons.com/s/twitter/r/695/
Fixed proto resolution ordering and extraneous warning messages in code_gen.

Deterministic proto conflict resolution and error logging.
Removed resources that were polluting our classpath for jmake.

When resources happens to run before compile, we sometimes get bad resources from .pants.d/resources on the classpath. These are normally harmless, but we have at least one case where it interferes with our annotation processor compilation through weird interactions with protobufs. This change is a bit hacky, but it works.