Release 0.0.20 with updated twitter.common.python dep.

This also adds a CHANGELOG.rst and incorporates it in
releases via the setup.py long_description field. Release
docs are updated to point out this file needs to be edited
along with the version.py when prepping a release.

Testing Done:
1) verify the long_description addition is going to work:
==
$ PANTS_DEV=1 ./pants setup_py src/python/pants:pants-packaged
*** Running pants in dev mode from /home/jsirois/dev/3rdparty/jsirois-pants/src/python/pants/bin/pants_exe.py ***
WARNING!  /home/jsirois/dev/3rdparty/jsirois-pants/dist/pantsbuild.pants.YHc2bE/src/pants/docs/conf.py is source but does not belong to a package!
WARNING!  /home/jsirois/dev/3rdparty/jsirois-pants/dist/pantsbuild.pants.YHc2bE/src/pants/docs/pagerank.py is source but does not belong to a package!
Running packager against /home/jsirois/dev/3rdparty/jsirois-pants/dist/pantsbuild.pants-0.0.20
Writing /home/jsirois/dev/3rdparty/jsirois-pants/dist/pantsbuild.pants-0.0.20.tar.gz
$ cd dist/ && tar -xzf pantsbuild.pants-0.0.20.tar.gz && cd pantsbuild.pants-0.0.20

# The concat of ABOUT.rst and CHANGELOG.rst is effective:
$ python setup.py --long-description
Pants is an Apache2 licensed build tool written in Python.

The latest documentation can be found `here <http://pantsbuild.github.io/>`_.

RELEASE HISTORY
===============

0.0.20 (7/25/2014)
------------------

API Changes
~~~~~~~~~~~

* Hide stack traces by default
  `Issue #326 <https://github.com/pantsbuild/pants/issues/326>`_
  `RB #655 <https://rbcommons.com/s/twitter/r/655/>`_
...

2) burn the new release docs: http://pantsbuild.github.io/jsirois/release.html

Bugs closed: 396

Reviewed at https://rbcommons.com/s/twitter/r/754/
Add a check to verify that all* __init.py__ files are empty.

*With one exception!

Reviewed at https://rbcommons.com/s/twitter/r/757/
Include java_sources in targets.
the final target set returned by context.targets() was not considering targets that weren't specified in the "dependencies" of thescala_library. In this case, a target was specified using "scala_library:java_sources" which was being dropped. This in turn was causing idea not to load the project with the java sources it should have had.

Modified ScalaLibrary to return its own implementation of closure()
which includes java_sources.

Testing Done:
1) $./pants goal idea src/scala/com/pants/testproject/javasources::
2) https://travis-ci.org/pantsbuild/pants/builds/30893765

Bugs closed: 390

Reviewed at https://rbcommons.com/s/twitter/r/733/
Fixup broken release script - avoid escaping issues and just duplicate the setup_py call for now.

Testing Done:
Used this to release https://pypi.python.org/pypi/pantsbuild.pants/0.0.20

Bugs closed: 398

Reviewed at https://rbcommons.com/s/twitter/r/761/
Merge branch 'master' of https://github.com/pantsbuild/pants
Fixup NailgunTasks with missing config_section overrides.

Update version and CHANGELOG in prep for a release for twitter/commons consumption.

Testing Done:
Travis CI went green here: https://travis-ci.org/pantsbuild/pants/builds/30896650

Bugs closed: 399

Reviewed at https://rbcommons.com/s/twitter/r/762/
Plumb ivysettings.xml location to the publish template.

Testing Done:
1.) tests including publish integration
==
$ PANTS_DEV=1 ./pants goal test tests/python/pants_test/::

2.) local publish
==
$ yes | PANTS_DEV=1 ./pants goal publish src/{java,scala}:: --no-publish-dryrun --publish-local=/tmp/repo --doc-javadoc-ignore-failure --doc-scaladoc-ignore-failure

Bugs closed: 400

Reviewed at https://rbcommons.com/s/twitter/r/764/
Fix a scope bug for java agent manifest writing.

