1.4.x Stable Releases
This document describes releases leading up to the 1.4.x stable series.
1.4.0 (03/10/2018)
The 1.4.0 stable release, with no additional changes since the rc5 release. Thanks for your patience!
A quick summary of the changes since the 1.3.x branch:
- pantsd should be usable for almost all usecases, although it is not quite ready to enable by default. Please try it out!
- There are a few new contrib plugins: codeanalysis (aka: kythe), thrifty, avro, mypy, confluence.
- Both pytest and junit now have support for --chroot and a files(..) target was added to support loose-file isolation in unit tests, and to improve the safety of test caching.
- junit also gained support for --no-fast, allowing running each junit_test target in a separate VM.
- Beta support for coursier for artifact resolving: expected to be stable in the 1.5.x release series.
- PEX files support bringing interpreter constraints with them to their runtime environment: see PR #5160.
- Improvements to the missing-dep-suggest task that runs when strict_deps is enabled for a Java or Scala target.
- The --cache-ignore option was added to support forcing a rebuild of any particular task without requiring clean-all. Particularly helpful in these early days of test caching!
- Pants reports per-target compile and test times to its stats URL via a general "target-level metrics" API. Add per-target stats for your Tasks!
- java_thrift_library now takes a compiler_args property, which deprecates rpc_style and language.
- "implicit sources" are now enabled by default! If you do not specify a sources argument on your target, a default sources glob will be used. See https://www.pantsbuild.org/build_files.html for more info.
See the rest of this page for the complete list of changes.
1.4.0rc5 (03/07/2018)
The sixth release candidate for the 1.4.x stable branch.
Bugfixes
- Improve the performance of v2 changed. (#5571) PR #5571
1.4.0rc4 (03/06/2018)
The fifth release candidate for the 1.4.x stable branch.
Bugfixes
- Set thrifty build_file_aliases (#5559) (#5562) PR #5559
1.4.0rc3 (03/05/2018)
The fourth release candidate for the 1.4.x stable branch.
New Features
- Thrifty support for pants (#5531) PR #5531
Bugfixes
- [pantsd] Repair end to end runtracker timing for pantsd runs. (#5526) PR #5526
Refactoring, Improvements, and Tooling
- [pantsd] Repair pantsd integration tests for execution via pantsd. (#5387) PR #5387
1.4.0rc2 (02/23/2018)
The third release candidate for the 1.4.x stable branch; likely the last!
New Features
Bugfixes
- [pantsd] Set the remote environment for pantsd-runner and child processes. (#5508) PR #5508
- Bump release.sh to pex 1.2.16. (#5460) PR #5460
- Get version from version file not by running pants (#5428) PR #5428
- [pantsd] Don't invalidate on surface name changes to config/rc files. (#5408) PR #5408
- Set the log level when capturing logs in tests. (#5418) PR #5418
1.4.0rc1 (01/28/2018)
The second release candidate for the 1.4.x stable branch.
New Features
- [pantsd] Add pantsd graph warmth stats. (#5374) PR #5374
- [contrib/scrooge] Add exports support to scrooge (#5357) PR #5357
- add avro/java contrib plugin to the release process (#5346) PR #5346
- An --eager option for BootstrapJvmTools. (#5336) PR #5336
- Publish the codeanalysis contrib plugin. (#5322) PR #5322
- Add the mypy contrib module to pants release process (#5335) PR #5335
API Changes
Bugfixes
- [pantsd] Repair console interactivity in pantsd runs. (#5352) PR #5352
- Repoint the 'current' symlink even for valid VTs. (#5375) PR #5375
- Do not download node package multiple times (#5372) PR #5372
- Ensure test report results are always exposed. (#5368) PR #5368
- Fix a silly bug when computing indexable targets. (#5359) PR #5359
- python2: do not resolve requirements if no python targets in targets closure (#5361) PR #5361
- [pantsd] Repair daemon wedge on log rotation. (#5358) PR #5358
- Reenable lighter contrib sanity checks (#5340) PR #5340
- Remove wiki-related targets from contrib and back to docgen (#5319) PR #5319
Refactoring, Improvements, and Tooling
- Single resolve with coursier (#5362) Issue #743 PR #5362 PR #735
- Port IsolatedProcess implementation from Python to Rust - Split 1 (#5239) PR #5239
- Remove superfluous --dist flag from kythe indexer task. (#5344) PR #5344
- add mypy to list of released plugins in docs (#5341) PR #5341
- Add support for alternate packages in the pex that is built. (#5283) PR #5283
- Update lockfile for fs_util (#5326) PR #5326
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 Wheezy 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 deselection 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