Master Pre-Releases

Master Pre-Releases

This document describes dev releases which occur weekly from master, and which do not undergo the vetting associated with stable releases.

1.6.0rc0 (04/04/2018)

Bugfixes

  • Memoize stable task creation (#5654) PR #5654

Refactoring, Improvements, and Tooling

  • Merge TargetRoots subclasses (#5648) PR #5648
  • Handle native_engine.so resources without headers. (#5653) PR #5653
  • Per-run metrics for target roots, transitive target counts. (#5651) PR #5651
  • Release script cleanups. (#5650) PR #5650
  • Only create native engine resource when needed. (#5649) PR #5649
  • Include rust stdlib sources in bootstrap. (#5645) PR #5645

1.6.0.dev2 (04/01/2018)

Bugfixes

  • Resolve for current platform only if resolving a local python dist with native extensions (#5618) PR #5618
  • Fail for deleted-but-depended-on targets in changed (#5636) PR #5636
  • Restore and modernize --changed tests (#5635) PR #5635

Refactoring, Improvements, and Tooling

  • missing-deps-suggest outputs buildozer commands if path to buildozer is set (#5638) PR #5638
  • Rewrite package listing and ownership parts of release.sh in python (#5629) PR #5629
  • Add dependency on six (#5633) PR #5633
  • [pantsd] Don't initialize a scheduler for pantsd lifecycle checks. (#5624) PR #5624
  • Make build_dictionary.html easier to read (#5631) PR #5631

1.6.0.dev1 (03/25/2018)

New Features

  • Record critical path timings of goals (#5609) PR #5609

API Changes

  • Disable google java format by default (#5623) PR #5623

Bugfixes

  • [export] use same artifact cache override with VersionedTargetSet (#5620) PR #5620
  • Memoize org.scalatest.Suite class loading (#5614) PR #5614
  • Batch execution of address Specs and remove SelectTransitive (#5605) PR #5605

Refactoring, Improvements, and Tooling

  • Bump coursier version to 1.1.0.cf365ea27a710d5f09db1f0a6feee129aa1fc417 (#5625) PR #5625
  • Drop a golang dep that no longer appears to be used transitively... and yet somehow still seems to be failing. (#5619) PR #5619

1.6.0.dev0 (03/17/2018)

New Features

  • Add google-java-format fmt/lint support (#5596) PR #5596

API Changes

  • Deprecate BinaryUtil as public API. (#5601) PR #5601

Bugfixes

  • Fix PytestRun passthru arg handling. (#5594) PR #5594
  • [pantsd] Repair stale sources invalidation case. (#5589) PR #5589
  • [coursier/m2-coords] update coursier json parsing; use maven's coords (#5475) PR #5475

Refactoring, Improvements, and Tooling

  • Robustify SetupPyIntegrationTest. #5610 PR #5610
  • Prepare 1.5.0rc1 (#5603) PR #5603
  • Use readable errno descriptions for lmdb errors (#5604) PR #5604
  • Convert scalafmt test to a unit test. (#5599) PR #5599
  • Materialized files have the executable bit set correctly (#5593) PR #5593
  • Render a warning rather than failing list when no targets are matched (#5598) PR #5598
  • New BinaryTool subsystems for node and yarnpkg. (#5584) PR #5584
  • Further --changed optimization (#5579) PR #5579
  • Yet more rustfmt (#5597) PR #5597 PR #5592
  • [pantsd] Don't compute TargetRoots twice. (#5595) PR #5595
  • Use pre-compiled rustfmt instead of compiling it ourselves (#5592) PR #5592
  • [coursier] use same artifact cache override as ivy (#5586) PR #5586
  • Log when we try to upload files (#5591) PR #5591
  • Revert "Port BaseTest to v2 engine" (#5590) PR #5590
  • Update buildozer to 0.6.0-80c7f0d45d7e40fa1f7362852697d4a03df557b3 (#5581) PR #5581
  • Rust logging uses Python logging levels (#5528) PR #5528
  • Port BaseTest to v2 engine (#4867) PR #4867
  • Prepare 1.4.0! (#5583) PR #5583
  • Uniform handling of subsystem discovery (#5575) PR #5575
  • Send an empty WriteRequest for an empty file (#5578) PR #5578
  • Don't force fsync on every lmdb write transaction
  • Shard lmdb by top 4 bits of fingerprint
  • Revert "Revert a bunch of remoting PRs (#5543)" PR #5543
  • release.sh -q builds single-platform pexes locally (#5563) PR #5563

1.5.0rc0 (03/07/2018)

Refactoring, Improvements, and Tooling

  • Cleanup v1 changed code. (#5572) PR #5572
  • Improve the performance of v2 changed. (#5571) PR #5571
  • Delete obsolete README. (#5573) PR #5573
  • Improve interpreter constraint tests and docs. (#5566) PR #5566
  • Engine is a workspace (#5555) PR #5555
  • Native engine is a stripped cdylib (#5557) PR #5557
  • Don't overwrite cffi files if they haven't changed (#5553) PR #5553
  • Don't install panic handler when RUST_BACKTRACE=1 (#5561) PR #5561
  • Only shift once, not twice (#5552) Issue #5551 PR #5552
  • Prepare 1.4.0rc4 (#5569) PR #5569
  • [pantsd] Daemon lifecycle invalidation on configurable glob watches. (#5550) PR #5550
  • Set thrifty build_file_aliases (#5559) PR #5559
  • Better PantsRunIntegrationTest invalidation. (#5547) PR #5547
  • Support coverage of pants coverage tests. (#5544) PR #5544
  • Tighten PytestRun coverage plugin. (#5542) PR #5542
  • One additional change for 1.4.0rc3. (#5549) PR #5549
  • Provide injectables functionality in a mixin. (#5548) PR #5548
  • Revert a bunch of remoting PRs (#5543) PR #5543
  • Prep 1.4.0rc3 (#5545) PR #5545
  • CLean up fake options creation in tests. (#5539) PR #5539
  • Don't cache lmdb_store directory (#5541) PR #5541

New Features

  • Thrifty support for pants (#5531) PR #5531

Documentation Updates

  • Fix documentation code blocks. (#5558) PR #5558

1.5.0.dev5 (03/02/2018)

New Features

  • Add ability for pants to call coursier with the new url attribute (#5527) PR #5527
  • Don't force inherit_path to be a bool (#5482) PR #5482 PR #444

Bugfixes

  • [pantsd] Repair end to end runtracker timing for pantsd runs. (#5526) PR #5526

Refactoring, Improvements, and Tooling

  • Generate a single python source chroot. (#5535) PR #5535
  • Improve py.test covered paths reporting. (#5534) PR #5534
  • Improve test reporting in batched partitions. (#5420) PR #5420
  • Fix non-exportable library target subclasses (#5533) PR #5533
  • Cleanups for 3bdd5506dc3 that I forgot to push before merging. (#5529) PR #5529
  • New-style BinaryTool Subsystems for isort and go distribution. (#5523) PR #5523
  • Use rust logging API (#5525) PR #5525
  • Add comment about significance of unsorted-ness of sources (#5524) PR #5524
  • cloc never executes in the v2 engine (#5518) PR #5518
  • Robustify PantsRequirementIntegrationTest. (#5520) PR #5520
  • Subsystems for the ragel and cloc binaries (#5517) PR #5517
  • Move Key interning to rust (#5455) PR #5455
  • Don't reinstall plugin wheels on every invocation. (#5506) PR #5506
  • A new Thrift binary tool subsystem. (#5512) PR #5512

1.5.0.dev4 (02/23/2018)

New Features

  • Fix up remote process execution (#5500) PR #5500
  • Remote execution uploads files from a Store (#5499) PR #5499

Public API Changes

  • Redesign JavaScript Style Checker to use ESLint directly (#5265) PR #5265
  • A convenient mechanism for fetching binary tools via subsystems (#5443) PR #5443
  • Qualify kythe target names with 'java-'. (#5459) PR #5459

Bugfixes

  • [pantsd] Set the remote environment for pantsd-runner and child processes. (#5508) PR #5508
  • Don't special-case python dists in resolve_requirements(). (#5483) PR #5483
  • Add a dependency on the pants source to the integration test base target (#5481) PR #5481
  • fix/integration test for pants_requirement() (#5457) PR #5457
  • Never allow the shader to rewrite the empty-string package. (#5461) PR #5461
  • Bump release.sh to pex 1.2.16. (#5460) PR #5460
  • fix/tests: subsystems can't declare dependencies on non-globally-scoped subsystems (#5456) PR #5456
  • Fix missing interpreter constraints bug when a Python target does not have sources (#5501) PR #5501

Documentation Updates

  • Fix reference html/js: expand/collapse toggle in Firefox (#5507) PR #5507

Refactoring, Improvements, and Tooling

  • Delete unused old python pipeline classes. (#5509) PR #5509
  • Make the export task use new python pipeline constructs. (#5486) PR #5486
  • Remote command execution returns a Future (#5497) PR #5497
  • Snapshot is backed by LMDB not tar files (#5496) PR #5496
  • Local process execution happens in a directory (#5495) PR #5495
  • Snapshot can get FileContent (#5494) PR #5494
  • Move materialize_{file,directory} from fs_util to Store (#5493) PR #5493
  • Remove support dir overrides (#5489) PR #5489
  • Upgrade to rust 1.24 (#5477) PR #5477
  • Simplify python local dist handling code. (#5480) PR #5480
  • Remove some outdated test harness code that exists in the base class (#5472) PR #5472
  • Tweaks to the BinaryTool subsystem and use it to create an LLVM subsystem (#5471) PR #5471
  • Refactor python pipeline utilities (#5474) PR #5474
  • Fetch the buildozer binary using a subsystem. (#5462) PR #5462
  • Narrow the warnings we ignore when compiling our cffi (#5458) PR #5458

1.5.0.dev3 (02/10/2018)

New Features

  • Python distribution task for user-defined setup.py + integration with ./pants {run/binary/test} (#5141) PR #5141

Refactoring, Improvements, and Tooling

  • Bundle all kythe entries, regardless of origin. (#5450) PR #5450

1.5.0.dev2 (02/05/2018)

New Features

  • Allow intransitive unpacking of jars. (#5398) PR #5398

API Changes

  • [strict-deps][build-graph] add new predicate to build graph traversal; Update Target.strict_deps to use it (#5150) PR #5150
  • Deprecate IDE project generation tasks. (#5432) PR #5432
  • Enable workdir-max-build-entries by default. (#5423) PR #5423
  • Fix tasks2 deprecations to each have their own module. (#5421) PR #5421
  • Console tasks can output nothing without erroring (#5412) PR #5412
  • Remove a remaining old-python-pipeline task from contrib/python. (#5411) PR #5411
  • Make the thrift linter use the standard linter mixin. (#5394) PR #5394

Bugfixes

  • Fix PytestRun to handle multiple source roots. (#5400) PR #5400
  • Fix a bug in task logging in tests. (#5404) PR #5404
  • [pantsd] Repair console interactivity in pantsd runs. (#5352) PR #5352

Documentation Updates

  • Document release reset of master. (#5397) PR #5397

Refactoring, Improvements, and Tooling

  • Make the Kythe Java indexer emit JVM nodes. (#5435) PR #5435
  • Release script allows wheel listing (#5431) PR #5431
  • Get version from version file not by running pants (#5428) PR #5428
  • Improve python/rust boundary error handling (#5414) PR #5414
  • Factor up shared test partitioning code. (#5416) PR #5416
  • Set the log level when capturing logs in tests. (#5418) PR #5418
  • Simplify JUnitRun internals. (#5410) PR #5410
  • [v2-engine errors] Sort suggestions for typo'd targets, unique them when trace is disabled (#5413) PR #5413
  • No-op ivy resolve is ~100ms cheaper (#5389) PR #5389
  • Process executor does not require env flag to be set (#5409) PR #5409
  • [pantsd] Don't invalidate on surface name changes to config/rc files. (#5408) PR #5408
  • [pantsd] Break out DPR._nailgunned_stdio() into multiple methods. (#5405) PR #5405
  • Sort the indexable targets consistently. (#5403) PR #5403

1.5.0.dev1 (01/26/2018)

New Features

  • [pantsd] Add RunTracker stats. (#5374) PR #5374

API Changes

  • [pantsd] Bump to watchman 4.9.0-pants1. (#5386) PR #5386

Bugfixes

Documentation Updates

  • Update the rust readme. (#5393) PR #5393
  • Update our JVM-related config and documentation. (#5370) PR #5370

Refactoring, Improvements, and Tooling

  • Apply goal-level skip/transitive options to lint/fmt tasks. (#5383) PR #5383
  • [pantsd] StoreGCService improvements. (#5391) PR #5391
  • Remove unused field (#5390) PR #5390
  • Extract CommandRunner struct (#5377) PR #5377
  • [pantsd] Repair pantsd integration tests for execution via pantsd. (#5387) PR #5387
  • fs_util writes to remote CAS if it's present (#5378) PR #5378
  • Add back isort tests (#5380) PR #5380
  • Fix fail-fast tests. (#5371) PR #5371
  • Store can copy Digests from local to remote (#5333) PR #5333

1.5.0.dev0 (01/22/2018)

New Features

  • add avro/java contrib plugin to the release process (#5346) PR #5346
  • Add the mypy contrib module to pants release process (#5335) PR #5335
  • Publish the codeanalysis contrib plugin. (#5322) PR #5322

API Changes

  • Remove 1.5.0.dev0 deprecations (#5363) PR #5363
  • Deprecate the Android contrib backend. (#5343) PR #5343
  • [contrib/scrooge] Add exports support to scrooge (#5357) PR #5357
  • Remove superfluous --dist flag from kythe indexer task. (#5344) PR #5344
  • Delete deprecated modules removable in 1.5.0dev0. (#5337) PR #5337
  • An --eager option for BootstrapJvmTools. (#5336) PR #5336
  • Deprecate the v1 engine option. (#5338) PR #5338
  • Remove the target labels mechanism (#5320) PR #5320
  • Remove wiki-related targets from contrib and back to docgen (#5319) PR #5319
  • Get rid of the is_thrift and is_test target properties. (#5318) PR #5318
  • First of a series of changes to get rid of target labels. (#5312) PR #5312

Bugfixes

  • Fix a silly bug when computing indexable targets. (#5359) PR #5359
  • [pantsd] Repair daemon wedge on log rotation. (#5358) PR #5358

Refactoring, Improvements, and Tooling

  • A lightweight mechanism for registering options at the goal level. (#5325) PR #5325
  • Ensure test report results are always exposed. (#5368) PR #5368
  • Add error_details proto (#5367) PR #5367
  • Store can expand directories into transitive fingerprints (#5331) PR #5331
  • Store can tell what the EntryType of a Fingerprint is (#5332) PR #5332
  • Protobuf implementation uses Bytes instead of Vec (#5329) PR #5329
  • Store and remote::ByteStore use Digests not Fingerprints (#5347) PR #5347
  • Garbage collect Store entries (#5345) PR #5345
  • Port IsolatedProcess implementation from Python to Rust - Split 1 (#5239) PR #5239
  • python2: do not resolve requirements if no python targets in targets closure (#5361) PR #5361
  • Store takes a reference, not an owned type (#5334) PR #5334
  • Bump to pex==1.2.16. (#5355) PR #5355
  • Reenable lighter contrib sanity checks (#5340) PR #5340
  • Use helper functions in tests (#5328) PR #5328
  • Add support for alternate packages in the pex that is built. (#5283) PR #5283
  • List failed crates when running all rust tests (#5327) PR #5327
  • More sharding to alleviate flaky timeout from integration tests (#5324) PR #5324
  • Update lockfile for fs_util (#5326) PR #5326
  • Implement From in both directions for Digests (#5330) PR #5330

Documentation Updates

  • add mypy to list of released plugins in docs (#5341) PR #5341
  • Incorporate the more-frequent-stable release proposal (#5311) PR #5311

1.4.0rc0 (01/12/2018)

The first release candidate for the 1.4.x stable branch.

It's been many months since the 1.3.x branch was cut: part of this was due to a decision to tie "enabling pantsd by default" to the 1.4.0 release. It's taken longer to stabilize pantsd than we initially anticipated, and while we're very nearly comfortable with enabling it by default, we believe that we should be prioritizing frequent stable minor releases over releases being tied to particular features. So let's do this thing!

New Features

  • Introduce a single-target mode to JUnitRun. (#5302) PR #5302
  • Remote ByteStore can write to a CAS (#5293) PR #5293
  • Improvements to the kythe extractor and indexer tasks. (#5297) PR #5297

API Changes

  • Rename the kythe package to codeanalysis (#5299) PR #5299

Bugfixes

  • Fix junit code coverage to be off by default. (#5306) PR #5306
  • Actually use the merge and report tool classpaths. (#5308) PR #5308
  • url quote classpath in MANIFEST.MF (#5301) PR #5301
  • Fix coursier resolve missing excludes for classpath product (#5298) PR #5298
  • Fix junit caching under coverage. (#5289) PR #5289
  • mypy plugin: add support for a mypy config file (#5296) PR #5296
  • Make the ivy resolution confs participate in the fingerprint. (#5270) PR #5270
  • Check in fs_util lockfile (#5275) PR #5275

Refactoring, Improvements, and Tooling

  • [pantsd] Add debug logging utils. (#5313) PR #5313
  • Move grpc mocks to their own crate (#5305) PR #5305
  • Move hashing utilities into their own crate (#5304) PR #5304
  • Merge coverage per-batch. (#5286) PR #5286
  • Update cargo lockfiles (#5291) PR #5291
  • Install packages required to build a pants release (#5292) PR #5292
  • travis_ci Dockerfile actually works not on travis (#5278) PR #5278
  • Update grpcio to 0.2.0 (#5269) PR #5269

1.4.0.dev27 (01/05/2018)

New Features

  • Support for finding all the targets derived from a given target. (#5271) PR #5271
  • Support merging of junit xml in reports. (#5257) PR #5257

Bugfixes

  • [pantsd] Scrub PANTS_ENTRYPOINT env var upon use. (#5262) PR #5262
  • Fix junit report data loss under batching. (#5259) PR #5259
  • add safe extract for archivers (#5248) PR #5248

Refactoring, Improvements, and Tooling

  • Bump rust version. (#5274) PR #5274
  • Deprecate legacy junit "public" workdir reports. (#5267) PR #5267
  • Upgrade to jacoco 0.8.0. (#5268) PR #5268
  • [pantsd] Kill dead method. (#5263) PR #5263
  • Give travis just the AWS permissions it needs. (#5261) PR #5261
  • Relocate stable_json_sha1 to hash_utils. (#5258) PR #5258

1.4.0.dev26 (12/30/2017)

New Features

  • Add [resolve.coursier] as an experimental task (#5133) PR #5133
  • mypy contrib plugin (#5172) PR #5172

Bugfixes

  • Swap stdio file descriptors at the os level (#5247) PR #5247
  • Don't render cancelled nodes in trace (#5252) PR #5252
  • Correction on ensure_resolver (#5250) PR #5250

Refactoring, Improvements, and Tooling

  • Support fetching sources and javadoc in export using coursier (#5254) PR #5254

1.4.0.dev25 (12/22/2017)

New Features

  • Integrate PEX interpreter selection based on target-level interpreter compatibility constraints (#5160) PR #5160
  • Import statements can be banned in BUILD files (#5180) PR #5180

Bugfixes

  • revert log statement edits from #5170 that break console logging (#5233) PR #5233
  • [pantsd] Repair daemon lifecycle options fingerprinting. (#5232) PR #5232
  • use task fingerprint for build invalidation to avoid results_dir clashes (#5170) PR #5170

Refactoring, Improvements, and Tooling

  • [pantsd] Bump watchman version. (#5238) PR #5238
  • [pantsd] Improve stream latency by disabling Nagle's algorithm. (#5237) PR #5237
  • Log and increase pantsd startup timeout (#5231) PR #5231
  • [pantsd] Improve artifact cache progress output when daemon is enabled. (#5236) PR #5236
  • download_binary.sh takes hostname as a parameter (#5234) PR #5234
  • Kill noisy NodeModule.__init__() debug logging. (#5215) PR #5215
  • TargetRoots always requires options (#5217) PR #5217

1.4.0.dev24 (12/16/2017)

API Changes

  • Add --ignore-optional commandline flag for yarn install process. (#5209) PR #5209

New Features

  • contrib plugin for Avro/Java code generation (#5144) PR #5144
  • Release fs_util as part of the regular release (#5196) PR #5196

Bugfixes

  • Cross-compiling Go binaries works (#5197) PR #5197

Refactoring, Improvements, and Tooling

  • Log if artifact downloads are slow (#5208) PR #5208
  • [pantsd] Improve service locking. (#5201) PR #5201
  • Fix RunTracker re-initialization with pantsd (#5211) PR #5211
  • [pantsd] Catch ESRCH on os.kill of pantsd-runner. (#5213) PR #5213
  • Update junit-runner to 1.0.23 (#5206) PR #5206
  • Reset swappable streams in JUnit runner before closing the TeeOutputStreams to the log files and close XML Files after use (#5204) PR #5204
  • Use centos6 in travis, and remove the wheezy image. (#5202) PR #5202
  • Add a centos6 Dockerfile (#5167) PR #5167
  • Add integration test to cover the fix for #5169. (#5192) PR #5192
  • [pantsd] Repair stdio truncation. (#5156) PR #5156

1.4.0.dev23 (12/08/2017)

API Changes

  • Relativize the classpaths that are recorded during a JVM compile (#5139) PR #5139

New Features

  • fs_util backfills from remote CAS if --server-address is set (#5179) PR #5179
  • Store backfills from a remote CAS (#5166) PR #5166
  • ByteStore impl for reading from the gRPC ContentAddressableStorage service (#5155) PR #5155
  • Add the ability to build a pex to the release script (#5159) PR #5159

Bugfixes

  • Installing a duplicate task into a goal should not throw error if replace=True (#5188) PR #5188
  • Close suiteCaptures after all tests are finished instead of after each test (#5173) PR #5173
  • Fix thrift handling in the new python pipeline. (#5168) PR #5168
  • [pantsd] Improve SIGQUIT handling in the thin client. (#5177) PR #5177
  • Fix showing test output that happens after the tests are finished (#5165) PR #5165
  • Post suffixed-wheel release fixups (#5152) PR #5152

Refactoring, Improvements, and Tooling

  • Remove scheduler lock (#5178) PR #5178
  • Kill obsolete ThritNamespacePackagesTest. (#5183) PR #5183
  • Prefactor Store wrapper (#5154) PR #5154

1.4.0.dev22 (12/01/2017)

API Changes

  • Refer to Buildozer 0.6.0.dce8b3c287652cbcaf43c8dd076b3f48c92ab44c (#5107) PR #5107 PR #154

New Features

  • go fetching handles multiple meta tags (#5119) PR #5119
  • Snapshots can be captured as store-backed Directories as well as tar files. (#5105) PR #5105

Bugfixes

  • Re-generate protos if the proto compiler changes (#5138) PR #5138
  • Update gRPC to fix OSX compile issues (#5135) Issue #4975 PR #5135
  • Use a particular git SHA to stabilize binary fetching. (#5137) PR #5137
  • Remove requirement for root build file in changed (#5134) PR #5134
  • Kill background cargo fetch on ^C (#5128) Issue #5125 PR #5128
  • Expose jax_ws_library target in jax_ws plugin. (#5122) PR #5122

Refactoring, Improvements, and Tooling

  • Build suffixed pants wheels for non-releases (#5118) PR #5118
  • Change meta-rename options to non-advanced (#5124) PR #5124
  • Remove GetNode trait (#5123) PR #5123
  • Async Store (#5117) PR #5117
  • Fix references to missing content (copied from internal doc). (#5015) PR #5015

1.4.0.dev21 (11/17/2017)

Refactoring, Improvements, and Tooling

  • Extract resettable pool logic for reuse (#5110) PR #5110
  • Update rust to 1.21.0 (#5113) PR #5113
  • Make SelectTransitive a Node in the graph again. (#5109) PR #5109
  • is_ignored takes a Stat, not a Path and bool (#5112) PR #5112
  • Allow file content digests to be computed and memoized in the graph (#5104) PR #5104
  • Remove inlining in favor of executing directly (#5095) PR #5095
  • Introduce a Digest type (#5103) PR #5103
  • Move snapshot to its own file (#5102) PR #5102
  • Use (git)ignore to implement excludes (#5097) PR #5097
  • Include mode in engine cache key (#5096) PR #5096
  • Update hex to 0.3.1 (#5094) PR #5094
  • Rename local_store_path arg to local-store-path (#5092) PR #5092
  • fs_util directory save takes root (#5074) PR #5074

Documentation Updates

  • Update confluence deprecation warning (#5098) PR #5098
  • Add scalac strict_dep error regexes and update logic to compare partial classnames to target closure's classes (#5093) PR #5093

1.4.0.dev20 (11/11/2017)

New Features

  • Allow custom definition of Python PEX shebang (#3630) (#4514) PR #3630
  • Support running python tests in the pex chroot. (#5033) PR #5033

API Changes

Bugfixes

  • Fix PythonInterpreterCache. (#5089) PR #5089
  • Call wsimport script instead of using tools.jar so jax-ws will work on java 9 (#5078) PR #5078

Refactoring, Improvements, and Tooling

  • Prepare the second release candidate. (#5088) PR #5088
  • Inline mis-documented select_interpreter method. (#5085) PR #5085
  • fs_util cat <fingerprint> (#5066) PR #5066
  • Add support for proxying stdin with pantsd (#5040) PR #5040
  • fs_util directory cat-proto supports text format output (#5083) PR #5083
  • Add a VFS impl for PosixFS. (#5079) PR #5079
  • fs_util directory materialize (#5075) PR #5075
  • Fix broken test due to changed git cmd line (#5076) PR #5076
  • Canonicalize path before taking its parent (#5052) PR #5052
  • Fix test compile (#5069) PR #5069 PR #5065
  • fs_util directory cat-proto <fingerprint> (#5065) PR #5065
  • fs_util exits 2 for ENOENT (#5064) PR #5064
  • Fixup sdist release. (#5067) PR #5067
  • Fixup ./build-support/bin/release.sh -t. (#5062) PR #5062

1.4.0.dev19 (11/04/2017)

Refactoring, Improvements, and Tooling

  • Pass the color option through to the report factory. (#5055) PR #5055
  • Output size as well as fingerprint (#5053) PR #5053
  • [pantsd] Daemon lifecycle for options changes. (#5045) PR #5045
  • Convert fs_util to use futures (#5048) PR #5048
  • PosixFS can create a Stat from a Path (#5047) PR #5047
  • PosixFS can read file contents (#5043) PR #5043
  • Bump to zinc 1.0.3. (#5049) Issue #389, PR #5049
  • fs::Stat::File includes whether a file is executable (#5042) PR #5042
  • Add configurable message when missing-deps-suggest doesn't have suggestions (#5036) PR #5036
  • Use split_whitespace for parsing of cflags. (#5038) PR #5038

Bugfixes

  • [pantsd] Set sys.argv correctly on pantsd-runner fork. (#5051) PR #5051
  • Fix JarCreate invalidation in the presence of changing resources. (#5030) PR #5030

Documentation Updates

  • Minor improvement on dep-usage doc (#5041) PR #5041
  • Add documentation about strict deps (#5025) PR #5025

1.4.0.dev18 (10/29/2017)

New Features

  • Dedup dependencies output (#5029) PR #5029
  • [simple-code-gen] extension point for injecting extra exports (#4976) PR #4976

Refactoring, Improvements, and Tooling

  • Use the script verified identity when signing. (#5032) PR #5032
  • Have twine use the previously established pgp key during release. (#5031) PR #5031

1.4.0.dev17 (10/27/2017)

New Features

API Changes

  • [pantsd] Launch the daemon via a subprocess call. (#5021) PR #5021
  • Fix support for custom javac definitions (#5024) PR #5024
  • Transform scopes in pants.ini that have been subsumed by global options. (#5007) PR #5007
  • Coverage isn't enabled by default (#5009) PR #5009 PR #4881

Refactoring, Improvements, and Tooling

  • Content-addressable {file,directory} store and utility (#5012) PR #5012
  • Use the service deps if the target declares an exception. (#5017) PR #5017
  • Pass references to Paths (#5022) PR #5022
  • Replace Blake2 with Sha256 (#5014) PR #5014
  • Revert pytest successful test caching in CI. (#5016) PR #5016
  • Fingerprint has from_hex_string, as_bytes, Display, and Debug (#5013) PR #5013
  • Fix memory leak in ./pants changed (#5011) PR #5011
  • Prune travis cache (#5006) PR #5006
  • Utility to tee subprocess output to sys.std{out,err} and a buffer (#4967) PR #4967

1.4.0.dev16 (10/20/2017)

New Features

  • Add buildrefactor to contrib and buildozer goal (#4921) PR #4921
  • Allow in-repo scalac plugins to have in-repo deps. (#4987) PR #4987
  • Add plugin for scalafix (#4635) PR #4635

Documentation Updates

Bugfixes

  • Invalidate parent directories (#5000) PR #5000
  • Enforce quiet option if not hardcoded (#4974) PR #4974
  • Refer to correct location of variable (#4994) PR #4994
  • Fix setting of PEX_PATH in ./pants run (v2 backend) (#4969) PR #4969
  • Repair pytest timeout tests. (#4972) PR #4972
  • Add node_module .bin path to node / npm / yarnpkg execution path. (#4932) Issue #18233 PR #4932 PR #15900

Refactoring, Improvements, and Tooling

  • Reduce time/package requirements on binary-builder shards (#4992) PR #4992
  • [pantsd] Launch the daemon via the thin client. (#4931) PR #4931
  • Extract fs and boxfuture crates (#4985) PR #4985
  • process_executor binary can do remote execution (#4980) PR #4980
  • Fix some minor textual and shell nits (#4841) PR #4841
  • Use more generic portion of requests exception message in tests. (#4981) PR #4981
  • Include target addresses which trigger deprecation warnings (#4979) PR #4979
  • Remote process execution works more generally (#4937) PR #4937
  • Extend timeout for cargo fetching git repos (#4971) PR #4971
  • Ignore Cargo.lock files for libraries (#4968) PR #4968
  • rm unused strategy concept from simple code gen tests (#4964) PR #4964
  • Fetch go and cmake as part of bootstrap (#4962) PR #4962 PR #45
  • Make sure .cargo/config is respected for all cargo invocations (#4965) PR #4965
  • Restore to specifying /travis/home as a volume (#4960) PR #4960
  • Engine can request process execution via gRPC (#4929) PR #4929
  • Add back sdist generation and deployment. (#4957) PR #4957

1.4.0.dev15 (10/7/2017)

New Features

  • Send timing/cache report to stderr (#4946) PR #4946
  • Allow users to tell pants where to look for python interpreters (#4930) PR #4930

Bugfixes

  • Fix BundleIntegrationTest. (#4953) PR #4953
  • Pin Rust version to 1.20.0 (#4941) PR #4941
  • Remove bad string (#4942) PR #4942

Refactoring, Improvements, and Tooling

  • Load the native engine lib from a pkg_resource. (#4914) PR #4914
  • Switch from rust-crypto to sha2 (#4951) PR #4951
  • Exclude target directories from rustfmt (#4950) PR #4950
  • Update tar to a released version (#4949) PR #4949
  • Mention name of binary we can't find (#4947) PR #4947
  • Reformat rust files (#4948) PR #4948
  • Bump cffi dep to latest (1.11.1). (#4944) PR #4944
  • Upgrade gcc to cc 1.0 (#4945) PR #4945
  • Preserve soft excludes bug while removing duplicates (#4940) PR #4940
  • Move --open-with under idea-plugin to regular options (#4939) PR #4939
  • Memoize strict deps and exports (#4934) PR #4934
  • Use uname in place of arch. (#4928) PR #4928
  • Update futures to 0.1.16 and futures-cpupool to 0.1.6 (#4925) PR #4925

1.4.0.dev14 (10/2/2017)

New Features

  • Engine can work with Bazel Remote Execution API (#4910) PR #4910
  • Add lint and fmt goal for javascript style rules checking (#4785) PR #4785

API Changes

  • managed_jar_dependencies: allow target()'s with jar_library dependencies (#4742) PR #4742

Bugfixes

  • Error if the wrong subprocess is imported (#4922) PR #4922
  • Avoid os.fork() prior to stats upload. (#4919) PR #4919
  • Repair requests range pin to include higher versions. (#4916) PR #4916
  • Use Jessie not Weezy for docker image on travis (#4912) PR #4912
  • Fixup build script to rebuild only when needed. (#4908) PR #4908
  • Fix -Wstrict-prototypes warnings (#4902) PR #4902

Refactoring, Improvements, and Tooling

  • Install cmake on travis (#4923) PR #4923
  • Use newer protoc and older debian (#4918) PR #4918 PR #40
  • Refactor code coverage in preparation for adding a new coverage engine (jacoco) (#4881) PR #4881
  • Improve performance of simple codegen. (#4907) PR #4907
  • Implement local process execution in rust (#4901) PR #4901
  • Improve --cache-ignore performance. (#4905) PR #4905
  • Script to run sub-crate tests (#4900) PR #4900
  • Run rust tests on travis (#4899) PR #4899
  • Remove obsolete target-specific scripts (#4903) PR #4903
  • Re-build Bazel gRPC if the build script changes (#4924) PR #4924

1.4.0.dev13 (9/25/2017)

New Features

  • Support wheels when loading plugins. (#4887) PR #4887

API Changes

  • Remove python 2.6 support completely. (#4871) PR #4871
  • Bump pyopenssl==17.3.0 (#4872) PR #4872
  • Error on task name reuse for a particular goal (#4863) PR #4863

Bugfixes

  • Release native engine binaries for OSX 10.13. (#4898) PR #4898
  • Add default routing for OSX High Sierra binaries. (#4894) PR #4894
  • Reduce BUILD file parse pollution (#4892) PR #4892
  • Exit with error on error bootstrapping cffi (#4891) PR #4891
  • Only generate Android resource deps when needed. (#4888) PR #4888
  • Re-pin to 2017Q2 TravisCI image. (#4869) PR #4869

Documentation Updates

  • Update the committer docs. (#4889) PR #4889

Refactoring, Improvements, and Tooling

  • Refactor test partitioning. (#4879) PR #4879
  • Leverage subprocess32 subprocess backports. (#4851) PR #4851
  • Customize native engine build through code (#4876) PR #4876
  • Move to SymbolTable/Parser instances (#4864) PR #4864

1.4.0.dev12 (9/13/2017) [UNRELEASED]

NB: 1.4.0.dev12 was never released to pypi due to technical difficulties; its changes were rolled up into 1.4.0.dev13 and released with it.

API Changes

  • Use @files for javadoc so it runs with a longer command line and add doc exclude patterns option (#4842) PR #4842
  • Migrate BinaryUtil options to bootstrap options. (#4846) PR #4846

Bugfixes

  • Clean up stray pantsd-runner processes (#4835) PR #4835

Refactoring, Improvements, and Tooling

  • Re-add requests[security] and pin pyOpenSSL==17.1.0 to avoid deprecation warning. (#4865) PR #4865
  • Repair BinaryNotFound due to sslv3 alert handshake failure. (#4853) PR #4853
  • [pantsd] Improve locking. (#4847) PR #4847
  • Upgrade pex to latest. (#4843) PR #4843

1.4.0.dev11 (9/1/2017)

Bugfixes

  • Centralize options tracking in the Parser. (#4832) PR #4832

Refactoring, Improvements, and Tooling

  • Bump petgraph to 0.4.5 (#4836) PR #4836

1.4.0.dev10 (8/25/2017)

New Features

  • Add optional chrooting for junit tests. (#4823) PR #4823

Bugfixes

  • Always return a bool from SetupPy.has_provides(). PR #4826

Refactoring, Improvements, and Tooling

  • Point binary URLs off to CNAMES we own. (#4829) PR #4829
  • Stop dual-publishing the docsite. (#4828) PR #4828

1.4.0.dev9 (8/18/2017)

Bugfixes

  • Ensure setup-py runs with all interpreter extras. (#4822) PR #4822
  • Fixup erroneous exc attribute access. (#4818) PR #4818

Refactoring, Improvements, and Tooling

  • Turn on pytest successful test caching in CI. (#4819) PR #4819
  • Only attempt deploys on appropriate shards. (#4816) PR #4816
  • Fix s3 deploy to use copies instead of a symlink. (#4814) PR #4814
  • Fix the S3 upload in the travis deploy. (#4813) PR #4813

1.4.0.dev8 (8/11/2017)

New Features

  • Add support for junit (successful) test caching. (#4771) PR #4771

API Changes

  • Kill custom binaries.baseurls. (#4809) PR #4809
  • Partition and pass JVM options to scalafmt (#4774) PR #4774

Bugfixes

  • [python-repl] pass env through to repl (#4808) PR #4808
  • Switch default binary-baseurls to s3 (#4806) PR #4806
  • Work around bintray outage. (#4801) PR #4801
  • Fix has_sources. (#4792) PR #4792

Refactoring, Improvements, and Tooling

  • Zinc 1.0.0-RC3 memory and output improvements (#4807) PR #4807
  • Improve performance by not re-fingerprinting codegen'd sources. (#4789) PR #4789
  • Add per-target zinc compile stats (#4790) PR #4790
  • Add support for publishing native-engine to s3. (#4804) PR #4804
  • Introduce a loose Files target. (#4798) PR #4798
  • Upgrade default go to 1.8.3. (#4799) PR #4799
  • Deprecate unused go_thrift_library.import_path. (#4794) PR #4794
  • Cleanup cpp targets. (#4793) PR #4793
  • Simplify _validate_target_representation_args. (#4791) PR #4791
  • Init the native engine from bootstrap options. (#4787) PR #4787
  • [pantsd] Add faulthandler support for stacktrace dumps. (#4784) PR #4784
  • Cleanup CI deprecation warnings. (#4781) PR #4781
  • Kill -XX:-UseSplitVerifier. (#4777) PR #4777

1.4.0.dev7 (7/28/2017)

Refactoring, Improvements, and Tooling

  • Update to zinc 1.0.0-RC3 (#4775) Issue #355, Issue #355 PR #4775
  • Don't require an scm for local publishes. (#4773) PR #4773
  • Simplify argutil::ensure_arg. (#4768) PR #4768
  • Small cleanups in the JunitRun codebase. (#4767) PR #4767
  • Add support for compiling thrift split across multiple files in go. (#4766) PR #4766

1.4.0.dev6 (7/21/2017)

API Changes

  • Conditionally support multiple thrift files for go_thrift_gen (#4759) PR #4759

Refactoring, Improvements, and Tooling

1.4.0.dev5 (7/14/2017)

API Changes

  • ScroogeGen passes through fatal_warnings argument (#4739) PR #4739
  • Bump pex version to 1.2.8. (#4735) PR #4735
  • Deprecate the --config-override option. (#4715) PR #4715

Bugfixes

  • Improve pytest result summaries. (#4747) PR #4747
  • Include passthru args in task option fingerprints. (#4745) PR #4745
  • Fingerprint a bunch of go options. (#4743) PR #4743
  • Fix rpc style in compiler_args check. (#4730) PR #4730
  • Revert "Alias --pants-config-files to -c." (#4718) PR #4718
  • Ensure that invalidation works correctly when state is reverted. (#4709) PR #4709
  • Fixup PytestRun error handling. (#4716) PR #4716
  • Fix option bootstrapping config application order. (#4714) PR #4714
  • Ensure that target root order is preserved (#4708) PR #4708

Documentation Updates

Refactoring, Improvements, and Tooling

  • Improve transitive resolve package checking in tests. (#4738) PR #4738
  • Extract a zinc subsystem to allow for more entrypoints (#4720) PR #4720
  • Format suggested deps for easy cut & paste into BUILD file (#4711) PR #4711
  • Re-enable lint checks in CI (#4704) PR #4704

1.4.0.dev4 (6/23/2017)

API Changes

  • Replace the invalidate goal with --cache-ignore. (#4686) PR #4686

Bugfixes

  • Fix pythonstyle warnings and some python-eval warnings (#4698) PR #4698
  • Add debug logging to prepare_resources and junit_run and fix payload asserts (#4694) PR #4694
  • Improve safe_concurrent_creation contextmanager. (#4690) PR #4690
  • Fix pytest result summary colors. (#4685) PR #4685

Refactoring, Improvements, and Tooling

  • Use ElementTree to parse JUnit XML files because it is much faster than minidom (#4693) PR #4693
  • Use link.checkstyle target for checkstyle integration (#4699) PR #4699
  • Stabilize sharding test. (#4687) PR #4687

Documentation Updates

  • Fixup explain options json output. (#4696) PR #4696

1.4.0.dev3 (6/16/2017)

API Changes

  • Add compiler_args property to JavaThriftLibrary target. (#4669) PR #4669

Bugfixes

  • Add classname to target data reported by pytest (#4675) PR #4675
  • Support options fingerprinting in Task tests. (#4666) PR #4666
  • Simplify UnsetBool fingerprint encoding. (#4667) PR #4667

Refactoring, Improvements, and Tooling

  • Remove engine.engine.Engine and add RootRule (#4679) PR #4679
  • Ensure Task.workdir is available when needed. (#4672) PR #4672
  • Add support for local test caching. (#4660) PR #4660

Documentation Updates

  • Link the HTML report image in the docs to the page describing it. (#4671) PR #4671
  • Document that the release script now requires Bash 4. (#4670) PR #4670

1.4.0.dev2 (6/10/2017)

API Changes

  • Enable implicit_sources by default, and improve its docs. (#4661) PR #4661

Refactoring, Improvements, and Tooling

  • Support registering product data from one task. (#4663) PR #4663
  • Expose pex invocation cmdlines. (#4659) PR #4659
  • Audit engine struct repr values. (#4658) PR #4658
  • Break py.test execution into two stages. (#4656) PR #4656
  • Skip a test that assumes the current version is a pre-release version. (#4654) PR #4654
  • Shard contrib tests. (#4650) PR #4650
  • Fix new PytestRun task deselction handling. (#4648) PR #4648
  • Simplify TaskBase.invalidated. (#4642) PR #4642
  • Eliminate obsolete OSX ci support. (#4636) PR #4636
  • Temporarily restore recursive behaviour for bundle filesets (#4630) PR #4630
  • Fix ownership check to be case-insensitive. (#4629) PR #4629

Bugfixes

  • Support fingerprinting of UnsetBool options. (#4665) PR #4665

Documentation Updates

  • Kill dead dangling num_sources docs. (#4655) PR #4655
  • Add notes for 1.3.0, and a section explaining the daemon. (#4651) PR #4651
  • Rename and expand usage of the needs-cherrypick label (#4652) PR #4652
  • Generalize fmt msg (#4649) PR #4649
  • Fixup VersionedTarget class doc. (#4643) PR #4643
  • Fixes docs around bundle-jvm-archive. (#4637) PR #4637

1.4.0.dev1 (5/26/2017)

API Changes

  • Change method of reporting target data (#4593) PR #4593

Bugfixes

  • Check that test case attribute exists in junit xml file before converting it (#4623) Issue #4619 PR #4623
  • [engine] Check for duplicate deps in v2 graph construction. (#4616) PR #4616
  • Improve Snapshot determinism (#4614) PR #4614
  • Revert "Enable --compile-zinc-use-classpath-jars by default" (#4607) PR #4607
  • Pass env vars through in ./pants run for python (#4606) PR #4606
  • Fix broken export-classpath (#4603) PR #4603
  • Switch to a conditional deprecation for the list-targets behaviour change. (#4600) PR #4600
  • Fix export-classpaths exclude behavior (#4592) PR #4592
  • Fix splitting of the build_flags. (#4580) PR #4580

Refactoring, Improvements, and Tooling

  • [pantsd] Add an alternate entrypoint loader. (#4620) PR #4620
  • Remove Oracle Java6, which is now 404ing. (#4615) PR #4615
  • Don't register newpython tasks in the oldpython backend (#4602) PR #4602

Documentation Updates

  • Prepare notes for 1.3.0rc3 (#4617) PR #4617
  • Prepare the release notes for 1.3.0rc2 (#4609) PR #4609

1.4.0.dev0 (5/12/2017)

API Changes

  • Support "exports" for thrift targets (#4564) PR #4564
  • Make setup_py tasks provide 'python_dists' product. (#4498) PR #4498
  • Include API that will store target info in run_tracker (#4561) PR #4561

Bugfixes

  • Fix built-in macros for the mutable ParseContext (#4583) PR #4583
  • Exclude only roots for exclude-target-regexp in v2 (#4578) PR #4578 PR #451)
  • Fix a pytest path mangling bug. (#4565) PR #4565

Refactoring, Improvements, and Tooling

  • Specify a workunit for node.js test and run. (#4572) PR #4572
  • Include transitive Resources targets in PrepareResources. (#4569) PR #4569
  • [engine] Don't recreate a graph just for validation (#4566) PR #4566

Documentation Updates

  • Update release docs to use a label instead of a spreadsheet for backports. (#4574) PR #4574

1.3.0rc0 (05/08/2017)

The first release candidate for the 1.3.0 stable release branch! Almost 7 months in the making, this release brings a huge set of changes, which will be summarized for the 1.3.0 final release.

Please test this release candidate to help ensure a stable stable 1.3.0 release!

API Changes

  • [engine] Deprecate and replace traversable_dependency_specs. (#4542) PR #4542
  • Move scalastyle and java checkstyle into the lint goal (#4540) PR #4540

Bugfixes

  • Warn when implicit_sources would be used, but is disabled (#4559) PR #4559
  • Ignore dot-directories by default (#4556) PR #4556
  • Dockerize native engine builds. (#4554) PR #4554
  • Make "changed" tasks work with deleted files (#4546) PR #4546
  • Fix tag builds after the more-complete isort edit. (#4532) PR #4532

Refactoring, Improvements, and Tooling

  • [engine] Support tracebacks in engine traces; only show them w/ flag (#4549) PR #4549
  • Fix two usages of Address.build_file that avoided detection during the deprecation. (#4538) PR #4538

Documentation Updates

  • Update target scope docs (#4553) PR #4553
  • [engine] use rust doc comments instead of javadoc style comments (#4550) PR #4550

1.3.0.dev19 (4/28/2017)

A weekly unstable release.

API Changes

  • Add support for 'deployable_archives' for go and cpp rules. (#4518) PR #4518
  • Deprecate BuildFileAddress.build_file (#4511) PR #4511
  • Make usage of pantsd imply usage of watchman. (#4512) PR #4512
  • Enable --compile-zinc-use-classpath-jars by default (#4525) PR #4525

Bugfixes

  • Fix the kythe bootclasspath. (#4527) PR #4527
  • Revert the zinc 1.0.0-X7 upgrade (#4510) PR #4510
  • Invoke setup-py using an interpreter that matches the target. (#4482) PR #4482

Refactoring, Improvements, and Tooling

  • [pantsd] Ensure rust panics surface in output or daemon logs (#4522) PR #4522
  • Make the release script more idempotent. (#4504) PR #4504
  • [engine] pass on ResolveErrors during address injection (#4523) PR #4523
  • [engine] Improve error messages for missing/empty dirs (#4517) PR #4517
  • Render failed junit tests with no target owner. (#4521) PR #4521
  • [engine] Better error messages for missing targets (#4509) PR #4509
  • Options should only default to --color=True when sys.stdout isatty (#4503) PR #4503

Documentation Updates

  • Add a scala specs2 example (#4516) PR #4516

1.3.0.dev18 (4/21/2017)

A weekly unstable release.

API Changes

  • Create a lint goal and put checkstyle tasks in it. (#4481) PR #4481

Bugfixes

  • Fix some incorrectly formatted dev release semvers. (#4501) PR #4501
  • Make go targets work with v2 changed. (#4500) PR #4500
  • Fix pytest fixture registration bug. (#4497) PR #4497
  • Don't trigger deprecated scope warnings for options from the DEFAULT section (#4487) PR #4487
  • Ensure that incomplete scalac plugin state doesn't get memoized. (#4480) PR #4480

Refactoring, Improvements, and Tooling

  • [engine] Skip re-creating copy of address if no variants (#4032) PR #4032
  • Default Fetcher.ProgressListener to stderr. (#4499) PR #4499
  • A contrib plugin to run the Kythe indexer on Java source. (#4457) PR #4457
  • Keep failed target mapping free from None key. (#4493) PR #4493
  • Bring back --no-fast mode in pytest run. (#4491) PR #4491
  • [engine] Use enum for RuleEdges keys, add factory for Selects w/o variants (#4461) PR #4461
  • Bump scala platform versions to 2.11.11 and 2.12.2 (#4488) PR #4488
  • Get rid of the '2' registrations of the new python tasks. (#4486) PR #4486
  • Make pytest report sources paths relative to the buildroot. (#4472) PR #4472

Documentation Updates

  • [docs] fix broken link to certifi (#3508) PR #3508
  • [docs] Fix links in Go README (#3719) PR #3719
  • Update globs.md (#4476) PR #4476
  • Fix some compiler plugin documentation nits. (#4462) PR #4462
  • Convert readthedocs link for their .org -> .io migration for hosted projects (#3542) PR #3542

1.3.0.dev17 (4/15/2017)

A weekly unstable release, highlighted by setting the new python backend as the default.

API Changes

  • Upgrade pants to current versions of pytest et al. (#4410) PR #4410
  • Add ParseContext singleton helper (#4466) PR #4466
  • Make the new python backend the default. (#4441) PR #4441

Bugfixes

  • Correctly inject Yarn into the Node path when it is in use (#4455) PR #4455
  • Fix resource loading issue in the python eval task. (#4452) PR #4452

Refactoring, Improvements, and Tooling

  • [engine] Use RuleGraph for task lookup instead of Tasks (#4371) PR #4371
  • Re-use pre-built Linux engine binaries for bintray upload. (#4454) PR #4454
  • Replace indices with indexes in docs (#4453) PR #4453
  • Avoid re-walking for every target root in minimize (#4463) PR #4463

1.3.0.dev16 (4/08/2017)

A weekly unstable release.

This release brings the new pantsbuild.pants.contrib.jax_ws plugin that can generate Java client stubs from WSDL sources. Thanks to Chris Heisterkamp for this!

The release also pulls in a few fixes for python requirement resolution in the PEX library used by pants. In the past, the python-setup.resolver_allow_prereleases configuration option would not always be resepected; it now is. Additionally, a longstanding bug in transitive requirement resolution that would lead to erroneous 'Ambiguous resolvable' errors has now been fixed. Thanks to Todd Gardner and Nathan Butler for these fixes!

New Features

  • Add JAX-WS plugin to generate client stub files from WSDL files (#4411) PR #4411

API Changes

  • Disable unused deps by default (#4440) PR #4440
  • Bump pex version to 1.2.6 (#4442) PR #4442
  • Upgrade to pex 1.2.5. (#4434) PR #4434
  • Update 3rdparty jars: args4j to 2.33, jsr305 to 3.0.2, easymock to 3.4, burst-junit4 to 1.1.1, commons-io to 2.5, and mockito-core to 2.7.21 (#4421) PR #4421

Bugfixes

  • Default --resolver-allow-prereleases to None. (#4445) PR #4445
  • Fully hydrate a BuildGraph for the purposes of ChangedCalculator. (#4424) PR #4424
  • Upgrade zinc to 1.0.0-X7 (python portion) (#4419) Issue #75 Issue #218 PR #4419

Refactoring, Improvements, and Tooling

1.3.0.dev15 (4/03/2017)

A weekly unstable release, delayed by a week!

This release contains multiple significant new features, including the "exports" literal on JVM targets (to better support common cases in repositories using "strict_deps"), the initial release of the new python backend with caching support, a new "outdated.ivy" goal to report which JVM dependencies are out of date, speedups for go builds, and last but not least: the first release with the v2 engine enabled by default (to enable stabilization of the pants daemon before the 1.3.x stable releases).

Thanks to the contributors!

New Features

  • Add outdated.ivy command that looks for 3rd party jar updates with Ivy (#4386) PR #4386
  • Implement exports literal in jvm_target (#4329) PR #4329
  • Make jar_library target export all its dependencies (#4395) PR #4395
  • A temporary python2 backend with just the new python pipeline tasks. (#4378) PR #4378
  • [engine] include rule graph in dot files generated with --visualize-to (#4367) PR #4367
  • Speed up typical go builds. (#4362) PR #4362
  • Enable v2 engine by default. (#4340) PR #4340

API Changes

  • Use released ivy-dependency-update-checker jar tool for outdated.ivy command (#4406) PR #4406
  • Improve our use of gofmt. (#4379) PR #4379
  • Bump the default scala 2.12 minor version to 2.12.1. (#4383) PR #4383

Bugfixes

  • [pantsd] Lazily initialize CpuPool for Core and PosixFS to address SchedulerService crash on Linux. (#4412) PR #4412
  • [pantsd] Address pantsd-runner hang on Linux and re-enable integration test. (#4407) PR #4407
  • Switch the new PytestRun task to use junitxml output. (#4403) Issue #3837 PR #4403
  • [contrib/go] only pass go sources to gofmt (#4402) PR #4402
  • Remove Address/BuildFileAddress ambiguity and fix list-owners (#4399) PR #4399
  • Avoid creating deprecated resources in JavaAgent's constructor (#4400) PR #4400
  • Invalidate all go compiles when the go version changes. (#4382) PR #4382
  • Repair handling on resources kwargs for changed. (#4396) PR #4396
  • python-binary-create task maps all product directories to the same target (#4390) PR #4390
  • Fix Go source excludes; Cleanup old filespec matching (#4350) PR #4350
  • inserted a www. into some pantsbuild links to un-break them (#4388) PR #4388
  • Switch to using the new PythonEval task instead of the old one. (#4374) PR #4374
  • Adding pragma back in the default coverage config (#4232) PR #4232
  • decode compile logs (#4368) PR #4368
  • Skip cycle detection test (#4361) PR #4361
  • [engine] Fix whitelisting of files in pants_ignore (#4357) PR #4357
  • Revert the shared workaround (#4354) PR #4348 PR #4354

Refactoring, Improvements, and Tooling

  • Cleanup and give better debug output for exclude patterns in findbugs and errorprone (#4408) PR #4408
  • [engine] Rules as decorators (#4369) PR #4369
  • [engine] Move snapshots from /tmp to pants workdir. (#4373) PR #4373
  • [engine] Init Tasks before Scheduler (#4381) PR #4381
  • TravisCI tuning. (#4385) PR #4385
  • Switch the pants repo entirely over to the new python pipeline. (#4316) PR #4316
  • Fix missing deps. (#4372) PR #4372
  • A PythonEval task that uses the new pipeline. (#4341) PR #4341
  • Create a pants.init package. (#4356) PR #4356
  • [engine] short circuit native engine build failures (#4353) PR #4353
  • Check for stale native_engine_version. (#4360) PR #4360
  • [engine] Improving performance by iteratively expanding products within SelectTransitive (#4349) PR #4349
  • Move all logic out of Context (#4343) PR #4343
  • Add support for subprojects in v2 (#4346) PR #4346
  • Fix missing and circular deps. (#4345) Issue #4138 PR #4345

1.3.0.dev14 (3/17/2017)

A weekly unstable release.

API Changes

  • [pantsd] Add an option to configure the watchman startup timeout. (#4332) PR #4332
  • Relativize jar_dependency.base_path (#4326) PR #4326

Bugfixes

  • Fix bad import from race commits (#4335) PR #4335
  • Misc fixes to python tasks: (#4323) PR #4323

Refactoring, Improvements, and Tooling

  • Fix product mapping for ivy resolve when libraries are not jar files (#4339) PR #4339
  • Refactor the new SelectInterpreter and GatherSources tasks. (#4337) PR #4337
  • Lock down the native-engine-version (#4338) PR #4338
  • [engine] Inline execution of Select/Dependencies/Projection/Literal (#4331) PR #4331
  • Upgrade to mock 2.0.0. (#4336) PR #4336
  • [engine] Improve memory layout for Graph (#4333) PR #4333
  • [engine] Split SelectDependencies into SelectDependencies and SelectTransitive (#4334) PR #4334
  • Simplify PythonSetup usage (#4328) PR #4328
  • Bump native engine version. (#4330) PR #4330
  • [engine] Move to new-style CFFI callbacks. (#4324) PR #4324
  • Profile the pants invocations in integration tests. (#4325) PR #4325

1.3.0.dev13 (3/10/2017)

A weekly unstable release.

API Changes

  • Bump pex version to latest. (#4314) PR #4314

New Features

  • Binary builder task for the new python pipeline. (#4313) PR #4313
  • [engine] rm python graphmaker; create dot formatted display (#4295) PR #4295
  • A setup_py task for the new python pipeline. (#4308) PR #4308

Bugfixes

  • scrooge_gen task copy strict_deps field (#4321) PR #4321
  • [jvm-compile] Copy compile classpath into runtime classpath even if already defined (#4310) PR #4310

Refactoring, Improvements, and Tooling

  • Fix reliance on symlinks in testdata. (#4320) PR #4320
  • Introduce SUPPRESS_LABEL on workunit's console output and have thrift-linter and jar-tool adopt it (#4318) PR #4318

1.3.0.dev12 (3/3/2017)

A weekly unstable release.

API Changes

  • Completely revamp how we support JVM compiler plugins. (#4287) PR #4287

New Features

  • A PytestRun task for the new Python pipeline. (#4252) PR #4252
  • Add ability to specify subprojects (#4088) PR #4088

Bugfixes

Refactoring, Improvements, and Tooling

  • [engine] Rust IO (#4265) PR #4265
  • [engine] Support implicit sources in v2 engine (#4294) PR #4294
  • SelectLiteral isn't tied to the requester's subject: it has its own. (#4293) PR #4293
  • Include Javascript files in JVM binary (#4264) PR #4264
  • Update errorprone to version 2.0.17 (#4291) PR #4291
  • node_modules and node_test support yarnpkg as package manager (#4255) PR #4255

1.3.0.dev11 (2/24/2017)

A weekly unstable release.

API Changes

  • Support local jar with relative path in JarDependency (#4279) PR #4279

Refactoring, Improvements, and Tooling

  • Upgrade default jarjar to 1.6.4. (#4271) Issue #26 PR #4271
  • Memoize validation of deprecated versions (#4273) PR #4273
  • [engine] Remove type_id field from Value (#4274) PR #4274
  • [New Python Pipeline] Add resources to PEXes correctly. (#4275) PR #4275
  • Upgrade default go to 1.8. (#4272) PR #4272
  • Fix missed native_engine_version commit. Commit d966f9592
  • Make options fingerprinting very difficult to disable (#4262) PR #4262
  • Bump pex requirement to 1.2.3 (#4277) PR #4277
  • Strip the root-level __init__.py that apache thrift generates. (#4281) PR #4281
  • Small tweak to the Dockerfile. (#4263) PR #4263
  • Make "./pants changed" output correct results when BUILD files are modified (#4282) PR #4282
  • [engine] minor clean up engine.close usage in visualizer (#4284) PR #4284

1.3.0.dev10 (2/17/2017)

Bugfixes

  • Treat PythonTarget dependencies on Resources targets appropriately. (#4249) PR #4249
  • [engine] fix address node creation in v2 build graph; fix filedeps (#4235) PR #4235
  • Repair Broken pipe on pantsd thin client execution when piped to a non-draining reader. (#4230) PR #4230

API Changes

  • Deprecate Python target resources= and resource_targets=. (#4251) PR #4251
  • Deprecate use of resources= in JVM targets. (#4248) PR #4248

New Features

  • New python repl task. (#4219) PR #4219
  • Add a node bundle goal (#4212) PR #4212
  • A task to generate Python code from ANTLR3 grammars. PR #4206

Documentation

  • Fixing grammatical error in why use pants doc page (#4239) PR #4239

Refactoring, Improvements, and Tooling

  • Work around native engine/tag chicken-egg. (#4270) PR #4270
  • [engine] Make Graph.get generic and make Externs static (#4261) PR #4261
  • A Dockerfile for building a pants development image. (#4260) PR #4260
  • [engine] Use Value in invoke_runnable as the function instead of Function (#4258) PR #4258
  • [engine] Storage clean ups (#4257) PR #4257
  • [engine] remove Field type in favor of using String directly (#4256) PR #4256
  • Remove our use of resources= and resource_targets= in python targets. (#4250) PR #4250
  • Get rid of resources=[] stanzas in our JVMTargets. (#4247) PR #4247
  • Change engine visual graph layout from LR to TB (#4245) PR #4245
  • Simplify ci script test running stanzas. (#4209) PR #4209
  • [engine] Porting validation to Rust pt ii (#4243) PR #4243
  • Require dev-suffixed deprecation versions (#4216) PR #4216
  • [engine] Begin port of engine rule graph validation to Rust (#4227) PR #4227
  • Derive object id used in the native context from object's content (#4233) PR #4233
  • [engine] Use futures for scheduling (#4221) PR #4221
  • Add a 'current' symlink to the task-versioned prefix of the workdir. (#4220) PR #4220
  • Improve BUILD file matching in the v2 path. (#4226) PR #4226
  • Batch address injections in dependees task. (#4222) PR #4222

1.3.0.dev9 (1/27/2017)

Bugfixes

  • Removes the slf4j implementation from the classpath when running Cobertura (#4198) PR #4198
  • Make open_zip print realpath when raising BadZipfile. (#4186) PR #4186

Refactoring, Improvements, and Tooling

  • Shard testprojects integration tests (#4205) PR #4205
  • Resolve only stable releases by default. (#4201) PR #4201

1.3.0.dev8 (1/20/2017)

API Changes

  • Bump pex version to 1.1.20 (#4191) PR #4191
  • Ban some characters in target name (#4180) PR #4180

New Features

  • Scrooge codegen improvements (#4177) PR #4177

Refactoring, Improvements, and Tooling

  • Kill review tooling remnants. (#4192) PR #4192
  • Only release native-engine for pants releases. (#4189) PR #4189
  • Add some useful tips to the release documentation. (#4183) PR #4183

Bugfixes

  • Add __init__.py for tests/python directories (#4193) PR #4193
  • Fix str-typed options with int defaults. (#4184) PR #4184

1.3.0.dev7 (1/13/2017)

API Changes

  • Upgrade zinc and default scala-platform in pants repo to 2.11 (#4176) PR #4176

New Features

Refactoring, Improvements, and Tooling

  • add various codegen packages to default backend packages (#4175) PR #4175
  • Suggest missing dependencies from target's transitive dependencies (#4171) PR #4171
  • Reduce compilation invalidation scope of targets with strict_deps=True (#4143) PR #4143
  • Fork to post_stat (#4170) PR #4170

Bugfixes

  • fix a small bug in ApacheThriftGenBase class (#4181) PR #4181

1.3.0.dev6 (1/06/2017)

API Changes

  • Refactor the thrift codegen task. (#4155) PR #4155
  • Finish splitting up the codegen backend. (#4147) PR #4147

Refactoring, Improvements, and Tooling

  • Fix import order issues introduced by a previous commit. (#4156) PR #4156
  • Bump default nodejs version to 6.9.1 from 6.2.0 (#4161) PR #4161
  • Make post_stat async (#4157) PR #4157
  • Fix release script owners check. Commit

1.3.0.dev5 (12/30/2016)

API Changes

  • Upgrade default go to 1.7.4. (#4149) PR #4149

Bugfixes

  • Fix instructions for ivy debug logging (#4141) PR #4141
  • Handle unicode in classpath entries (#4136) PR #4136
  • Ensure that invalid vts have results_dir cleaned before passing to ta… (#4139) PR #4139

Documentation

  • [docs] Update the cache section on the Task developer page. (#4152) PR #4152
  • Prepare notes for 1.2.1.rc0 (#4146) PR #4146

Refactoring, Improvements, and Tooling

  • Start breaking up the codegen backend. (#4147) PR #4147
  • Cleanup unused cffi handles to free memory (#4135) PR #4135
  • A new Python run task. (#4142) PR #4142

1.3.0.dev4 (12/08/2016)

Bugfixes

  • Redirect bootstrapping calls in pants binary to stderr (#4131) PR #4131
  • Ensure that the protoc root import path is examined first (#4129) PR #4129
  • Allow the buildroot to be a source root (#4093) PR #4093
  • A flag to add the buildroot to protoc's import path (#4122) PR #4122
  • Drop libc dependency from native engine (#4124) PR #4124
  • Execute traces for all non-Return values (#4118) PR #4118

Refactoring, Improvements, and Tooling

  • directly invoke runnable from native code (#4128) PR #4128
  • Bump pex version.
  • [engine] model snapshots in validation, make root rules a dict instead of a set (#4125) PR #4125
  • classmap: a jvm console task that outputs mapping from class products to their targets (#4081) PR #4081
  • Update bintray deploys to use a shared account. (#4126) PR #4126
  • Plumb a configurable worker count to thrift linter. (#4121) PR #4121

Documentation

  • [docs] Add section for building multiplatform python binaries with native dependencies (#4119) PR #4119

1.3.0.dev3 (12/02/2016)

A weekly unstable release.

API Changes

  • Bump pex and setuptools to latest. (#4111) PR #4111
  • Bump setuptools version. (#4103) PR #4103

Bugfixes

  • Update junit-runner to 1.0.17 (#4113) PR #4113 PR #4106
  • Don't exit the JUnitRunner with number of failures because Java will mod the exit code. (#4106) PR #4106
  • Allow for using the native engine from-source in another repo (#4105) PR #4105
  • Un-publish the jar goal. (#4095) PR #4095
  • Restore compile-zinc-name-hashing option to follow deprecation cycle (#4091) PR #4091
  • Fix a Python requirement resolution test bug. (#4087) PR #4087

Refactoring, Improvements, and Tooling

  • [engine] Remove variant selecting from native engine (#4108) PR #4108
  • Reduce hashing during v2 transitive graph walks (#4109) PR #4109
  • Add a native engine release check. (#4096) PR #4096
  • Remove coveralls from CI. (#4099) PR #4099
  • Run the proto compiler in workunit. (#4092) PR #4092
  • Restore propagation of thrown exceptions between rust and python (#4083) PR #4083
  • Make cargo build --release the default for native engine bootstrapping. (#4090) PR #4090

Documentation

  • Remove stale example from 3rdparty_jvm.md (#4112) PR #4112
  • Add "common tasks" docs (#4060) PR #4060
  • Fix typo in docs (#4097) PR #4097

1.3.0dev2 (11/20/2016)

A return to the regular schedule of weekly unstable releases.

API Changes

  • Move SimpleCodegenTask into the pants core. PR #4079
  • Move the pytest-related runtime requirement specs into a subsystem. PR #4071
  • Add the scala 2.12 platform RB #4388

Refactoring, Improvements, and Tooling

  • Fixup OSX bintray prep. (#4086) PR #4086
  • Task to gather local python sources into a pex. PR #4084
  • [engine] Initial Trace implementation for rust engine (#4076) Issue #4025 PR #4076
  • Propose a github review workflow RB #4333
  • Spelling mistake in first_tutorial (#4045) PR #4045
  • Replace instances of pantsbuild.github.io in the docs with pantsbuild.org. PR #4074
  • A task to resolve python requirements. PR #4065
  • Upgrade zinc's sbt dependency to 1.0.0: python portion RB #4064 RB #4340 RB #4342
  • Skip failing tests to get CI green. RB #4391
  • Avoid using expensive bootstrap artifacts from temporary cache location RB #4342 RB #4368

1.3.0dev1 (11/16/2016)

There has been a month gap between master releases and a corresponding large number of changes. Most notably:

  • Pants now ships with a new native engine core that is the future of pants scalability work.
  • Pants has adopted a code of conduct

API Changes

  • Make findbugs task not transitive by default and modify findbugs progress output RB #4376
  • Adding a Code of Conduct RB #4354
  • Surface --dereference-symlinks flag to task caching level RB #4338
  • support mutually_exclusive_group paramater in option registration RB #4336
  • Deprecate the java_tests alias in favor of junit_tests. RB #4322
  • Add a target-types option to scalafmt to avoid formatting all targets RB #4328
  • Adding scalafmt formatting to fmt goal RB #4312

Bugfixes

  • Capture testcase for unknown test failures in the JUnit Xml RB #4377
  • Correction on [resolve.node] RB #4362 RB #4364
  • Remove safe_mkdir on results_dir in [resolve.node] RB #4362
  • Improve python_binary target fingerprinting. RB #4353
  • Bugfix: when synthesizing remote libraries in Go, pin them to the same rev as adjacent libs. RB #4325
  • Fix the SetupPy target ownership check. RB #4315
  • Update junit runner to 1.0.15 to get java 7 compatibility RB #4324
  • Fix erroneous deprecated scope warnings. RB #4323
  • Back down the minimum required java version for running Pants tools to java 7 RB #4127 RB #4253 RB #4314
  • Fix exlucde_target_regexp breakage in test-changed and --files option breakage in changed with diffspec RB #4321
  • Prevent cleanup error at end of pants test with --test-junit-html-report option, update safe_rmtree to be symlink aware RB #4319

Refactoring, Improvements, and Tooling

  • Format / Sort COMMITTERS.md; Add Yujie Chen to Active list RB #4382
  • Bump junit-runner to 1.0.16 RB #4381
  • Patch to make scala tests work RB #4361
  • Kill un-used pants.jenkins.ini. RB #4369
  • Kill unused Jenkins experiment. RB #4366
  • Split test_zinc_compile_integration into two smaller tests RB #4365
  • Upgrade zinc's sbt dependency to 1.0.0: JVM portion Issue #144 Issue #151 Issue #185 RB #3658 RB #4342 RB #4340
  • Perf improvement: rebase analyis file once instead of multiple times Issue #8 RB #4352
  • Leverage default sources where possible. RB #4358
  • [python-ng] A task to select a python interpreter. RB #4346
  • Parallize thrift linter RB #4351
  • normalize filespec exclude usage RB #4348
  • clean up deprecated global_subsystems and task_subsystems RB #4349
  • [jvm-compile] Ensure all invalid dependencies of targets are correctly represented in compile graph RB #4136 RB #4343
  • Change default ./pants fmt.isort <empty> behavior to no-op; Add sources check for isort. RB #4327
  • Allow targets to have sensible defaults for sources=. RB #4300
  • Remove the long-deprecated Target.is_codegen(). RB #4318
  • Add one more shard to travis ci RB #4320

New Engine Work

  • Revert "Revert "Generate 32 bit native engine binaries."" RB #4380 Issue #4035
  • Add contrib, 3rdparty to copy list for mock buildroot as v2 engine to pass prefix checks. RB #4379
  • Generate 32 bit native engine binaries. RB #4373
  • Add support for publishing for OSX 10.7+. RB #4371
  • Wire up native binary deploy to bintray. RB #4370
  • Re-work native engine version. RB #4367
  • First round of native engine feedback Issue #4020 RB #4270 RB #4359
  • [engine] Native scheduler implementation RB #4270
  • Bootstrap the native engine from live sources. RB #4345

1.3.0dev0 (10/14/2016)

The first unstable release of the 1.3.x series.

API Changes

  • Add subsystem_utils to test_infra RB #4303

Bugfixes

  • Switch default deference back to True for tarball artifact RB #4304
  • Filter inactive goals from Goal.all. RB #4298
  • JUnit runner fix for len(args) > max_args in argfile.safe_args RB #4294
  • Fix --changed-files option RB #4309

Refactoring, Improvements, and Tooling

  • Migrate changed integration tests to isolated temp git repos and add an environment variable to override buildroot RB #4295
  • Get rid of the "Skipped X files" messages from isort output. RB #4301
  • Version clarification RB #4299
  • Fix isort to run ./pants fmt.isort once. RB #4297
  • Dogfood ./pants fmt.isort. RB #4289
  • Extract the junit xml report parser. RB #4292
  • Leverage default targets throughout pants BUILDs. RB #4287

New Engine Work

  • [engine] Improve daemon run profiling. RB #4293

1.2.0rc0 (10/07/2016)

First release candidate for stable 1.2.0.

New Features

  • Make the name= target keyword optional in BUILD files. RB #4275
  • Add Scalafmt Support to Pants RB #4216

Refactoring, Improvements, and Tooling

  • Add libffi to pants pre-reqs, qualify JDK req. RB #4285
  • Update the setup.py description. RB #4283
  • Refactor Intermediate Target Generation Logic RB #4277
  • Clean up after failed artifact extractions RB #4255
  • Publish the CPP plugin RB #4282
  • Change --no-dryrun to the new flag in docs RB #4280
  • Add --no-transitive flag to findbugs so you can run findbugs only for the targets specified on the command line RB #4276

New Engine Work

  • [engine] Rule Graph construction perf improvements RB #4281
  • [engine] Introduce static analysis model and replace validator with it RB #4251

1.2.0dev12 (9/30/2016)

Regularly scheduled unstable release, highlighted by engine work and OSX 10.12 support. Thanks to the contributors!

Bugfixes

  • Remove deprecated from_target usage in examples. RB #4262

Refactoring, Improvements, and Tooling

  • show deprecation warning for options given in env and config RB #4272
  • Update binary_util OS map for OSX Sierra. RB #4266
  • Make LegacyAddressMapper v2 engine backed RB #4239
  • Upgrade to junit-runner 1.0.14. RB #4264
  • Fix handling of method specs. RB #4258
  • Factor workunit failure into final exit code. RB #4244

New Engine Work

  • [engine] Iterative improvements for`changed` and friends. RB #4269
  • [engine] Allow injecting of intrinsic providers to ease testing RB #4263
  • [engine] When requesting select nodes or regular nodes, return state values rather than requiring a separate call RB #4261
  • [engine] Introduce TypeConstraint#satisfied_by_type RB #4260

1.2.0dev11 (9/23/2016)

Regularly scheduled unstable release.

Heads up!: this release contains a change to an important default value for those who use pants to build scala codebases. The default --scala-platform-version has changed from 2.10 to 2.11. If you do not set this value in your pants.ini (highly recommended!) this may result in a surprise scala upgrade for you.

Thanks to the contributors!

API Changes

  • Bump default scala platform version to 2.11 RB #4256

Bugfixes

  • Clean up analysis.tmp usage between pants and zinc wrapper (Part 1) Issue #3667 RB #4245
  • Clean up analysis.tmp usage between pants and zinc wrapper (Part 2) RB #4246

Refactoring, Improvements, and Tooling

New Engine Work

  • [engine] Move subselectors to selector properties RB #4235
  • [engine] Daemon cacheable changed. RB #4207

1.2.0dev10 (9/20/2016)

Regularly scheduled unstable release. Thanks to the contributors! Version bump, previous release only did a partial upload.

Bugfixes

  • Correct Pants's incorrect guesses for go source roots. RB #4247
  • Fix ng-killall by swallowing psutil exceptions in filter RB #4237
  • Fix for idea-plugin goal that generates too long project filename RB #4231
  • wrapped globs excludes - include incorrect arg in error message RB #4232

Refactoring, Improvements, and Tooling

  • Inject an automatic dep on junit for all junit_tests targets. RB #4228
  • Simplify failed test reporting. RB #4240
  • Fixup the simple plugin setup docs. RB #4241
  • Add description to type constraints RB #4233
  • Differentiate between source root categories. RB #4230
  • Restore ChangedTargetGoalsIntegrationTest. RB #4227
  • Deprecate the subsystem_instance utility function. RB #4220

New Features

  • Add a timeout to scalajs tests RB #4229
  • Disallow absolute file paths in specs in BUILD files RB #4221

New Engine Work

  • [engine] Convert all isinstance product checks to using Exactly type constraints RB #4236
  • [engine] Check that types passed to TypeConstraint inits are in fact types RB #4209

1.2.0dev9 (9/12/2016)

Regularly scheduled unstable release. Thanks to the contributors! Version bump, previous release only did a partial upload.

Bugfixes

  • Re-enable test_junit_tests_using_cucumber. RB #4212
  • Reset subsystem state for integration tests. RB #4219
  • Remove spurious pants.pex file that somehow ended up in the repo. RB #4214 RB #4218
  • Fix a non-determinism I added in the ANTLR support RB #4187

Refactoring, Improvements, and Tooling

  • Edit Greeting{,Test}.java to get a known edit sha for tests. RB #4217
  • Refactor memoization of the global distribution locator. RB #4214
  • Clean up junit xml report file location logic. RB #4211
  • Upgrade default go to 1.7.1. RB #4210
  • Make util.objects.datatype classes not iterable RB #4163

1.2.0dev8 (09/02/2016)

Regularly scheduled unstable release. Thanks to the contributors! Version bump, previous release only did a partial upload.

1.2.0dev7 (09/02/2016)

Regularly scheduled unstable release. Thanks to the contributors!

Bugfixes

  • [jvm-compile][bug] Fixes other target's class dir ending up on classpath RB #4198
  • Fixed bugs in Go thrift generation with services RB #4177

New Engine Work

  • [engine] Add Runnable State RB #4158
  • [engine] Don't filter directories in watchman subscription RB #4095

Refactoring, Improvements, and Tooling

  • Eliminate all direct use of pytest. RB #4201
  • Update pants versioning to use python's packaging.version RB #4200
  • [jvm-compile][test] Add test explicitly checking classpath for z.jars RB #4199
  • Plumb fetch timeout through BinaryUtil. RB #4196
  • Upgrade default go to 1.7. RB #4195
  • Fixup PythonTarget resource_targets docs. RB #4148
  • Customize tarfile module next() method RB #4123

1.2.0-dev6 (8/26/2016)

Regularly scheduled unstable release. Thanks to the contributors!

New Features

  • A clear error message for checkstyle misconfiguration. RB #4176

Bugfixes

  • Performance fix for consolidated classpath RB #4184

Refactoring, Improvements, and Tooling

  • Refactor classpath consolidation into a separate task. RB #4152
  • Refactor idea-plugin goal RB #4159
  • Remove all calls to create_subsystem() in tests. RB #4178

New Engine Work

  • Support exclude_target_regexps and ignore_patterns in v2 engine RB #4172

1.2.0-dev5 (8/19/2016)

Regularly scheduled unstable release.

New Engine Work

  • Defer daemon-wise LegacyBuildGraph construction to post-fork. RB #4168
  • [engine] Validate that variant_key of SelectVariant is string type git_shat msg: 5a7e838d512069a24d12ec0b7dcdc7b7d5bdfa3b RB #4149

Refactoring, Improvements, and Tooling

  • Adjust the output file locations for the Antlr task. RB #4161
  • build dictionary: one description per arg is plenty RB #4164

1.2.0-dev4 (8/12/2016)

Regularly scheduled unstable release.

New Features

  • Introduce fmt goal, isort subgoal RB #4134

Bugfixes

  • Fix GitTest control of git user.email. RB #4146
  • Restore publishing of the docsite during releases RB #4140

New Engine Work

  • [engine] Fix bundle rel_path handling in engine RB #4150
  • [engine] Fix running changed with v2 flag; Replace context address_mapper; Fix excludes filespecs in engine globs. RB #4114
  • Fix BundleAdaptor to BundleProps Conversion RB #4057 RB #4129

Refactoring, Improvements, and Tooling

  • Eliminate use of mox in favor of mock. RB #4143
  • Convert FetcherTest to use mock instead of mox. RB #4142
  • [jvm-compile] narrow compile dependencies from full closure to just next nearest invalid compilation targets RB #4136

1.2.0-dev3 (8/7/2016)

Unscheduled extra unstable release.

Refactoring, Improvements, and Tooling

  • Move the custom javac option to the Java subsystem. RB #4141

1.2.0-dev2 (8/5/2016)

Regularly scheduled unstable release.

Refactoring, Improvements, and Tooling

  • Upgrade travis ci to use jdk 8 RB #4127
  • Additional checks for module type determination. RB #4131

1.2.0-dev1 (7/30/2016)

Regularly scheduled unstable release.

New Features

  • Allow specification of an alternate javac location. RB #4124
  • Add support to Fetcher for file: URLs. RB #4099
  • JSON output format for Pants options RB #4113

API Changes

Bugfixes

  • Avoid clobbering type_alias kwarg in the Registrar if already explicitly set. RB #4106
  • Fix JUnit -fail-fast, add test for early exit hook and remove unused code RB #4060 RB #4081
  • Fixup the 1.1.x notes, which were not being rendered on the site, and contained rendering errors. RB #4098

New Engine Work

  • Ensure target resources= ordering is respected in the v2 engine. RB #4128
  • [engine] Pass selectors to select nodes; Use selectors in error messages RB #4031
  • Remove Duplicates in File System tasks in v2 Engine RB #4096

Refactoring, Improvements, and Tooling

1.2.0-dev0 (7/18/2016)

Regularly scheduled unstable release! Unstable releases from master will use the dev suffix from now on (see #3382).

New Features

None this week!

API Changes

Bugfixes

  • RGlobs.to_filespec should generate filespecs that match git spec RB #4078
  • ivy runner make a copy of jvm_options before mutating it RB #4080
  • Log exceptions from testRunFinished() in our listener Issue #3638 RB #4060
  • Fix problems with unicode in junit XML output when writing to HTML report RB #4051
  • [bugfix] Fix remote_sources() targets dependency injection. RB #4052

New Engine Work

  • Convert BundleAdaptor to BundleProps during JvmApp target creation RB #4057
  • Repair pantsd+watchman integration test flakiness. RB #4067
  • [engine] Isolated Process Execution - First Cut RB #4029

Refactoring, Improvements, and Tooling

  • Use ProjectTree in SourceRoots.all_roots(). RB #4079
  • Add a note indicating that scope=forced is available beginning in 1.1.0 RB #4070
  • Update version numbering and clarify notes updates RB #4069
  • Improve deprecation warning for default backend option reliance. RB #4061 RB #4053
  • Cleanup the annotation test project code RB #4056
  • Add documentation for scopes RB #4050
  • Add collection literals note to styleguide RB #4028

1.1.0-rc0 (7/1/2016)

This is the first 1.1.0-rc release on the way to 1.1.0.

New Features

  • Subprocess clean-all RB #4011
  • expose products for jvm bundle create and python binary create tasks RB #3959 RB #4015
  • Implement zinc unused deps check RB #3635

API Changes

Bugfixes

  • ConsoleRunner bugfix for @TestSerial and other test cleanups RB #4026

New Engine Work

Refactoring, Improvements, and Tooling

  • Fix dead apidocs link for guava. RB #4037
  • Bump setproctitle to 1.1.10. Issue #44 RB #4035
  • Set a default read timeout for fetching node pre-installed modules. 1 second default often fails RB #4025
  • Improve stderr handling for ProcessManager.get_subprocess_output(). RB #4019
  • Add AnnotatedParallelClassesAndMethodsTest* and AnnotatedParallelMethodsTest* RB #4027

1.1.0-pre6 (06/24/2016)

This is the seventh 1.1.0-pre release on the way to the 1.1.0 stable branch. It bumps the version of the JUnit runner and is highlighted by a new hybrid engine.

New Features

  • Create a hybrid optionally async engine. RB #3897

API Changes

  • Ability to filter list options. RB #3997
  • Add an :API: public exception for abstract members. RB #3968

Bugfixes

  • When source fields are strings, not collections, raise an error; Test deferred sources addresses error RB #3970
  • Report JUnit tests with failing assumptions as skipped tests RB #4010

New Engine Work

  • [engine] refine exception output RB #3992
  • [engine] Fix imports of classes that moved from fs to project_tree RB #4005
  • [engine] Use scandir, and preserve symlink paths in output RB #3991

Refactoring, Improvements, and Tooling

1.1.0-pre5 (06/10/2016)

This is the sixth 1.1.0-pre release on the way to the 1.1.0 stable branch.

API Changes

  • Remove docgen from list of default packages, don't deprecate the --default-backend-packages option. RB #3972 RB #3988
  • Delete the spindle-plugin from contrib. RB #3990

Bugfixes

New Engine Work

Refactoring, Improvements, and Tooling

  • Use the z.jar files on the zinc classpath instead of the destination directory of the class files. RB #3955 RB #3982
  • logs kill server info when creating server RB #3983
  • Add format to mustache filenames RB #3976
  • Support for transitioning to making all backends opt-in. RB #3972
  • dep-usage: create edge only for those direct or transitive dependencies. RB #3978

1.1.0-pre4 (06/03/2016)

This is the fifth 1.1.0-pre release on the way to the 1.1.0 stable branch

API Changes

New Features

  • Introducing target aliases in BUILD files. RB #3939
  • Add JUnit HTML report to the JUnit runner RB #3958
  • Add FindBugs plugin to released plugins RB #3909

Bugfixes

  • Fix an issue introduced in go resolve refactoring RB #3963
  • Fix unicode string on stdout causing taskerror RB #3944

New Engine Work

  • [engine] Don't compute a cache key for things we aren't going to cache RB #3971
  • [engine] Repair scope binding issue in BUILD parsing. RB #3969
  • [engine] Fix support for TargetMacros in the new parser, and support default names RB #3966
  • [engine] Make follow_links kwarg to globs non-fatal. RB #3964
  • [engine] Directly use entries while scheduling RB #3953
  • [engine] Optionally inline inlineable Nodes RB #3931
  • [engine] skip hanging multiprocess engine tests RB #3940 RB #3941
  • [engine] clean up non in-memory storage usage, only needed for LocalMultiprocessEngine RB #3940

Refactoring, Improvements, and Tooling

  • Update jdk paths reference in jvm_projects documentation RB #3942
  • Make JvmAppAdaptor compatible with bare bundle() form. RB #3965
  • Update junit-runner to version 1.0.9 and test new experimental runner logic RB #3925
  • Make BaseGlobs.from_sources_field() work for sets and strings. RB #3961
  • Advance JVM bundle options, and enable them in jvm_app target as well RB #3910
  • Rename PARALLEL_BOTH to PARALLEL_CLASSES_AND_METHODS inside JUnit Runner RB #3925 RB #3962
  • Resolve backends before plugins RB #3909 RB #3950
  • Update contributors.sh script not to count publish commits RB #3946
  • Don't fail running virtualenv inside of a git hook RB #3945
  • Prepare 1.0.1 RB #3960
  • During releases, only publish the docsite from master RB #3956
  • Decode Watchman file event filenames to UTF-8. RB #3951
  • Bump pex requirement to 1.1.10. Issue #265 RB #3949
  • Refactor and simplify go fetcher code. Issue #3439 Issue #3427 Issue #2018 RB #3902

1.1.0-pre3 (05/27/2016)

This is the fourth 1.1.0-pre release on the way to the 1.1.0 stable branch

Bugfixes

  • Fix hardcoded pants ignore from 'dist/' to '/rel_distdir/'. Use pants_ignore: +[...] in pants.ini RB #3927

New Engine Work

  • Robustify pantsd + watchman integration tests. RB #3912
  • Add an --enable-engine flag to leverage the v2 engine-backed LegacyBuildGraph without pantsd. RB #3932
  • Adds in the experimental test runner RB #3921
  • Flush out some bugs with the 'parallel methods' running in the legacy runner. RB #3922

Refactoring, Improvements, and Tooling

  • Adding a special '$JAVA_HOME' symbol for use in jvm platforms args. RB #3924
  • Defaulting to Node 6.2.0 Issue #3478 RB #3918
  • Add documentation on deploy_jar_rules for Maven experts RB #3937
  • Bump pex requirement to pex==1.1.9. RB #3935

1.1.0-pre2 (05/21/2016)

This is the third 1.1.0-pre release on the way to the 1.1.0 stable branch.

API Changes

  • Deprecate ambiguous options scope name components. RB #3893

New Features

  • Make NodeTest task use the TestRunnerTaskMixin to support timeouts Issue #3453 RB #3870
  • Support Scrooge generation of additional languages. RB #3823

Bugfixes

  • Adding product dependency for NodeResolve/NodeTest RB #3870 RB #3906
  • Make pinger.py work with both HTTP and HTTPS. RB #3904
  • Fix the release script to include pre releases in the version match RB #3903
  • Fix UnicodeDecodeError in pailgun when unicode is present in environment. RB #3915

Refactoring, Improvements, and Tooling

  • Split release notes by release branch RB #3890 RB #3907
  • Update the release strategy docs RB #3890
  • Bump junit-runner to 1.0.7 to pick up previous changes RB #3908
  • junit-runner: Separate out parsing specs from making list of requests RB #3846
  • New Google Analytics tracking code for www.pantsbuild.org. RB #3917

New Engine Work

  • [engine] yield only addresses associated with target specs, so list goal will work RB #3873

1.1.0-pre1 (05/17/2016)

This is the second 1.1.0-pre release on the way to the 1.1.0 stable branch.

It adds support for JDK8 javac plugins to the core, adds a Java FindBugs module to contrib, and improves the convenience of dict typed options.

API Changes

  • Add 'transitive' and 'scope' attributes to export of target RB #3845
  • Remove deprecated check_published_deps goal RB #3893 RB #3894

New Features

  • Allow updating dict option values instead of replacing them. RB #3896
  • Add FindBugs plugin to contrib RB #3847
  • Implement options scope name deprecation. RB #3884
  • Find custom jar manifests in added directories. RB #3886
  • Support for javac plugins. RB #3839
  • Making the permissions of the local artifact cache configurable. RB #3869

Bugfixes

  • Fix GoFetch and test. RB #3888
  • Fix SourceRoots.all_roots to respect fixed roots. RB #3881
  • Skip test_pantsd_run_with_watchman on OSX. RB #3874
  • PrepCommandIntegration handles parallel runs. RB #3864

Refactoring, Improvements, and Tooling

  • Link the Go doc to the site toc. RB #3891
  • Make pants a good example of Go contrib usage. RB #3889
  • Add a command line option for meta tag resolution RB #3882
  • Add a note about fixing PANTS_VERSION mismatch. RB #3887
  • Add a Go Plugin README. RB #3866
  • Add the start of a Jenkins runbook. RB #3871
  • Update packer docs to include canary process. RB #3862
  • Move thrift language/rpc validation to codegen implementations RB #3823 RB #3876
  • Enhance options scope deprecation test. RB #3901

New Engine Work

  • [engine] Use the appropriate BaseGlobs subclass for excludes RB #3875
  • [engine] Avoid indexing on LegacyBuildGraph.reset(). RB #3868
  • [engine] Add a pantsd.ini for development use of the daemon + watchman + buildgraph caching. RB #3859
  • [engine] Fix bundle handling RB #3860

1.1.0-pre0 (05/09/2016)

The 1.1.0-preN releases start here.

Pants is building to the 1.1.0 release candidates and is N releases towards that milestone.

This release has several changes to tooling, lots of documentation updates, and some minor api changes.

API Changes

  • Add 'transitve' and 'scope' attributes to export of target RB #3582 RB #3845
  • Add Support for "exclude" to globs in BUILD files RB #3828
  • Add support for pants-ignore to ProjectTree RB #3698
  • New -default-concurrency parameter to junit-runner RB #3707 RB #3753
  • Make :API: public types useable. RB #3752
  • Add public API markers to targets and base tasks used by plugins. RB #3746
  • De-publicize a FAPP private method. RB #3750

New Features

Bugfixes

  • Use JarBuilder to build jars. RB #3851
  • Ensure DistributionLocator is _reset after tests. RB #3832
  • Handle values for list options that end with quotes RB #3813
  • Addresses should not equal things that are not addresses. RB #3791
  • Add transitive dep required by javac 8. RB #3808
  • Fix distribution tests in the face of many javas. RB #3778
  • Fixup PEP8Error to carry lines. RB #3647 RB #3806
  • Use NailgunTask's Java distribution consistently. RB #3793
  • The thrift dep is indirect but required under JDK8. RB #3787
  • Fix relative path in publish script. RB #3789
  • Remove a failing test for deleted functionality. RB #3783
  • Fixup PythonChrootTest.test_thrift_issues_2005. RB #3774
  • Fix JDK 8 javadoc errors. RB #3773
  • Fix DIST_ROOT trample in test_distribution.py. RB #3747
  • Skip flaky pytest timeout failure ITs. RB #3748

Refactoring, Improvements, and Tooling

  • Convert from JNLP to ssh. RB #3855
  • Skip test_pantsd_run_with_watchman on Linux. RB #3853
  • Fixup jenkins-slave-connect.service pre-reqs. RB #3849
  • Expose JENKINS_LABELS to slaves. RB #3844
  • Move node info to a script. RB #3842
  • Retry git operations up to 2 times. RB #3841
  • Add instance debug data to shard output. RB #3837
  • Improve jenkins-slave-connect.service robustness. RB #3836
  • Use env and pwd() to get rid of $ escaping. RB #3835
  • Improve the packer docs. RB #3834
  • Isolate Jenkins CI ivy caches. RB #3829
  • Comment on release concurrency in the docs RB #3827
  • Update plugin doc. RB #3811
  • Use packer to create the jenkins linux slave AMI. RB #3825
  • Upgrade cloc to 1.66. RB #3820
  • Add an explicit legal exception to deprecation policy RB #3809
  • Add a Jenkins2.0 CI configuration. RB #3799
  • Scrooge gen: Cache resolved scrooge deps RB #3790
  • Front Page update RB #3807
  • remove 'staging' url from 1.0 release
  • Fix various hardwired links to point to pantsbuild.org. RB #3805
  • Push the docsite to benjyw.github.io as well as pantsbuild.github.io. RB #3802
  • Add -L to allow curl to redirect in case we decide to move website later RB #3804
  • Merge back in some content from the options page RB #3767 RB #3795
  • Update the community page RB #3801
  • Updates for documentation followon from Radical site redesign RB #3794
  • Use a set for the contains check in topo order path for invalidation RB #3786
  • Rework ScalaPlatform. RB #3779
  • Pants 1.0 Release announcement RB #3781
  • Revisit the 'Why Use Pants' doc RB #3788
  • Move src/python/pants/docs to src/docs. RB #3782
  • Adding managed_jar_dependencies docs to 3rdparty_jvm.md. RB #3776
  • Radical makeover of docsite. RB #3767
  • Add changelog items from 1.0.x branch RB #3772
  • Upgrade to pex 1.1.6. RB #3768
  • convert RequestException into a more standard NonfatalArtifactCacheError RB #3754
  • [docs] Remove setup difficulty caveat, and highlight install script RB #3764
  • add JUnit XML tests for a TestSuite and a Parameterized Test RB #3758
  • Adding Grapeshot to the Powered by page, approved by Katie Lucas of Grapeshot RB #3760
  • Upgrade default go from 1.6.1 to 1.6.2. RB #3755
  • Upgrade to pex 1.1.5. RB #3743

New Engine Work

  • [engine] Don't cycle-detect into completed Nodes RB #3848
  • Migrate pants.engine.exp to pants.engine.v2. RB #3798 RB #3800
  • [pantsd] Build graph caching via v2 engine integration. RB #3798
  • [engine] Walk references in the ProductGraph RB #3803
  • [engine] Add support for collection wrapping a class RB #3769
  • [engine] Simplify ProductGraph.walk RB #3792
  • [engine] Make ScmProjectTree pickable and fix most GitFSTest tests Issue #3281 RB #3770
  • [engine] bug fix: to pickle/unpickle within the proper context RB #3751 RB #3761
  • [engine] Support for synthetic target injection RB #3738

1.0.0-rc1 (04/22/2016)

This release has several changes related to documentation, CI fixes and work in preparation for the 1.0 release.

  • CI work to enable us to move to jenkins
  • Documentation leading up to 1.0
  • Engine work around handling of symlinks
  • Set a global -Xmx default for JVMs
  • improve cache hit rate with eager caching of zinc
  • Add public api markers RB #3727
  • Fix public API markers based on feedback RB #3442 RB #3718

Bugfixes

  • A few fixes to config path computation, esp. in tests. RB #3709
  • Fix built-in graph_info backend BUILD deps. RB #3726
  • Improve android install robustness. RB #3725
  • Fix jvm_app fingerprinting for bundles with non-existing files. RB #3654
  • Fix PEP8Error Nit subclass line_range. RB #3714
  • Fix import order issue.
  • Some fixes to make tests more robust around jvm_options. RB #3706
  • Fix a typo that caused problems with REPL in custom scala RB #3703
  • Fix ProgressListener % progress. RB #) RB #3712

Refactoring, Improvements, and Tooling

  • Write artifacts to the cache when vt.update() is called. RB #3722
  • Bump the open file ulimit on OSX. RB #3733
  • Skip intermittently failing test_multiprocess_engine_multi. RB #3731
  • Doc running pants from sources in other repos. RB #3715
  • Add quiz-up to the powered by page RB #3732
  • Point Node preinstalled-project at a better URL. RB #3710
  • Show details in the builddict. RB #3708
  • Add the Phabricator .arcconfig file. RB #3728
  • Use requests/Fetcher to fetch Node pre-installed's. RB #3711
Add --bootstrap-ivy-settings option
RB #3700
  • Prioritize command line option error and add ConfigValidationError for option error differentiation. RB #3721
  • Set a global -Xmx default for JVMs RB #3705
  • Enforce that an option name isn't registered twice in a scope. Issue #3200) RB #3695

New Engine Work

0.0.82 (04/15/2016)

This release has several changes to tooling, bugfixes relating to symlinks, and some minor api changes.

  • Downgraded the version of pex to fix a bug.
  • Upgraded the version of zinc to fix a bug.
  • Added "preferred_jvm_distributions" to the pants export data, deprecating "jvm_distributions". This way the IntelliJ plugin (and other tooling) can easily configure the project sdk that pants is actually using.
  • Changed some option defaults for jvm_compile, zinc_compile, and the --ignore-patterns global option.

API Changes

  • Export preferred_jvm_distributions that pants actually uses (and to deprecate jvm_distributions) RB #3680
  • Change some option defaults. RB #3678

Bugfixes

  • Use the latest zinc release in order to pick up the canonical path fix. RB #3692 RB #3693
  • [zinc] Record the canonical path that was fingerprinted, rather than the input path RB #3692
  • Resolve symlinks when generating sdists. RB #3689
  • Downgrade pex to 2.1.2 Issue #226 RB #3687

Refactoring, Improvements, and Tooling

  • Have all JvmToolMixins share the same --jvm-options option registration. RB #3684
  • Upgrade default go from 1.6 to 1.6.1. RB #3686
  • Remove unused config_section from codegen tasks. RB #3683
  • Add duration pytest option to pants.travis-ci.ini RB #3662

New Engine Work

  • [engine] Limit matches for FilesystemNode to only cases where lhs/rhs match Issue #3117 RB #3688

0.0.81 (04/10/2016)

This release is primarily minor internal and engine improvements.

  • The pants workspace lock has been renamed. If you've been having issues with deadlocks after switching back and forth between old and new versions of pants, this release should fix that and remain backward compatible.
  • Because of the lock rename, ensure that .pants.workdir.file_lock and .pants.workdir.file_lock.lock_message are ignored by your SCM (e.g. in .gitignore).
  • The junit option --suppress-output has been removed following a deprecation cycle. Use --output-mode instead.
  • Several internal ivy utility methods have been removed following a deprecation cycle.

API Changes

  • Add Public API markers for ivy and java APIs RB #3655
  • Set public API markers for codegen RB #3648

Bugfixes

  • [CI] Skip hanging engine test. RB #3653
  • Fix #3132: ./pants changed doesn't fail on changed invalid BUILD files RB #3646

New Features

Refactoring, Improvements, and Tooling

  • Remove ivy utils deprecated methods and update test RB #3675
  • Scrub some old migration code. RB #3672
  • Rename the global lock from pants.run to pants.workdir.file_lock RB #3633 RB #3668
  • Deprecate action='store_true'/'store_false' options. RB #3667
  • Give a hint on how to disable the Invalid config entries detected message RB #3642
  • Mark an integration test as such. RB #3659
  • Replace all action='store_true' options with type=bool. RB #3661
  • minor: fix bundle deployjar help RB #3133 RB #3663
  • pythonstyle: Fix suppression support; improve SyntaxError reporting; Only report each nit once RB #3647
  • Import zincutils RB #3657
  • Squelch message from scm RB #3645
  • Skip generating reports for empty resolves RB #3625
  • Export manifest jar for external junit run RB #3626

New Engine Work

0.0.80 (04/01/2016)

This release brings scopes for jvm dependencies. Proper documentation has not been added yet, but check out the review description for more info: https://rbcommons.com/s/twitter/r/3582

The following deprecated items were removed:

Options:

  • --scala-platform-runtime: Option is no longer used, --version is used to specify the major version. The runtime is created based on major version. The runtime target will be defined at the address //:scala-library unless it is overriden by the option --runtime-spec and a --version is set to custom.
  • --spec-excludes: Use --ignore-patterns instead. Use .gitignore syntax for each item, to simulate old behavior prefix each item with "/".
  • PANTS_DEFAULT_*: Use PANTS_GLOBAL_* instead of PANTS_DEFAULT_*

BUILD Files:

  • python_requirement(..., version_filter): The version_filter argument has been removed with no replacement.

API Changes

  • Process 0.0.80 deprecation removals. RB #3639
  • Delete the Haskell contrib package. RB #3631

Bugfixes

  • Add OwnerPrintingInterProcessFileLock and replace OwnerPrintingPIDLockFile. RB #3633
  • Fix literal credentials RB #3624
  • Remove defaults for custom scala tools. RB #3609
  • Fix some bad three-state logic in thrift_linter. RB #3621
  • stop adding test support classes to junit failure report RB #3620

New Features

  • Support options with type=bool. RB #3623
  • Cache dep-usage.jvm results and provide ability to use cached results in analysis summary RB #3612
  • Implementing scoped dependencies and classpath intransitivity. RB #3582

Refactoring, Improvements, and Tooling

  • Speed up node repl integration test by using smaller targets RB #3584

New Engine Work

  • [pantsd] Map filesystem events to ProductGraph invalidation. RB #3629
  • [engine] Move GraphValidator to examples and make scheduler optionally take a validator. RB #3608
  • [engine] Package cleanup: round one RB #3622
  • [engine] Content address node and state only in engine Issue #3070 RB #3597 RB #3615

0.0.79 (03/26/2016)

This is the regularly scheduled release that would have been 0.0.78. Due to an upload issue and a desire for immutable versions, the 0.0.78 version number was skipped: all deprecations have been extended by one release to account for that.

Bugfixes

  • Only mark a build incremental if it is successfully cloned RB #3613
  • Avoid pathological regex performance when linkifying large ivy output. RB #3603
  • Convert ivy lock to use OwnerPrintingPIDLockFile RB #3598
  • Fix errors due to iterating over None-types in ivy resolve. RB #3596
  • Do not return directories from BUILD file's globs implementation RB #3590
  • Fix unicode parsing of ini files. RB #3595
  • Fix 'compute_hashes' for 'Page' target type RB #3591
  • Fix globs for empty SourcesField RB #3614

New Features

  • Validate command line options regardless whether goals use them. RB #3594

Refactoring, Improvements, and Tooling

  • Verify config by default. RB #3636
  • Fix, document, or mark xfail tests that fail in Jenkins. RB #3632
  • Allow a period in a namedver for publishing RB #3611
  • Bump the junit runner release to 1.0.4 to pick up latest code changes RB #3599
  • Re-add the ConsoleRunnerOutputTests and consolodate them into ConsoleRunnerTest, also move test clases used for testing into junit/lib directory RB #2406 RB #3588
  • Add the Android SDK to the linux CI and turn on Android tests. RB #3538
  • Update pyflakes to 1.1.0, enable pyflakes checks and fix all warnings RB #3601

New Engine Work

0.0.77 (03/18/2016)

Bugfixes

New Features

  • Report @Ignore tests in xml reports from JUnit and create report for tests that fail in initialization RB #3571
  • Record the compile classpath used to compile jvm targets. RB #3576
  • Add ignore option to pyflakes check RB #3569
  • Prepare for a global --shard flag. RB #3560

Refactoring, Improvements, and Tooling

New Engine Work

  • [engine] Introduce ProductGraph invalidation. RB #3578
  • [engine] skip caching for native nodes RB #3581
  • [engine] More pickle cleanups RB #3577
  • [engine] cache StepResult under StepRequest RB #3494
  • [engine] turn off pickle memoization Issue #2969 RB #3574
  • [engine] Add support for directory matches to PathGlobs, and use for inference RB #3567

0.0.76 (03/11/2016)

This release features:

  • The removal of the --fail-slow option to pytest. This is now the default, use --fail-fast for the opposite behavior.
  • Moving the Android backend into contrib.
  • Support for a special append syntax for list options: +=.
  • Tightening up of some aspects of option type conversion. There may be options in plugins that were relying on broken behavior (such as when using a string where an int was expected), and that will now (correctly) break.
  • Deprecation of the PANTS_DEFAULT_* env vars in favor of PANTS_GLOBAL_*.
  • Lots of engine work.
  • A fix to task implementation versions so that bumping the task version will also invalidate artifacts it produced (not just invalidate .pants.d entries).

API Changes

  • Move Android into contrib and remove android special-casing. RB #3530 RB #3531

New Features

  • Reimplement list options to support appending. RB #3541
  • Initial round of pantsd + new engine + watchman integration. RB #3524

Refactoring, Improvements, and Tooling

  • Adds support for golang meta info for imports Issue #2378 RB #3443
  • Update export TODO to point to the relevant intellij-plugin issue; rm ref to non-existent option RB #3558
  • Use the task implementation version in the fingerprint of a task, to cause cache invalidation for TaskIdentityFingerprintStrategy. RB #3546
  • Deprecate version_filter from python_requirement RB #3545
  • Add _copy_target_attributes implementation to antlr RB #3352 RB #3402 RB #3547
  • Make synthetic jar_library targets dependencies of android_binary. RB #3526

New Engine Work

  • [engine] Move storage out of scheduler to engine RB #3554
  • [engine] Add native filesystem node type. RB #3550
  • [engine] Implement support for recursive path globs RB #3540
  • [engine] Extract scheduler test setup to a helper RB #3548
  • [bugfix] Properly opt out of zinc's fingerprinting of Resources. RB #3185
  • [engine] switch content addressable storage from dict to a embedded db RB #3517

0.0.75 (03/07/2016)

This release completes the deprecation cycle for several options:

  • --scala-platform-runtime: The --scala-platform-version is now used to configure the scala runtime lib.
  • --use-old-naming-style for the export-classpath goal: The old naming style is no longer supported.
  • --spec-excludes: Use --ignore-patterns instead.

API Changes

  • Remove deprecated code planned to remove in 0.0.74 and 0.0.75 versions RB #3527

Bugfixes

  • Lock ivy resolution based on the cache directory being used. RB #3529
  • Fix an issue where ivy-bootstrap is ignoring http proxy setttings RB #3522
  • Clone jars rather than mutating them during ivy resolve RB #3203

New Features

  • allow list-owners to accept multiple source files and output JSON RB #2755 RB #3534
  • add JSON output-format option to dependees RB #3534 RB #3536
  • Allow running prep_commands in goals other than test RB #3519
  • When using ./pants options, hide options from super-scopes. RB #3528
  • zinc: optionize fatal-warnings compiler args RB #3509
  • An option to set the location of config files. RB #3500

Refactoring, Improvements, and Tooling

  • Fix failing test on CI after 'Remove deprecated code planned to remove in 0.0.74 and 0.0.75 versions' change RB #3527 RB #3533
  • Set public API markers for task and util RB #3520
  • Set public api markers for jvm backend RB #3515
  • pythonstyle perf: dont parse the exclusions file for every source file. RB #3518
  • Extract a BuildGraph interface Issue #2979 RB #3514
  • increase compile.zinc integration test timeout RB #3507
  • fix zinc testing instructions RB #3513

New Engine Work

  • [engine] Implement the BuildGraph interface via the engine RB #3516

0.0.74 (02/27/2016)

This release changes how pants detects the buildroot from using the location of a 'pants.ini' file, to using the location of a file named 'pants' (usually the name of the pants executable script at the root of a repo). This is in service of allowing for zero-or-more pants.ini/config files in the future.

Additionally, there is now support for validating that all options defined in a pants.ini file are valid options. Passing or configuring '--verify-config' will trigger this validation. To allow global options to be verified, a new [GLOBAL] section is now the recommend place to specify global options. This differentiates them from [DEFAULT] options, which may be used as template values in other config sections, and thus cannot be verified.

API Changes

  • Set public api markers for jvm tasks RB #3499
  • Change how we detect the buildroot. RB #3489
  • Add public api markers for core_tasks RB #3490
  • Add [GLOBAL] in pants.ini for pants global options; Add config file validations against options RB #3475
  • Add public api markers for pantsd and options RB #3484

Bugfixes

  • Allow for running the invalidation report when clean-all is on the command line RB #3503
  • Enable fail-fast for pytest so it works like fail-fast for junit RB #3497
  • Reset Subsystems when creating a new context in tests RB #3496
  • Set timeout for the long running 'testprojects' integration test RB #3491

New Features

  • Java checkstyle will optionally not include the runtime classpath with checkstyle RB #3487
  • Error out on duplicate artifacts for jar publish. RB #3481

Refactoring, Improvements, and Tooling

  • Change ivy resolve ordering to attempt load first and fall back to full resolve if load fails. RB #3501
  • Clean up extraneous code in jvm_compile. RB #3504
  • Retrieve jars from IvyInfo using a collection of coordinates instead of jar_library targets. RB #3495
  • Document the 'timeout' parameter to junit_tests and python_tests RB #3492
  • When a timeout triggers, first do SIGTERM, then wait a bit, and then do SIGKILL RB #3479

New Engine Work

0.0.73 (02/19/2016)

This release features more formal public API docstrings for many modules and classes.

API Changes

Bugfixes

  • Add styleguide to docs RB #3456
  • Remove unused kwarg, locally_changed_targets, from Task.invalidated RB #3467
  • support searching multiple linux java dist dirs RB #3472
  • Separate cli spec parsing from filesystem walking RB #3466

New Features

  • Allow for random build ordering RB #3462

Refactoring, Improvements, and Tooling

  • Bump junit runner and jar tool versions to newly published RB #3477
  • Add Foursquare's Fsq.io to the "Powered By" page. RB #3323
  • Upgrade default go to 1.6. RB #3476
  • Remove unused partitioning support in cache and invalidation support RB #3467 RB #3474

New Engine Work

0.0.72 (02/16/2016)

This release concludes the deprecation cycle for the old API for scanning BUILD files.

The following classes were removed:

  • FilesystemBuildFile (Create BuildFile with IoFilesystem instead.)
  • ScmBuildFile (Create BuildFile with ScmFilesystem instead.)

The following methods were removed:

  • BuildFile.scan_buildfiles (Use BuildFile.scan_build_files instead.)
  • BuildFile.from_cache
  • BuildFile.file_exists
  • BuildFile.descendants
  • BuildFile.ancestors
  • BuildFile.siblings
  • BuildFile.family (Use get_build_files_family instead.)
  • BuildFileAddressMapper.from_cache
  • BuildFileAddressMapper.scan_buildfiles
  • BuildFileAddressMapper.address_map_from_build_file (Use address_map_from_build_files instead.)
  • BuildFileAddressMapper.parse_build_file_family (Use parse_build_files instead.)

This release features formal public API docstrings for many modules and classes. It also includes many bugfixes and minor improvements.

API Changes

  • Add public api markers to the following: RB #3453
  • add public api markers to several modules RB #3442
  • add public api markers RB #3440

Bugfixes

  • Fix ./pants list without arguments output RB #3464
  • jar-tool properly skipping Manifest file using entry's jarPath RB #3437
  • fix pathdeps for synthetic targets. RB #3454
  • Add param to fingerprint_strategy __eq__ RB #3446
  • Increase resolution from .1 second to 1 second RB #3311
  • Fix build break due to missing whitespace
  • Fix linkify for relative paths pointing outside the buildroot RB #3441

New Features

  • Options goal to show only functioning options instead of all. RB #3455

Refactoring, Improvements, and Tooling

  • Skip hashing in ivy fingerprint strategy if target doesn't need fingerprinting RB #3447
  • Add 'Deprecation Policy' docs for 1.0.0. RB #3457
  • Remove dead code RB #3454 RB #3461
  • Clean up stale builds in .pants.d RB #2506 RB #3444
  • Adding a newline symbol for unary shading rules. RB #3452
  • Make IvyTaskMixin.ivy_resolve private, introduce ivy_classpath; clean up some ivy resolve tests RB #3450
  • Move namedtuple declarations out of IvyUtils._generate_jar_template RB #3451
  • Adjust type comment for targets param in JarDependencyManagement.targets_by_artifact_set RB #3449
  • Only invalidate haskell-project targets. RB #3445
  • Polishing --ignore-patterns change RB #3438

New Engine Work

  • [engine] Minor import cleanups RB #3458

0.0.71 (02/05/2016)

This release is primarily comprised of bugfixes, although there was also removal of support for the deprecated --use-old-naming-style flag for the export-classpath goal.

If you use pants with custom plugins you've developed, you should be interested in the first appearance of a means of communicating the public APIs you can rely on. You can read https://rbcommons.com/s/twitter/r/3417 to get a peek at what's to come.

API Changes

  • Remove deprecated --use-old-naming-style flag. RB #3427

Bugfixes

  • bug fix: remove duplicate 3rdparty jars in the bundle RB #3329 RB #3412
  • Fix __metaclass__ T605:WARNING. RB #3424
  • Retain file permissions when shading monolithic jars. RB #3420
  • Bump jarjar. The new version is faster and fixes a bug. RB #3405
  • If the junit output file doesn't exist, it should still count as an error on the target RB #3407
  • When a python test fails outside of a function, the resultslog message is just [EF] file.py, without the double-colons RB #3397
  • Fix "ValueError: too many values to unpack" when parsing interpreter versions. RB #3411
  • Update how_to_develop.md's examples RB #3408
  • bug fix: is_app filter not applied when using wildcard RB #3272 RB #3398
  • Add validations to jvm_app bundles; Fix typo in BundleProps construction; fix relative globs RB #3396
  • Add process-level buildroot validation to NailgunExecutor. RB #3393
  • Adding support for multiline param help descriptions in Pants BUILD Dictionary RB #3399

New Features

  • Cleaning up jarjar rules, and adding support for keep and zap. RB #3428
  • Introduce ignore_patterns option RB #3414

Refactoring, Improvements, and Tooling

  • Fix bad test target deps. RB #3425
  • add public api markers RB #3417
  • Attempt a fix for flaky zinc compile failures under Travis-CI. RB #3413 RB #3426
  • Cleanup: rename ivy_resolve kwarg custom_args to extra_args; move / rm unnecessary conf or defaults; rm unnecessary extra_args RB #3416
  • Use one zinc worker per core by default. RB #3413
  • Add sublime text project/workspace extensions to pants .gitignore. RB #3409
  • Refactor IvyTaskMixin's ivy_resolve and functions it depends on RB #3371

New Engine Work

  • [engine] Implement BUILD file parsing inside the engine RB #3377

0.0.70 (01/29/2016)

This release contains a few big steps towards 1.0.0! The last known issues with build caching are fixed, so this release enables using a local build cache by default. The release also includes 'task implementation versioning', so that cached artifacts will automatically be invalidated as the implementations of Tasks change between pants releases.

API Changes

  • Improve deprecated option handling to allow options hinting beyond deprecation version. RB #3369
  • Remove the need to specify scalastyle in BUILD.tools RB #3355
  • Bumping Node to 5.5.0 RB #3366

Bugfixes

  • Don't error in export when a target does not have an alias RB #3379 RB #3383
  • Permits creation of StatsDB in a directory that does not yet exist. RB #3384
  • Don't skip writing <artifact>s to ivy.xml even if there's only one. RB #3388
  • Add and use an invalidation-local use_cache setting in IvyTaskMixin RB #3386

New Features

  • Enable releasing the scalajs plugin RB #3340
  • Allow failover for remote cache RB #3374
  • Enable local caching by default, but disable within pantsbuild/pants. RB #3391
  • Improved task implementation version RB #3331 RB #3381
  • Multiple dependency_managements with multiple ivy resolves. RB #3336 RB #3367
  • A managed_jar_libraries factory to reduce 3rdparty duplication. RB #3372
  • Add support for go_thrift_library(). RB #3353 RB #3365

Refactoring, Improvements, and Tooling

  • Add a command line option to turn off prompting before publishing RB #3387
  • Update help message for failed publishing RB #3385
  • Add is_synthetic in pants export RB #3239
  • BuildFile refactoring: rename scan_project_tree_build_files to scan_build_files, get_project_tree_build_files_family to get_build_files_family RB #3382
  • BuildFile refactoring: add more constraints to BuildFile constructor RB #3376
  • BuildFile refactoring: remove usages and deprecate of BuildFile's family, ancestors, siblings and descendants methods RB #3368
  • build_file_alias Perf Improvement: Move class declaration out of method target_macro RB #3361

New Engine Work

  • [engine] Eager execution and fully declarative dependencies RB #3339

0.0.69 (01/22/2016)

Release Notes

This release contains the new managed_dependencies() target which allows you to pin the versions of transitive dependencies on jvm artifacts. This is equivalent to the <dependencyManagement> feature in Maven.

Bugfixes

New Features

  • First pass at dependency management implementation. RB #3336

Small improvements, Refactoring and Tooling

  • SimpleCodegenTask: Add copy_target_attributes RB #3352
  • Make more glob usages lazy; Pass FilesetWithSpec through source field validation, Make BundleProps.filemap lazy RB #3344
  • Update the docs for the ./pants bash-completion script RB #3349

New Engine Work

  • [engine] Move dependencies onto configuration RB #3316

0.0.68 (01/15/2016)

Release Notes

This release concludes the deprecation cycle for backend/core, which has been removed. It also simplifies the output directories for internal and external jars when creating jvm bundles.

API Changes

  • bundle_create cleanup: merge internal-libs and libs RB #3261 RB #3329
  • Get rid of backend/authentication. RB #3335
  • Kill the build.manual annotation and the old source_roots.py. RB #3333
  • Remove backend core. RB #3324
  • Add a method call to allow adding a new goal to jvm_prep_command in a custom plugin RB #3325
  • add --jvm-distributions-{min,max}imum-version options Issue #2396 RB #3310

Bugfixes

New Features

  • Support go test blackbox tests. RB #3327

Small improvements, Refactoring and Tooling

  • Group classpath products by their targets RB #3329 RB #3338
  • Improve test.pytest failure when coverage is enabled. RB #3334
  • Add RecursiveVersion and tests RB #3331
  • Bump the default Go distribution to 1.5.3. RB #3337
  • Fixup links in Test{Parallel,Serial}. RB #3326
  • Follow-up options/documentation changes after scala removed from BUILD.tools RB #3302

0.0.67 (01/08/2016)

Release Notes

This release brings an upgrade to pex 1.1.2 for faster python chroot generation as well as bug fixes that get ./pants repl working for scala 2.11 and ./pants test now handling exceptions in junit @BeforeClass methods.

There is also a glimpse into the future where a pants daemon awaits. Try it out by adding --enable-pantsd to your command line - run times are 100ms or so faster for many operations.

API Changes

Bugfixes

  • Turn on redirects when retrieving a URL in the fetcher API RB #3275 RB #3317
  • Remove jline dep for scala 2.11 repl RB #3318
  • Start the timeout after the process is spawned, drop the mutable process handler variable RB #3202
  • Fix exception in test mechanism in case of exception in @BeforeClass method. RB #3293

New Features

  • New implementation of builddict/reference generation. RB #3315
  • Save details on exceptions encountered to a file RB #3289
  • [pantsd] Implement PantsRunner->[LocalPantsRunner,RemotePantsRunner] et al. RB #3286

Small improvements, Refactoring and Tooling

  • Logs the SUCCESS/FAILURE/ABORTED status of each workunit with stats in run_tracker. RB #3307
  • Simplify build dict/reference information extraction. RB #3301
  • Move Sources to a target's configurations, and add subclasses for each language RB #3274
  • Convert loose directories in bundle classpath into jars RB #3297
  • Update pinger timeout in test_pinger_timeout_config and test_global_pinger_memo. RB #3292
  • Add sanity check to test_cache_read_from RB #3284 RB #3299
  • Adding sanity check for locale setting RB #3296
  • Create a complete product graph for the experimentation engine, and use it to validate inputs Issue #2525 RB #3245
  • Add Unit Test for artifact caching to replace test_scalastyle_cached in test_scalastyle_integration.py, and test_checkstyle_cached in test_checkstyle_integration.py. RB #3284

0.0.66 (01/02/2016)

Release Notes

This release comes after a long and relatively quiet holiday break, but it represents a significant milestone towards pants 1.0.0: it is no longer necessary to explicitly configure any tool versions (as was usually done with BUILD.tools); all tools, including scalac, have default classpaths.

This release also includes beta support for scala.js via the scalajs contrib module.

Happy Holidays!

API Changes

  • Have SourcesField handle the calculation of SourceRoots RB #3230
  • Remove the need to specify scala tools in BUILD.tools RB #3225
  • Explicitly track when synthetic targets are injected. RB #3225 RB #3277

Bugfixes

  • Fix declaration of source scalac-plugins RB #3285
  • Work around the fact that antlr3 is not currently available on pypi RB #3282
  • Avoid ValueError exception from a reporting thread on shutdown RB #3278

New Features

  • Preliminary support for scala.js RB #2453

Small improvements, Refactoring and Tooling

  • Convert binary_util to use fetcher like the ivy bootstrapper RB #3275

0.0.65 (12/18/2015)

Release Notes

This release concludes the deprecation cycle of the following items, now removed:

  • --excludes to DuplicateDetector. Use --exclude-files, --exclude-patterns, or --exclude-dirs instead.
  • timeout=0 on test targets. To use the default timeout, remove the timeout parameter from your test target.

API Changes

  • prefer explicit jvm locations over internal heuristics RB #3231
  • A graph_info backend. RB #3256
  • Move registration of basic build file constructs. RB #3246

Bugfixes

  • Fixup GoFetch to respect transitive injections. RB #3270
  • Make jvm_compile's subsystem dependencies global to fix ignored options Issue #2739 RB #3238

New Features

  • Go Checkstyle: run checkstyle, add tests, fix examples RB #3223

Small improvements, Refactoring and Tooling

  • Go: Allow users to specify known import prefixes for import paths. RB #3120
  • Explains how append-style arguments work in pants RB #3268
  • Allow specification of extra env vars for junit_tests runs. RB #3140 RB #3267
  • Refactor help scope computation logic. RB #3264
  • Make it easy for tests to use the "real" python interpreter cache. RB #3257
  • Pass --confcutdir to py.test invocation to restrict conftest.py scanning to paths in the pants buildroot. RB #3258
  • Remove stale :all alias used by plugin integration test RB #3254
  • Move conflicting python test targets to testprojects. RB #3252
  • Add convenience script for running unit tests, update docs RB #3233 RB #3248

0.0.64 (12/11/2015)

Release Notes

This release concludes the deprecation cycle of the following items, now removed:

  • dependencies and python_test_suite target aliases BUILD file authors should use target instead.
  • pants.backend.core.tasks.{Task,ConsoleTask,ReplTaskMixin} Custom task authors can update imports to the new homes in pants.task
  • The test.junit --no-suppress-output option You now specify --output-mode=ALL in the test.junit scope instead.

This release also fixes issues using the Scala REPL via ./pants repl for very large classpaths.

API Changes

  • Upgrade to junit-runner 1.0.0. RB #3232
  • Remove deprecated -suppress-output flag. RB #3229
  • Kill dependencies, python_test_suite and old task base class aliases. RB #3228

Bugfixes

  • Fixup the NodePreinstalledModuleResolver. RB #3240
  • Prepend '//' to Address.spec when the spec_path is empty. RB #3234
  • Fix problem with too long classpath while starting scala repl: python part RB #3195
  • Fix problem with too long classpath while starting scala repl: java part RB #3194
  • Fixing instrumentation classpath mutation to support multiple targets and entries. RB #3108
  • Use target.id to create the stable classpath for bundle and export-classpath RB #3211

New Features

  • Add an option to write build stats into a local json file. RB #3218
  • Make incremental compile optional for zinc RB #3226
  • Create a test timeout_maximum flag so that we can prevent people from setting an insanely huge timeout RB #3219
  • Add a jvm_prep_command that can work in compile, test, and binary goals RB #3209

Small improvements, Refactoring and Tooling

  • A docgen backend. RB #3242
  • Add formatting of choices to help output RB #3241
  • Remove test target aliases for pants' tests RB #3233
  • Move resources() and prep_command() out of backend/core. RB #3235
  • [pantsd] Implement PantsDaemon et al. RB #3224
  • New implementation of ./pants targets. RB #3214
  • Allow alternate_target_roots to specify an empty collection RB #3216
  • Remove group task and register zinc_compile directly RB #3215
  • Bump the default Go distribution to 1.5.2. RB #3208

0.0.63 (12/04/2015)

Release Notes

This release contains a few deprecations and refactorings to help prepare for 1.0.0. It also includes the first release of the new Haskell module contributed by Gabriel Gonzalez. Thanks Gabriel!

API Changes

  • Deprecate calling with_description() when registering a task. RB #3207
  • Create a core_tasks top-level dir. RB #3197
  • Move more tasks to core_tasks. RB #3199
  • Move remaining core tasks to core_tasks. RB #3204
  • Upgrade PEX to 1.1.1 RB #3200
  • Properly deprecate the Dependencies alias. RB #3196
  • Move the rwbuf code under util/. RB #3193

Bugfixes

  • Fix cache_setup.py so build doesn't fail if configured cache is empty. RB #3142

New Features

  • Add Haskell plugin to contrib/release_packages.sh; now included in the release! RB #3198
  • Refine cache stats: distinguish legit misses from miss errors RB #3190
  • [pantsd] Initial implementation of the pants nailgun service. RB #3171

Small improvements, Refactoring and Tooling

  • Remove references to jmake RB #3210
  • Deprecate exception.message usages RB #3201
  • Make monolithic jars produced by bundle/binary slimmer RB #3133

0.0.62 (11/30/2015)

Release Notes

This release is primarily small bug fixes and minor improvements.

The following modules have been moved, with their old locations now deprecated:

  • MutexTaskMixin and ReplTaskMixin from pants.backend.core -> pants.task

API Changes

  • Move the test runner task mixin out of backend/core. RB #3181
  • Move two generic task mixins out of backend/core. RB #3176

Bugfixes

  • Jvm compile counter should increment for double check cache hits RB #3188
  • Exit with non-zero status when help fails RB #3184
  • When a pytest errors rather than failures, make that target also show up in TestTaskFailedError Issue #2623 RB #3175
  • Add the -no-header argument to jaxb generator to give deterministic output RB #3179
  • Fix bug that recognized "C" as a remote package. RB #3170
  • Fix jvm_compile product publishing for cached builds RB #3161

New Features

  • Minimal Haskell plugin for pants RB #2975
  • Option to specify stdout from tests to ALL, NONE or FAILURE_ONLY: python part RB #3165 RB #3145

Small improvements, Refactoring and Tooling

  • Update the dependencies returned from ivy to be in a stable (sorted) order. RB #3168
  • Refactor detect_duplicates with some user friendly features RB #3178
  • Updating some documentation for pants.ini Update some settings in pants.ini which used = instead of : RB #3189
  • Add the compile.zinc options to the options reference RB #3186
  • include_dependees no longer an optional argument. RB #1997
  • Relocate task tests from tests/python/pants_test/task/ to the appropriate backend RB #3183
  • Move tests corresponding to pants/task code. RB #3182
  • Add error message when a JDK is not installed, add minimum requirements to documentation. RB #3136

0.0.61 (11/23/2015)

Release Notes

This is a hotfix release to fix two regressions in 0.0.60. It also happens to include a small UX improvement for the console output of isolated compiles.

Bugfixes

Small improvements, Refactoring and Tooling

  • During a jvm compile, include a running count in the printed log. RB #3153

0.0.60 (11/21/2015)

Release Notes

This release is primarily small bug fixes and minor improvements. It also removes several deprecated options and methods:

  • ReverseDepmap.type.
  • pants.backend.maven_layout.
  • Depmap.path_to.
  • SourceRoot.find.
  • SourceRoot.find_by_path.
  • pants.bin.goal_runner.SourceRootBootstrapper and its option [goals] bootstrap_buildfiles.
  • pants.build_graph.target._set_no_cache.

The following modules have been moved, with their old locations now deprecated:

  • pants.backend.core.tasks.console_task -> pants.task.console_task.
  • pants.backend.core.tasks.task -> pants.task.task.

API Changes

  • Move ConsoleTask to pants/task. RB #3157
  • Move task.py out of backend/core. RB #3130

Bugfixes

  • Add a helper staticmethod closure() to BuildGraph. RB #3160
  • Fix a bug preventing re-upload artifacts that encountered read-errors RB #1361 RB #3141
  • Fix gopkg.in fetcher to handle subpackages. RB #3139
  • Update scalac_plugin_args call to the new option name. RB #3132
  • Fix cases where transitivity is required despite strict_deps; enable within the repo for Java RB #3125

Small improvements, Refactoring and Tooling

  • Isolate .pex dir RB #3135
  • Group cache hits/misses by their task names RB #3137
  • Add back the --[no-]color flag as deprecated. RB #3150
  • Add support for extra_jvm_options to java_tests Issue #2383 RB #3140
  • Removed Wire 2.0 support. Update default Wire library to 1.8.0 RB #3124
  • Remove legacy code in wire_gen and protobuf_gen designed for global codegen strategy RB #3123

0.0.59 (11/15/2015)

Release Notes

This is a hotfix release that pins an internal pants python requirement to prevent failures running ./pants test against python_tests targets. See more details here: http://github.com/pantsbuild/pants/issues#issue/2566

Bugfixes

  • Fixup floating pytest-timeout dep. RB #3126

New Features

  • Allow bundle to run for all targets, rather than just target roots RB #3119
  • Allow per-jvm-target configuration of fatal warnings RB #3080
  • Add options to repro and expand user on output file RB #3109

Small improvements, Refactoring and Tooling

  • Remove use of twitter.common.util.topological_sort in SortTargets RB #3121
  • Delay many re.compile calls. RB #3122

0.0.58 (11/13/2015)

Release Notes

This release completes the deprecated cycle for two options and removes them:

  • --infer-test-from-siblings for eclipse and idea goals
  • --strategy for various code generation tasks like protoc

Two existing tasks not installed by default have been moved from pantsbuild.pants to pantsbuild.pants.contrib.python.checks. You can add pantsbuild.pants.contrib.python.checks to your plugins list in pants.ini to get these tasks installed and start verifying your python BUILD deps and to check that your python code conforms to pep8 and various other lints.

API Changes

  • Remove --strategy --infer-test-from-siblings. RB #3116
  • Extract python-eval and pythonstyle to plugin. RB #3114

Bugfixes

  • Do not invalidate jvm targets in zinc for resource dependencies change RB #3106
  • Updated junit-runner to version 0.0.12 RB #3092
  • Fixing malformatted xml report names from junit runner. RB #3090 RB #3103
  • Clean up corrupted local cache for errors that are not retryable RB #3045

New Features

  • Add pants_requirement() for plugin authors. RB #3112
  • Allow for zinc analysis portability with the workdir located either inside or outside of the buildroot RB #3083

Small improvements, Refactoring and Tooling

  • Fixup invoking.md to refer to --config-override. RB #3115
  • docfix: pants.ini must exist with that name. Not some other name. RB #3110
  • Inline twitter.common.config.Properties and remove t.c.config dep RB #3113
  • Run coverage instrumentation once for each target, streamline command line parameters RB #3107
  • Break out core runtime logic into a PantsRunner RB #3054
  • Improve exception handling for bad option values, such as when PANTS_CONFIG_OVERRIDE="pants.ini" exists in the environment. RB #3087

0.0.57 (11/09/2015)

Release Notes

This is a hotfix release that fixes a bug preventing repos using plugins in the DEFAULT section of pants.ini from upgrading to 0.0.56.

API Changes

  • API Change: Move graph walking out of classpath_(util|products) RB #3036

Bugfixes

  • Fix bug when analysis file is corrupt or missing during an incremental compile RB #3101
  • Update the option types for protobuf-gen to be list types, since they are all advanced. RB #3098 RB #3100
  • Fix plugin option references in leaves. RB #3098

New Features

Small improvements, Refactoring and Tooling

  • Better error message for classpath entries outside the working directory RB #3099

0.0.56 (11/06/2015)

Release Notes

This release squashes a bunch of bugs in various area of the codebase, and improves the performance of both the options and reporting systems.

API Changes

  • Remove support for type_ in jar_dependency. It has been superceded by the 'ext' argument Issue #2442 RB #3038
  • Prevent option shadowing, and deprecate/remove some shadowed options. RB #3035
  • Synthetic jars always created when invoking the JVM (Argument list too long revisited) RB #2672 RB #3003

New Features

  • The ./pants junit runner now works with Cucumber scenarios. RB #3090
  • New compile task to publish symlinks to jars with class files to pants_distdir RB #3059
  • Add new --fail-floating option to GoBuildgen. RB #3073
  • Add go and go-env goals. RB #3060
  • Adding NpmRun and NpmTest RB #3048
  • Add --compile-zinc-debug-symbols option RB #3013

Bugfixes

  • Fix test_multiple_source_roots, ignore ordering. RB #3089
  • Change JarPublish.fingerprint to JarPublish.entry_fingerprint to ensure task fingerprint can change RB #3078
  • Deprecate/remove broken path-to option in depmap RB #3079
  • Fix buildgen.go to be non-lossy for remote revs. RB #3077
  • Fixup NailgunClient-related OSX CI break RB #3069
  • Fix bench goal, include integration test Issue #2303 RB #3072
  • Fix missing newline at end of pants output. RB #3019 RB #3063
  • For prepare.services, avoid empty classpath entries by only selecting jvm targets that have services defined RB #3058
  • Safeguard against stale ProcessManager metadata re-use. RB #3047
  • Fix test timeout implementation by adding abort handlers RB #2979
  • Allow for sourceless codegen based purely on target parameters RB #3044
  • Fix a copy-paste error in migrate_config.py. RB #3039
  • Fix issue with trailing newlines in Python checkstyle RB #3033
  • Make profiling cover the init sequence too. RB #3022
  • Unshade org.pantsbuild.junit.annotation so that @TestParallel works RB #3012

Small improvements, Refactoring and Tooling

  • Remove pytest helpers where unittest will do. RB #3091
  • Remove a hack in IvyResolve. Issue #2177 RB #3088
  • Get rid of argparse usage entirely. RB #3074
  • Additional test case for changed goal RB #2589 RB #2660
  • Upgrade to RBTools 0.7.5. RB #3076
  • Improve handling of -v, -V, --version and --pants-version. RB #3071
  • Turn off ng under OSX-CI like we do for linux. RB #3067
  • Cache npm resolves in CI. RB #3065
  • Improve incremental caching tests RB #3028 RB #3034
  • Refactor the python checkstyle plugin system. RB #3061
  • Better implementation of the reporting emitter thread. RB #3057
  • Preparation to allow locating the workdir outside of the build root RB #3050 RB #3050
  • Create the argparse.ArgParser instance only on demand. RB #3056
  • Fix implementation of shallow copy on OptionValueContainer. RB #3041
  • Defer argparse registration to the last possible moment. RB #3049
  • Pave the way for server-side python nailgun components RB #3030
  • Don't resolve node_remote_module targets by themselves and modify how REPL works RB #2997
  • Remove mustache use from the reporting system. RB #3018

New Engine Work

  • Add an engine/exp README. RB #3042
  • Simplify and robustify LocalMultiprocessEngine. RB #3084
  • Example of an additional planner that produces a Classpath for targets Issue #2484 RB #3075
  • Add fail-slow handling to Engine. RB #3040
  • Cleanup a few scheduler warts. RB #3032

0.0.55 (10/23/2015)

Release Notes

This release has many experimental engine features, as well as general bug fixes and performance improvements.

API Changes

  • Remove the deprecated modules, pants.base.address and pants.base.address_lookup_error.

New Features

  • Add a --dependencies option to cloc. RB #3008
  • Add native support for incremental caching, and use it in jvm_compile RB #2991
  • A CountLinesOfCode task. RB #3005

Bugfixes

  • Include JarDependency.excludes when creating cache_key. Add unittest. RB #3001
  • Added junit.framework to excludes for shading RB #3017
  • fix failure in test_global_pinger_memo RB #3007
  • Handle case where only transitive dependencies have changed during an incremental build Issue #2446 RB #3028

New Engine Work

  • Add support for config selectors in dep addresses. RB #3025
  • Support Configurations extending one, merging N. RB #3023
  • Refactor engine experiment module organization. RB #3004
  • Implement a custom pickle for Serializables. RB #3002
  • Introduce the new engine and two implementations. RB #3000
  • Introduce the 1st cut at the new engine frontend. RB #2989
  • Prepare the 1st test for the new engine front end. RB #2988
  • Add a visualization tool for execution plans. RB #3010

Small improvements, Refactoring and Tooling

  • Overwrite timing stat report files less frequently. RB #3021
  • Make sure we emit the timing/stats epilog even for quiet tasks. RB #3019
  • Add a fixed source root for the go_remote dir in contrib/go. RB #3027
  • Restore Sources custom types per extension. RB #3010 RB #3011
  • [coverage] Removing emma after its deprecation cycle. RB #3009
  • Kill _JUnitRunner and move code to the JUnitRun task RB #2994
  • Make 'list-owners' faster by not instantiating already injected targets RB #2967 RB #2968
  • Get rid of all bootstrap BUILD files in our repo. RB #2996
  • Run python checkstyle only on invalidated targets. RB #2995
  • Switch all internal code to use the new source roots mechanism. RB #2987
  • Remove jmake and apt members from JvmCompile RB #2990
  • Leverage fast_relpath in BuildFileAddressMapper. RB #2981
  • Simplify fetcher regexes; doc the '^' assumption. RB #2980
  • Remove the global codegen strategy from simple_codegen_task RB #2985
  • Added an explanation to the docs re: who can be added to a review. RB #2983

0.0.54 (10/16/2015)

Release Notes

This release features several improvements to Go support and a refactored SourceRoot API, as well as several bug fixes and small refactors.

API Changes

  • Move address.py/address_lookup_error.py from base to build_graph RB #2954
  • Deprecate --infer-test-from-sibling argument to ide_gen.py. RB #2966
  • Several deprecated methods and modules were removed: src/python/pants/base/target.py src/python/pants/base/build_file_aliases.py JarDependency._maybe_set_ext JarDependency.exclude The Repository build file alias

New Features

Bugfixes

  • Fix buildgen.go --materialize to act globally. RB #2977
  • Fix BuildFileAddressMapper.scan_addresses. RB #2974
  • Fix catchall except statments RB #2971
  • Fix pinger cache bug and add test. RB #2948
  • Fix mixed classpaths where internal-only is needed. Issue #2358 Issue #2359 RB #2964
  • Reproduces problem with deploy_excludes() RB #2961
  • Add missing BUILD dep introduced by d724e2414.

Small improvements, Refactoring and Tooling

  • A new implementation of SourceRoots. RB #2970
  • Restructured the Export task to make the json blob reusable. RB #2946
  • Make 'changed' faster by not instantiating already injected targets RB #2967
  • Add some more badge bling. RB #2965
  • Cleanup BaseTest. RB #2963

0.0.53 (10/9/2015)

Release Notes

Due to the hotfix release on Wednesday, this is a fairly light release. But because it addresses two potential correctness issues related to JVM tooling, it is well worth picking up!

API Changes

  • Move address.py/address_lookup_error.py from base to build_graph RB #2954

New Features

  • Add native timeouts to python and junit tests RB #2919
  • Be more conservative about caching incremental JVM compiles RB #2940

Bugfixes

  • Restore deep jvm-tool fingerprinting RB #2955
  • Handle AccessDenied exception in more cases for daemon process scanning RB #2951

Small improvements, Refactoring and Tooling

  • Upgrade to pex 1.1.0 RB #2956
  • [exp] Support for scanning addresses, implement list RB #2952
  • [exp] Optimize python parsers RB #2947
  • [exp] Switch from 'typename' to 'type_alias'. RB #2945
  • [exp] Support a non-inlined lazy resolve mode in Graph. RB #2944
  • Emit a nice error message if the compiler used to bootstrap pants isn't functional RB #2949
  • Eliminate travis-ci cache thrash. RB #2957

0.0.52 (10/7/2015)

Release Notes

This is a hotfix release that unpins pants own six requirement from '==1.9' to '>=1.9,<2' to allow folks depending on pantsbuild sdists in their own pants built/tested code to successfully resolve six. The underlying issue is yet to be fixed, but is tracked here.

API Changes

  • Bump the default ivy bootstrap jar to 2.4.0. RB #2938
  • Remove the classes_by_target and resources_by_target products RB #2928

Bugfixes

  • Allow six to float a bit. RB #2942
  • Add the include and exclude patterns to the payload so they will make it into the fingerprint RB #2927
  • Ensure GOPATH is always controlled by pants. RB #2933
  • Stopped ivy from failing if an artifact has a url specified. RB #2905
  • Test-cases that passed are now properly omitted the junit summary. RB #2916 RB #2930

Small improvements, Refactoring and Tooling

  • Kill the checkstyle jvm tool override in pants.ini. RB #2941
  • Only request the classes_by_source product if it is necessary RB #2939
  • Fixup android local resolvers. RB #2934
  • Simplify cobertura source paths for reporting RB #2918
  • Upgrade the default Go distribution to 1.5.1. RB #2936
  • Normalize AddressMapper paths for parse/forget. RB #2935
  • Create test task mixin RB #2902
  • Make sure tests/python/pants_test:all runs all the tests RB #2932
  • Seperate out AddressMapper from Graph. RB #2931
  • Add timeout configuration to Pinger and add unittest. RB #2912
  • Adding Node examples RB #2900

0.0.51 (10/2/2015)

Release Notes

This release moves some packages commonly used in plugins from pants.base to pants.build_graph. The old packages still work, but have been deprecated and will be removed in 0.0.53.

API Changes

Bugfixes

  • Ensure execution graph cancellation only happens once per job RB #2910
  • Two performance hacks in build file parsing. RB #2895
  • Performance fix for ./pants depmap --minimal RB #2896

New Features

  • Introduce instrument_classpath, and modify cobertura to use native class filtering RB #2893
  • Implement deprecation messages for entire modules. RB #2904
  • Upstream the scala_jar and scala_artifact helpers to suffix the scala platform version. RB #2891
  • Adding the bootstrapped node/npm to the PATH when executing commands RB #2883
  • Update path(s) tasks, add tests, extract pluralize to strutil RB #2892
  • Fix duplicate changelog link. RB #2890

Small improvements, Refactoring and Tooling

  • Extract Config as Configuration to its own module. RB #2924
  • Define a lifecycle for Config objects. RB #2920
  • Add baseline functionality for engine experiments. RB #2914
  • Reformatting the junit output to be consistent with pants. RB #2917 RB #2925
  • Allow junit tests to have empty sources RB #2923
  • Adding a summary list of failing testcases to junit_run. RB #2916
  • Adding the java language level to the IdeaGen module output. RB #2911
  • Make a nicer diagnostic on parse error in pants.ini RB #2907
  • Shorten long target ids by replacing superfluous characters with a hash RB #2894
  • Migrate scrooge to SimpleCodegenTask RB #2808

0.0.50 (9/25/2015)

Release Notes

This release removes the 'global' jvm compile strategy in favor of the 'isolated' strategy and switches the default java incremental compilation frontend from jmake to zinc. If you were using 'global' and/or jmake you'll have some pants.ini cleanup to do. You can run the migration tool from the pantsbuild/pants repository by cloning the repo and running the following command from there against your own repo's pants.ini:

pantsbuild/pants $ ./pants run migrations/options/src/python:migrate_config -- [path to your repo's pants.ini]

There have been several additional deprecated APIs removed in this release, please review the API Changes section below.

API Changes

  • Remove artifacts from JarDependency; Kill IvyArtifact. RB #2858
  • Kill deprecated BuildFileAliases.create method. RB #2888
  • Remove the deprecated SyntheticAddress class. RB #2886
  • Slim down the API of the Config class and move it to options/. RB #2865
  • Remove the JVM global compile strategy, switch default java compiler to zinc RB #2852
  • Support arbitrary expressions in option values. RB #2860

Bugfixes

  • Change jar-tool to use CONCAT_TEXT by default for handling duplicates under META-INF/services RB #2881
  • Upgrade to jarjar 1.6.0. RB #2880
  • Improve error handling for nailgun client connection attempts RB #2869
  • Fix Go targets to glob more than '.go' files. RB #2873
  • Defend against concurrent bootstrap of the zinc compiler interface RB #2872 RB #2867 RB #2866
  • Fix missing underscore, add simple unit test RB #2805 RB #2862
  • Fix a protocol bug in GopkgInFetcher for v0's. RB #2857

New Features

  • Allow resolving buildcache hosts via a REST service RB #2815
  • Implement profiling inside pants. RB #2885
  • Adds a new CONCAT_TEXT rule to jar tool to handle text files that might be missing the last newline. RB #2875

Small improvements, Refactoring and Tooling

0.0.49 (9/21/2015)

Release Notes

This is a hotfix release that includes a fix for resolving remote go libraries that use relative imports.

Bugfixes

  • Include resolved jar versions in compile fingerprints; ensure coordinates match artifacts. RB #2853
  • Fixup GoFetch to handle relative imports. RB #2854

New Features

  • Enhancements to the dep-usage goal RB #2851

0.0.48 (9/18/2015)

Release Notes

There is a new UI in the ./pants server web interface that shows 'Timing Stats' graphs. These graphs show where time is spent on a daily-aggregation basis in various tasks. You can drill down into a task to see which sub-steps are most expensive. Try it out!

We also have a few new metadata goals to help figure out what's going on with file ownership and options.

If you want to find out where options are coming from, the options goal can help you out:

$ ./pants -q options --only-overridden --scope=compile
compile.apt.jvm_options = ['-Xmx1g', '-XX:MaxPermSize=256m'] (from CONFIG in pants.ini)
compile.java.jvm_options = ['-Xmx2G'] (from CONFIG in pants.ini)
compile.java.partition_size_hint = 1000000000 (from CONFIG in pants.ini)
compile.zinc.jvm_options = ['-Xmx2g', '-XX:MaxPermSize=256m', '-Dzinc.analysis.cache.limit=0'] (from CONFIG in pants.ini)

If you're not sure which target(s) own a given file:

$ ./pants -q list-owners -- src/python/pants/base/target.py
src/python/pants/build_graph

The latter comes from new contributor Tansy Arron-Walker.

API Changes

  • Kill 'ivy_jar_products'. RB #2823
  • Kill 'ivy_resolve_symlink_map' and 'ivy_cache_dir' products. RB #2819

Bugfixes

  • Upgrade to jarjar 1.5.2. RB #2847
  • Don't modify globs excludes argument value. RB #2841
  • Whitelist the appropriate filter option name for zinc RB #2839
  • Ensure stale classes are removed during isolated compile by cleaning classes directory prior to handling invalid targets RB #2805
  • Fix linecount estimator for dep-usage goal RB #2828
  • Fix resource handling for the python backend. RB #2817
  • Fix coordinates of resolved jars in IvyInfo. RB #2818
  • Fix NailgunExecutor to support more than one connect attempt RB #2822
  • Fixup AndroidIntegrationTest broken by Distribution refactor. RB #2811
  • Backport sbt java output fixes into zinc RB #2810
  • Align ivy excludes and ClasspathProducts excludes. RB #2807

New Features

  • A nice timing stats report. RB #2825
  • Add new console task ListOwners to determine the targets that own a source RB #2755
  • Adding a console task to explain where options came from. RB #2816

Small improvements, Refactoring and Tooling

  • Deprecate 'Repository' alias in favor of 'repo'. RB #2845
  • Fix indents (checkstyle) RB #2844
  • Use list comprehension in jvm_compile to calculate valid targets RB #2843
  • Transition IvyImports to 'compile_classpath'. RB #2840
  • Migrate JvmBinaryTask to 'compile_classpath'. RB #2832
  • Add support for snapshotting ClasspathProducts. RB #2837
  • Bump to zinc 1.0.11 RB #2827 RB #2836 RB #2812
  • Lazily load zinc analysis RB #2827
  • Add support for whitelisting of zinc options RB #2835
  • Kill the unused JvmTarget.configurations field. RB #2834
  • Kill 'jvm_build_tools_classpath_callbacks' deps. RB #2831
  • Add :scalastyle_integration test to :integration test target RB #2830
  • Use fast_relpath in JvmCompileIsolatedStrategy.compute_classes_by_source RB #2826
  • Enable New Style class check RB #2820
  • Remove --quiet flag from pip RB #2809
  • Move AptCompile to zinc RB #2806
  • Add a just-in-time check of the artifact cache to the isolated compile strategy RB #2690

0.0.47 (9/11/2015)

Release Notes

By defaulting the versions of most built-in tools, this release makes pants significantly easier to configure! Tools like antlr, jmake, nailgun, etc, will use default classpaths unless override targets are provided.

Additionally, this release adds native support for shading JVM binaries, which helps to isolate them from their deployment environment.

Thanks to all contributors!

API Changes

  • Add JVM distributions and platforms to the export format. RB #2784
  • Added Python setup to export goal to consume in the Pants Plugin for IntelliJ. RB #2785 RB #2786
  • Introduce anonymous targets built by macros. RB #2759
  • Upgrade to the re-merged Node.js/io.js as the default. RB #2800

Bugfixes

  • Don't create directory entries in the isolated compile context jar RB #2775
  • Bump jar-tool release version to 0.0.7 to pick up double-slashed directory fixes RB #2763 RB #2779
  • junit_run now parses errors (in addition to failures) to correctly set failing target RB #2782
  • Fix the zinc name-hashing flag for unicode symbols RB #2776

New Features

  • Support for shading rules for jvm_binary. RB #2754
  • Add support for @fromfile option values. RB #2783 RB #2794
  • --config-override made appendable, to support multiple pants.ini files. RB #2774
  • JVM tools can now carry their own classpath, meaning that most don't need to be configured RB #2778 RB #2795

Small improvements, Refactoring and Tooling

  • Added migration of --jvm-jdk-paths to --jvm-distributions-paths RB #2677 RB #2781
  • Example of problem with annotation processors that reference external dependencies. RB #2777
  • Replace eval use with a parse_literal util. RB #2787
  • Move Shader from pants.java to the jvm backend. RB #2788
  • Move BuildFileAliases validation to BuildFileAliases. RB #2790
  • Centralize finding target types for an alias. RB #2796
  • Store timing stats in a structured way, instead of as json. RB #2797

Documentation

  • Added a step to publish RELEASE HISTORY back to the public website [DOC] RB #2780
  • Fix buildcache doc typos, use err param rather than ignoring it in UnreadableArtifact RB #2801

0.0.46 (9/4/2015)

Release Notes

This release includes more support for Node.js!

Support for the environment variables PANTS_VERBOSE and PANTS_BUILD_ROOT have been removed in this release. Instead, use --level to turn on debugging in pants. Pants recursively searches from the current directory to the root directory until it finds the pants.ini file in order to find the build root.

The pants() syntax in BUILD files has been removed (deprecated since 0.0.29).

API Changes

Bugfixes

  • Fix + test 3rd party missing dep for zinc RB #2764
  • Implement a synthetic jar that sets Class-Path to bypass ARG_MAX limit RB #2672
  • Fixed changed goal for BUILD files in build root RB #2749
  • Refactor / bug-fix for checking jars during dep check RB #2739
  • PytestRun test failures parsing is broken for tests in a class RB #2714
  • Make nailgun_client error when the client socket is closed. RB #2727

New Features

  • Initial support for resolve.npm. RB #2723
  • Add support for repl.node. RB #2766
  • Setup the node contrib for release. RB #2768
  • Add annotation processor settings to goal idea RB #2753
  • Introduce job prioritization to ExecutionGraph RB #2601
  • Provide include paths to thrift-linter to allow for more complex checks RB #2712
  • JVM dependency usage task RB #2757

Small improvements, Refactoring and Tooling

  • Re-work REPL mutual exclusion. RB #2765
  • Return cached_chroots instead of yielding them. RB #2762
  • Normalize and decompose GoalRunner initialization and setup RB #2715
  • Fixed pre-commit hook for CI RB #2758
  • Code added check valid arguments for glob, test added as well RB #2750
  • Fix newline style nits and enable newline check in pants.ini RB #2756
  • Add the class name and scope name to the uninitialized subsystem error message RB #2698
  • Make nailgun killing faster. RB #2685
  • Switch JVM missing dep detection to use compile_classpath RB #2729
  • Add transitive flag to ClasspathProduct.get_for_target[s] RB #2744
  • Add transitive parameter to UnionProducts.get_for_target[s] RB #2741
  • Tighten up the node target hierarchy. RB #2736
  • Ensure pipeline failuires fail CI. RB #2731
  • Record the BUILD target alias in BuildFileAddress. RB #2726
  • Use BaseCompileIT to double-check missing dep failure and whitelist success. RB #2732
  • Use Target.subsystems to expose UnknownArguments. RB #2725
  • Populate classes_by_target using the context jar for the isolated strategy RB #2720
  • Push OSX CI's over to pantsbuild-osx. RB #2724

Documentation

  • Update a few references to options moved to the jvm subsystem in docs and comments RB #2751
  • Update developer docs mention new testing idioms RB #2743
  • Clarify the RBCommons/pants-reviews setup step. RB #2733

0.0.45 (8/28/2015)

Release Notes

In this release, the methods with_sources(), with_docs() and with_artifact() were removed from the jar() syntax in BUILD files. They have been deprecated since Pants version 0.0.29.

API Changes

  • Remove with_artifact(), with_sources(), and with_docs() from JarDependency RB #2687

Bugfixes

  • Upgrade zincutils to 0.3.1 for parse_deps bug fix RB #2705
  • Fix PythonThriftBuilder to operate on 1 target. RB #2696
  • Ensure stdlib check uses normalized paths. RB #2693
  • Hack around a few Distribution issues in py tests. RB #2692
  • Fix GoBuildgen classname and a comment typo. RB #2689
  • Making --coverage-open work for cobertura. RB #2670

New Features

  • Implementing support for Wire 2.0 multiple proto paths. RB #2717
  • [pantsd] PantsService, FSEventService & WatchmanLauncher RB #2686
  • Add NodeDistribution to seed a node backend. RB #2703
  • Created DistributionLocator subsystem with jvm-distributions option-space. RB #2677
  • Added support for wire 2.0 arguments and beefed up tests RB #2688
  • Initial commit of checkstyle RB #2593

Small improvements, Refactoring and Tooling

  • Removed scan workunit; mapping workunits now debug RB #2721
  • Implement caching for the thrift linter. RB #2718
  • Refactor JvmDependencyAnalyzer into a task RB #2668
  • Refactor plugin system to allow for easier extension by others RB #2706
  • Indented code which prints warnings for unrecognized os's. RB #2713
  • Fixup existing docs and add missing docs. RB #2708
  • Requiring explicit dependency on the DistributionLocator subsystem. RB #2707
  • Reorganize option help. RB #2695
  • Set 'pants-reviews' as the default group. RB #2702
  • Update to zinc 1.0.9 and sbt 0.13.9 RB #2658
  • Test the individual style checks and only disable the check that is currently failing CI RB #2697

0.0.44 (8/21/2015)

Release Notes

In this release Go support should be considered beta. Most features you'd expect are implemented including a buildgen.go task that can maintain your Go BUILD files as inferred from just go_binary target definitions. Yet to come is doc goal integration and an option to wire in-memory buildgen.go as an implicit bootstrap task in any pants run that includes Go targets.

Also in this release is improved control over the tools pants uses, in particular JVM selection control.

API Changes

  • Remove deprecated [compile.java] options. RB #2678

Bugfixes

  • Better caching for Python interpreters and requirements. RB #2679
  • Fixup use of removed flag compile.java --target in integration tests. RB #2680
  • Add support for fetching Go test deps. RB #2671

New Features

  • Integrate Go with the binary goal. RB #2681
  • Initial support for Go BUILD gen. RB #2676
  • Adding jdk_paths option to jvm subsystem. RB #2657
  • Allow specification of kwargs that are not currently known. RB #2662
  • Allow os name map in binary_util to be configured externally RB #2663

Small improvements, Refactoring and Tooling

  • [pantsd] Watchman & StreamableWatchmanClient RB #2649
  • Upgrade the default Go distribution to 1.5. RB #2669
  • Align JmakeCompile error messages with reality. RB #2682
  • Fixing BUILD files which had integration tests running in :all. RB #2664
  • Remove log options from the zinc Setup to fix performance issue RB #2666

0.0.43 (8/19/2015)

Release Notes

This release makes the isolated jvm compile strategy viable out-of-the-box for use with large dependency graphs. Without it, test.junit and run.jvm performance slows down significantly due to the large number of loose classfile directories.

Please try it out in your repo by grabbing a copy of pants.ini.isolated and using a command like:

./pants --config-override=pants.ini.isolated test examples/{src,tests}/{scala,java}/::

You'll like the results. Just update your own pants.ini with the pants.ini.isolated settings to use it by default!

In the medium term, we're interested in making the isolated strategy the default jvm compilation strategy, so your assistance and feedback is appreciated!

Special thanks to Stu Hood and Nick Howard for lots of work over the past months to get this point.

API Changes

  • A uniform way of expressing Task and Subsystem dependencies. Issue #1957 RB #2653
  • Remove some coverage-related options from test.junit. RB #2639
  • Bump mock and six 3rdparty versions to latest RB #2633
  • Re-implement suppression of output from compiler workunits RB #2590

Bugfixes

  • Improved go remote library support. RB #2655
  • Shorten isolation generated jar paths RB #2647
  • Fix duplicate login options when publishing. RB #2560
  • Fixed no attribute exception in changed goal. RB #2645
  • Fix goal idea issues with mistakenly identifying a test folder as regular code, missing resources folders, and resources folders overriding code folders. RB #2046 RB #2642

New Features

  • Support for running junit tests with different jvm versions. RB #2651
  • Add support for jar'ing compile outputs in the isolated strategy. RB #2643
  • Tests for 'java-resoures' and 'java-test-resources' in idea RB #2046 RB #2634

Small improvements, Refactoring and Tooling

  • Filter zinc compilation warnings at the Reporter level RB #2656
  • Update to sbt 0.13.9. RB #2629
  • Speeding up jvm-platform-validate step. Issue #1972 RB #2626
  • Added test that failed HTTP responses do not raise exceptions in artifact cache RB #2624 RB #2644
  • Tweak to option default extraction for help display. RB #2640
  • A few small install doc fixes. RB #2638
  • Detect new package when doing ownership checks. RB #2637
  • Use os.path.realpath on test tmp dirs to appease OSX. RB #2635
  • Update the pants install documentation. #docfixit RB #2631

0.0.42 (8/14/2015)

Release Notes

This was #docfixit week, so the release contains more doc and help improvements than usual. Thanks in particular to Benjy for continued ./pants help polish!

This release also add support for golang in the contrib/go package. Thanks to Cody Gibb and John Sirois for that work.

API Changes

  • Elevate the pants version to a first class option RB #2627
  • Support pants plugin resolution for easier inclusion of published plugins RB #2615 RB #2622
  • Pin pex==1.0.3, alpha-sort & remove line breaks RB #2598 RB #2596
  • Moved classifier from IvyArtifact to IvyModuleRef RB #2579

Bugfixes

  • Ignore 'NonfatalArtifactCacheError' when calling the artifact cache in the background RB #2624
  • Re-Add debug option to benchmark run task, complain on no jvm targets, add test RB #2619
  • Fixed what_changed for removed files RB #2589
  • Disable jvm-platform-analysis by default Issue #1972 RB #2618
  • Fix ./pants help_advanced RB #2616
  • Fix some more missing globs in build-file-rev mode. RB #2591
  • Make jvm bundles output globs in filedeps with --globs. RB #2583
  • Fix more realpath issues Issue #1933 RB #2582

New Features

  • Allow plaintext-reporter to be able to respect a task's --level and --colors options. RB #2580 RB #2614
  • contrib/go: Support for Go RB #2544
  • contrib/go: Setup a release sdist RB #2609
  • contrib/go: Remote library support RB #2611 RB #2623
  • contrib/go: Introduce GoDistribution RB #2595
  • contrib/go: Integrate GoDistribution with GoTask RB #2600
  • Add support for android compilation with contrib/scrooge RB #2553

Small improvements, Refactoring and Tooling

  • Added more testimonials to the Powered By page. #docfixit RB #2625
  • Fingerprint more task options; particularly scalastyle configs RB #2628
  • Fingerprint jvm tools task options by default RB #2620
  • Make most compile-related options advanced. #docfixit RB #2617
  • Make almost all global options advanced. #docfixit RB #2602
  • Improve cmd-line help output. #docfixit RB #2599
  • Default -Dscala.usejavacp=true for ScalaRepl. RB #2613
  • Additional Option details for the Task developers guide. #docfixit RB #2594 RB #2612
  • Improve subsystem testing support in subsystem_util. RB #2603
  • Cleanups to the tasks developer's guide #docfixit RB #2594
  • Add the optionable class to ScopeInfo. #docfixit RB #2588
  • Add pants_plugin and contrib_plugin targets. RB #2615

0.0.41 (8/7/2015)

Release Notes

Configuration for specifying scala/java compilation using zinc has changed in this release.

You may need to combine [compile.zinc-java] and [compile.scala] into the new section [compile.zinc]

The migrate_config tool will help you migrate your pants.ini settings for this new release. Download the pants source code and run:

./pants run migrations/options/src/python:migrate_config --  <path to your pants.ini>

API Changes

Bugfixes

  • Fix ApacheThriftGen chroot normalization scope. RB #2568
  • Fix crasher when no jvm_options are set RB #2578
  • Handle recursive globs with build-file-rev RB #2572
  • Fixup PythonTask chroot caching. RB #2567

New Features

  • Add "omnivorous" ZincCompile to consume both java and scala sources RB #2561

Small improvements, Refactoring and Tooling

  • Do fewer classpath calculations in junit_run. RB #2576
  • fix misc ws issues RB #2564 RB #2557
  • Resurrect the --[no-]lock global flag RB #2563
  • Avoid caching volatile ~/.cache/pants/stats dir. RB #2574
  • remove unused imports RB #2556
  • Moved logic which validates jvm platform dependencies. RB #2565
  • Bypass the pip cache when testing released sdists. RB #2555
  • Add an affordance for 1 flag implying another. RB #2562
  • Make artifact cache max-entries-per-target option name match its behaviour RB #2550
  • Improve stats upload. RB #2554

0.0.40 (7/31/2015)

Release Notes

The apache thrift gen for java code now runs in -strict mode by default, requiring all struct fields declare a field id. You can use the following configuration in pants.ini to retain the old default behavior and turn strict checking off:

[gen.thrift]
strict: False

The psutil dependency used by pants has been upgraded to 3.1.1. Supporting eggs have been uploaded to https://github.com/pantsbuild/cheeseshop/tree/gh-pages/third_party/python/dist. Please note that beyond this update, no further binary dependency updates will be provided at this location.

API Changes

  • Integrate the Android SDK, android-library RB #2528

Bugfixes

  • Guard against NoSuchProcess in the public API. RB #2551
  • Fixup psutil.Process attribute accesses. RB #2549
  • Removes type=Option.list from --compile-jvm-args option and --compile-scala-plugins RB #2536 RB #2547
  • Prevent nailgun on nailgun violence when using symlinked java paths RB #2538
  • Declaring product_types for simple_codegen_task. RB #2540
  • Fix straggler usage of legacy psutil form RB #2546

New Features

  • Added JvmPlatform subsystem and added platform arg to JvmTarget. RB #2494

Small improvements, Refactoring and Tooling

  • Resolve targets before creating PayloadField RB #2496 RB #2536
  • Upgrade psutil to 3.1.1 RB #2543
  • Move thrift utils only used by scrooge to contrib/scrooge. RB #2535
  • docs: add link to slackin self-invite RB #2537
  • Add Clover Health to the Powered By page RB #2539
  • Add Powered By page RB #2532
  • Create test for java_antlr_library RB #2504
  • Migrate ApacheThriftGen to SimpleCodegenTask. RB #2534
  • Covert RagelGen to SimpleCodeGen. RB #2531
  • Shade the Checkstyle task tool jar. RB #2533
  • Support eggs for setuptools and wheel. RB #2529

0.0.39 (7/23/2015)

API Changes

  • Disallow jar_library targets without jars RB #2519

Bugfixes

  • Fixup PythonChroot to ignore synthetic targets. RB #2523
  • Exclude provides clauses regardless of soft_excludes RB #2524
  • Fixed exclude id when name is None + added a test for excludes by just an org #1857 RB #2518
  • Fixup SourceRoot to handle the buildroot. RB #2514
  • Fixup SetupPy handling of exported thrift. RB #2511

New Features

Small improvements, Refactoring and Tooling

  • Increase robustness of ProcessManager.terminate() in the face of zombies. RB #2513
  • A global isort fix. RB #2510

0.0.38 (7/21/2015)

Release Notes

A quick hotfix release to pick up a fix related to incorrectly specified scala targets.

API Changes

  • Remove the with_description method from target. RB #2507

Bugfixes

  • Handle the case where there are no classes for a target. RB #2489

New Features

None.

Small improvements, Refactoring and Tooling

  • Refactor AntlrGen to use SimpleCodeGen. RB #2487

0.0.37 (7/20/2015)

Release Notes

This is the regularly scheduled release for 7/17/2015 (slightly behind schedule!)

API Changes

  • Unified support for process management, to prepare for a new daemon. RB #2490
  • An iterator over Option registration args. RB #2478
  • An iterator over OptionValueContainer keys. RB #2472

Bugfixes

  • Correctly classify files as resources or classes RB #2488
  • Fix test bugs introduced during the target cache refactor. RB #2483
  • Don't explicitly enumerate goal scopes: makes life easier for the IntelliJ pants plugin. RB #2500

New Features

  • Switch almost all python tasks over to use cached chroots. RB #2486
  • Add invalidation report flag to reporting subsystem. RB #2448

Small improvements, Refactoring and Tooling

  • Add a note about the pantsbuild slack team. RB #2491
  • Upgrade pantsbuild/pants to apache thrift 0.9.2. RB #2484
  • Remove unused --lang option from protobuf_gen.py RB #2485
  • Update release docs to recommend both server-login and pypi sections. RB #2481

0.0.36 (7/14/2015)

Release Notes

This is a quick release following up on 0.0.35 to make available internal API changes made during options refactoring.

API Changes

  • Improved artifact cache usability by allowing tasks to opt-in to a mode that generates and then caches a directory for each target. RB #2449 RB #2471
  • Re-compute the classpath for each batch of junit tests. RB #2454

Bugfixes

  • Stops unit tests in test_simple_codegen_task.py in master from failing. RB #2469
  • Helpful error message when 'sources' is specified for jvm_binary. Issue #871 RB #2455
  • Fix failure in test_execute_fail under python>=2.7.10 for test_simple_codegen_task.py. RB #2461

New Features

  • Support short-form task subsystem flags. RB #2466
  • Reimplement help formatting to improve clarity of both the code and output. RB #2458 RB #2464

Small improvements, Refactoring and Tooling

  • Visual docsite changes RB #2463
  • Fix migrate_config to detect explicit [DEFAULT]s. RB #2465

0.0.35 (7/10/2015)

Release Notes

With this release, if you use the isolated jvm compile strategy, java annotation processers that emit java sourcefiles or classfiles will be handled correctly and the generated code will be bundled appropriately in jars. In particular, this makes libraries like Google's AutoValue useable in a pants build. See: RB #2451.

API Changes

Bugfixes

New Features

  • Add an option --main to the run.jvm task to override the specification of 'main' on a jvm_binary() target. RB #2442
  • Add jvm_options for thrift-linter. RB #2445
  • Added cwd argument to allow JavaTest targets to require particular working directories. RB #2440

Small improvements, Refactoring and Tooling

  • Record all output classes for the jvm isolated compile strategy. RB #2451
  • Robustify the pants ivy configuration. Issue #1779 RB #2450
  • Some refactoring of global options. RB #2446
  • Improved error messaging for unknown Target kwargs. RB #2443
  • Remove Nailgun specific classes from zinc, since pants invokes Main directly. RB #2439

0.0.34 (7/6/2015)

Release Notes

Configuration for specifying cache settings and jvm options for some tools have changed in this release.

The migrate_config tool will help you migrate your pants.ini settings for this new release. Download the pants source code and run:

./pants run migrations/options/src/python:migrate_config --  <path
to your pants.ini>

API Changes

  • Added flags for jar sources and javadocs to export goal because Foursquare got rid of ivy goal. RB #2432
  • A JVM subsystem. RB #2423
  • An artifact cache subsystem. RB #2405

Bugfixes

  • Change the xml report to use the fingerprint of the targets, not just their names. RB #2435
  • Using linear-time BFS to sort targets topologically and group them by the type. RB #2413
  • Fix isort in git hook context. RB #2430
  • When using soft-excludes, ignore all target defined excludes RB #2340
  • Fix bash-completion goal when run from sdist/pex. Also add tests, and beef up ci.sh & release.sh. RB #2403
  • [junit tool] fix suppress output emits jibberish on console. Issue #1657 RB #2183
  • In junit-runner, fix an NPE in testFailure() for different scenarios RB #2385 RB #2398 RB #2396
  • Scrub timestamp from antlr generated files to have stable fp for cache RB #2382
  • JVM checkstyle should obey jvm_options RB #2391
  • Fix bad logger.debug call in artifact_cache.py RB #2386
  • Fixed a bug where codegen would crash due to a missing flag. RB #2368
  • Fixup the Git Scm detection of server_url. RB #2379
  • Repair depmap --graph RB #2345

Documentation

  • Documented how to enable caching for tasks. RB #2420
  • Remove comments that said these classes returned something. RB #2419
  • Publishing doc fixes RB #2407
  • Bad rst now fails the MarkdownToHtml task. RB #2394
  • Add a CONTRIBUTORS maintenance script. RB #2377 RB #2378
  • typo in the changelog for 0.0.33 release, fixed formatting of globs and rglobs RB #2376
  • Documentation update for debugging a JVM tool RB #2365

New Features

  • Add log capture to isolated zinc compiles RB #2404 RB #2415
  • Add support for restricting push remotes. RB #2383
  • Ensure caliper is shaded in bench, add bench desc, use RUN so that output is printed RB #2353

Small improvements, Refactoring and Tooling

  • Enhance the error output in simple_codegen_task.py when unable to generate target(s) RB #2427
  • Add a get_rank() method to OptionValueContainer. RB #2431
  • Pass jvm_options to scalastyle RB #2428
  • Kill custom repos and cross-platform pex setup. RB #2402
  • Add debugging for problem with invalidation and using stale report file in ivy resolve. Issue #1747 RB #2424
  • Enabled caching for scalastyle and checkstyle RB #2416 RB #2414
  • Make sure all Task mixins are on the left. RB #2421
  • Adds a more verbose description of tests when running the -per-test-timer command. (Junit) RB #2418 RB #2408
  • Re-add support for reading from a local .m2 directory RB #2409
  • Replace a few references to basestring with six. RB #2410
  • Promote PANTS_DEV=1 to the only ./pants mode. RB #2401
  • Add task meter to protoc step in codegen RB #2392
  • Simplify known scopes computation. RB #2389
  • Robustify the release process. RB #2388
  • A common base class for things that can register options. RB #2387
  • Fixed the error messages in assert_list(). RB #2370
  • Simplify subsystem option scoping. RB #2380

0.0.33 (6/13/2015)

Release Notes

The migrate config tool will help you migrate your pants.ini settings for this new release. Download the pants source code and run:

./pants run migrations/options/src/python:migrate_config --  <path
to your pants.ini>

Folks who use a custom ivysettings.xml but have no ivy.ivy_settings option defined in pants.ini pointing to it must now add one like so:

[ivy]
ivy_settings: %(pants_supportdir)s/ivy/ivysettings.xml

API Changes

Bugfixes

  • Fixed errors in how arguments are passed to wire_gen. RB #2354
  • Compute exclude_patterns first when unpacking jars RB #2352
  • Add INDEX.LIST to as a Skip JarRule when creating a fat jar RB #2342
  • wrapped-globs: make rglobs output git-compatible RB #2332
  • Add a coherent error message when scrooge has no sources. RB #2329
  • Only run junit when there are junit_test targets in the graph. RB #2291
  • Fix bootstrap local cache. RB #2336
  • Added a hash to a jar name for a bootstrapped jvm tool RB #2334
  • Raise TaskError to exit non-zero if jar-tool fails RB #2150
  • Fix java zinc isolated compile analysis corruption described github issue #1626 RB #2325
  • Upstream analysis fix RB #2312
  • Two changes that affect invalidation and artifact caching. RB #2269
  • Add java_thrift_library fingerprint strategy RB #2265
  • Moved creation of per test data to testStarted method. RB #2257
  • Updated zinc to use sbt 0.13.8 and new java compilers that provide a proper log level with their output. RB #2248
  • Apply excludes consistently across classpaths RB #2247
  • Put all extra classpath elements (e.g., plugins) at the end (scala compile) RB #2210
  • Fix missing import in git.py RB #2202
  • Move a comment to work around a pytest bug. RB #2201
  • More fixes for working with classifiers on jars. Issue #1489 RB #2163
  • Have ConsoleRunner halt(1) on exit(x) RB #2180
  • Fix scm_build_file in symlinked directories RB #2152 RB #2157
  • Added support for the ivy cache being under a symlink'ed dir RB #2085 RB #2129 RB #2148
  • Make subclasses of ChangedTargetTask respect spec_excludes RB #2146
  • propagate keyboard interrupts from worker threads RB #2143
  • Only add resources to the relevant target RB #2103 RB #2130
  • Cleanup analysis left behind from failed isolation compiles RB #2127
  • test glob operators, fix glob + error RB #2104
  • Wrap lock around nailgun spawning to protect against worker threads racing to spawn servers RB #2102
  • Force some files to be treated as binary. RB #2099
  • Convert JarRule and JarRules to use Payload to help fingerprint its configuration RB #2096
  • Fix ./pants server output RB #2067
  • Fix issue with isolated strategy and sources owned by multiple targets RB #2061
  • Handle broken resource mapping files (by throwing exceptions). RB #2038
  • Change subproc sigint handler to exit more cleanly RB #2024
  • Include classifier in JarDependency equality / hashing RB #2029
  • Migrating more data to payload fields in jvm_app and jvm_binary targets RB #2011
  • Fix ivy_resolve message: Missing expected ivy output file .../.ivy2/pants/internal-...-default.xml RB #2015
  • Fix ignored invalidation data in ScalaCompile RB #2018
  • Don't specify the jmake depfile if it doesn't exist RB #2009 RB #2012
  • Force java generation on for protobuf_gen, get rid of spurious warning RB #1994
  • Fix typo in ragel-gen entries (migrate-config) RB #1995
  • Fix include dependees options. RB #1760

Documentation

  • Be explicit that pants requires python 2.7.x to run. RB #2343
  • Update documentation on how to develop and document a JVM tool used by Pants RB #2318
  • Updates to changelog since 0.0.32 in preparation for next release. RB #2294
  • Document the pantsbuild jvm tool release process. RB #2289
  • Fix publishing docs for new 'publish.jar' syntax RB #2255
  • Example configuration for the isolated strategy. RB #2185
  • doc: uploading timing stats RB #1700
  • Add robots.txt to exclude crawlers from walking a 'staging' test publishing dir RB #2072
  • Add a note indicating that pants bootstrap requires a compiler RB #2057
  • Fix docs to mention automatic excludes. RB #2014

New Features

  • Add a global --tag option to filter targets based on their tags. RB #2362
  • Add support for ServiceLoader service providers. RB #2331
  • Implemented isolated code-generation strategy for simple_codegen_task. RB #2322
  • Add options for specifying python cache dirs. RB #2320
  • bash autocompletion support RB #2307 RB #2326
  • Invoke jvm doc tools via java. RB #2313
  • Add -log-filter option to the zinc task RB #2315
  • Adds a product to bundle_create RB #2254
  • Add flag to disable automatic excludes RB #2252
  • Find java distributions in well known locations. RB #2242
  • Added information about excludes to export goal RB #2238
  • In process java compilation in Zinc #1555 RB #2206
  • Add support for extra publication metadata. RB #2184 RB #2240
  • Extract the android plugin as an sdist. RB #2249
  • Adds optional output during zinc compilation. RB #2233
  • Jvm Tools release process RB #2292
  • Make it possible to create xml reports and output to console at the same time from ConsoleRunner. RB #2183
  • Adding a product to binary_create so that we can depend on it in an external plugin. RB #2172
  • Publishing to Maven Central RB #2068 RB #2188
  • Provide global option to look up BUILD files in git history RB #2121 RB #2164
  • Compile Java with Zinc RB #2156
  • Add BuildFileManipulator implementation and tests to contrib RB #977
  • Add option to suppress printing the changelog during publishing RB #2140
  • Filtering by targets' tags RB #2106
  • Adds the ability to specify explicit fields in MANIFEST.MF in a jvm_binary target. RB #2199 RB #2084 RB #2119 RB #2005
  • Parallelize isolated jvm compile strategy's chunk execution. RB #2109
  • Make test tasks specify which target failed in exception. RB #2090 RB #2113 RB #2112
  • Support glob output in filedeps. RB #2092
  • Export: support export of sources and globs RB #2082 RB #2094
  • Classpath isolation: make ivy resolution locally accurate. RB #2064
  • Add support for a postscript to jar_publish commit messages. RB #2070
  • Add optional support for auto-shading jvm tools. RB #2052 RB #2073
  • Introduce a jvm binary shader. RB #2050
  • Open source the spindle plugin for pants into contrib. RB #2306 RB #2301 RB #2304 RB #2282 RB #2033
  • Implement an exported ownership model. RB #2010

Small improvements, Refactoring and Tooling

  • Support caching chroots for reuse across pants runs. RB #2349
  • Upgrade RBT to the latest release RB #2360
  • Make sure arg to logRaw and log are only eval'ed once. (zinc) RB #2338
  • Clean up unnecessary code RB #2339
  • Exclude the com.example org from travis ivy cache. RB #2344
  • Avoid ivy cache thrash due to ivydata updates. RB #2333
  • Various refactoring of PythonChroot and related code. RB #2327
  • Have pytest_run create its chroots via its base class. RB #2314
  • Add a set of memoization decorators for functions. RB #2308 RB #2317
  • Allow jvm tool tests to bootstrap from the artifact cache. RB #2311
  • Fixed 'has no attribute' exception + better tests for export goal RB #2305
  • Refactoring ProtobufGen to use SimpleCodeGen. RB #2302
  • Refactoring JaxbGen to use SimpleCodeGen. RB #2303
  • Add pants header to assorted python files RB #2298
  • Remove unused imports from python files RB #2295
  • Integrating Patrick's SimpleCodegenTask base class with WireGen. RB #2274
  • Fix bad log statement in junit_run.py. RB #2290
  • Provide more specific value parsing errors RB #2283
  • Dry up incremental-compiler dep on sbt-interface. RB #2279
  • Use BufferedOutputStream in jar-tool RB #2270
  • Add relative_symlink to dirutil for latest run report RB #2271
  • Shade zinc. RB #2268
  • rm Exception.message calls RB #2245
  • sanity check on generated cobertura xml report RB #2231
  • [pants/jar] Fix a typo RB #2230
  • Convert validation.assert_list isinstance checking to be lazy RB #2228
  • use workunit output for cpp command running RB #2223
  • Remove all global config state. RB #2222 RB #2181 RB #2160 RB #2159 RB #2151 RB #2142 RB #2141
  • Make the version of specs in BUILD.tools match the one in 3rdparty/BUILD. RB #2203
  • Handle warnings in BUILD file context. RB #2198
  • Replace custom softreference cache with a guava cache. (zinc) RB #2190
  • Establish a source_root for pants scala code. RB #2189
  • Zinc patches to improve roundtrip time RB #2178
  • cache parsed mustache templates as they are requested RB #2171
  • memoize linkify to reduce reporting file stat calls RB #2170
  • Refactor BuildFile and BuildFileAdressMapper RB #2110
  • fix whitespace in workerpool test, rm unused import RB #2144
  • Use jvm-compilers as the parent of isolation workunits instead of 'isolation', add workunits for analysis RB #2134
  • Improve the error message when a tool fails to bootstrap. RB #2135
  • Fix rglobs-to-filespec code. RB #2133
  • Send workunit output to stderr during tests RB #2108
  • Changes to zinc analysis split/merge test data generation: RB #2095
  • Add a dummy workunit to the end of the run to print out a timestamp that includes the time spent in the last task. RB #2054
  • Add 'java-resource' and 'java-test-resource' content type for Resources Roots. RB #2046
  • Upgrade virtualenv from 12.0.7 to 12.1.1. RB #2047
  • convert all % formatted strings under src/ to str.format format RB #2042
  • Move overrides for registrations to debug. RB #2023
  • Split jvm_binary.py into jvm_binary.py and jvm_app.py. RB #2006
  • Validate analysis earlier, and handle it explicitly RB #1999
  • Switch to importlib RB #2003
  • Some refactoring and tidying-up in workunit. RB #1981
  • Remove virtualenv tarball from CI cache. RB #2281
  • Moved testing of examples and testprojects to tests RB #2158
  • Share the python interpreter/egg caches between tests. RB #2256
  • Add support for python test sharding. RB #2243
  • Fixup OSX CI breaks. RB #2241
  • fix test class name c&p error RB #2227
  • Remove the pytest skip tag for scala publish integration test as it uses --doc-scaladoc-skip RB #2225
  • integration test for classifiers RB #2216 RB #2218 RB #2232
  • Use 2 IT shards to avoid OSX CI timeouts. RB #2217
  • Don't have JvmToolTaskTestBase require access to "real" option values. RB #2213
  • There were two test_export_integration.py tests. RB #2215
  • Do not include integration tests in non-integration tests. RB #2173
  • Streamline some test setup. RB #2167
  • Ensure that certain test cleanup always happens, even if setUp fails. RB #2166
  • Added a test of the bootstrapper logic with no cached bootstrap.jar RB #2126
  • Remove integration tests from default targets in test BUILD files RB #2086
  • Cap BootstrapJvmTools mem in JvmToolTaskTestBase. RB #2077
  • Re-establish no nailguns under TravisCI. RB #1852 RB #2065
  • Further cleanup of test context setup. RB #2053
  • Remove plumbing for custom test config. RB #2051
  • Use a fake context when testing. RB #2049
  • Remove old TaskTest base class. RB #2039 RB #2031 RB #2027 RB #2022 RB #2017 RB #2016
  • Refactor com.pants package to org.pantsbuild in examples and testprojects RB #2037
  • Added a simple 'HelloWorld' java example. RB #2028
  • Place the workdir below the pants_workdir RB #2007

0.0.32 (3/26/2015)

Bugfixes

API Changes

  • Remove open_zip64 in favor of supporting zip64 everywhere RB #1984

Documentation

  • rm python_old, an old document RB #1973
  • Updated ivysettings.xml with comments and commented out local repos RB #1979
  • Update how to setup proxies in ivy RB #1975

New Features

  • Ignore blank lines and comments in scalastyle excludes file RB #1971
  • Adding a --test-junit-coverage-jvm-options flag RB #1968
  • --soft-excludes flag for resolve-ivy RB #1961

Small improvements, Refactoring and Tooling

  • Rid pantsbuild.pants of an un-needed antlr dep RB #1989
  • Kill the BUILD.transitional targets Issue #1126 RB #1983
  • Convert ragel-gen.py to use new options and expunge config from BinaryUtil RB #1970
  • Add the JvmCompileIsolatedStrategy RB #1898
  • Move construction of PythonChroot to PythonTask base class RB #1965
  • Delete the PythonBinaryBuilder class RB #1964
  • Removing dead code RB #1960
  • Make the test check that the return code is propagated RB #1966
  • Cleanup RB #1962
  • Get rid of almost all direct config access in python-building code RB #1954

0.0.31 (3/20/2015)

Bugfixes

  • Make JavaProtobufLibrary not exportable to fix publish. RB #1952
  • Pass compression option along to temp local artifact caches. RB #1955
  • Fix a missing symbol in ScalaCompile RB #1885 RB #1945
  • die only when invoked directly RB #1953
  • add import for traceback, and add test to exercise that code path, rm unsed kwargs RB #1868 RB #1943

API Changes

  • Use the publically released 2.1.1 version of Cobertura RB #1933

Documentation

  • Update docs for 'prep_command()' RB #1940

New Features

  • added sources and javadocs to export goal output RB #1936
  • Add flags to idea and eclipse goals to exclude pulling in sources and javadoc via ivy RB #1939

Small improvements, Refactoring and Tooling

  • Remove a spurious import in test_antlr_builder RB #1951
  • Refactor ZincUtils RB #1946
  • change set([]) / OrderedSet([]) to set() / OrderedSet() RB #1947
  • Rename TestPythonSetup to TestSetupPy RB #1950
  • Rename the PythonSetup task to SetupPy RB #1942

0.0.30 (3/18/2015)

Bugfixes

  • Fix missing deps from global switch to six range RB #1931 RB #1937
  • Fix python_repl to work for python_requirement_libraries RB #1934
  • Move count variable outside loop RB #1926
  • Fix regression in synthetic target context handling RB #1921
  • Try to fix the .rst render of the CHANGELOG on pypi RB #1911
  • To add android.jar to the classpath, create a copy under task's workdir RB #1902
  • walk synthetic targets dependencies when constructing context.target() RB #1863 RB #1914
  • Mix the value of the zinc name-hashing flag into cache keys RB #1912
  • Allow multiple ivy artifacts distinguished only by classifier RB #1905
  • Fix Git.detect_worktree to fail gracefully RB #1903
  • Avoid reparsing analysis repeatedly RB #1938

API Changes

  • Remove the now-superfluous "parallel resource directories" hack RB #1907
  • Make rglobs follow symlinked directories by default RB #1881

Documentation

  • Trying to clarify how to contribute docs RB #1922
  • Add documentation on how to turn on extra ivy debugging RB #1906
  • Adds documentation to setup_repo.md with tips for how to configure Pants to work behind a firewall RB #1899

New Features

Small improvements, Refactoring and Tooling

  • Deleting dead abbreviate_target_ids code. RB #1918 RB #1944
  • Move AptCompile to its own file RB #1935
  • use six.moves.range everywhere RB #1931
  • Port scrooge/linter config to the options system RB #1927
  • Fixes for import issues in JvmCompileStrategy post https://rbcommons.com/s/twitter/r/1885/ RB #1900
  • Moving stuff out of jvm and into project info backend RB #1917
  • Provides is meant to have been deprecated a long time ago RB #1915
  • Move JVM debug config functionality to the new options system RB #1924
  • Remove the --color option from specs_run. See https://rbcommons.com/s/twitter/r/1814/ RB #1916
  • Remove superfluous 'self.conf' argument to self.classpath RB #1913
  • Update ivy_utils error messages: include classifier and switch interpolation from % to format RB #1908
  • Added a python helper for check_header.sh in git pre-commit script RB #1910
  • Remove direct config access in scalastyle.py RB #1897
  • Replace all instances of xrange with range, as xrange is deprecated in Python 3 RB #1901
  • Raise a better exception on truncated Zinc analysis files RB #1896
  • Fail fast for OSX CI runs RB #1894
  • Upgrade to the latest rbt release RB #1893
  • Use cmp instead of a file hash RB #1892
  • Split out a JvmCompileStrategy interface RB #1885
  • Decouple WorkUnit from RunTracker RB #1928
  • Add Scm.add, change publish to add pushdb explicitly, move scm publish around RB #1868

0.0.29 (3/9/2015)

CI

  • Support local pre-commit checks RB #1883
  • Fix newline to fix broken master build RB #1888
  • Shard out OSX CI RB #1873
  • Update travis's pants cache settings RB #1875
  • Fixup contrib tests on osx CI RB #1867
  • Reduce number of test shards from 8 to 6 on Travis-ci RB #1804
  • Cache the isort venv for ci runs RB #1740
  • Fixup ci isort check RB #1728

Tests

  • Add jar Publish integration tests to test the generated pom and ivy.xml files RB #1879
  • Added test that shows that nested scope inherits properly from cmdline, config, and env RB #1851 RB #1865
  • Improve AndroidDistribution coverage RB #1861
  • Modernize the protobuf and wire task tests RB #1854
  • Replace python_test_suite with target RB #1821
  • Switch test_jvm_run.py to the new TaskTestBase instead of the old TaskTest RB #1829
  • Remove two non-useful tests RB #1828
  • Fix a python run integration test RB #1810
  • Work around py test_runner issue with ns packages RB #1813
  • Add a test for the Git changelog RB #1792
  • Create a directory with no write perms for TestAndroidConfigUtil RB #1796
  • Relocated some tests (no code changes) from tests/python/pants_test/tasks into tests/python/pants_test/backend/codegen/tasks to mirror the source location RB #1746

Docs

  • Add some documentation about using the pants reporting server for troubleshooting RB #1887
  • Docstring reformatting for Task and InvalidationCheck RB #1769
  • docs: Show correct pictures for intellij.html RB #1716
  • doc += how to turn on cache RB #1668

New language: C++

  • Separate compile step for C++ to just compile objects RB #1855
  • Fixup CppToolchain to be lazy and actually cache RB #1850
  • C++ support in contrib RB #1818

API Changes

  • Kill the global --ng-daemons flag RB #1852
  • Removed parallel_test_paths setting from pants.ini. It isn't needed in the pants repo any more RB #1846
  • BUILD file format cleanup:
    • Deprecate bundle().add in favor of bundle(files=) RB #1788
    • Deprecate .intransitive() in favor of argument RB #1797
    • Deprecate target.with_description in favor of target(description=) RB #1790
    • Allow exclude in globs RB #1762
    • Move with_artifacts to an artifacts argument RB #1672
  • An attempt to deprecate some old methods RB #1720
  • Options refactor work
    • Make option registration recursion optional RB #1870
    • Remove all direct config uses from jar_publish.py RB #1844
    • Read pants_distdir from options instead of config RB #1842
    • Remove direct config references in thrift gen code RB #1839
    • Android backend now exclusively uses the new option system RB #1819
    • Replace config use in RunTracker with options RB #1823
    • Add pants_bootstradir and pants_configdir to options bootstrapper RB #1835
    • Remove all direct config access in task.py RB #1827
    • Convert config-only options in goal idea and eclipse to use new options format RB #1805
    • Remove config_section from some tasks RB #1806
    • Disallow --no- on the name of boolean flags, refactor existing ones Issue #34 RB #1799
    • Migrating pants.ini config values for protobuf-gen to advanced registered options under gen.protobuf RB #1741
  • Add a way to deprecate options with 'deprecated_version' and 'deprecated_hint' kwargs to register() RB #1799 RB #1814
  • Implement compile_classpath using UnionProducts RB #1761
  • Introduce a @deprecated decorator RB #1725
  • Update jar-tool to 0.1.9 and switch to use @argfile calling convention RB #1798
  • Pants to respect XDB spec for global storage on unix systems RB #1817
  • Adds a mixin (ImportJarsMixin) for the IvyImports task RB #1783
  • Added invalidation check to UnpackJars task RB #1776
  • Enable python-eval for pants source code RB #1773
  • adding xml output for python coverage Issue #1105 RB #1770
  • Optionally adds a path value onto protoc's PATH befor launching it RB #1756
  • Add progress information to partition reporting RB #1749
  • Add SignApk product and Zipalign task RB #1737
  • Add an 'advanced' parameter to registering options RB #1739
  • Add an env var for enabling the profiler RB #1305

Bugfixes and features

  • Kill the .saplings split RB #1886
  • Update our requests library to something more recent RB #1884
  • Make a nicer looking name for workunit output RB #1876
  • Fixup DxCompile jvm_options to be a list RB #1878
  • Make sure <?xml starts at the beginning of the file when creating an empty xml report RB #1856
  • Set print_exception_stacktrace in pants.ini RB #1872
  • Handle --print-exception-stacktrace and --version more elegantly RB #1871
  • Improve AndroidDistribution caching RB #1861
  • Add zinc to the platform_tools for zinc_utils RB #1779 RB #1858
  • Fix WARN/WARNING confusion RB #1866
  • Fixup Config to find DEFAULT values for missing sections RB #1851
  • Get published artifact classfier from config RB #1857
  • Make Context.targets() include synthetic targets RB #1840 RB #1863
  • Fix micros to be left 0 padded to 6 digits RB #1849
  • Setup logging before plugins are loaded RB #1820
  • Introduce pants_setup_py and contrib_setup_py helpers RB #1822
  • Support zinc name hashing RB #1779
  • Actually generate a depfile from t.c.tools.compiler and use it in jmake RB #1824 RB #1825
  • Ivy Imports now has a cache RB #1785
  • Get rid of some direct config uses in python_repl.py RB #1826
  • Add check if jars exists before registering products RB #1808
  • shlex the python run args RB #1782
  • Convert t.c.log usages to logging RB #1815
  • Kill unused twitter.common reqs and deps RB #1816
  • Check import sorting before checking headers RB #1812
  • Fixup typo accessing debug_port option RB #1811
  • Allow the dependees goal and idea to respect the --spec_excludes option RB #1795
  • Copy t.c.lang.{AbstractClass,Singleton} to pants RB #1803
  • Replace all t.c.lang.Compatibility uses with six RB #1801
  • Fix sp in java example readme.md RB #1800
  • Add util.XmlParser and AndroidManifestParser RB #1757
  • Replace Compatibility.exec_function with six.exec_ RB #1742 RB #1794
  • Take care of stale pidfiles for pants server RB #1791
  • Fixup the scrooge release RB #1793
  • Extract scrooge tasks to contrib/ RB #1780
  • Fixup JarPublish changelog rendering RB #1787
  • Preserve dictionary order in the anonymizer RB #1779 RB #1781
  • Fix a test file leak to the build root RB #1771
  • Replace all instances of compatibility.string RB #1764
  • Improve the python run error message RB #1773 RB #1777
  • Upgrade pex to 0.8.6 RB #1778
  • Introduce a PythonEval task RB #1772
  • Add an elapsed timestamp to the banner for CI RB #1775
  • Trying to clean up a TODO in IvyTaskMixin RB #1753
  • rm double_dag RB #1711
  • Add skip / target invalidation to thrift linting RB #1755
  • Fixup Task.invalidated UI RB #1758
  • Improve the implementation of help printing RB #1739 RB #1744
  • Fix TestAndroidBase task_type override miss RB #1751
  • Pass the BUILD file path to compile RB #1742
  • Bandaid leaks of global Config state in tests RB #1750
  • Fixing cobertura coverage so that it actually works RB #1704
  • Restore the ability to bootstrap Ivy with a custom configuration file RB #1709
  • Kill BUILD file bytecode compilation RB #1736
  • Kill 'goal' usage in the pants script RB #1738
  • Fixup ivy report generation and opening RB #1735
  • Fixup pants sys.excepthook for pex context RB #1733 RB #1734
  • Adding long form of help arguments to the help output RB #1732
  • Simplify isort config RB #1731
  • Expand scope of python file format checks RB #1729
  • Add path-to option to depmap RB #1545
  • Fix a stragler .is_apt usage RB #1724
  • Introduce isort to check *.py import ordering RB #1726
  • Upgrade to pex 0.8.5 RB #1721
  • cleanup is_xxx checks: is_jar_library RB #1719
  • Avoid redundant traversal in classpath calculation RB #1714
  • Upgrade to the latest virtualenv RB #1715 RB #1718
  • Fixup the release script RB #1715
  • './pants goal' -> './pants' RB #1617
  • Add new function open_zip64 which defaults allowZip64=True for Zip files RB #1708
  • Fix a bug that --bundle-archive=tar generates .tar.gz instead of a .tar RB #1707
  • Remove 3rdparty debug.keystore RB #1703
  • Keystore no longer a target, apks signed with SignApkTask RB #1690
  • remove this jar_rule I accidentally added RB #1701
  • Require pushdb migration to specify a destination directory RB #1684

0.0.28 (2/1/2015)

Bugfixes

  • Numerous doc improvements & generation fixes

    • Steal some info from options docstring
    • Document --config-override & PANTS_ environment vars
    • Document JDK_HOME & JAVA_HOME use when choosing a java distribution
    • Rename "Goals Reference" page -> "Options Reference"
    • Document when to use isrequired
    • Fix Google indexing to ignore test sites
    • Update the code layout section of Pants Internals
    • Show changelog & for that support page(source='something.rst')
    • Add a reminder that you can do set-like math on FileSets
    • Hacking on Pants itself, update --pdb doc
    • Start of a "Why Choose Pants?" section
    • Highlight plugin examples from twitter/commons
    • Add a blurb about deploy_jar_rules to the JVM docs
    • Show how to pass -s to pytest
    • When to use java_sources, when not to
    • Start of a Pants-with-scala page
    • Publish page now shows provides= example
    • Add a flag to omit "internal" things
    • Slide tweaks based on class feedback
    • Document argument splitting for options

    Issue #897 RB #1092 RB #1490 RB #1532 RB #1544 RB #1546 RB #1548 RB #1549 RB #1550 RB #1554 RB #1555 RB #1559 RB #1560 RB #1565 RB #1575 RB #1580 RB #1583 RB #1584 RB #1593 RB #1607 RB #1608 RB #1609 RB #1618 RB #1622 RB #1633 RB #1640 RB #1657 RB #1658 RB #1563 RB #1564 RB #1677 RB #1678 RB #1694 RB #1695

  • Add calls to relpath so that we don't generate overlong filenames on mesos RB #1528 RB #1612 RB #1644

  • Regularize headers RB #1691

  • Pants itself uses python2.7, kill unittest2 imports RB #1689

  • Make 'setup-py' show up in './pants goal goals' RB #1466

  • Test that CycleException happens for cycles (instead of a stack overflow) RB #1686

  • Replace t.c.collection.OrderedDict with 2.7+ stdlib RB #1687

  • Make ide_gen a subclass of Task to avoid depending on compile and resources tasks Issue #997 RB #1679

  • Remove with_sources() from 3rdparty/BUILD RB #1674

  • Handle thrift inclusion for python in apache_thrift_gen RB #1656 RB #1675

  • Make beautifulsoup4 dep fixed rather than floating RB #1670

  • Fixes for unpacked_jars RB #1624

  • Fix spurious Products requirements RB #1662

  • Fixup the options bootstrapper to support boolean flags RB #1660 RB #1664

  • Change Distribution.cached to compare using Revision objects RB #1653

  • Map linux i686 arch to i386 Issue #962 RB #1659

  • bump virtualenv version to 12.0.5 RB #1621

  • Bugfixes in calling super methods in traversable_specs and traversable_dependency_specs RB #1611

  • Raise TaskError on python antlr generation failure RB #1604

  • Fix topological ordering + chunking bug in jvm_compile RB #1598

  • Fix CI from RB 1604 (and change a test name as suggested by nhoward) RB #1606

  • Mark some missing-deps testprojects as expected to fail RB #1601

  • Fix scalac plugin support broken in a refactor RB #1596

  • Do not insert an error message as the "main" class in jvm_binary_task RB #1590

  • Remove variable shadowing from method in archive.py RB #1589

  • Don't realpath jars on the classpath RB #1588 RB #1591

  • Cache ivy report dependency traversals consistently RB #1557

  • Print the traceback when there is a problem loading or calling a backend module RB #1582

  • Kill unused Engine.execution_order method and test RB #1576

  • Support use of pytest's --pdb mode RB #1570

  • fix missing dep. allows running this test on its own RB #1561

  • Remove dead code and no longer needed topo sort from cache_manager RB #1553

  • Use Travis CIs new container based builds and caching RB #1523 RB #1537 RB #1538

API Changes

  • Improvements and extensions of WhatChanged functionality

    • Skip loading graph if no changed targets
    • Filter targets from changed using exclude_target_regexp
    • Compile/Test "changed" targets
    • Optionally include direct or transitive dependees of changed targets
    • Add changes-in-diffspec option to what-changed
    • Refactor WhatChanged into base class, use LazySourceMapper
    • Introduce LazySourceMapper and test

    RB #1526 RB #1534 RB #1535 RB #1542 RB #1543 RB #1567 RB #1572 RB #1595 RB #1600

  • More options migration, improvements and bugfixes

    • Centralize invertible arg logic
    • Support loading boolean flags from pants.ini
    • Add a clarifying note in migrate_config
    • Some refactoring of IvyUtils
    • Rename the few remaining "jvm_args" variables to "jvm_options"
    • ./pants --help-all lists all options
    • Add missing stanza in the migration script
    • Switch artifact cache setup from config to new options
    • Migrate jvm_compile's direct config accesses to the options system
    • Added some formatting to parse errors for dicts and lists in options
    • s/new_options/options/g
    • Re-implement the jvm tool registration mechanism via the options system
    • Make JvmRun support passthru args

    RB #1347 RB #1495 RB #1521 RB #1527 RB #1552 RB #1569 RB #1585 RB #1599 RB #1626 RB #1630 RB #1631 RB #1646 RB #1680 RB #1681 RB #1696

  • Upgrade pex dependency to 0.8.4

    • Pick up several perf wins
    • Pick up fix that allows pex to read older pexes

    RB #1648 RB #1693

  • Upgrade jmake to org.pantsbuild releases

    • Upgrade jmake to version with isPackagePrivateClass fix
    • Upgrade jmake to version that works with java 1.5+

    Issue #13 RB #1594 RB #1628 RB #1650

  • Fix ivy resolve args + added ability to provide custom ivy configurations RB #1671

  • Allow target specs to come from files RB #1669

  • Remove obsolete twitter-specific hack 'is_classpath_artifact' RB #1676

  • Improve RoundEngine lifecycle RB #1665

  • Changed Scala version from 2.9.3 to 2.10.3 because zinc was using 2.10.3 already RB #1610

  • Prevent "round trip" dependencies RB #1603

  • Edit Config.get_required so as to raise error for any blank options RB #1638

  • Don't plumb an executor through when bootstrapping tools RB #1634

  • Print jar_dependency deprecations to stderr RB #1632

  • Add configuration parameter to control the requirements cache ttl RB #1627

  • Got ivy to map in javadoc and source jars for pants goal idea RB #1613 RB #1639

  • Remove the '^' syntax for the command line spec parsing RB #1616

  • Kill leftover imports handling from early efforts RB #592 RB #1614

  • Adding the ability to pull in a Maven artifact and extract its contents RB #1210

  • Allow FingerprintStrategy to opt out of fingerprinting RB #1602

  • Remove the ivy_home property from context RB #1592

  • Refactor setting of PYTHONPATH in pants.ini RB #1586

  • Relocate 'to_jar_dependencies' method back to jar_library RB #1574

  • Update protobuf_gen to be able to reference sources outside of the subdirectory of the BUILD file RB #1573

  • Kill goal dependencies RB #1577

  • Move excludes logic into cmd_line_spec_parser so it can filter out broken build targets RB #930 RB #1566

  • Replace exclusives_groups with a compile_classpath product RB #1539

  • Allow adding to pythonpath via pant.ini RB #1457

0.0.27 (12/19/2014)

Bugfixes

  • Fix python doc: "repl" and "setup-py" are goals now, don't use "py" RB #1302
  • Fix python thrift generation RB #1517
  • Fixup migrate_config to use new Config API RB #1514

0.0.26 (12/17/2014)

Bugfixes

  • Fix the ScroogeGen target selection predicate RB #1497

0.0.25 (12/17/2014)

API Changes

Bugfixes

  • Numerous doc improvements & generation fixes

    • Updates to the pants essentials tech talk based on another dry-run
    • On skinny displays, don't show navigation UI by default
    • Handy rbt status tip from RBCommons newsletter
    • Document how to create a simple plugin
    • Update many bash examples that used old-style flags
    • Update Pants+IntelliJ docs to say the Plugin's the new hotness, link to plugin's README
    • Publish docs the new way
    • Update the "Pants Essentials" tech talk slides
    • Convert .rst files -> .md files
    • For included code snippets, don't just slap in a pre, provide syntax highlighting
    • Add notes about JDK versions supported
    • Dust off the Task Developer's Guide and rm the "pagerank" example
    • Add a sitegen task, create site with better navigation
    • For 'goal builddict', generate .rst and .html, not just .rst
    • Narrow setup 'Operating System' classfiers to known-good

    Issue #16 Issue #461 Issue #739 RB #891 RB #1074 RB #1075 RB #1079 RB #1084 RB #1086 RB #1088 RB #1090 RB #1101 RB #1126 RB #1128 RB #1134 RB #1136 RB #1154 RB #1155 RB #1164 RB #1166 RB #1176 RB #1178 RB #1182 RB #1191 RB #1196 RB #1205 RB #1241 RB #1263 RB #1277 RB #1284 RB #1292 RB #1295 RB #1296 RB #1298 RB #1299 RB #1301 RB #1314 RB #1315 RB #1326 RB #1348 RB #1355 RB #1356 RB #1358 RB #1363 RB #1370 RB #1377 RB #1386 RB #1387 RB #1401 RB #1407 RB #1427 RB #1430 RB #1434 RB #1440 RB #1446 RB #1464 RB #1484 RB #1491

  • CmdLineProcessor uses binary class name RB #1489

  • Use subscripting for looking up targets in resources_by_products RB #1380

  • Fix/refactor checkstyle RB #1432

  • Fix missing import RB #1483

  • Make ./pants help and ./pants help <goal> work properly Issue #839 RB #1482

  • Cleanup after custom options bootstrapping in reflect RB #1468

  • Handle UTF-8 in thrift files for python RB #1459

  • Optimize goal changed RB #1470

  • Fix a bug where a request for help wasn't detected RB #1467

  • Always relativize the classpath where possible RB #1455

  • Gracefully handle another run creating latest link RB #1396

  • Properly detect existence of a symlink RB #1437

  • Avoid throwing in ApacheThriftGen.__init__ RB #1428

  • Fix error message in scrooge_gen RB #1426

  • Fixup BuildGraph to handle mixes of synthetic and BUILD targets RB #1420

  • Fix antlr package derivation RB #1410

  • Exit workers on sigint rather than ignore RB #1405

  • Fix error in string formatting RB #1416

  • Add missing class RB #1414

  • Add missing import for dedent in resource_mapping.py RB #1403

  • Replace twitter commons dirutil Lock with lockfile wrapper RB #1390

  • Make interpreter_cache a property, acquire lock in accessor Issue #819 RB #1392

  • Fix .proto files with unicode characters in the comments RB #1330

  • Make pants goal run for Python exit with error code 1 if the python program exits non-zero RB #1374

  • Fix a bug related to adding sibling resource bases RB #1367

  • Support for the --kill-nailguns option was inadvertently removed, this puts it back RB #1352

  • fix string formatting so test -h does not crash RB #1353

  • Fix java_sources missing dep detection RB #1336

  • Fix a nasty bug when injecting target closures in BuildGraph RB #1337

  • Switch src/* usages of Config.load to use Config.from_cache instead RB #1319

  • Optimize what_changed, remove un-needed extra sort RB #1291

  • Fix DetectDuplicate's handling of an append-type flag RB #1282

  • Deeper selection of internal targets during publishing RB #1213

  • Correctly parse named_is_latest entries from the pushdb RB #1245

  • Fix error message: add missing space RB #1266

  • WikiArtifact instances also have provides; limit ivy to jvm RB #1259

  • Fix [run.junit] -> [test.junit] RB #1256

  • Fix signature in goal targets and BUILD dictionary RB #1253

  • Fix the regression introduced in https://rbcommons.com/s/twitter/r/1186 RB #1254

  • Temporarily change stderr log level to silence log.init if --quiet RB #1243

  • Add the environment's PYTHONPATH to sys.path when running dev pants RB #1237

  • Remove java_sources as target roots for scala library in depmap project info Issue #670 RB #1190

  • Allow UTF-8 characters in changelog RB #1228

  • Ensure proper semantics when replacing all tasks in a goal RB #1220 RB #1221

  • Fix reading of scalac plugin info from config RB #1217

  • Dogfood bintray for pants support binaries RB #1208

  • Do not crash on unicode filenames RB #1193 RB #1209

  • In the event of an exception in jvmdoc_gen, call get() on the remaining futures RB #1202

  • Move workdirs creation from __init__ to pre_execute in jvm_compile & Remove QuietTaskMixin from several tasks RB #1173

  • Switch from os.rename to shutil.move to support cross-fs renames when needed RB #1157

  • Fix scalastyle task, wire it up, make configs optional RB #1145

  • Fix issue 668: make release.sh execute packaged pants without loading internal backends during testing Issue #668 RB #1158

  • Add payload.get_field_value() to fix KeyError from pants goal idea testprojects:: RB #1150

  • Remove debug_args from pants.ini Issue #650 RB #1137

  • When a jvm doc tool (e.g. scaladoc) fails in combined mode, throw an exception RB #1116

  • Remove hack to add java_sources in context RB #1130

  • Memoize Address.__hash__ computation RB #1118

  • Add missing coverage deps RB #1117

  • get goal targets using similar codepath to goal builddict RB #1112

  • Memoize fingerprints by the FPStrategy hash RB #1119

  • Factor in the jvm version string into the nailgun executor fingerprint RB #1122

  • Fix some error reporting issues RB #1113

  • Retry on failed scm push; also, pull with rebase to increase the odds of success RB #1083

  • Make sure that 'option java_package' always overrides 'package' in protobuf_gen RB #1108

  • Fix order-dependent force handling: if a version is forced in one place, it is forced everywhere RB #1085

  • Survive targets without derivations RB #1066

  • Make internal_backend plugins 1st class local pants plugins RB #1073

0.0.24 (9/23/2014)

API Changes

  • Add a whitelist to jvm dependency analyzer RB #888

  • Refactor exceptions in build_file.py and build_file_parser.py to derive from a common baseclass and eliminate throwing IOError. RB #954

  • Support absolute paths on the command line when they start with the build root RB #867

  • Make :: fail for an invalid dir much like : does for a dir with no BUILD file Issue #484 RB #907

  • Deprecate pants & dependencies aliases and remove config, goal, phase, get_scm & set_scm aliases RB #899 RB #903 RB #912

  • Export test infrastructure for plugin writers to use in pantsbuild.pants.testinfra sdist Issue #539 RB #997 RB #1004

  • Publishing improvements:

    • Add support for doing remote publishes with an explicit snapshot name
    • One publish/push db file per artifact

    RB #923 RB #994

  • Several improvements to IdeGen derived goals:

    • Adds the --<goal>-use-source-root for IDE project generation tasks
    • Added --idea-exclude-maven-target to keep IntelliJ from indexing 'target' directories
    • Changes the behavior of goal idea to create a subdirectory named for the project name
    • Added exclude-folders option in pants.ini, defaulted to excluding a few dirs in .pants.d

    Issue #564 RB #1006 RB #1017 RB #1019 RB #1023

  • Enhancements to the depmap goal to support IDE plugins:

    • Add flag to dump project info output to file
    • Add missing resources to targets
    • Add content type to project Info

    Issue #5 RB #964 RB #987 RB #998

  • Make SourceRoot fundamentally understand a rel_path RB #1036

  • Added thrift-linter to pants RB #1044

  • Support limiting coverage measurements globally by module or path Issue #328 Issue #369 RB #1034

  • Update interpreter_cache.py to support a repo-wide interpreter requirement RB #1025

  • Changed goal markdown:

    Issue #535 RB #949 RB #961

  • Rename Phase -> Goal RB #856 RB #879 RB #880 RB #887 RB #890 RB #910 RB #913 RB #915 RB #931

  • Android support additions:

    • Add AaptBuild task
    • Add JarsignerTask and Keystore target

    RB #859 RB #883

  • Git/Scm enhancements:

    • Allow the buildroot to be a subdirectory of the git worktree
    • Support getting the commit date of refs
    • Add merge-base and origin url properties to git

    Issue #405 RB #834 RB #871 RB #884 RB #886

Bugfixes

0.0.23 (8/11/2014)

API Changes

  • Remove unused Task.invalidate_for method and unused extra_data variable RB #849
  • Add DxCompile task to android backend RB #840
  • Change all Task subclass constructor args to (*args, **kwargs) RB #846
  • The public API for the new options system Issue #425 RB #831 RB #819
  • Rename pants.goal.goal.Goal to pants.goal.task_registrar.TaskRegistrar Issue #345 RB #843

Bugfixes

  • Better validation for AndroidTarget manifest field RB #860
  • Remove more references to /BUILD:target notation in docs RB #855 RB #853
  • Fix up the error message when attempting to publish without any configured repos RB #850
  • Miscellaneous fixes to protobuf codegen including handling collisions deterministically RB #720
  • Migrate some reasonable default values from pants.ini into 'defaults' in the pants source Issue #455 Issue #456 Issue #458 RB #852
  • Updated the basename and name of some targets to prevent colliding bundles in dist/ RB #847
  • Provide a better error message when referencing the wrong path to a BUILD file RB #841
  • Add assert_list to ensure an argument is a list - use this to better validate many targets RB #811
  • Update front-facing help and error messages for Android targets/tasks RB #837
  • Use JvmFingerprintStrategy in cache manager RB #835

0.0.22 (8/4/2014)

API Changes

  • Upgrade pex dependency from twitter.common.python 0.6.0 to pex 0.7.0 RB #825
  • Added a --spec-exclude command line flag to exclude specs by regular expression RB #747
  • Upgrade requests, flip to a ranged requirement to help plugins RB #771
  • New goal ensime to generate Ensime projects for Emacs users RB #753

Bugfixes

  • goal repl consumes targets transitively RB #781
  • Fixup JvmCompile to always deliver non-None products that were required by downstream RB #794
  • Relativize classpath for non-ng java execution RB #804
  • Added some docs and a bugfix on debugging a JVM tool (like jar-tool or checkstyle) locally RB #791
  • Added an excludes attribute that is set to an empty set for all SourcePayload subclasses Issue #414 RB #793
  • Add binary fetching support for OSX 10.10 and populate thrift and protoc binaries RB #789
  • Fix the pants script exit status when bootstrapping fails RB #779
  • Added benchmark target to maven_layout() RB #780
  • Fixup a hole in external dependency listing wrt encoding RB #776
  • Force parsing for filtering specs RB #775
  • Fix a scope bug for java agent manifest writing RB #768 RB #770
  • Plumb ivysettings.xml location to the publish template RB #764
  • Fix goal markdown: README.html pages clobbered each other RB #750

0.0.21 (7/25/2014)

Bugfixes

  • Fixup NailgunTasks with missing config_section overrides RB # 762

0.0.20 (7/25/2014)

API Changes

Bugfixes

0.0.19 (7/23/2014)

API Changes

Bugfixes

  • Numerous doc fixes RB #699 RB #703 RB #704

  • Fixup broken bundle alias Issue #375 RB #722

  • Remove dependencies on twitter.common.{dirutil,contextutils} RB #710 RB #713 RB #717 RB #718 RB #719 RB #726

  • Fixup missing JunitRun resources requirement RB #709

  • Fix transitive dependencies for GroupIterator/GroupTask RB #706

  • Ensure resources are prepared after compile Issue #373 RB #708

  • Upgrade to twitter.common.python 0.5.10 to brings in the following bugfix:

    Update the mtime on retranslation of existing distributions.
    
    1bff97e 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.
    

    RB #707

  • Resurrected pants goal idea with work remaining on source and javadoc jar mapping RB #695

  • Fix BinaryUtil raise of BinaryNotFound Issue #367 RB #705

0.0.18 (7/16/2014)

API Changes

Bugfixes

0.0.17 (7/15/2014)

  • Initial published version of pantsbuild.pants
Generated by publish_docs from dist/markdown/html/src/python/pants/notes/master.html 2018-05-03T17:02:35.173226