Update the mtime on retranslation of existing distributions.

1bff97ef stopped existing distributions from being overwritten, to
prevent subtle errors. However without updating the mtime these
distributions will appear to be permanently expired wrt the ttl.
Bump version to 0.5.10.
Merge pull request #309 from benjyw/update_dist_mtimes

Update the mtime on retranslation of existing distributions.
Maintain line set type throughout branches that populate it.

Prep for release of the bugfix with a version bump.

Testing Done:
Discovered using this plugin in an internal twitter repo:
===
...
12:19:25 00:03   [resources]
12:19:25 00:03     [prepare]
12:19:25 00:03     [args-apt]
                   Added args-apt resource file .pants.d/resources/args-apt/eventbus.provisioning.core.src.main.java.api/com/twitter/common/args/apt/cmdline.arg.info.txt.1 for JavaLibrary(BuildFileAddress(/home/jsirois/dev/twitter/birdcage/eventbus/provisioning/core/src/main/java/BUILD, api)):
                   # Created by pants goal args-apt
                   # Fri Jul 18 12:08:32 PDT 2014
                   # Fri Jul 18 12:10:53 PDT 2014
                   # Generated via apt by com.twitter.common.args.apt.CmdLineProcessor
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule DLOG_READ_SERVERSET
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule DLOG_WRITE_SERVERSET
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule DLOG_ZK_CONNECT
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule KAFKA_REGION_ID
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule KAFKA_ZK
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_API_HOST
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_API_PORT
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_REQUEST_TIMEOUT_MILLIS
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_ZK
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_ZK_CONNECT_TIMEOUT_SEC
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_ZK_ROOT
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_ZK_SESSION_TIMEOUT_SEC

               FAILURE
Traceback (most recent call last):
  File "/home/jsirois/.pants.dev/os_pants/src/python/pants/bin/pants_exe.py", line 185, in <module>
    main()
  File "/home/jsirois/.pants.dev/os_pants/src/python/pants/bin/pants_exe.py", line 179, in main
    _run()
  File "/home/jsirois/.pants.dev/os_pants/src/python/pants/bin/pants_exe.py", line 160, in _run
    result = command.run(lock)
  File "/home/jsirois/.pants.dev/os_pants/src/python/pants/commands/goal.py", line 260, in run
    return engine.execute(context, self.phases)
  File "/home/jsirois/.pants.dev/os_pants/src/python/pants/engine/engine.py", line 50, in execute
    self.attempt(context, phases)
  File "/home/jsirois/.pants.dev/os_pants/src/python/pants/engine/round_engine.py", line 186, in attempt
    phase_executor.attempt(explain)
  File "/home/jsirois/.pants.dev/os_pants/src/python/pants/engine/round_engine.py", line 42, in attempt
    task.execute()
  File "build/bdist.linux-x86_64/egg/twitter/common/pants/jvm/args/tasks/resource_mapper.py", line 102, in execute
  File "build/bdist.linux-x86_64/egg/twitter/common/pants/jvm/args/tasks/resource_mapper.py", line 139, in _add_args_resources
AttributeError: 'list' object has no attribute 'update'

