Kill unused coverage dep - this is an indirect dep we need not specify.

Also fixup coverage handling in the pytest goal:
+ Fixup cov_setup's use of itertools.chain.
+ Fix config template encoding, coverage was failing under ci with:
$ PANTS_PY_COVERAGE=1 ./build-support/bin/ci.sh
...
Traceback (most recent call last):
  File "/home/jsirois/dev/3rdparty/jsirois-pantsbuild-pants/pants.pex/pants/backend/python/test_builder.py", line 186, in _run_python_tests
    coverage_rc, args = self.cov_setup(targets)
  File "/home/jsirois/dev/3rdparty/jsirois-pantsbuild-pants/pants.pex/pants/backend/python/test_builder.py", line 140, in cov_setup
    cp = generate_coverage_config(targets)
  File "/home/jsirois/dev/3rdparty/jsirois-pantsbuild-pants/pants.pex/pants/backend/python/test_builder.py", line 66, in generate_coverage_config
    cp.readfp(Compatibility.StringIO(DEFAULT_COVERAGE_CONFIG))
  File "/home/jsirois/.pyenv/versions/2.6.8/lib/python2.6/ConfigParser.py", line 305, in readfp
    self._read(fp, filename)
  File "/home/jsirois/.pyenv/versions/2.6.8/lib/python2.6/ConfigParser.py", line 482, in _read
    raise MissingSectionHeaderError(fpname, lineno, line)
  MissingSectionHeaderError: File contains no section headers.
  file: <???>, line: 2
  '\x00[\x00r\x00u\x00n\x00]\x00\n'
  Failed to run test!

  FAILURE

Testing Done:
There are still issues here on the actual coverage - notice its not finding the src/python and thats because we now defeat the parallel src/tests assumptions of test_builder.py and we do not manually override this with coverage kwargs in out PythonTests targets.  I've filed this issue to track fixing that: https://github.com/pantsbuild/pants/issues/231

Also, the integration tests fail with coverage enabled - I've filed this issue to track that: https://github.com/pantsbuild/pants/issues/232

That said - this is forward progress, we have minimal deps and coverage doesn't blow up on unicode/code errors any longer:
$ PANTS_PY_COVERAGE=1 ./build-support/bin/ci.sh
...
23:40:49 00:01   [test]
23:40:49 00:01     [pytest]
23:40:49 00:01       [run]
...
============== test session starts ===============
                     platform linux3 -- Python 2.6.8 -- py-1.4.20 -- pytest-2.5.2
                     plugins: timeout
                     collected 293 items

                     tests/python/pants_test/base/test_double_dag.py ....
...
                     tests/python/pants_test/tasks/test_listtargets.py .......Coverage.py warning: Module pants_test.cache was never imported.
                     Coverage.py warning: Module example_test.hello.greet was never imported.
                     Coverage.py warning: Module pants_test.commands was never imported.
                     Coverage.py warning: Module pants_test.targets was never imported.
                     ..
                      coverage: platform linux3, python 2.6.8-final-0 -
                     Name                                                                    Stmts   Miss Branch BrMiss  Cover
                     ---------------------------------------------------------------------------------------------------------
                     tests/python/pants_test/__init__                                            0      0      0      0   100%
                     tests/python/pants_test/authentication/__init__                             0      0      0      0   100%
                     tests/python/pants_test/authentication/test_netrc_util                     40      2      6      2    91%
...
                     tests/python/pants_test/testutils/mock_logger                              14      0     12      3    88%
                     ---------------------------------------------------------------------------------------------------------
                     TOTAL                                                                    3943    264    323     86    92%
                     Coverage HTML written to dir /home/jsirois/dev/3rdparty/jsirois-pantsbuild-pants/dist/coverage/3bb346293fe9bb96c6f9d6f49e2a992d024617a1

                     ===== 292 passed, 1 xfailed in 27.19 seconds =====

23:42:01 01:13     [junit]
23:42:01 01:13     [specs]
               SUCCESS

Bugs closed: 230

Reviewed at https://rbcommons.com/s/twitter/r/532/
Upgrade setuptools in-line with the interpreter cache.

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

Bugs closed: 233