Also fix a JavaAgent validation bug revelead by adding a test for
JarBuilder agent handling.

Testing Done:
$ PANTS_DEV=1 ./pants goal test tests/python/pants_test/tasks/:jar_task --test-pytest-options=-v
...
18:05:24 00:01   [test]
18:05:24 00:01     [pytest]
18:05:24 00:01       [run]
                     ============== test session starts ===============
                     platform linux2 -- Python 2.6.9 -- py-1.4.22 -- pytest-2.5.2 -- /usr/bin/python2.6
                     plugins: cov, timeout
                     collected 6 items

                     tests/python/pants_test/tasks/test_jar_task.py:111: JarTaskTest.test_custom_manifest PASSED
                     tests/python/pants_test/tasks/test_jar_task.py:86: JarTaskTest.test_overwrite_write PASSED
                     tests/python/pants_test/tasks/test_jar_task.py:102: JarTaskTest.test_overwrite_writestr PASSED
                     tests/python/pants_test/tasks/test_jar_task.py:57: JarTaskTest.test_update_write PASSED
                     tests/python/pants_test/tasks/test_jar_task.py:73: JarTaskTest.test_update_writestr PASSED
                     tests/python/pants_test/tasks/test_jar_task.py:133: JarBuilderTest.test_agent_manifest PASSED

                     ============ 6 passed in 1.27 seconds ============

18:05:26 00:03     [junit]
18:05:26 00:03     [specs]
               SUCCESS

Bugs closed: 401

Reviewed at https://rbcommons.com/s/twitter/r/768/
Upgrade requests, flip to a ranged requirement to help plugins.

Changelog here: https://pypi.python.org/pypi/requests
I grepped for DecodeError which we do not trap and the rest of the API Changes are additive for our use cases.

Testing Done:
The requests library is used by src/python/pants/cache/restful_artifact_cache.py and src/python/pants/net/http/fetcher.py, this validates the fetcher.py use:
==
$ rm -rf ~/.pants.d/tools
$ PANTS_DEV=1 ./pants goal resolve 3rdparty/:guava
...
21:28:52 00:00   [resolve]
21:28:52 00:00     [ivy] INFO]
Downloading http://repo1.maven.org/maven2/org/apache/ivy/ivy/2.3.0/ivy-2.3.0.jar
 INFO] Starting new HTTP connection (1): repo1.maven.org
100% .................................................. 1193 KB 10.480s
 INFO] sha1: c5ebf1c253ad4959a29f4acfe696ee48cdd9f473

21:29:02 00:10       [ivy-bootstrap]
21:29:03 00:11       [ivy-resolve]
21:29:03 00:11         [ivy]
               SUCCESS

Bugs closed: 404

Reviewed at https://rbcommons.com/s/twitter/r/771/
Add a unit test for JavaAgent preconditions and attribute wiring.

Testing Done:
Failed after test add, fixed after JavaAgent fix:
==
$ PANTS_DEV=1 ./pants goal test tests/python/pants_test/targets --test-pytest-options="-v -kJavaAgentTest"
...
20:42:36 00:00   [test]
20:42:36 00:00     [pytest]
20:42:36 00:00       [run]
                     ============== test session starts ===============
                     platform linux2 -- Python 2.6.9 -- py-1.4.22 -- pytest-2.6.0 -- /usr/bin/python2.6
                     plugins: cov, timeout
                     collected 40 items

                     tests/python/pants_test/targets/test_java_agent.py@55::JavaAgentTest::test_can_redefine PASSED
                     tests/python/pants_test/targets/test_java_agent.py@66::JavaAgentTest::test_can_retransform PASSED
                     tests/python/pants_test/targets/test_java_agent.py@77::JavaAgentTest::test_can_set_native_method_prefix PASSED
                     tests/python/pants_test/targets/test_java_agent.py@39::JavaAgentTest::test_defaults PASSED
                     tests/python/pants_test/targets/test_java_agent.py@35::JavaAgentTest::test_minimal PASSED
                     tests/python/pants_test/targets/test_java_agent.py@31::JavaAgentTest::test_required PASSED

                     ==== 34 tests deselected by '-kJavaAgentTest' ====
                     ==== 6 passed, 34 deselected in 0.38 seconds =====