Tested using locally burned sdist:
===
...
12:40:25 00:06   [resources]
12:40:25 00:06     [prepare]
12:40:25 00:06     [args-apt]
                   Added args-apt resource file .pants.d/resources/args-apt/eventbus.provisioning.core.src.main.java.api/com/twitter/common/args/apt/cmdline.arg.info.txt.1 for JavaLibrary(BuildFileAddress(/home/jsirois/dev/twitter/birdcage/eventbus/provisioning/core/src/main/java/BUILD, api)):
                   # Created by pants goal args-apt
                   # Fri Jul 18 12:08:32 PDT 2014
                   # Fri Jul 18 12:10:53 PDT 2014
                   # Generated via apt by com.twitter.common.args.apt.CmdLineProcessor
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule DLOG_READ_SERVERSET
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule DLOG_WRITE_SERVERSET
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule DLOG_ZK_CONNECT
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule KAFKA_REGION_ID
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule KAFKA_ZK
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_API_HOST
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_API_PORT
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_REQUEST_TIMEOUT_MILLIS
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_ZK
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_ZK_CONNECT_TIMEOUT_SEC
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_ZK_ROOT
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_ZK_SESSION_TIMEOUT_SEC

                   Added args-apt resource file .pants.d/resources/args-apt/eventbus.provisioning.core.src.main.java.deploy/com/twitter/common/args/apt/cmdline.arg.info.txt.0 for JvmBinary(BuildFileAddress(/home/jsirois/dev/twitter/birdcage/eventbus/provisioning/core/src/main/java/BUILD, deploy)):
                   # Created by pants goal args-apt
                   # Created by pants goal args-apt
                   # Fri Apr 04 16:24:12 PDT 2014
                   # Fri Jul 18 12:08:32 PDT 2014
                   # Fri Jul 18 12:10:53 PDT 2014
                   # Fri May 09 13:56:27 PDT 2014
                   # Fri May 16 22:44:44 PDT 2014
                   # Fri May 23 08:21:59 PDT 2014
                   # Generated via apt by com.twitter.common.args.apt.CmdLineProcessor
                   # Mon Apr 07 17:26:24 PDT 2014
                   # Mon May 19 21:15:29 PDT 2014
                   # Sat May 03 23:34:34 PDT 2014
                   # Sat May 03 23:34:44 PDT 2014
                   # Sat May 03 23:41:15 PDT 2014
                   # Thu May 08 15:57:51 PDT 2014
                   # Thu May 22 22:08:22 PDT 2014
                   # Tue Apr 01 08:52:42 PDT 2014
                   # Tue May 06 22:32:52 PDT 2014
                   # Tue May 06 22:38:49 PDT 2014
                   # Wed Apr 02 16:25:34 PDT 2014
                   # Wed May 14 15:17:25 PDT 2014
                   # Wed May 28 11:27:32 PDT 2014
                   field com.twitter.common.application.AppLauncher APP_CLASS
                   field com.twitter.common.application.AppLauncher GUICE_STAGE
                   field com.twitter.common.application.modules.HttpModule ANNOUNCE_NAMES
                   field com.twitter.common.application.modules.HttpModule HTTP_PORT
                   field com.twitter.common.application.modules.HttpModule HTTP_PRIMARY_SERVICE
                   field com.twitter.common.application.modules.LogModule LOG_DIR
                   field com.twitter.common.application.modules.LogModule USE_GLOG
                   field com.twitter.common.application.modules.StatsModule RETENTION_PERIOD
                   field com.twitter.common.application.modules.StatsModule SAMPLING_INTERVAL
                   field com.twitter.common.logging.RootLogConfig ALSOLOGTOSTDERR
                   field com.twitter.common.logging.RootLogConfig LOGTOSTDERR
                   field com.twitter.common.logging.RootLogConfig USE_GLOG_FORMATTER
                   field com.twitter.common.logging.RootLogConfig VLOG
                   field com.twitter.common.logging.RootLogConfig VMODULE
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule DLOG_READ_SERVERSET
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule DLOG_WRITE_SERVERSET
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule DLOG_ZK_CONNECT
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule KAFKA_REGION_ID
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule KAFKA_ZK
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_API_HOST
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_API_PORT
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_REQUEST_TIMEOUT_MILLIS
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_ZK
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_ZK_CONNECT_TIMEOUT_SEC
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_ZK_ROOT
                   field com.twitter.eventbus.provisioning.api.ProvisioningApiModule PROVISIONING_ZK_SESSION_TIMEOUT_SEC
                   parser com.google.common.collect.Range com.twitter.common.args.parsers.RangeParser
                   parser com.twitter.common.collections.Pair com.twitter.common.args.parsers.PairParser
                   parser com.twitter.common.quantity.Amount com.twitter.common.args.parsers.AmountParser
                   parser com.twitter.common.quantity.Unit com.twitter.common.args.parsers.UnitParser
                   parser java.io.File com.twitter.common.args.parsers.FileParser
                   parser java.lang.Boolean com.twitter.common.args.parsers.BooleanParser
                   parser java.lang.Byte com.twitter.common.args.parsers.ByteParser
                   parser java.lang.Character com.twitter.common.args.parsers.CharacterParser
                   parser java.lang.Class com.twitter.common.args.parsers.ClassParser
                   parser java.lang.Double com.twitter.common.args.parsers.DoubleParser
                   parser java.lang.Enum com.twitter.common.args.parsers.EnumParser
                   parser java.lang.Float com.twitter.common.args.parsers.FloatParser
                   parser java.lang.Integer com.twitter.common.args.parsers.IntegerParser
                   parser java.lang.Long com.twitter.common.args.parsers.LongParser
                   parser java.lang.Short com.twitter.common.args.parsers.ShortParser
                   parser java.lang.String com.twitter.common.args.parsers.StringParser
                   parser java.net.InetSocketAddress com.twitter.common.args.parsers.InetSocketAddressParser
                   parser java.net.URI com.twitter.common.args.parsers.URIParser
                   parser java.net.URL com.twitter.common.args.parsers.URLParser
                   parser java.util.Date com.twitter.common.args.parsers.DateParser
                   parser java.util.List com.twitter.common.args.parsers.ListParser
                   parser java.util.Map com.twitter.common.args.parsers.MapParser
                   parser java.util.Set com.twitter.common.args.parsers.SetParser
                   parser java.util.regex.Pattern com.twitter.common.args.parsers.PatternParser
                   verifier java.io.File com.twitter.common.args.constraints.CanExecute com.twitter.common.args.constraints.CanExecuteFileVerifier
                   verifier java.io.File com.twitter.common.args.constraints.CanRead com.twitter.common.args.constraints.CanReadFileVerifier
                   verifier java.io.File com.twitter.common.args.constraints.CanWrite com.twitter.common.args.constraints.CanWriteFileVerifier
                   verifier java.io.File com.twitter.common.args.constraints.Exists com.twitter.common.args.constraints.ExistsFileVerifier
                   verifier java.io.File com.twitter.common.args.constraints.IsDirectory com.twitter.common.args.constraints.IsDirectoryFileVerifier
                   verifier java.lang.Iterable com.twitter.common.args.constraints.NotEmpty com.twitter.common.args.constraints.NotEmptyIterableVerifier
                   verifier java.lang.Number com.twitter.common.args.constraints.NotNegative com.twitter.common.args.constraints.NotNegativeNumberVerifier
                   verifier java.lang.Number com.twitter.common.args.constraints.Positive com.twitter.common.args.constraints.PositiveNumberVerifier
                   verifier java.lang.Number com.twitter.common.args.constraints.Range com.twitter.common.args.constraints.RangeNumberVerifier
                   verifier java.lang.Object com.twitter.common.args.constraints.NotNull com.twitter.common.args.constraints.NotNullVerifier
                   verifier java.lang.String com.twitter.common.args.constraints.NotEmpty com.twitter.common.args.constraints.NotEmptyStringVerifier