Reviewed at https://rbcommons.com/s/twitter/r/533/
Fixup ExampleProcessor to output its resource to the current compile class output dir.

This alleviates the untracked examples.txt left loose in the repo root after compiling
the example and its also more in line with how a typical resource generating apt
processor would locate its output.

Testing Done:
Prior to this change, ci.sh would leave examples.txt laying about untracked at the repo root.
After this change:
$ ./build-support/bin/ci.sh
...
02:26:44 00:22         [compile]
02:26:44 00:22           [jmake]
                         warning: bootstrap class path not set in conjunction with -source 1.6
                         Jmake version 1.3.8-3
                         Jun 16, 2014 2:26:45 AM com.twitter.common.args.apt.Configuration load
                         INFO: Loading @CmdLine config from: [jar:file:/home/jsirois/dev/3rdparty/jsirois-pantsbuild-pants/.pants.d/ivy/jars/com.twitter.common/application/jars/application-0.0.72.jar!/com/twitter/common/args/apt/cmdline.arg.info.txt.1, jar:file:/home/jsirois/dev/3rdparty/jsirois-pantsbuild-pants/.pants.d/ivy/jars/com.twitter.common/args/jars/args-0.2.8.jar!/com/twitter/common/args/apt/cmdline.arg.info.txt.1, jar:file:/home/jsirois/dev/3rdparty/jsirois-pantsbuild-pants/.pants.d/ivy/jars/com.twitter.common/application-module-log/jars/application-module-log-0.0.55.jar!/com/twitter/common/args/apt/cmdline.arg.info.txt.1, jar:file:/home/jsirois/dev/3rdparty/jsirois-pantsbuild-pants/.pants.d/ivy/jars/com.twitter.common/logging/jars/logging-0.0.59.jar!/com/twitter/common/args/apt/cmdline.arg.info.txt.1, jar:file:/home/jsirois/dev/3rdparty/jsirois-pantsbuild-pants/.pants.d/ivy/jars/com.twitter.common/application-module-stats/jars/application-module-stats-0.0.43.jar!/com/twitter/common/args/apt/cmdline.arg.info.txt.1, jar:file:/home/jsirois/dev/3rdparty/jsirois-pantsbuild-pants/.pants.d/ivy/jars/com.twitter.common/application-module-http/jars/application-module-http-0.0.61.jar!/com/twitter/common/args/apt/cmdline.arg.info.txt.1]
                         note: Generated resource 'file:/home/jsirois/dev/3rdparty/jsirois-pantsbuild-pants/.pants.d/compile/jvm/java/classes/examples.txt'
                         note: Writing file:/home/jsirois/dev/3rdparty/jsirois-pantsbuild-pants/.pants.d/compile/jvm/java/classes/com/twitter/common/args/apt/cmdline.arg.info.txt.2
                         Warning: unable to find .class file corresponding to source /home/jsirois/dev/3rdparty/jsirois-pantsbuild-pants/src/java/com/pants/testproject/packageinfo/package-info.java
                         Writing project database...  Done.
...

$ cat /home/jsirois/dev/3rdparty/jsirois-pantsbuild-pants/.pants.d/compile/jvm/java/classes/examples.txt
{
  {'type' : 'Main', 'value': 'Annotation Processing Example'},
}

Bugs closed: 234

Reviewed at https://rbcommons.com/s/twitter/r/535/
Removed 'coding=utf8' from the __init__.py files that had no content

(should have waited for Benjy's feedback)

Removed 'coding=utf8' from the __init__.py files that had no content

Testing Done:
ci.sh is broken at the moment

 devpants goal test  tests/python/pants_test:test_utf8_header

Bugs closed: 238

Reviewed at https://rbcommons.com/s/twitter/r/541/
Merge remote-tracking branch 'upstream/master'

* upstream/master:
  Fixup ExampleProcessor to output its resource to the current compile class output dir.
  Upgrade setuptools in-line with the interpreter cache.
  Kill unused coverage dep - this is an indirect dep we need not specify.
Updated gen.py to actually execute again and test_utf8_header to allow it

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

devpants goal test  tests/python/pants_test:test_utf8_header

Bugs closed: 241

Reviewed at https://rbcommons.com/s/twitter/r/542/
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/
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.