20:42:38 00:02     [junit]
20:42:38 00:02     [specs]
               SUCCESS

Bugs closed: 403

Reviewed at https://rbcommons.com/s/twitter/r/770/
Kill un-implemented register.py entry-points.

Testing Done:
Travis CI went green here: https://travis-ci.org/pantsbuild/pants/builds/31002194

Bugs closed: 402

Reviewed at https://rbcommons.com/s/twitter/r/769/
Force parsing for filtering specs

get_target fails if the target has not been parsed as part of the context, or manually added. Need to force parsing for filtering specs, since they will likely not be included in the graph otherwise.

Testing Done:
Passes existing/new tests, and resolves the issue internally.

Reviewed at https://rbcommons.com/s/twitter/r/775/
Fixup a hole in external dependency listing wrt encoding.

Refer to https://rbcommons.com/s/twitter/r/615/
This fixes a hole left there encountered at Twitter against ... shapeless.
It also adds an integration test that is now fixed with this fix.

Testing Done:
Locally:
$ PANTS_DEV=1 ./pants goal test tests/python/pants_test:all
$ PANTS_DEV=1 ./pants goal test tests/python/pants_test/tasks:jvm_bundle_integration

Travis CI went green: https://travis-ci.org/pantsbuild/pants/builds/31093736

Bugs closed: 406

Reviewed at https://rbcommons.com/s/twitter/r/776/
Added benchmark target to maven_layout()

Testing done:
https://travis-ci.org/pantsbuild/pants/builds/31105013

Reviewed at:
https://rbcommons.com/s/twitter/r/780
Fix exit status

Testing Done:
Ran a failing pants bootstrap; checked $?

Reviewed at https://rbcommons.com/s/twitter/r/779/
OSX 10.10

Some users have begun beta testing OSX 10.10 internally.

Reviewed at https://rbcommons.com/s/twitter/r/789/
Added a --spec-exclude command line flag to exclude specs by regular expression.

Multiple expressions can be specified by setting the flag more than once. This is in the same
vein as Eric's earlier work on excluding specs with the ^ expression, but this is more powerful
in that it (a) uses regexes, and (b) is an actual flag, and can therefore be specified in
.pants.rc.

Prompted by the need to exclude some automatically generated targets we have internally.

Most of the diff is test code; actual changes are pretty small.

Testing Done:
Wrote tests in pants_test/commands/test_spec_exclude_integration.py (which pass).

Bugs closed: 391

Reviewed at https://rbcommons.com/s/twitter/r/747/
Added an excludes attribute that is set to an empty set for all SourcePayload subclasses.

See github issue https://github.com/pantsbuild/pants/pull/414.

Testing Done:
ci passed @ https://travis-ci.org/pantsbuild/pants/builds/31232287

pants goal idea src/thrift:: brings up the IDE and puts the source dirs on the content root.

Bugs closed: 414

Reviewed at https://rbcommons.com/s/twitter/r/793/
Added some docs and a bugfix on debugging a JVM tool (like jar-tool or checkstyle) locally

Testing Done:
To test the new debugging tool, I edited pants.ini as follows:

[jar-tool]
    jvm_args: ['-Xmx300m', '-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=%(debug_port)s']

Then attached to it with IntelliJ using a remote debug config for the twitter-commons repo

Bugs closed: 413

Reviewed at https://rbcommons.com/s/twitter/r/791/
Relativize classpath for non-ng java execution

-Factored the classpath relativization logic into it's own module and reworked it slightly.
-Made jmake relativize classpath in addition to the nailgun executor

The jvm_utils BUILD file has an empty dependencies key to follow the convention I found in another file.

Testing Done:
Ran a java/scala test target with nailgun enabled/disabled and made sure the classpath was minimized and the tests passed.

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