12:40:25 00:06   [bundle]
...

Bugs closed: 308

Reviewed at https://rbcommons.com/s/twitter/r/702/
Loosen up t.c.pants constraints.

The twitter.common.pants plugins were pinned hard to
pantsbuild.pants==0.0.17 limiting the context they could be used in.

Expand the scope of supported pants releases up to 0.1.0 even though
this is likely to permissive.  The pantsbuild.pants distributions will
probably continue to break various APIs until we hit 0.1.0 and being
more permissive and then fixing the low bound on the range when the
plugins break seems about the best we can do.

This also preps an sdist release with a version bump.

Testing Done:
I tried this locally on a pantsbuild.pants==0.0.18 (aka recent OSS pants master) + twitter.common.pants==0.3.2 release that was failing due to a dep conflict and using twitter.common.pants==0.3.3 the conflict is fixed.

Bugs closed: 312

Reviewed at https://rbcommons.com/s/twitter/r/712/
migrate-history.sh: Add -o subdir option

This option allows the usre to specify a subdirectory of the incoming
repository to be imported, instead of importing the whole thing.
Only commits which affect that subdirectory will be migrated.

Testing Done:
The test script passes (added a test for the new option)

Reviewed at https://rbcommons.com/s/twitter/r/715/
Make pex's -i argument compatible with pip's -i argument.  This also allows the use of alternate Python package indexes (e.g. devpi) which use paths other than .../simple.

Since this is a backwards-incompatible change, bump the version number.

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

Reviewed at https://rbcommons.com/s/twitter/r/737/
RSTify changes and plumb through sdist.

Testing Done:
Manually converted CHANGES with rst2html to validate that it looks sane.
Will publish 0.6.0 to pypi following this, then work on the pex split to
pantsbuild.

Reviewed at https://rbcommons.com/s/twitter/r/749/
Upgrade to pantsbuild.pants 0.0.21

This picks up support for t.c.python 0.6.0 and a broader
range of cheeseshops.

Adapt to package rework in pants apis (goal -> goal.goal, goal.phase)
in the t.c.pants plugins and prep them for a release with a minor
version bump and the start of a CHANGELOG.

Testing Done:
1.) local ci:
==
$ ./build-support/bin/ci.sh

