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
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
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
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
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
Public API Changes
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
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
- Single resolve with coursier (#5362) Issue #743 PR #5362 PR #735
- Repoint the 'current' symlink even for valid VTs. (#5375) PR #5375
- Do not download node package multiple times (#5372) PR #5372
- Fix calls to trace (#5366) Issue #5365 PR #5366
Documentation Updates
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
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
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
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
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
Bugfixes
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
Bugfixes
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
Bugfixes
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
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
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
1.4.0.dev22 (12/01/2017)
API Changes
New Features
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
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
1.4.0.dev20 (11/11/2017)
New Features
API Changes
- Bump to jarjar 1.6.5 to pull in https://github.com/pantsbuild/jarjar/pull/30 (#5087) PR #5087 PR #30
- Update cmake to 3.9.5 (#5072) Issue #4975#issuecomment-342562504 PR #5072
Bugfixes
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
1.4.0.dev18 (10/29/2017)
New Features
1.4.0.dev17 (10/27/2017)
New Features
API Changes
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
Documentation Updates
- Remove outdated doc (#4989) PR #4989
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
Bugfixes
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
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
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
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
Bugfixes
- Clean up stray pantsd-runner processes (#4835) PR #4835
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
1.4.0.dev9 (8/18/2017)
Bugfixes
1.4.0.dev8 (8/11/2017)
New Features
- Add support for junit (successful) test caching. (#4771) PR #4771
API Changes
Bugfixes
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
- Introduce dirutil.mergetree. (#4757) PR #4757
- Zinc 1.0.0-X20 upgrade: JVM portion (#4728) Issue #355), PR #4728
- Ensure setuptools version when running setup.py. (#4753) PR #4753
- Kill deprecated explicit register. Commit 5583dd1
1.4.0.dev5 (7/14/2017)
API Changes
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
- Remove Download Stats (#4724) Issue #716 PR #4724
- Fix roundtrip example in JVM documentation (#4706) PR #4706
Refactoring, Improvements, and Tooling
1.4.0.dev4 (6/23/2017)
API Changes
- Replace the invalidate goal with --cache-ignore. (#4686) PR #4686
Bugfixes
Refactoring, Improvements, and Tooling
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
Refactoring, Improvements, and Tooling
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
1.4.0.dev0 (5/12/2017)
API Changes
Bugfixes
Refactoring, Improvements, and Tooling
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
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
1.3.0.dev19 (4/28/2017)
A weekly unstable release.
API Changes
Bugfixes
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
1.3.0.dev17 (4/15/2017)
A weekly unstable release, highlighted by setting the new python backend as the default.
API Changes
Bugfixes
Refactoring, Improvements, and Tooling
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
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
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
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
Bugfixes
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
Bugfixes
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
Bugfixes
- Fix missed native_engine_version. Commit cbdb97515
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
API Changes
New Features
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
1.3.0.dev8 (1/20/2017)
API Changes
New Features
- Scrooge codegen improvements (#4177) PR #4177
Refactoring, Improvements, and Tooling
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
- Add contrib module for Error Prone http://errorprone.info/ (#4163) PR #4163
Refactoring, Improvements, and Tooling
Bugfixes
- fix a small bug in ApacheThriftGenBase class (#4181) PR #4181
1.3.0.dev6 (1/06/2017)
API Changes
1.3.0.dev5 (12/30/2016)
API Changes
- Upgrade default go to 1.7.4. (#4149) PR #4149
Bugfixes
Documentation
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
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
1.3.0dev2 (11/20/2016)
A return to the regular schedule of weekly unstable releases.
API Changes
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
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
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
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
1.2.0dev10 (9/20/2016)
Regularly scheduled unstable release. Thanks to the contributors! Version bump, previous release only did a partial upload.
Bugfixes
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
1.2.0dev9 (9/12/2016)
Regularly scheduled unstable release. Thanks to the contributors! Version bump, previous release only did a partial upload.
Bugfixes
Refactoring, Improvements, and Tooling
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
New Engine Work
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
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
1.2.0-dev4 (8/12/2016)
Regularly scheduled unstable release.
New Features
- Introduce fmt goal, isort subgoal RB #4134
Bugfixes
New Engine Work
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.
1.2.0-dev1 (7/30/2016)
Regularly scheduled unstable release.
New Features
API Changes
Bugfixes
New Engine Work
Refactoring, Improvements, and Tooling
- A custom version of com.sun.tools.javac.api.JavacTool. RB #4122
- Time out Jenkins shards after 60 minutes. RB #4082
- Eliminate file listing ordering assumptions. RB #4121
- Upgrade the pants bootstrap venv to 15.0.2. RB #4120
- Bump default wheel version to latest. RB #4116
- Remove warnings from the release process. RB #4119
- Upgrade default go to 1.6.3. RB #4115
- Added a page on policies for pants committers RB #4105
- Cleanup BinaryUtil. RB #4108
- Update junit-runner to version 1.0.13 RB #4102 RB #4101 RB #4091 RB #4081 RB #4107
- Enable autoFlush for JUnit printstream so we get output as the tests run RB #4101 RB #4102
- Print a message for cycles in the graph when computing the target fingerprint RB #4087
- Pin remaining core-sensitive options. RB #4100 RB #4104
- Set the encoding for javac in pantsbuild/pants Issue #3702 RB #4103
- Customize pants settings for Jenkins. RB #4101 RB #4100
- Buffer the ConsoleRunner's use of stdio. RB #4101
- Extract safe_args to a jvm backend module. RB #4090
- Move ui_open into its own util module. RB #4089
- Simplify ConcurrentRunnerScheduler & cleanup. RB #4091
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
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
API Changes
- Add is_target_root in export RB #4030
Bugfixes
- ConsoleRunner bugfix for @TestSerial and other test cleanups RB #4026
New Engine Work
- [engine] Proper implementation of ** globs in the v2 engine RB #4034
- [engine] Fix TargetMacro replacements of adapted aliases Issue #3560 Issue #3561 RB #4000
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
Bugfixes
New Engine Work
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
Bugfixes
- Fix warnings about AliasTarget not having a BUILD alias. RB #3993
- Make checkstyle's options filename-agnostic. Issue #3555 RB #3975
New Engine Work
- [engine] Capture the resources=globs argument for Python targets Issue #3506 RB #3979
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
Bugfixes
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
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
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
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
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
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
- Introduce idea-plugin goal to invoke intellij pants plugin via CLI Issue #58 RB #3664
- Enhance parallel testing junit_tests Issue #3209 RB #3707
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
- [engine] Split engine docs from example docs RB #3734
- [engine] Only request literal Variants for Address objects RB #3724
- [engine] Implement symlink handling Issue #3189)) RB #3691
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
Bugfixes
Refactoring, Improvements, and Tooling
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
Bugfixes
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
- [engine] bug fix: ensure we catch all exceptions in subprocess Issue #3149 Issue #3149 RB #3656
- [engine] Move the visualizer into LocalScheduler. RB #3649
- [pantsd] Repair watchman startup flakiness. RB #3644
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
Bugfixes
New Features
Refactoring, Improvements, and Tooling
- Speed up node repl integration test by using smaller targets RB #3584
New Engine Work
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
- [engine] Calculate legacy target sources using the engine Issue #3058 RB #3474 RB #3592
- Split literal from netrc credentials to allow pickling Issue #3058 RB #3605
- Make shader classes top-level to allow for pickling RB #3606
- [engine] no longer content address subject Issue #3066 RB #3593 RB #3604
- Hide cycle in testprojects RB #3600
- [engine] Eliminate non-determinism computing cache keys RB #3593
0.0.77 (03/18/2016)
New Features
Refactoring, Improvements, and Tooling
Bump junit-runner to 1.0.3 RB #3585
Remove unneeded args4j handler registrations that cause failures in tests and rename TestParser
Set public API markers for subsystem, process, reporting and scm RB #3551
Create and use stable symlinks for the target results dir RB #3553
Split Ivy Resolve into Resolve / Fetch steps Issue #3052 Issue #3053 Issue #3054 Issue #3055 RB #3555
[pantsd] Add support for fetching watchman via BinaryUtil. RB #3557
Only bootstrap the zinc worker pool if there is work to do RB #3559
Bump pex requirement to 1.1.4. RB #3568
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).
Bugfixes
- fix typo introduced in https://rbcommons.com/s/twitter/r/3531/ RB #3531 RB #3552
New Features
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
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
Bugfixes
New Features
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
- [engine] Introduce content-addressability Issue #2968 Issue #2956 RB #3498
- [engine] First round of work for 'native' filesystem support Issue #2946, RB #3488
- [engine] Implement recursive address walking RB #3485
0.0.73 (02/19/2016)
This release features more formal public API docstrings for many modules and classes.
API Changes
Bugfixes
New Features
- Allow for random build ordering RB #3462
Refactoring, Improvements, and Tooling
New Engine Work
- [engine] Noop only a cyclic dependency, and not an entire Node RB #3478
- [engine] Tighten input validation Issue #2525 Issue #2526 RB #3245 RB #3448
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
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
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
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.
New Features
- First pass at dependency management implementation. RB #3336
Small improvements, Refactoring and Tooling
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
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
Bugfixes
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
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
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
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
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
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
- Make sure the deprecated pants.backend.core.tasks.task module is bundled. RB #3164
- Revert "Isolate .pex dir" Issue #2610 RB #3135 RB #3163
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.
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
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
Bugfixes
New Features
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
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
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
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
- Add support for golang.org/x remote libs. Issue #2378 Issue #2379 Issue #2378 Issue #2379 RB #2976
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.
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
Bugfixes
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
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
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
Small improvements, Refactoring and Tooling
- Enable Future compatibility style checks RB #2884
- Fix another scoped option issue in the test harnesses RB #2850 RB #2870
- Fix go_local_source_test_base.py for OSX. RB #2882
- Fix javadocs and add jvm doc gen to CI. Issue #65 RB #2877
- Fixup release dry runs; use isolated plugin cache. RB #2874
- Fix scoped options initialization in test RB #2815 RB #2850
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
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
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
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
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
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
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
- Kill PANTS_VERBOSE and PANTS_BUILD_ROOT. RB #2760
- [classpath products] introduce ResolvedJar and M2Coordinate and use them for improved exclude handling RB #2654
- Kill the pants() pointer, per discussion in Slack: https://pantsbuild.slack.com/archives/general/p1440451305004760 RB #2650
- Make Globs classes and Bundle stand on their own. RB #2740
- Rid all targets of sources_rel_path parameters. RB #2738
- Collapse SyntheticAddress up into Address. [API] RB #2730
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
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
New Features
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
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
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
- Upgrade pex to 1.0.2. RB #2571
Bugfixes
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
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
Bugfixes
New Features
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
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
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
- Deprecate with_description. RB #2444
Bugfixes
- Fixup BuildFile must_exist logic. RB #2441
- Upgrade to pex 1.0.1. Issue #1658 RB #2438
New Features
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
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
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
- Removed --project-info flag from depmap goal RB #2363
- Deprecate PytestRun env vars. RB #2299
- Add Subsystems for options that live outside a single task, use them to replace config settings in pants.ini RB #2288 RB #2276 RB #2226 RB #2176 RB #2174 RB #2139 RB #2122 RB #2100 RB #2081 RB #2063
- Read backend and bootstrap BUILD file settings from options instead of config. RB #2229
- Migrating internal tools into the pants repo and renaming to org.pantsbuild RB #2278 RB #2211 RB #2207 RB #2205 RB #2186 RB #2195 RB #2193 RB #2192 RB #2191 RB #2191 RB #2137 RB #2071 RB #2043
- Kill scala specs support. RB #2208
- Use the default ivysettings.xml provided by ivy. RB #2204
- Eliminate the globs.__sub__ use in option package. RB #2082 RB #2197
- Kill obsolete global publish.properties file. RB #994 RB #2069
- Upgrade zinc to latest for perf wins. RB #2355 RB #2194 RB #2168 RB #2154 RB #2154 RB #2149 RB #2125
- Migrate jar_publish config scope. RB #2175
- Add a version number to the export format and a page with some documentation. RB #2162
- Make exclude_target_regexp option recursive RB #2136
- Kill pantsbuild dependence on maven.twttr.com. RB #2019
- Fold PythonTestBuilder into the PytestRun task. RB #1993
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
- Fixup minified_dependencies Issue #1329 RB #1986
- Don`t mutate options in the linter RB #1978
- Fix a bad logic bug in zinc analysis split code RB #1969
- always use relpath on --test file args RB #1976
- Fixup resources drift in the sdist package RB #1974
- Fix publish override flag Issue #1277 RB #1959
API Changes
- Remove open_zip64 in favor of supporting zip64 everywhere RB #1984
Documentation
New Features
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
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
Documentation
New Features
- Support spec_excludes in what_changed. Prior art: https://rbcommons.com/s/twitter/r/1795/ RB #1930
- Add a new 'export' goal for use by IDE integration RB #1917 RB #1929
- Add ability to detect HTTP_PROXY or HTTPS_PROXY in environment and pass it along to ivy RB #1877
- Pants publish to support publishing extra publish artifacts as individual artifacts with classifier attached RB #1879 RB #1889
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
New language: C++
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:
- 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
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
Upgrade jmake to org.pantsbuild releases
- Upgrade jmake to version with isPackagePrivateClass fix
- Upgrade jmake to version that works with java 1.5+
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)
0.0.26 (12/17/2014)
Bugfixes
- Fix the ScroogeGen target selection predicate RB #1497
0.0.25 (12/17/2014)
API Changes
Flesh out and convert to the new options system introduced in pantsbuild.pants 0.0.24
- Support loading config from multiple files
- Support option reads via indexing
- Add a migrate_config tool
- Migrate tasks to the option registration system
- Get rid of the old config registration mechanism
- Add passthru arg support in the new options system
- Support passthru args in tasks
- Allow a task type know its own options scope
- Support old-style flags even in the new flag system
RB #1093 RB #1094 RB #1095 RB #1096 RB #1097 RB #1102 RB #1109 RB #1114 RB #1124 RB #1125 RB #1127 RB #1129 RB #1131 RB #1135 RB #1138 RB #1140 RB #1146 RB #1147 RB #1170 RB #1175 RB #1183 RB #1186 RB #1192 RB #1195 RB #1203 RB #1211 RB #1212 RB #1214 RB #1218 RB #1223 RB #1225 RB #1229 RB #1230 RB #1231 RB #1232 RB #1234 RB #1236 RB #1244 RB #1248 RB #1251 RB #1258 RB #1269 RB #1270 RB #1276 RB #1281 RB #1286 RB #1289 RB #1297 RB #1300 RB #1308 RB #1309 RB #1317 RB #1320 RB #1323 RB #1328 RB #1341 RB #1343 RB #1351 RB #1357 RB #1373 RB #1375 RB #1385 RB #1389 RB #1399 RB #1409 RB #1435 RB #1441 RB #1442 RB #1443 RB #1451
Kill Commands and move all actions to Tasks in the goal infrastructure
- Kill pants own use of the deprecated goal command
- Restore the deprecation warning for specifying 'goal' on the cmdline
- Get rid of the Command class completely
- Enable passthru args for python run
RB #1321 RB #1327 RB #1394 RB #1402 RB #1448 RB #1453 RB #1465 RB #1471 RB #1476 RB #1479
Add support for loading plugins via standard the pkg_resources entry points mechanism RB #1429 RB #1444
Many performance improvements and bugfixes to the artifact caching subsystem
- Use a requests Session to enable connection pooling
- Make CacheKey hash and pickle friendly
- Multiprocessing Cache Check and Write
- Skip compressing/writing artifacts that are already in the cache
- Add the ability for JVM targets to refuse to allow themselves to be cached in the artifact cache
- Fix name of non-fatal cache exception
- Fix the issue of seeing "Error while writing to artifact cache: an integer is required" during [cache check]
- Fix all uncompressed artifacts stored as just .tar
RB #981 RB #986 RB #1022 RB #1197 RB #1206 RB #1233 RB #1261 RB #1264 RB #1265 RB #1272 RB #1274 RB #1249 RB #1310
More enhancements to the depmap goal to support IDE plugins:
- Add Pants Target Type to depmap to identify scala target VS java target
- Add java_sources to the depmap info
- Add transitive jar dependencies to depmap project info goal for intellij plugin
Port pants to pex 0.8.x Issue #10 Issue #19 Issue #21 Issue #22 RB #778 RB #785 RB #1303 RB #1378 RB #1421
Remove support for __file__ in BUILDs RB #1419
Allow setting the cwd for goals run.jvm and test.junit RB #1344
Subclasses of Exception have strange deserialization RB #1395
Remove outer (pants_exe) lock and serialized cmd RB #1388
Make all access to Context's lock via helpers RB #1391
Allow adding entries to source_roots RB #1359
Re-upload artifacts that encountered read-errors RB #1361
Cache files created by (specially designed) annotation processors RB #1250
Turn dependency dupes into errors RB #1332
Add support for the Wire protobuf library RB #1275
Pin pants support down to python2.7 - dropping 2.6 RB #1278
Add a new param for page target, links, a list of hyperlinked-to targets RB #1242
Add git root calculation for idea goal RB #1189
Minimal target "tags" support RB #1227
Include traceback with failures (even without fail-fast) RB #1226
Add support for updating the environment from prep_commands RB #1222
Read arguments for thrift-linter from pants.ini RB #1215
Configurable Compression Level for Cache Artifacts RB #1194
Add a flexible directory re-mapper for the bundle RB #1181
Adds the ability to pass a filter method for ZIP extraction RB #1199
Print a diagnostic if a BUILD file references a source file that does not exist RB #1198
Add support for running a command before tests RB #1179 RB #1177
Add PantsRunIntegrationTest into pantsbuild.pants.testinfra package RB #1185
Refactor jar_library to be able to unwrap its list of jar_dependency objects RB #1165
When resolving a tool dep, report back the pants.ini section with a reference that is failing RB #1162
Add a list assertion for python_requirement_library's requirements RB #1142
Adding a list of dirs to exclude from the '::' scan in the CmdLineSpecParser RB #1091
Protobuf and payload cleanups RB #1099
Coalesce errors when parsing BUILDS in a spec RB #1061
Refactor Payload RB #1063
Add support for publishing plugins to pants RB #1021
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
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
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
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
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:
- Writes output to ./dist/markdown/
- Pages can include snippets from source files http://pantsbuild.github.io/page.html#include-a-file-snippet
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
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
Bugfixes
Numerous doc improvements & generation fixes Issue #397 Issue #451 Issue #475 RB #863 RB #865 RB #873 RB #876 RB #885 RB #938 RB #953 RB #960 RB #965 RB #992 RB #995 RB #1007 RB #1008 RB #1018 RB #1020 RB #1048
Fixup missing 'page.mustache' resource for markdown goal Issue #498 RB #918
Publishing fixes:
- Fix credentials fetching during publishing
- Skipping a doc phase should result in transitive deps being skipped as well
Several IdeGen derived task fixes:
- Fix eclipse_gen & idea_gen for targets with both java and scala
- Fixup EclipseGen resources globs to include prefs.
- When a directory contains both java_library and junit_tests targets, make sure the IDE understands this is a test path, not a lib path
Fixes to the depmap goal to support IDE plugins:
- Fixed source roots in project info in case of ScalaLibrary with java_sources
- Fix --depmap-project-info for scala sources with the same package_prefix
- Fix depmap KeyError
Make a better error message when os.symlink fails during bundle RB #1037
Faster source root operations - update the internal data structure to include a tree RB #1003
The goal filter's --filter-ancestor parameter works better now Issue #506 RB #925
Fix: goal markdown failed to load page.mustache Issue #498 RB #918
Fix the changed goal so it can be run in a repo with a directory called 'build' RB #872
Patch JvmRun to accept JvmApp`s `RB #893
Add python as default codegen product RB #894
Fix the filedeps goal - it was using a now-gone .expand_files() API Issue #437, RB #939
Put back error message that shows path to missing BUILD files RB #929
Make sure the junit_run task only runs on targets that are junit compatible Issue #508 RB #924
Fix ./pants goal targets Issue #333 RB #796 RB #914
Add derived_from to ScroogeGen synthetic targets RB #926
Properly order resources for pants goal test and pants goal run RB #845
Fixup Dependencies to be mainly target-type agnostic Issue #499 RB #920
Fixup JvmRun only-write-cmd-line flag to accept relative paths Issue #494 RB #908 RB #911
Fix the --ivy-report option and add integration test RB #976
Fix a regression in Emma/Cobertura and add tests Issue #508 RB #935
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
- Hide stack traces by default Issue #326 RB #655
- Upgrade to twitter.common.python 0.6.0 and adjust to api change RB #746
- Add support for Cobertura coverage Issue #70 RB #637
- Validate that junit_tests targets have non-empty sources RB #619
- Add support for the Ragel state-machine generator Issue #353 RB #678
- Add AndroidTask and AaptGen tasks RB #672 RB #676 RB #700
Bugfixes
- Numerous doc fixes Issue #385 Issue #387 Issue #395 RB #728 RB #729 RB #730 RB #738
- Expose types needed to specify jvm_binary.deploy_jar_rules Issue #383 RB #727
- Require information about jars in depmap with --depmap-project-info RB #721
0.0.19 (7/23/2014)
API Changes
- Enable Nailgun Per Task RB #687
Bugfixes
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.
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
- Lock globs into rootdir and below Issue #348 RB #686
0.0.17 (7/15/2014)
- Initial published version of pantsbuild.pants