2.) publish test:
==
$ ./pants setup_py pants-plugins/src/python/twitter/common/pants:plugins
Running packager against /home/jsirois/dev/3rdparty/jsirois-twitter-commons/dist/twitter.common.pants-0.4.0
Writing /home/jsirois/dev/3rdparty/jsirois-twitter-commons/dist/twitter.common.pants-0.4.0.tar.gz
$ cd dist/ && tar -xzf twitter.common.pants-0.4.0.tar.gz && cd twitter.common.pants-0.4.0
$ python setup.py --long-description | head
RELEASE HISTORY
===============

0.4.0 (7/25/2014)
------------------

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

* Update to ``pantsbuild.pants`` 0.0.20 api changes

Bugs closed: 313

Reviewed at https://rbcommons.com/s/twitter/r/763/
Fixup the 0.4.0 release date so this get corrected on the next version publish.

Compare the 0.4.0 release date to the 'Uploaded on' date here: https://pypi.python.org/pypi/twitter.common.pants
This corrects the skew when we publish 0.4.1 or 0.5.0 or whatever the next version will be.

Testing Done:
none

Bugs closed: 314

Reviewed at https://rbcommons.com/s/twitter/r/772/
Alias twitter.common.python to pex instead of the other way around.

Reviewed at https://rbcommons.com/s/twitter/r/765/
Add support for the compiler/resource-mappings metadata protocol.

See linked issue 208 but the meat of the reason/protocol is defined here https://github.com/pantsbuild/pants/issues/416

Pants will use this initially to keep track of cmdline.arg.info.txt
resource files in its distributed compilation cache.

Testing Done:
$ ./pants goal test {tests,src}/java/com/twitter/common/args::
...
12:09:03 00:21         [compile]
12:09:03 00:21           [jmake]
                         Jmake version 1.3.8-1
                         warning: bootstrap class path not set in conjunction with -source 1.6
                         Aug 04, 2014 12:09:04 PM com.twitter.common.args.apt.Configuration load
                         INFO: No @CmdLine arg configs found on the classpath
                         /home/jsirois/dev/3rdparty/jsirois-twitter-commons/tests/java/com/twitter/common/args/ArgsTest.java:30: mandatory_warning: junit.framework.Assert in junit.framework has been deprecated
                         import static junit.framework.Assert.assertEquals;
                                                      ^
                         /home/jsirois/dev/3rdparty/jsirois-twitter-commons/tests/java/com/twitter/common/args/ArgsTest.java:30: mandatory_warning: junit.framework.Assert in junit.framework has been deprecated
                         import static junit.framework.Assert.assertEquals;
                                                      ^
                         note: Writing file:/home/jsirois/dev/3rdparty/jsirois-twitter-commons/.pants.d/compile/jvm/java/classes/com/twitter/common/args/apt/cmdline.arg.info.txt.1
                         note: Writing file:/home/jsirois/dev/3rdparty/jsirois-twitter-commons/.pants.d/compile/jvm/java/classes/META-INF/compiler/resource-mappings/com.twitter.common.args.apt.CmdLineProcessor
...

$ cat .pants.d/compile/jvm/java/classes/META-INF/compiler/resource-mappings/com.twitter.common.args.apt.CmdLineProcessor
resources by class name:
60 items
com.twitter.common.args.parsers.CharacterParser -> /home/jsirois/dev/3rdparty/jsirois-twitter-commons/.pants.d/compile/jvm/java/classes/com/twitter/common/args/apt/cmdline.arg.info.txt.1
...
com.twitter.common.args.ArgScannerTest$SameName -> /home/jsirois/dev/3rdparty/jsirois-twitter-commons/.pants.d/compile/jvm/java/classes/com/twitter/common/args/apt/cmdline.arg.info.txt.1

Bugs closed: 208, 318

Reviewed at https://rbcommons.com/s/twitter/r/823/
bug fixes

This fixes some bugs in migrate with -o (reported by Mark Christian).  There are two commits here; the first just hardens the script a bit by quoting variables and crashing out on error better.  The second actually does the fixes.

Testing Done:
Tested by migrated macaw-swift from twitter into birdcage.

Bugs closed: DPB-1796

Reviewed at https://rbcommons.com/s/twitter/r/792/
Upgrade to pants 0.0.23

NB: This picks up from the discarded https://rbcommons.com/s/twitter/r/827/

This also prepares a twitter.common.pants plugin release.

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

Bugs closed: 321

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