Master Pre-Releases
This document describes development releases which occur weekly from master, and which have not undergone the vetting associated with stable releases.
1.25.0.dev1 (01/14/2020)
API Changes
New Features
Bugfixes
Refactoring, Improvements, and Tooling
- Use f-strings in src/python/pants/pantsd/pailgun_server.py + fix typos in comments. (#8949) PR #8949
- Add some type annotations to goal/ and auth/ (#8934) PR #8934
- Use f-strings on src/python/pants/testutil and src/python/pants/util/ (#8950) PR #8950
- Rename public Target methods to use address_spec instead of spec (#8944) PR #8944
- Only compile non-module exports for export-dep-as-jar goal (#8914) PR #8914
- Address some remaining issues with setup-py2. (#8927) PR #8927
- Tweak the argument parser to allow file system specs (#8932) PR #8932
- Share the local LMDB store to avoid creating one per test method. (#8933) PR #8933
- Allow python_test_runner.py to get coverage for individual targets (#8910) PR #8910
- Fix confusing error for an @console_rule not returning a Goal (#8931) PR #8931
- Have handle_workunits callback use kwargs (#8918) PR #8918
- Refactor options_test.py (#8906) PR #8906
- Simplify ./pants test --debug requesting one single address (#8925) PR #8925
- Stop adding our own colors to V2 test output (#8926) PR #8926
- Update core test model to include coverage results (#8851) PR #8851
- Use color in v2 pytest (#8901) PR #8901
- Hotfix Specs rename conflicting with setup-py2 change (#8920) PR #8920
- Prepare 1.24.0rc1. (#8919) PR #8919
- Rename Spec to AddressSpec (#8916) PR #8916
- Bump up deprecations for the 1.26 series to earlier in the 1.26 dev series (#8908) PR #8908
- Add type hints to specs.py (#8913) PR #8913
- Add experimental --fmt-only flag (#8911) PR #8911
- Extract rule for preparing chrooted python sources (#8899) PR #8899
- Add deprecated.resolve_conflicting_options to facilitate moving options (#8903) PR #8903
- Add shell_str type to improve --args option support (#8904) PR #8904
Testing
1.25.0.dev0 (01/06/2020)
API Changes
- Deprecate --fmt-skip and --lint-skip (#8900) Issue #8346 PR #8900
- Add --skip option to every linter/formatter subsystem (#8898) PR #8898
- Add ESLint subsystem and deprecate node-distribution ESLint options (#8891) PR #8891
- Add --black-skip, --isort-skip, and --flake8-skip (#8888) PR #8888
- Deprecate running python-eval by default (#8889) PR #8889
- Add scrooge-linter subsystem and deprecate lint-thrift options (#8894) PR #8894
- Add checkstyle subsystem and deprecate --lint-checkstyle-configuration (#8896) PR #8896
- Deprecate option.custom_types.dict_option and list_option (#8885) PR #8885
- Add scalafix, scalafmt, and scalastyle subsystems and deprecate task-level config options (#8886) PR #8886
- Stop using Java 6 and 7 internally (#8657) PR #8657
- Bump default MyPy from 0.740 to 0.761 (#8866) PR #8866
Bugfixes
- Use absolute path when running interactive process in tempdir (#8895) PR #8895
- Fix ./pants lint2 for Black and isort (#8877) PR #8877 PR #8823
- Provide input_files Digest to InteractiveRunner (#8855) PR #8855
- Support enums when displaying option help choices (#8853) PR #8853
- Hotfix MyPy not working on macOS due to type alias (#8887) PR #8887
- Fix isort, Pytest, and MyPy options to be fingerprinted (#8871) PR #8871
- Report a deprecation for the option name rather than for the dest. (#8856) PR #8856
Refactoring, Improvements, and Tooling
- Use V2 isort internally (#8756) PR #8756
- Refactor python_test_runner to use the new pex creation rule (#8852) PR #8852
- Add type hints to option/ and subsystem/ (#8878) PR #8878
- Replace deprecated assertRaisesRegexp with assertRaisesRegex (#8879) PR #8879
- Remove deprecated --pytest-requirements, --pytest-timeout-requirements, --pytest-cov-requirements, and --pytest-unittest2-requirements (#8876) PR #8876
- Partially type check remaining 250 files (#8875) PR #8875
- Stop referencing Python 4 in Python interpreter constraints (#8867) PR #8867
- Partially type check TestBase and 235 test files (#8874) PR #8874
- Finish partially type checking all src code (#8865) PR #8865
- Refactor option and subsystem tests (#8872) PR #8872
- Type check build-support/bin/generate_travis_yml.py (#8868) PR #8868
- Move option and subsystem tests from tests/python to src/python (#8870) PR #8870
- make match() on Enum into a top-level function in meta.py (#8504) PR #8504
- add SingleFileExecutable to make it easier to consume Snapshots of executables (#8860) PR #8860
- improve ergonomics of checking for @union types with new @decorated_type_checkable decorator (#8496) PR #8496
- Partially type check backend/native and 100 more files (#8864) PR #8864
- Fix type hints for decorators in memo.py and meta.py (#8863) PR #8863
- [IntelliJ] Export only modulizable targets when in export-dep-as-jar (#8812) PR #8812
- Use raw strings to fix regex deprecation warnings (#8880) PR #8880
1.24.0rc0 (12/19/2019)
API Changes
- Upgrade fasteners (#8826) PR #8826
- Separate v1/v2 backend and plugin registration (#8817) PR #8817
- Deprecate old style of passthrough args for isort, Pytest, and MyPy (#8842) PR #8842
- Deprecate passthrough args for ./pants login (#8843) PR #8843
- Upgrade ansicolors to 1.1.8 (#8839) PR #8839
- Add new MyPy subsystem and deprecate --lint-mypy-config-file and --lint-mypy-version (#8829) PR #8829
- Deprecate unused global --timeout option (#8805) PR #8805
New Features
Bugfixes
- Fix V2 formatters failing when formatting the same file (#8823) Issue #8722 PR #8823
- V2 console UI: fix bug with InteractiveProcessRequest (#8833) PR #8833
- Fix terminal display with v2 UI (#8821) PR #8821
- move the subdirectory for exception logs to .pids/ (#8511) PR #8511
Refactoring, Improvements, and Tooling
- Use rule-author-supplied description for UI (#8846) PR #8846
- Change signature of store_dict extern (#8844) PR #8844
- Use f-strings on src/python/pants/option (#8837) PR #8837
- Convert src/python/pants/backend/jvm to use f-strings (#8703) PR #8703
- Update itertools to 0.8.2 (#8840) PR #8840
- Port ./pants generate-pants-ini to V2 (#8830) PR #8830
- Improve output of ./pants help (#8820) PR #8820
- A rule to produce a Distdir product. (#8831) PR #8831
- Typecheck rules/core, testutil/engine/util.py, and 30 more files (#8824) PR #8824
- Refactor help (#8816) PR #8816
1.24.0.dev3 (12/13/2019)
API Changes
New Features
Bugfixes
- Fix V2 binary to work with multiple targets (#8781) PR #8781
- Fix graph ambiguity of using multiple linters/formatters in V2 (#8801) Issue #8722 PR #8801
- Fix registration of unions that are split across multiple backends (#8810) PR #8810
- Fix enginedisplay printing (#8799) PR #8799
- Add cherry-picked commit to 1.23.0 (#8804) PR #8804
- Version changes should invalidate pytest runs. (#8790) PR #8790
- Fix pantsbuild wheel publishing. (#8782) PR #8782
- Revert "Upgrade to Pex 2.0.3. (#8704)" (#8787) PR #8704 PR #8787
- Add parent-build-id option to know what runs are inner runs and not to run them with pantsd (#8724) PR #8724
Refactoring, Improvements, and Tooling
- A rule to create a pex from a target closure. (#8811) PR #8811
- V2 console UI: Logging improvements (#8806) PR #8806
- Rework Goal.Options so that V2 goals work with MyPy (#8742) PR #8742
- Fix V2 linters needing to implement a formatter no-op (#8795) PR #8795
- [IntelliJ] Refactor some code in export-dep-as-jar goal (#8792) PR #8792
- Load the bootstrapped zinc compiler from the zinc server's classpath. (#8753) PR #8753
- Curl in release script fails much more verbosely (#8780) PR #8780
- This test has been flaky far too long. (#8788) PR #8788
- [V2 UI] Pipe Python-side Console to the engine when --v2-ui is set (#8771) PR #8771
- Prep for 1.23.0 (#8785) PR #8785
- Cleanup type ignore. (#8777) PR #8777
- Remove deprecated ./pants mypy in favor of ./pants lint.mypy (#8773) PR #8773
1.24.0.dev2 (12/08/2019)
API Changes
New Features
- Add fast-depedencies V2 rule (#8759) PR #8759
Bugfixes
Refactoring, Improvements, and Tooling
- Bump test_pytest_run.py timeout. (#8778) PR #8778
- Upgrade to Pex 2.0.3. (#8704) PR #8704
- Deprecate --dependencies-external-only and the default including external dependencies (#8763) PR #8763
- Update reqwests dependency to 0.9.22 PR #8755
- Simplify .travis.yml setup now that more shards can use remote execution (#8754) PR #8754
- Fix internal unmatched globs warnings (#8735) PR #8735
- Partially type check 300 more files (#8741) PR #8741
Documentation
- Update "powered by" page. (#8761) PR #8761
1.24.0.dev1 (12/02/2019)
API Changes
- Remove deprecated option mypy_version (#8751) PR #8751
Refactoring, Improvements, and Tooling
- Add missing source file (#8737) PR #8737
1.24.0.dev0 (11/29/2019)
Note: This was not published due to infrastructure issues. dev1 is effectively identical.
API Changes
New Features
- [IntelliJ] Export source jars of dependencies in export-dep-as-jar (#8723) PR #8723
- Add available targets to the exported json in order to support proper highlighting in the BUILD files (#8688) PR #8688
- Add --dep-as-jar option for idea-plugin (#8632) PR #8632
- Add SchedulerSession.materialize_directory() for less boilerplate in V2 rules (#8709) PR #8709
- [experimental] Add export-dep-as-jar task (#8628) PR #8628
- Support publishing plugins that expose rules. (#8693) PR #8693
- Allow @rule-authors to give rules names (#8592) PR #8592
Bugfixes
- Fix unused variable breaking master branch (#8734) PR #8734
- Don't check that plugins are exact requirements. (#8721) PR #8721
- Don't choke on plugin requirements that are URLs. (#8708) PR #8708
- Fix bug in create_html_page - undefined variable (#8700) PR #8700
- No-op when V2 fmt, lint, and test have a target with empty sources (#8730) PR #8730
Refactoring, Improvements, and Tooling
- Allow V2 isort to use multiple config files (#8731) PR #8731
- Refactor V2 Black and isort for better de-duplication (#8732) PR #8732
- Refactor fmt-v2 to use Workspace (#8691) PR #8691
- add types to await Get[X](...)!! (#8697) PR #8697
- Add V2 implementation of isort (#8689) PR #8689
- Assign some names to rules (#8695) PR #8695
- Convert contrib/confluence, contrib/thrifty, contrib/cpp, contrib/scrooge, contrib/scalajs to use f-strings (#8702) PR #8702
- Add TestBase.request_single_product() for less boilerplate when writing V2 tests (#8698) PR #8698
- Convert contrib/node and contrib/go to use f-strings. (#8699) PR #8699
- Remove yielding @rules (#8652) PR #8652
1.23.0rc0 (11/22/2019)
API Changes
- Move Black into a plugin to enable turning it on and off via backend_plugins (#8683) Issue #8346 PR #8683
- Bump default Pytest to 4.6 and add warning for future change to Pytest 5 (#8648) PR #8648
- Deprecate using default --fmt-transitive and --lint-transitive in preparation for switching default to --no-{fmt,lint}-transitive (#8666) Issue #8345 PR #8666
- Allow async/await syntax in @rules to enable mypy type checking (#8639) PR #8639
- Deprecate not setting --python-setup-interpreter-constraints in preparation for default changing to Python 3.6+ (#8655) PR #8655
- Add flags to differentiate thrift py namespace lint issues (#8622) PR #8622
- Deprecate not explicitly setting --chroot and --fast for test goal (#8644) PR #8644
- Add --version and --pytest-plugins options to Pytest and deprecate old options (#8619) PR #8619
- Improve signature of run_rule() test util to be more explicit (#8633) PR #8633
- Update cfii to 1.13.2 (#8641) PR #8641
New Features
- Async workunits (#8561) PR #8561
Bugfixes
- Fix ant compatible xml reporting for scala tests (#8674) PR #8674
- Ensure idea-plugin projects contain at least one module (#8676) IntelliJ Plugin Issue #433 Issue #8631 PR #8676
- Fix #8666 deprecating using the default --transitive for _all_ goals (e.g. ./pants dependees) (#8673) PR #8673 PR #8666
- Return success if V2 test runner is passed an empty target (#8630) PR #8630
Refactoring, Improvements, and Tooling
- Skip two flaky tests and tweak more test timeouts (#8687) Issue #8127 Issue #8405 PR #8687
- Rewrite Black tests from PantsRunIntegrationTest to rules-style integration tests (#8684) PR #8684 PR #8683
- Refactor FileContent to use default argument for is_executable (#8682) PR #8682
- Improve stability of CI through retries and tweaked timeouts (#8677) PR #8677
- Refactor V2 Black implementation (#8671) PR #8671
- Add tests to lint-v2 and fmt-v2 (#8668) PR #8668
- Move V2 rules tests from tests to src (#8667) PR #8667
- Remove some outdated pantsd info + utils (#8653) PR #8653
- Rewrite test_base.py to use per-test setup instead of per-class (#8621) Issue #6282 PR #8621
- Rename some test files from test_foo.py to foo_test.py (#8659) Issue #7489 PR #8659
- Convert tests/python to use f-strings (#8617) PR #8617
- Retry more remote execution internal errors (#8650) PR #8650
- Try RBE's Maven mirror before going to Maven Central. (#8647) PR #8647
- Partially type check help, ivy, task, and backend target and subsystem folders (#8635) PR #8635
1.23.0.dev2 (11/18/2019)
API Changes
New Features
- Allow console_rule to request a single BuildFileAddress (#8586) PR #8586
- Allow test sharding on scalatest classes (#8609) PR #8609
- Use timeouts for V2 local execution (#8582) Issue #5833 PR #8582
- Add --transitive-only option to export-classpath (#8605) PR #8605
Bugfixes
- Fix sorting of junit tests in presence of a timeout. (#8600) PR #8600
Refactoring, Improvements, and Tooling
- Bump to rust 1.39.0. (#8627) PR #8627
- Move ivy and coursier bootstrapping to BinaryUtil. (#8637) PR #8637
- Prep for 1.22.0 (#8623) PR #8623
- Port cloc to v2 (#8251) PR #8251
- Fix PluginResolverTest: isolate the plugin cache. (#8615) PR #8615
- Move materialization of dirs for Nailgun server to NailgunPool (#8587) PR #8587
- Allow coursier use local cache (#8608) PR #8608
- Options parsing shouldn't care that positional args are specs. (#8602) PR #8602
- Gitignore rust logs (#8610) PR #8610
- Add tags and scope attribute passthrough to ScroogeGen (#8599) PR #8599
- Partially type check auth, build_graph, goal, java, process, and reporting (#8604) PR #8604
Documentation
- Fix some typos in documentation (#8636) PR #8636
1.23.0.dev1 (11/08/2019)
API Changes
New Features
Bugfixes
Refactoring, Improvements, and Tooling
- Partially type check binaries, source, fs, net, and more of engine (#8596) PR #8596
- Remove duplicate target name for backend/python/targets (#8598) PR #8598
- Prep for 1.22.0rc2 (#8595) PR #8595
- v2-only mode should not acknowledge v1 goals (#8518) PR #8518
- Partially type check core base, engine, option, and subsystem code (#8590) PR #8590
- Move testinfra code from tests/python/pants_tests to src/python/pants/testutil (#8400) PR #8400
- Add a buffer for queueing process execution to remote timeout (#8432) PR #8432
- Eagerly fail deprecated options (#8556) PR #8556
- Directly use option.scope instead of re-exports (#8578) PR #8578
- Deduplicate requirements in V2 pex generation rule (#8577) PR #8577
- Set user agent header on auth requests too. (#8562) PR #8562
1.23.0.dev0 (11/03/2019)
New Features
- Add Zinc for outlining support (#8560) PR #8560
- Create infrastructure for running interactive local process (#8495) PR #8495
- Add lint-v2 implementation for python with black, and script to be used in pre-commit hook (#8553) PR #8553
- Implement Nailgun in V2 hermetic execution (#8371) PR #8371
- An option to pass in the name of the pants binary. (#8517) PR #8517
- Add workflow option for -Youtline as an outliner (#8427) PR #8427
API Changes
- Allow users to override compile.rsc workflows via env var and add --allow-public-inference option (#8537) PR #8537
Bugfixes
- Add lock around bootstrap compiler bridge jar (#8535) PR #8535
- Fix assertion on hydrate_missing_directory_digest (#8534) PR #8534
- Fix zinc jar missing digest on double check cache hit (#8532) PR #8532
- Ensure node build products added to the classpath have been snapshotted (#8514) PR #8514
- Avoid globbing jdk home with symlinks (#8484) PR #8484
Refactoring, Improvements, and Tooling
- Create Python workunit value using separate function (#8559) PR #8559
- Rust nails client for local hermetic nailgun execution. (#8564) PR #8564
- Fix typo: "PythonInterpreterCon*s*traints" (#8566) PR #8566
- Render cyclic path in node error to avoid --print-exception-stacktrace (#8422) PR #8422
- Temporarily disable speculation in travis. (#8546) PR #8546
- Trim travis cache. (#8545) PR #8545
- Revert "Squashed commit of the following: (#8302)" (#8551) PR #8551
- Reduce boilerplate in FFI scheduler initialization (#8522) PR #8522
- Ability to manually turn off pants pex creation for test running. (#8525) PR #8525
- Bump the default watchman startup timeout to 60 seconds. (#8544) PR #8544
- Don't display a ubiquitous warning triggered on python 3.7. (#8523) PR #8523
- Increase our client count and sync bootstrapped files. (#8536) PR #8536
- Move CallOption construction to common location (#8529) PR #8529
- Move rust tests into their own files (#8512) PR #8512
- Update to pantsbuild/grpc-rs:pants-use latest. (#8507) PR #8507
- pin cryptography lib to 2.7 (#8515) PR #8515
- Digest can be deserialized as well as serialized (#8497) PR #8497
- Upgrade pex to 1.6.12. (#8493) PR #8493
1.22.0rc0 (10/20/2019)
New Features
Bugfixes
- fix NameError in ExceptionSink.trapped_signals() if .reset_signal_handler() raises (#8482) PR #8482
- Fix undigested m.jar under validated targets (#8479) PR #8479
- Fix async_semaphore deadlock, and only fail speculation if primary command fails. (#8374) PR #8374
- Fix missing digest for m.jar (#8447) PR #8447
- Use jvm options from RSC subsystem for RSC invocation (#8434) PR #8434
Refactoring, Improvements, and Tooling
- Restore pycodestyle (#8471) PR #8471
- Remove enum() to consolidate around standard library Enum (#8475) PR #8475 PR #8467
- Type check core base code (#8462) PR #8462
- Code Issues 900 Pull requests 121 Projects 5 Wiki Security Insights Explicitly delete file before writing it using the materialize_directory API (#8436) PR #8436
- Squashed commit of the following: (#8302) PR #8302
- Revert "Modify engine.objects.Collection to work with type hints (#8467)" (#8476) PR #8467 PR #8476
- Use collections.Enum for Nailgun task related code (#8461) PR #8461
- Use collections.Enum instead of enum() (#8443) PR #8443
- Prepare 1.21.0. (#8474) PR #8474
- Modify engine.objects.Collection to work with type hints (#8467) PR #8467
- Use partially_type_checked tag for incremental type hinting of Pants repo (#8464) PR #8464
- Use Duration not f64 (#8396) Issue #54361 PR #8396
Documentation
- Propose guidance around contentious decisions. (#8438) PR #8438
1.22.0.dev2 (10/13/2019)
API Changes
- Deprecate mypy-version flag and add new version flag (#8463) Issue #7627 PR #8463
- Fix tensorflow==1.14 globbing with platform-specific native_lib_names (#8378) PR #8378
- Error out if the user explicitly tries to test a non-test tgt. (#8402) PR #8402
New Features
Bugfixes
- Send cumulative_timings & recorded_options in stats v2 too. (#8456) PR #8456
- Fix double check cache digest (#8416) PR #8416
- Don't panic in create_scheduler (#8428) PR #8428
- [junit-run] apply platform args to junit run java exec (#8421) PR #8421
- Don't shade the nailgun package (#8418) PR #8418
- Make subsystem dep explicit for RSC compile (#8406) PR #8406
Refactoring, Improvements, and Tooling
- Improve support for Enum`s as option types (#8458) `PR #8458
- Port test_pytest_run_integration.py to V2 (#8466) PR #8466
- Fix PantsRunIntegrationTest.mock_buildroot() to work with --chroot (#8465) PR #8465
- Use f-strings in python tasks. (#8449) PR #8449
- Run fuse tests on OSX again (#8453) PR #8453 Issue #10017
- Replace majority of remaining datatype()`s with `@dataclass (#8435) PR #8435
- Use f-strings in pants daemon (#8448) PR #8448
- Add collections.Enum class that extends stdlib Enum with ~pattern matching (#8451) PR #8451
- use travis wait enhanced in shards with remoting enabled (#8446) PR #8446
- Add file to allow a clean looking git blame (#8404) PR #8404
- remove @_algebraic_data decorator to support @dataclass and mypy (#8437) PR #8437
- Run testprojects integration tests with V2 test runner (#8426) PR #8426
- Restore running test_testprojects_integration.py with chroot (#8433) PR #8433
- Replace more datatype() instances with @dataclass (#8423) PR #8423
- Add @frozen_after_init decorator to make some @dataclass uses safer with V2 (#8431) PR #8431
- Type check meta.py and replace Singleton with SingletonMetaclass (#8424) PR #8424
- Set internal pants.ini to use chroot for V1 Pytest runner (#8425) PR #8425
- Make test discovery for test_testprojects.py IT more precise (#8395) PR #8395
- Remote execution: Set RequestMetadata proto header (#8373) PR #8373
- Run pants-plugin tests with V2 remote execution (#8413) PR #8413
- Add type hints to contextutil.py, fileutil.py, and eval.py (#8401) PR #8401
- Revert "Format our python code with Black (#8391)" (#8409) PR #8409
1.22.0.dev1 (10/04/2019)
API Changes
New Features
Bugfixes
- Revert "Fix export test failure to unrevert #8370 (#8380)" (#8386) PR #8386
- Fix typo: "our" -> "are" (#8372) PR #8372
- Fix export test failure to unrevert #8370 (#8380) PR #8380
- Revert "add scala_platform to export output for metals! (#8370)" (#8379) PR #8379
- No longer cache failed ExecuteProcessResult`s (#8291) `PR #8291
Refactoring, Improvements, and Tooling
- Follow up on critical path algorithm (#8381) PR #8381
- Make PEX creation generic (#8289) PR #8289
- Replace most usages of datatype() with @dataclass (#8362) PR #8362
- Port backend/project-info integration tests to V2 (#8361) PR #8361
- Port engine/legacy integration tests to V2 (#8363) PR #8363
- add scala_platform to export output for metals! (#8370) PR #8370
- Remove a superfluous import. (#8376) PR #8376
- Update rust to 1.38.0 (#8367) PR #8367
- Port more integration tests to V1 chroot and some to V2 (#8365) PR #8365
- Don't upgrade openssl on the OSX Rust test CI shard. (#8383) PR #8383
1.22.0.dev0 (09/28/2019)
API Changes
New Features
Bugfixes
Refactoring, Improvements, and Tooling
- Modify isort config to prepare for black formatting (#8332) PR #8332
- Use unwrap_or_else not unwrap_or (#8341) PR #8341
- Use double quoted strings in __init__.py files to prepare for Black (#8333) PR #8333
- allow @rule`s to end in `yield Get(...) (#8227) PR #8227
- v2 rule for stripping source roots (#8326) PR #8326
- Introduce hash_utils.hash_dir. (#8327) PR #8327
1.21.0rc0 (09/23/2019)
New Features
- Add "did you mean" functionality to runtime Param mismatches. (#8315) PR #8315
Bugfixes
- Fix support for running pants from source in other repositories. (#8297) PR #8297
Refactoring, Improvements, and Tooling
- Upgrade to Pex 1.6.11. (#8287) PR #8287
- Implement critical path algorithm in Graph (#8308) PR #8308
- Bump to latest zinc and remove the extractor. (#8246) PR #8246
- Skip test_ctypes_third_party_integration due to network failure. (#8317) PR #8317
- repr() exceptions when logging/stringifying them. (#8230) PR #8230
- On stats v2, use json body, API will support uploading multiple builds in a single call (#8305) PR #8305
- Hide zinc-compiler BareBonesLogger behind flag (#8295) PR #8295
- Port 5 more integration tests to V2 remote execution (#8304) PR #8304
- Port backend/codegen and backend/python integration tests to V2 remote execution (#8293) PR #8293
- Default in CI to remote execution for integration tests (#8298) Issue #8113 PR #8298
- Increase zinc_compile_integration_test timeouts. (#8296) PR #8296
- Port backend/jvm integration tests to remote execution (#8273) PR #8273
1.21.0.dev1 (09/14/2019)
New Features
API Changes
- Invoke Pants via module in ITs. (#8265) Issue #707 PR #8265
Bugfixes
Refactoring, Improvements, and Tooling
- Use more precise test discovery for V2 Pytest runner (#8281) PR #8281
- Pipe is_executable both ways in FileContent (#8271) PR #8271
- Refactor code of remote.rs (#8276) PR #8276
- Use InputFilesContent instead of InputFileContent (#8272) PR #8272 PR #8226
- Remove unused backend/jvm integration test (#8264) PR #8264
- Port ~20 integration tests to remote execution (#8262) Issue #8113 PR #8262
- Run all contrib integration tests using V2 remote execution (#8261) Issue #8113 PR #8261
- Port tasks, base, and awslambda integration tests to V2 (#8259) PR #8259 PR #8257
- Refactor init code and tests (#8258) PR #8258
- pants.pex used for tests always includes pants.ini (#8260) PR #8260 PR #8259
- Properly depend on plugins in chrooted integration tests (#8257) Issue #8113 PR #8257
- Refactor pathlib.Path usages to use multiple path segments constructor (#8255) PR #8255
- Run first few integration tests through remote execution (#8210) Issue #8113 PR #8210
- Fixup release.sh getopts / usage. (#8254) PR #8254
- Log computed information in RunTracker (#8237) PR #8237
1.21.0.dev0 (09/06/2019)
API Changes
- New intrinsic InputFileContent -> Digest (#8226) PR #8226
Bugfixes
- fix exception handling of KeyboardInterrupt during startup (#8182) PR #8182
- Use correct function on list (#8238) PR #8238
- Support omitting the test sources themselves from coverage. (#8208) PR #8208
- Use NGContext.exit() instead of sys.exit(). (#8239) PR #8239
- Disable pantsd in inner runs. (#7884) PR #7884
- Fix error when uploading stats to stats storage (#8233) PR #8233
- Fix custom panic handler (#4884) (#8219) PR #4884 PR #8219
Refactoring, Improvements, and Tooling
- Quash warnings about missing dyn in generated code (#8245) PR #8245
- Split store into lib, local, remote modules (#8244) PR #8244
- Use ./pants.pex, not ./pants, to run internal integration tests (#8183) Issue #8113 Issue #8209 PR #8183
- Refactor auth logic out of RunTracker and into BasicAuth (#8211) PR #8211
Documentation
- Update notes for the hotfix for 1.20 release (#8240) PR #8240
1.20.0rc0 (08/30/2019)
The first release candidate in the 1.20.x series!
Bugfixes
- Split out a double-check-cache job for jvm/rsc compile. (#8221) PR #8221
- Properly strip source root prefixes for V2 Pytest runner (#8185) PR #8185 Issue #8113. PR #8063
Refactoring, Improvements, and Tooling
- Add a header X-B3-Flags: 1 to the request to Zipkin server (#8223) PR #8223
- Use platform-specific directories for virtualenvs (#8073) PR #8073
- Use more idiomatic assignment (#8215) PR #8215
- Local execution server binary (#8213) PR #8213
- No longer use travis_wait in CI (#8212) PR #8212
- Refactor pants-plugins (#8207) PR #8207
1.20.0.dev2 (08/23/2019)
API Changes
- Upgrade to Pex 1.6.10. (#8187) Issue #756 PR #8187
- Upgrade to PyYAML 5.1.2 (#8161) PR #8161
New Features
- Allow the workdir to be automatically managed as a symlink (#8195) PR #8195
- Serverset: Lazily connect to a limited number of servers (#8165) PR #8165
- Send Zipkin spans in json format in a separate process (#8150) PR #8150
- Add option zipkin-max-span-batch-size (#8075) PR #8075
- Allow for fetching yarn directly via official releases (#8170) PR #8170
- Recognize multiple sentinel files for determining the build root (#8105) PR #8105
Bugfixes
- Allow jobs to run immediately when they are unblocked (#8203) PR #8203
- Introduce explicit cache writing job in RscCompile task (#8190) PR #8190
- Don't check HTTP response size if gzip'd (#8116) PR #8116
- Fix JVM fingerprinting by adding tags (#8175) PR #8175
- Only add SCM info if scm is available. (#8147) PR #8147
Refactoring, Improvements, and Tooling
- Bump cache integration test timeout. (#8202) PR #8202
- Switch to rust 1.37.0 (#8192) PR #8192
- Fix wheel deploys under CI. (#8188) PR #8188
- Execute local processes in tempdir (#8069) PR #8069
- Refactor pants_run_integration_test.py and pex_build_util.py (#8180) PR #8180
- Use PyYAML to generate .travis.yml (#8163) Issue #8112 PR #8163
- Run contrib unit tests with --chroot (#8084) Issue #7281, PR #8084
- Use f-strings in util code (#8178) PR #8178
- Remove 1.20.0dev2 deprecations (#8172) PR #8172
- Bump test timeout for JVM distribution test. (#8174) PR #8174
- Update node.js dependencies. (#8160) PR #8160
- Remove tests from V2 unit test blacklist that were already passing (#8060) PR #8060
- Fix remote execution failure to compile C code (#8117) PR #8117
- serverset: Guard inner with a Mutex (#8164) PR #8164
- Loosen test condition (#8156) PR #8156
- Reduce scope of Runtime.block_on (#8155) PR #8155
- Deflake test (#8154) PR #8154
- Deflake test (#8153) PR #8153
- Use f-strings in several more places (#8157) PR #8157
- Restore remote execution of unit tests by fixing Firewall (#8162) PR #8162
- Use a released version of cargo-audit. (#8148) PR #8148
- Porting roots goal to v2 (#8199) PR #8199 PR #8176
Documentation
- Minor grammatical update (#8197) PR #8197
1.20.0.dev1 (08/09/2019)
API Changes
- Move MyPy from isolated goal into 'lint' goal and add MyPy whitelist/opt-in type checking (#8099) PR #8099
Bugfixes
- Use more consistent time representation throughout the engine (#8143) PR #8143
- Fix the PyPI project owner scraping heuristic. (#8144) PR #8144
- Ensure injected __init__.py are world readable. (#8139) PR #8139
- Don't hard code expecting HTTP 200 as the only success response code, all 20x responses are success codes. (#8102) PR #8102
1.20.0.dev0 (08/02/2019)
Bugfixes
Refactoring, Improvements, and Tooling
- pin tensorflow example to 1.13.1 (#8135) PR #8135
- Disable symlink checking for uncached Snapshot captures (#8074) PR #8074
- Encapsulate TimeSpan logic in fs/store (#8122) PR #8122
- [pantsd] Clear the global state of subsystems earlier, plus refactorings (#8130) PR #8130
- use f-strings in PythonAWSLambda (#8115) PR #8115
- Mark float as natively encodable to silence hash_utils warning (#8121) PR #8121
Documentation
1.19.0rc0 (07/29/2019)
API Changes
New Features
Bugfixes
- Revert "use jdeps to run dep-usage task (#8093)" PR #8093
- Properly manage the lifetime of Exiters in Daemon Runs (#7996) PR #7996
- Properly handle source roots and resources with V2 Pytest runner (#8063) PR #8063 PR #8060#discussion_r304191700, PR #8063#issuecomment-513433518
- [pantsd] Don't ignore the first watchman event for the daemon pid (#8096) PR #8096
- Loosen constraints on the jvm heap size for tests in extra_jvm_options (#8106) PR #8106
Refactoring, Improvements, and Tooling
- Lower test timeouts in travis to get better debug output. (#8110) PR #8110
- Upgrade cloc to 1.80 and add error handling (#8111) Issue #401, PR #8111
- Rewrite test_git_hooks.py to be hermetic (#8085) PR #8085
- use jdeps to run dep-usage task (#8093) PR #8093
- Balance pytest test sharding (#8108) PR #8108
- Record per-target compile workflow stats when using RscCompile (#8092) PR #8092
- Parse zinc args and pass scalac options into scalafix (#8091) PR #8091
- Scoverage report generator (#8098) PR #8098
- [pantsd] Remove dead code around prefork graph warming (#8095) PR #8095
- Use remote build execution to run several unit tests (#8051) Issue #7649, PR #8051
- Report the stats version pants is using to the server. (#8086) PR #8086
- Remove unused unit-test.sh script (#8083) PR #8083
- Use direct import of version.py (#8078) PR #8078 PR #8077#discussion_r305555451
- Refactor V2 PEX creation rules (#8080) PR #8080 PR #8063
Documentation
- Prepare 1.17.0rc2 and render 1.18.x. (#8114) PR #8114
- Update CONTRIBUTORS.md
1.19.0.dev0 (7/20/2019)
New Features
- Add support for speculation as a viable command runner. (#8050) PR #8050
Bugfixes
Refactoring, Improvements, and Tooling
- Use pants as the user-agent for report server (#8077) PR #8077
- Replace some format() calls with f-strings (#8079) PR #8079
- Use unit-constants for MB/GB (#8072) PR #8072
- Replace deprecated logger.warn calls with logger.warning (#8033) PR #8033
- Local caching CommandRunner has default-on flag (#8040) PR #8040
- Remove unit test runtime dependencies on resources (#8066) PR #8066
- Use our docker image from #8059 for remote execution (#8068) PR #8068 PR #8059
- Log messages are rendered in the v2 UI (#8049) PR #8049
- Extend Google RBE Docker image to allow building sdist wheels (#8059) Issue #8057 PR #8059
- Bump virtualenv to 16.6.2 for local run script (#8061) PR #8061
- Replace scandir dependency with stdlib version (#8058) PR #8058
- Set RUST_BACKTRACE in CI for more useful Rust debugging (#8054) PR #8054
- Add provides clauses for new zinc deps. (#8055) PR #8055
- Fix test broken by workunit service name changes (#8056) PR #8056
- Suppress git stderr when checking for existence of repo (#7891) PR #7891
- Change service name in Zipkin spans (#8053) PR #8053
- embed a graal native-image configuration inside the zinc wrapper (#7506) PR #7506
- Leverage Travis built-in skip support. (#8001) PR #8001
- Add lmdb_store to travis cache (#8042) PR #8042
- Minimum viable speculating command runner (#7992) PR #7992
- Prep for 1.18.0rc1 (#8034) PR #8034
- Revert "ShardedLmdb takes max size in bytes, not pages (#8038)" (#8044) PR #8038 PR #8044
- Add caching CommandRunner wrapper (#7911) PR #7911
- ShardedLmdb takes max size in bytes, not pages (#8038) PR #8038
- Extract ExecuteProcessRequestMetadata (#8035) PR #8035
- Add remote workunits for Zipkin trace (#7897) PR #7897
- Extract cbindgen'd interface into its own crate (#8013) PR #8013
- Revert "Make precomputing fail more usefully (#7994)" (#8024) PR #7994 PR #8024
- Update rust dependencies (#8016) PR #8016
- Fix pdb conflict in run_tracker stats request (#8025) PR #8025
- Add utf-8 encoding to thrift-generated python files (#8022) PR #8022
- Make union error messages better (#7999) PR #7999
1.18.0rc0 (7/5/2019)
API Changes
- Add conftest.py to the python_tests default sources. (#7946) PR #7946
New Features
- Add --[no-]remote-execution flag (#7991) PR #7991
Bugfixes
- Make precomputing fail more usefully (#7994) PR #7994
- Add __init__.py to directories created by grpcio (#7984) PR #7984
- Don't use remote store when --no-remote-execution specified (#8010) PR #8010
- Fix bug background workunits were printed in UI (#7997) PR #7997
- relativize path for scalac classpath entry (#8011) PR #8011
- Fix bad with_traceback() change from #7988 (#8004) PR #8004
- Fix gocheckstyle decoding error (#7978) PR #7978
Refactoring, Improvements, and Tooling
- Set up pants.remote.ini for remoting Python unit tests (#7990) PR #7990
- Add type checking to several util files (#7998) PR #7998
- Kill all uses of t.c.collections.OrderedDict. (#8003) PR #8003
- Use default utf-8 encoding for string decode() and encode() (#7983) PR #7983
- fix grpc threadpool size (#7974) PR #7974
- Fix most Python 2 issues from #6071 (#7989) PR #7989
- Remove future library (#7988) PR #7988
- Remove remaining if PY{2,3} snippets (#7986) PR #7986
- Remove six library (#7985) PR #7985
- No longer use string_types (#7980) PR #7980
- Use dedicated requirements.txt for contrib.python.checks.checker (#7982) PR #7982
- Replace six.exec_() with exec() (#7981) PR #7981
- Remove Python 2 handling of unicode (#7973) PR #7973
- Remove future.moves and six.moves imports (#7975) PR #7975
Documentation
1.18.0.dev2 (6/28/2019)
Bugfixes
- Fix the wheel count check for pex building. (#7933) PR #7933
Refactoring, Improvements, and Tooling
- Remove text_type and binary_type wrappers (#7970) PR #7970
- Fix cargo.sh to use Python 3 (#7972) PR #7972
- Remove Python 2 use of std{out,err} over std{out,err}.buffer (#7968) PR #7968
- Remove Python 2 hashlib.hexdigest() decoding (#7965) PR #7965
- Revert "Workaround Travis timeout for OSX platforms test (#7919)" (#7967) PR #7967
- Add Option for remote concurrency. (#7960) PR #7960
- Remove Python 2 select.select() code (#7964) PR #7964
- Simplify tests to no longer check for u"" character or unicode type (#7966) PR #7966
- Remove subprocess, futures, and faulthandler backports (#7950) PR #7950
- Remove unittest.mock backport (#7951) PR #7951
- Hand over post-compile resources to zinc wrapper to keep classes/ and z.jar consistent (#7932) PR #7932
- Add some of the wording from #7913 that wasn't merged in #7924 (#7958) PR #7958
- Crash pailgun client on SIGINT if we haven't received the pid yet (#7924) PR #7924
- Add whitelist of folders that must remain Python 2 compatible (#7941) PR #7941
- Add concurrent flag, which overrides --enable-pantsd (#7944) PR #7944
- Report zipkin spans regardless of goal version. (#7915) PR #7915
- Don't memoize description in process execute memoization (#7916) PR #7916
- Modernize classes to use Python 3 syntax (#7937) PR #7937
- Remove configparser backport (#7939) PR #7939
- Remove collections.abc backport (#7940) PR #7940
- Remove self.assertRegex backport (#7938) PR #7938
- Add --post-compile-merge-dir option in zinc (#7917) PR #7917
- Remove builtins imports (#7934) PR #7934
- Modernize abc stdlib usage. (#7928) PR #7928
- Workaround Travis timeout for OSX platforms test (#7919) PR #7919
- Modernize all headers to Python 3 style (#7926) PR #7926
- Kill AbstractClass in favor of abc.ABC{,Meta}. (#7929) PR #7929
1.18.0.dev1 (6/21/2019)
API Changes
Bugfixes
- Don't nest output directories in an empty path (#7908) PR #7908
- Migrate python_repl to use ignoring-sigint (#7890) PR #7890
- Use Selectors module for more robust and efficient syscalls (#7882) Issue #7880 PR #7882
Refactoring, Improvements, and Tooling
- Set internal compatibility to >= CPython 3.6 and remove ./pants2 (#7925) PR #7925
- Move reading and writing bytes from Store to ShardedLmdb (#7909) PR #7909
- Remove Python 2 testing from CI (#7922) PR #7922
- Move PATH testutils to testutil crate (#7910) PR #7910
- Fix #7895 breaking CI for pull requests (#7921) PR #7921
- Use S3 Sync for CI deploys to avoid recopying files (#7895) Issue #7258 PR #7895
- Remove fork-related code from Rust (#7894) PR #7894
- Prefactor: Extract store and sharded_lmdb into their own crates (#7904) PR #7904
- Use Docker to build Python 3.7 PEX in CI (#7899) PR #7899
- Switch back to using one threadpool (#7898) PR #7898
- Skip failing TensorFlow tests (#7905) Issue #7903 PR #7905
- Add Centos7 docker image to allow building Python 3.7 wheels (#7892) PR #7892
- Fix macOS Rust tests shard failing to Brew install (#7893) PR #7893
- Set up type_checked tag for internal type hint migration (#7886) PR #7886
1.18.0.dev0 (6/10/2019)
API Changes
- add extra rsc args (#7863) PR #7863
New Features
- fs_util directory materialize prints timing information to stderr (#7871) PR #7871
- Migrate zinc compiler to scopt and add argfile support (#6803) PR #6803
- Use zinc to create the context jar for zinc and rsc (#7833) PR #7833
- Add generic --passthrough-args support. (#7803) PR #7803
- Fix zipkin multithreading issue #7415 (#7826) PR #7826
- Always capture and cache Digests in coursier and ivy (#7835) PR #7835
- Write output from JUnit ConsoleRunner when process is terminated (#7799) PR #7799
Bugfixes
- Fix Nailgun failure when the port is not specified (#7878) PR #7878
- Fix Junit runner failing when --extra-jvm-options provided (#7877) PR #7877
- Fix py-thrift-namespace-clash-check type issue when logging with --no-strict mode (#7864) PR #7864
- Re-instate PosixFS Threadpool (#7848) PR #7848
- Fix remoting of V2 Python test runnner not being able to discover the Python interpreter (#7844) PR #7844
- Fix .pyc files being included to partially get reproducible PEX builds (#7841) Issue #7808 PR #7841
- Use --no-enabled-shared for Linux wheel-builder interpreter so that the released PEX works with statically built interpreters (#7794) PR #7794
Refactoring, Improvements, and Tooling
- Remove an old redundant .isort.cfg. (#7859) PR #7859
- Fix DistributionLocator dependency declarations. (#7875) PR #7875
- Stabilize all tests of NailgunTask subclasses. (#7866) PR #7866
- NailgunTasks execute java with consistent cwd. (#7872) PR #7872
- add debug log for jvm target compile time ; fix execution graph display (#7873) PR #7873
- Use argfile support in zinc and rsc (#7868) PR #7868
- Create a separate crate for workunit_store (#7855) PR #7855
- rsc re-uses DirectoryDigest from process execution rather than re-snapshotting (#7861) PR #7861
- Extract out resolve_requirements V2 rule for creating PEXes with requirements (#7846) Issue #7795 PR #7846
- Split up CI unit tests into two distinct shards (#7867) PR #7867
- Bump to latest zinc in order to consume zinc analysis fix (#7854) PR #7854
- Port ci.sh to Python 3 for more descriptive CLI flags and less duplication (#7849) PR #7849
- rsc doesn't re-snapshot jars produced by zinc (#7858) PR #7858
- add java_sources to scala_library() snapshot (#7840) PR #7840
- Apply isort fixes (#7857) PR #7857
- Locate the classes directory in order to relativize classnames (#7853) PR #7853
- Move V2 test runner integration test into proper location of backend/python folder (#7847) PR #7847
- Run contrib tests with unit tests and integration tests for fewer CI delays (#7709) PR #7709
- No longer default to saving non-deterministic run information to PEX in ./pants binary (#7843) PR #7843
- Cleanup unnecessary code from #7776 for ./pants binary interpreter constraints (#7842) PR #7842
- Apply final set of Shellcheck fixes and turn on in CI (#7832) PR #7832
- Bump CI unit test timeout for less flaky runs (#7831) Issue #6898 PR #7831
- Bump to latest junit-runner (#7830) PR #7830
- Sort entries in output zinc jars (#7834) PR #7834
- Fix rsc compile transitive dep bug introduced in #7742 (#7825) PR #7825
- Avoid redundant work while hackily_snapshot()ing. (#7829) PR #7829
Documentation
- Add notes for 1.16.0rc6 (#7852) PR #7852
1.17.0.dev1 (5/22/2019)
New Features
Bugfixes
- Fix PytestRun to honor user conftest.py plugins. (#7784) PR #7784
- Only python_binary's constraint should be included in a built pex (#7776) PR #7776
- Revert v2 zipkin support due to #7415. (#7773) PR #7773
- Use patched protobuf with RUSTSEC-2019-0003 fix. (#7770) PR #7770
- Fix hermetic environment issues with V2 tasks (#7721) PR #7721
- Handle empty test targets for junit_xml_dir. (#7752) PR #7752
- Align mypy interpreter constraint with reality. (#7754) PR #7754
- Fix using sets with V2 Struct causing unhashable TypeError (#7747) PR #7747
- Confluence publishing uses correct text types (#7746) PR #7746
- Fix invalidation of awslambda bundling. (#7744) PR #7744
- Fix Python 2 regression for V2 pytest (#7736) PR #7736
- Fix 'current' platform check for python_dist() targets with C/C++ sources (#7687) PR #7687
- Bump pex to 1.6.7 (#7731) PR #7731
- Fixes for pants release 1.17.0.dev0 (#7727) PR #7727
- Fix ordering of args from compiler_option_sets and add test for scalac profiling (#7683) PR #7683
Refactoring, Improvements, and Tooling
- Create Pipe wrapper around pipes (#7740) PR #7740
- OSX ignore serverset::tests::reattempts_unhealthy. (#7774) PR #7774
- Ignore RUSTSEC-2019-0003. (#7766) PR #7766
- Memoize graph walks on Context (#7758) PR #7758
- Skip broken test_pantsd_memory_usage for python2. (#7765) PR #7765
- Skip broken CTypesIntegrationTest methods. (#7764) PR #7764
- Hash an entire json input in one call. (#7759) PR #7759
- Fix doc comment locations (#7757) PR #7757
- Don't require ack, grep can do the job. (#7753) PR #7753
- Extract a generalized V2 rule to inject __init__.py files (#7722) PR #7722
- Tweak V2 pytest's execute process description to get more cache hits (#7737) PR #7737
- Use @union to make the v2 test runner generic (#7661) PR #7661
- Thread-local logging (#7690) PR #7690
- Tone down logging when making ShardedLmdbs (#7733) PR #7733
- Add logging for V2 test scheduler as temporary workaround until V2 UI is finished (#7729) PR #7729
- Apply more shellcheck fixes to build-support scripts (#7719) PR #7719
- Rename V2's MergedDirectories to DirectoriesToMerge (#7730) PR #7730
- Always use curl --fail (#7717) PR #7717
- Pipe LineOriented through the console (#7723) PR #7723
- Properly resolve transitive dependencies in V2 Pytest runner (#7720) PR #7720
- Add intrinsic to lift a Digest to a Snapshot (#7725) PR #7725
- Add support for source roots in V2 ./pants test (#7696) PR #7696
- Add support in check_header.py for Python 3-style headers (#7713) PR #7713
- Add shellcheck.py and apply first round of fixes (#7698) PR #7698
1.17.0.dev0 (5/13/2019)
Bugfixes
Refactoring, Improvements, and Tooling
- Setup MyPy config and enforce types for build-support scripts (#7704) Issue #6742 PR #7704
- Add builtin Rust rule to strip prefixes from directories for source root support (#7699) Issue #7697 PR #7699
- Refactor and modernize check_header.py to use Python 3 (#7635) PR #7635
- Add pantsd_invalidation_globs option into pants.ini (#7705) PR #7705
- Mark build-support Python files as Pants targets to lint build-support (#7633) PR #7633
- Refactor check_banned_imports.py to allow Python 3 files to import subprocess (#7706) PR #7706
- Rerun cbindgen on changes to src (#7708) PR #7708
- add stack traces to unhashable TypeErrors in the engine (#7532) PR #7532
- Convert check_banned_imports.sh to Python to workaround Bash array issues and for less duplication (#7702) PR #7702
- Output stderr in V2 test rule (#7694) PR #7694
- Remove now-unused Path type (#7701) PR #7701
- Improve V2 ./pants test output to make it easier to parse results of multiple targets (#7676) PR #7676
- Allow V2 console rules to use colors (#7689) PR #7689
- Refactor PythonSetup.interpreter_or_constraints() to take a compatibility value rather than a PythonTarget (#7691) PR #7691
- Remove ResettablePool (#7688) PR #7688
- PosixFS no longer has its own threadpool (#7685) PR #7685
- Refactor v2 TestResult model to use enum (#7677) PR #7677
- V2 ./pants test.pytest selects interpreter based off of compatibility constraints (#7679) PR #7679
1.16.0rc0 (5/7/2019)
API Changes
Bugfixes
- Fix for reference cycle from Target to BuildGraph (#7666) PR #7666
- Put all arguments to javac in safe_args not just the source paths (#7651) PR #7651
- convert to text_type() for external repos running pants py2 (#7664) PR #7664
- Small logging update to java executor and fix undefined var in release.sh (#7667) PR #7667 PR #7370
Refactoring, Improvements, and Tooling
- Short-circuit primitive encoding on CoercingEncoder (#7655) PR #7655
1.16.0.dev4 (5/06/2019)
New Features
Bugfixes
- Apply timeouts to pex resolves (#7659) PEX Issue #26 PR #7659
- pin the PEX_PYTHON{,_PATH} running the pytest pex to avoid using incompatible pytest requirements (#7563) PR #7563
- Fix hasattr on Payload (#7432) PR #7432
- Two targets can swap positions with pantsd (again) (#7642) PR #7642
Refactoring, Improvements, and Tooling
- pantsd runs no longer fork (#7596) PR #7596
- Replace externs::eval with externs::none (#7646) PR #7646
- Add the possibility to ignore sigint from other threads (#7623) PR #7623
- Name threads that the daemon starts (#7639) PR #7639
- Add testing for improved error message from #7628 when no valid interpreter can be resolved (#7630) PR #7630
- Extend pantsd test timeout (#7527) PR #7527
- Skip flaky test (#7638) PR #7638
- Use TryInto instead of custom types (#7542) PR #7542
- use upstream rustup init script download workaround for old curl version on CentOS6 (#7619) PR #7619
1.16.0.dev3 (4/27/2019)
Bugfixes
- PythonTests force default platform resolves (#7618) PR #7618
- Fix to decode bytes to unicode in server when reading file from disk (#7610) PR #7610
- Two targets can swap positions with pantsd (#7583) (#7617) PR #7583
- Fix empty failed target to ensure pants raises the error if python test fails (#7570) PR #7570
Refactoring, Improvements, and Tooling
- Modernize check_pants_pex_abi.py script to Python 3 (#7631) PR #7631
- unify precedence logic for options which may be overridden on targets (#7594) PR #7594
- fix --owner-of path matching to remove repeated directory separators (#7588) PR #7588
- fix cron job by wrapping the python binary in text_type() (#7611) PR #7611
- download rustup-init without --proto to work around outdated centos6 curl version (#7615) PR #7615
- Default release script to use Python 3 in preparation for dropping Python 2 release (#7608) PR #7608
- Better support --test-junit-test with classname, remove support for file path (#7589) PR #7589
- Refactor uses of dirutil.py to use the new default Unicode semantics (#7604) PR #7604
- Ensure test symlink is always seen by engine. (#7605) PR #7605
- pantsd auto invalidates pants.ini and all pythonpath of pants (#7599) PR #7599
1.16.0.dev2 (4/22/2019)
New features
Bugfixes
- Rerun select-interpreter if global Python interpreter constraints have changed (#7586) PR #7586
- Fix help info output for option choices (#7569) PR #7569
- Directory materialization is visible to others. (#7562) PR #7562
- Coerce argv for JavacCompile to text_type. (#7560) PR #7560
- Fix doc generation rendering byte literals with Python 3 (#7556) PR #7556
- fix go test flags bug and add integration test (#7539) PR #7539
Documentation
Refactoring, Improvements, and Tooling
- Hotfix #7591 breaking OSX Rust tests shard due to Pyenv global issue (#7602) PR #7602 PR #7591
- Pin OSX wheel release shards to pyenv. (#7591) PR #7591
- Replace the goals goal with a help plugin which supports both v1 and v2 (#7598) PR #7598
- Remove unused migrations folder (#7592) PR #7592
- Collection subclasses correctly coerce to bools (#7584) PR #7584
- Use ci.sh instead of travis-ci.sh (#7582) PR #7582
- Cleanup run_python_test rule. (#7577) PR #7577
- Improve --pantsd-invalidation-globs using Snapshot fingerprints (#7531) Issue #5567 PR #7531
- Restore support for pantsbuild.pants wheel using Python 3.7+ by removing abi3 workaround (#7578) Issue #7459 PR #7578
- Bootstrap py36 in cron as well (#7579) PR #7579
- protobuf gen triggers less often (#7565) PR #7565
- Skip more flaky tests in TestPantsDaemonIntegration. (#7575) PR #7575
- Allow 3rdparty rust crate logging to be hidden (#7530) PR #7530
- Add debug_log macro for one-off debugging (#7566) PR #7566
- Enable pantsd in Travis (#7440) PR #7440
- Skip flaky tests in TestPantsDaemonIntegration. (#7558) PR #7558
- Don't assume a local master branch point. (#7557) PR #7557
- Kill unused env vars in our pre-commit hook. (#7555) PR #7555
- Remove un-needed travis-ci.sh ci wrapper. (#7548) PR #7548
- Build pexes that work on all Python patch versions. (#7550) PR #7550
- Fix abi3 pex check to allow abi3 wheels. (#7549) PR #7549
- Only add the CI skipping label on initial commit. (#7545) PR #7545
- Prepare 1.15.0 (#7544) PR #7544
- Don't run CI for doc-only changes. (#7537) PR #7537
1.16.0.dev1 (4/12/2019)
API Changes
- Set the fromfile option arg's default to True (#7513) PR #7513
- Bump cffi (1.11.1 => 1.11.5) (#7484) PR #7484
- Add run tracker option for versioning stats (#7481) PR #7481
- Replace SingletonRule with zero-parameter @rules (#7479) PR #7479
- Remove @rule Select syntax (#7477) PR #7477
- Switch to twitter.common 0.3.11 to fix DeprecationWarning when using Pants as a PEX (#7461) PR #7461
New features
- A @console_rule for validating source files against regexes. (#7515) PR #7515
- Support JSON and YAML option fromfiles. (#7500) PR #7500
- add a deprecation_start_version argument to warn_or_error() (#7494) PR #7494
- Add more pants run information to the json reporter (#7474) PR #7474
- unrevert go test upgrades to test transitively after fixing issues (#7326) PR #7326
- Improve error message for isort failure in IsortRun (#7462) PR #7462
Bugfixes
- Increase strictness of type checking for ExecuteProcessRequest args (#7529) PR #7529
- Improve Get errors for unhashable or mismatched types (#7502) PR #7502
- Don't consider strings as collections for TypedCollection (#7521) PR #7521
- Invalidate dependency targets for jvmdoc if --combined. (#7455) PR #7455
- allow python tools to specify a noop predicate and use it for conan (#7498) PR #7498
- Remove console_rule_integration.py from Python 3 CI blacklist (#7466) PR #7466
- Fix flaky ./pants idea-plugin when using Python 3 by properly using ConsoleTask interface (#7460) PR #7460
- Fix ./pants server not working with Python 3 (#7458) PR #7458
- Fix crash if pants.ini is missing in the buildroot (#7452) PR #7452
Refactoring, Improvements, and Tooling
- fix TestPantsDaemonIntegration.test_signal_pailgun_stream_timeout flakiness (#7533) PR #7533
- Restore cron CI run from #7534 to adjust the time it starts (#7538) PR #7538
- Temporarily turn off cron CI run to adjust the time it starts (#7534) PR #7534
- Label messages of docs-only commits with SKIP_FULL_CI (#7526) PR #7526
- Fuse hydrated and unhydrated Struct parsing (#7523) PR #7523
- Move logging to Rust (#6817) PR #6817
- Run tests in src dirs in ci. (#7524) PR #7524
- avoid running a clean-all in integration tests, which are in a new buildroot (#7522) PR #7522
- make pantsd signal integration tests more reliable by setting the timeout (#7504) PR #7504
- add some comments to the example CI script in orgs.md (#7478) PR #7478
- Pass interpreter constraints to the Pex we release (#7511) PR #7511
- remove pyenv bootstrapping from travis_ci/Dockerfile (#7505) PR #7505
- Improve logging of build-support/isort.sh helper script (#7503) PR #7503
- Tweak Pytest logging in CI for less overwhelming logging of successful tests (#7501) PR #7501
- Install Python 2.7 and 3.6 on Centos6 base image through Pyenv (#7064) PR #7064
- Add a basic test for pantsd memory leaks. (#7488) PR #7488
- convert --skip to --strict in py thrift namespace clash check task (#7493) PR #7493
- Ensure Python 3.6 or 3.7 is installed on all CI shards (#7483) PR #7483
- Prepare Linux UCS2 shard for upgrade to Centos6 base image in #7064 (#7418) PR #7418
- Cache AWS CLI install in CI (#7472) PR #7472
- Remove StatsDb / Timing stats views (#7475) PR #7475
- Cache pyenv in CI (#7470) PR #7470
- Consolidate JSON stats recording in RunTracker (#7446) PR #7446
- Fix issues with deploy shards not properly setting Python version (#7471) PR #7471
- No longer pin pants_runtime_python_version with ./pants generate-pants-ini (#7469) PR #7469 PR #49
- Remove Python 3 CI blacklist mechanism (#7468) PR #7468
- Remove backend/python/tasks tests from Python 3 CI blacklist and refactor their BUILD entries to be more granular (#7463) PR #7463
- Fix typo from #7424 to properly fix TensorFlow test during Python 3.7 cron job (#7464) PR #7464
- hack default compiler option sets to fix tensorflow 1.13.1 on python 3.7 (#7424) PR #7424
1.16.0.dev0 (3/29/2019)
New features
Refactoring, Improvements, and Tooling
- Revert unnecessary runtime check for valid Python interpreter (#7451) PR #7451
- Make abstract classproperty error message nicer (#7429) PR #7429
- remove inspect.stack() from @rule parsing to fix import time regression in py3 (#7447) PR #7447
- Just ignore source arg (with a comment) (#7430) PR #7430
- Cache resolution of Node targets via fingerprinting lockfiles. (#7414) PR #7414
- Handle signals gracefully (#6574) PR #6574
- Fix resolve test failing on Python 3.7 due to test using outdated cffi version (#7413) PR #7413
- Loosen constraints for TensorFlow used in example code to work with Python 3.7 (#7410) PR #7410
- Allow usage of pants2 script from other directories (#7409) PR #7409
- Specify the python version to use in the unstable pex deploy shard. (#7411) PR #7411
- Bump default MyPy version to 0.670 (#7407) PR #7407
- Release pants as both a Python 2.7 PEX and a Python 3.6 PEX (#7401) PR #7401
- add a non-numeric prefix before the unstable version to avoid getting parsed and truncated as a number (#7400) PR #7400
- Refactor travis.yml to deduplicate Pyenv and AWS pex code (#7397) PR #7397
Bugfixes
- nailgun connect timeout error message fix (#7437) PR #7437
- Add Python 3.7 tests to nightly cron CI run (#7261) PR #7261
- Better message on tool interpreter selection failure. (#7438) PR #7438
- fix for pantsrc-files option (#7427) PR #7427
- Move with_overwritten_file_context to PantsRunIntegrationTest (#7408) PR #7408
- Fix locale test failing on Python 3.7 due to forced UTF-8 mode (#7412) PR #7412
- Simplify glob matching and directly match in-memory globs as Patterns. (#7402) PR #7402
- Allow reporters to see the correct end_time for a workunit (#7389) PR #7389
1.15.0rc0 (3/18/2019)
New Features
- [rsc-compile] support explicit tagging of targets in rsc compile (#7362) PR #7362
1.15.0.dev4 (3/15/2019)
API Changes
- Drop old deprecated options / conditionals (#7332) PR #7332
New Features
- Add runtime check for valid Python interpreter (#7365) PR #7365
- Add support for releasing Python 3 wheels (#7197) Issue #654 PR #7197
- [pantsd] Implement auto-shutdown after runs (#7341) PR #7341
- Add pants_runtime_python_version global option (#7363) Issue #30, PR #7363
Bugfixes
- When building a pex in release.sh, build it for all supported ABIs. (#7393) PR #7393
- [rsc-compile] define workflow in context instead of on fly (#7324) PR #7324
- Fix rule graph nondeterminism due to undetected ambiguity (#7379) PR #7379
- Hotfix Python 2 regression from #7366 using FileNotFoundError (#7381) PR #7381
- Replace future with six in the python style checker. (#7374) PR #7374
- Hardcode the junit xml hostname to avoid doing DNS lookups in tests (#7329) PR #7329
- Fix use of legacy venv folder names from #7187 (#7359) PR #7359
- Fixes to release script post-#7235. (#7349) PR #7349
Refactoring, Improvements, and Tooling
- Use UUID from run_id as trace_id if trace_id isn't set by a flag (#7319) PR #7319
- Refactor test code's interpreter_selection_utils.py for better naming of util functions (#7366) PR #7366
- Update docs re: target tag usage (#7360) PR #7360
- Create dedicated Dockerfile with Python 3.6 to reduce CI time (#7352) PR #7352
- Add dedicated cron bootstrap stage to CI to avoid unnecessarily building Python 3 (#7353) PR #7353
- Fix names of listtargets and sorttargets files (#7358) PR #7358
- Refactor .travis.yml to deduplicate uses of Docker and use Mustache comments (#7351) PR #7351
1.15.0.dev3 (3/9/2019)
API Changes
- Propagate global interpreter constraints when building PEXes with interpreter constraints requested (#7285) PR #7285
New Features
Bugfixes
- Revert "add a lint to warn on implicit string concatenation (#7286)" (#7340) PR #7286
- Fix ./pants2 overriding desired $PY interpreter (#7338) PR #7338
- Fix regression to python interpreter selection test from #7257 (#7333) PR #7333
- Fix ./pants2 overriding preset interpreter constraints (#7334) PR #7334
- Bugfix for stale interpreter.info purging when binary exe is no longer on the filesystem (#7292) PR #7292
Refactoring, Improvements, and Tooling
- Specify ABI for pantsbuild.pants wheel and build with both UCS2 and UCS4 (#7235) PR #7235
- Have extern::generator_send directly produce TypeIds for product types (#7318) PR #7318
- use type= to register enum options (#7304) PR #7304
- Skip GraphIntegrationTest.test_error_message as it's flaky in CI. (#7309) PR #7309
- Re-enable https for grpc connections (#7317) PR #7317
- convert usages of TypeConstraint to TypeId for rule products in the engine (#7114) PR #7114
- Print trace id to console and possible URL with the zipkin trace (#7313) PR #7313
- @union / UnionRule for letting the engine figure out paths to products not known in advance (#7116) PR #7116
- Filter out irrelevant env vars in OptionsBootstrapper. (#7312) PR #7312
- Revert 7238 and add requirement for more-itertools that works on python 2 (#7296) PR #7296
- convert many manual NotImplementedError() calls to use @abstractmethod (#7310) PR #7310
- [rsc-compile] extract helper methods for tests (#7294) PR #7294
- add a lint to warn on implicit string concatenation (#7286) PR #7286
- add self.assertRaisesWithMessageContaining() to TestBase and use it to clean up test_objects.py (#7303) PR #7303
- move the declarative task stuff out of the python backend testing (#7279) PR #7279
Deprecations
1.15.0.dev2 (3/02/2019)
New Features
Version updates
- [rsc-compile] bump version; rm metacp jobs; update tests (#7272) PR #7272
Bugfixes
Refactoring, Improvements, and Tooling
- enum cleanup (#7269) PR #7269
- filespec matching utility functions use native glob matching. (#7299) PR #7299
- move wheel extraction for UnpackWheels into PexBuilderWrapper and resolve for a single platform only (#7289) PR #7289
- Default to pants devs using Python 3 by renaming ./pants3->`./pants` and ./pants->`./pants2` (#7257) PR #7257
- Delete BuildFileAddressMapper. (#7291) PR #7291
- Split out rsc distribution selection into JvmCompile (#7290) PR #7290
- Allow tasks to opt-in to target filtering (#7283) PR #7283
- try defining algebraic Executables in the native backend to compose more readable toolchains (#6855) PR #6855
- Update TargetFiltering args for applying criteria (#7280) PR #7280
1.15.0.dev1 (2/22/2019)
New Features
- Allow passing floating point numbers from rust to python (#7259) PR #7259
Bugfixes
- Fix nightly cron ctypes enum failure (#7249) PR #7249
- Revert remote execution from tower to grpcio (#7256) PR #7256
- Pin pytest version to avoid induced breakage from more-itertools transitive dep (#7238) Issue #4770#issuecomment-462869367, PR #7238
- Validate and maybe prune interpreter cache run over run (#7225) PR #7225
Documentation
- [jvm-compile] fix typo: s/direcotry/directory/ (#7265) PR #7265
Refactoring, Improvements, and Tooling
- cache python tools in ~/.cache/pants (#7236) PR #7236
- Prepare 1.14.0rc3 (#7274) PR #7274
- Node is Display (#7264) PR #7264
- Scheduler returns metrics as a dictionary instead of a tuple of tuples (#7255) PR #7255
- Prepare 1.14.0.rc2 instead. (#7251) PR #7251
- Prepare 1.14.0 (#7246) PR #7246
- Avoid capturing Snapshots for previously digested codegen outputs (#7241) PR #7241
- Add checks if values of flags zipkin-trace-id and zipkin-parent-id are valid (#7242) PR #7242
- Remove deprecated test classes (#7243) PR #7243
- fix expected pytest output for pytest integration after pinning to 3.0.7 (#7240) PR #7240
- Canonicalize enum pattern matching for execution strategy, platform, and elsewhere (#7226) PR #7226
- add a TypedCollection type constraint to reduce boilerplate for datatype tuple fields (#7115) PR #7115
1.15.0.dev0 (2/8/2019)
API Changes
New Features
Bugfixes
Documentation
- documentation for grpcio (#7155) PR #7155
Refactoring, Improvements, and Tooling
- Make Resettable lazy again (#7222) PR #7222
- fix _raise_deferred_exc() (#7008) PR #7008
- Skip flaky test (#7209) PR #7209
- Only run master-dependent commithooks on master (#7214) PR #7214
- Revert "make GoTest subclass PartitionedTestRunnerTaskMixin to test transitively" (#7212) PR #7212
- Absolute-ify GIT_DIR (#7210) PR #7210
- Fix release script ownership check command name. (#7204) PR #7204
1.14.0rc0 (2/01/2019)
New Features
API Changes
Bugfixes
- Set default PY in cargo wrapper (#7195) PR #7195
- Consume the PyTest Subsystem to stabilize the pytest version. (#7193) PR #7193
- Fix setting conan remotes (#7191) PR #7191
- Add setup workunit to critical_path_timings for all main workunits (#7184) PR #7184
- Fix test_pantsd_integration (#7175) PR #7175
- Work around multi-python pex issues for checker. (#7178) PR #7178
Refactoring, Improvements, and Tooling
- Remove unused operation wrapper (#7194) PR #7194
- Refactor packages.py in preparation for adding Python 3 support (#7190) PR #7190
- Add ability to specify Python minor version when running ./pants (#7187) PR #7187
- [junit-runner] extracted refactoring from sec mgr change (#6860) PR #6860
- virtualenv always finds git root (#7173) PR #7173
- Don't re-panic in mock execution server (#7167) PR #7167
- Engine can store python OrderedSets (#7165) PR #7165
- Error on all rust warnings (#7154) PR #7154
- Start testing pre commit hooks (#7118) PR #7118
- Remove scala_repl_integration and testprojects_integration from Python 3 blacklist (#7169) PR #7169
1.14.0.dev3 (1/27/2019)
New Features
API Changes
- Bump pyzipkin to 0.17.0 (#7161) PR #7161
- remove support for using the pants native toolchain with distutils Extensions in setup.py (#7126) PR #7126
- Bump cucumber version to get jar with correct unicode encoding (#7134) Issue #7123. PR #7134
Bugfixes
Refactoring, Improvements, and Tooling
- Fixes to get contrib, lint, JVM tests, and platform-specific tests working with ./pants3 (#7067) PR #7067
- Properly handle unicode and byte streams with pantsd for Python 3 (#7130) PR #7130
- populate parent directories of process outputs locally to match remote execution api (#7133) PR #7133
- Fix test_jvm_platform_analysis_integration.py using unknown platforms (#7140) Issue #7139 PR #7140
- Remove option integration test from Python 3 blacklist (#7142) PR #7142
- Fix Idea plugin unicode issues with Python 3 (#7141) PR #7141 PR #7157
- Fix legacy graph test Python 3 issue with rendering unicode literals (#7143) PR #7143
- Fix setup_py.py unicode issue with Python 3 (#7144) PR #7144
- Fix various backend/jvm/task Python 3 and unicode issues (#7124) PR #7124
- refactor ImportJarsMixin into ImportRemoteSourcesMixin for extensibility (same with tasks) (#7061) PR #7061
- Ignore 3rd party deprecation warnings for unmaintained libraries (#7110) PR #7110
- Update to rust 1.32.0 (#7094) PR #7094
1.14.0.dev2 (1/19/2019)
New Features
API Changes
- move dict key encoding into hash_utils.py and deprecate stable_json_hash() (#6475) PR #6475
Version updates
- Update psutil to fix deprecation warnings (#7112) PR #7112
- Bump twitter.common dependencies to 0.3.10 to pull in Py3 fixes. (#7102) PR #7102
- Upgrade several dependencies to fix Py3 deprecations (#7053) PR #7053
- Update pantsbuild/pants to scala 2.12, and bump the default patch version for 2.12 (#7035) PR #7035
Bugfixes
- Move pants.init.subprocess into pants.process (#7081) PR #7081
- Continue to reexport stable_json_hash from its previous location. (#7103) PR #7103
- [compile.rsc] fix key error; ensure java compiles get necessary zinc scala deps (#7038) PR #7038
- Fix jvm compile unicode issues when using Python 3 (#6987) PR #6987
- Revert "set PEX_PYTHON_PATH when invoking the checkstyle pex for pexrc to work (#7013)" (#7028) PR #7028
Refactoring, Improvements, and Tooling
- Reorder CI based on what's most likely to change from a typical PR (#7104) PR #7104
- Switch operation getting to tower (#7108) PR #7108
- Only clippy on CI on one shard (#7109) PR #7109
- Make ci.sh's -b bootstrap flag a positive flag (#7096) PR #7096
- Use docker on wheel builder shard (#7100) PR #7100
- don't override PANTS_DEV if set to 0 in the calling environment to make python checkstyle work in a separate repo (#7017) PR #7017
- Split out unrelated CI jobs into their own distinct shards (#7090) PR #7090
- Hotfix for #6981 breaking release.sh (#7091) PR #7091
- Use ./pants3 for majority of CI (#6981) PR #6981
- [compile.rsc] fix typo (#7057) PR #7057
- Fix threading issue with report.py when using Py3 (#7085) PR #7085
- Allow Pants to run with Python 3 via ./pants3 script (#6959) PR #6959
- Properly render newline in exceptions with Py3 (#7073) PR #7073
- use the asttokens 3rdparty lib to make @rule parsing errors very smooth (#7023) PR #7023
- Add specific copyright year check on newly added python files (#7066) PR #7066
- Use homebrew addon feature in CI (#7062) PR #7062
- Add collections.abc backport to fix deprecation warning (#7055) PR #7055
- Improve symlink errors (#7054) PR #7054
- Fix invalid escape sequence problems (#7056) PR #7056
- Build rust code only once per platform in a CI run (#7047) PR #7047
- Remote execution uses tower-grpc to start executions (#7049) PR #7049
- Workaround for homebrew bug with osx shard (#7050) PR #7050 Issue #5513
- Support some conversions for prost protos (#7040) PR #7040
- Expose 1.13.x in the docsite notes dropdown. (#7045) PR #7045
- Reqwest uses rustls not openssl (#7002) PR #7002
- Fix awscli install to be language agnostic. (#7033) PR #7033
- Improve readability of integration test logging. (#7036) PR #7036
- Generate protos for tower as well as grpcio (#7030) PR #7030
- Ensure all rust crates have common prefix (#7031) PR #7031
- Eliminate bs4 warning. (#7027) PR #7027
1.14.0.dev1 (1/4/2019)
New Features
Version updates
- Update to rust 2018 (#6867) PR #6867
Bugfixes
- set PEX_PYTHON_PATH when invoking the checkstyle pex for pexrc to work (#7013) PR #7013
- fix binary_util.py main method, add unit test, and kill integration test (#7010) PR #7010
- Markdown writer errors are written properly (#6975) PR #6975
- Fix unused_must_use, error in the futrue (#6999) PR #6999
- Add python version to the native cache key (#6991) PR #6991
- Fix invalid escape sequence & regex expression deprecations (#6984) PR #6984
- Fix test_checkstyle.py interpreter constraint (#6983) PR #6983 PR #6959
- Fix native.py unicode issue leading to compile error with Python 3 (#6982) PR #6982
- Fix python_artifact fingerprint unicode issue for Python 3 (#6971) PR #6971
Refactoring, Improvements, and Tooling
- Eliminate dead code warnings. (#7018) PR #7018
- Retrofit the Conan tool using PythonToolBase. (#6992) PR #6992
- A preliminary bootstrapping CI stage, to prevent repeated work in each CI shard. (#7012) PR #7012
- add unit testing for requesting transitively available products (#7015) PR #7015
- When compiling with rsc, metacp java libraries in a separate execution graph node. (#6940) PR #6940
- digest returns hashing::Digest (#7006) PR #7006
- Fix all rust clippy warnings (#7001) PR #7001
- Engine can store dict (#6996) PR #6996
- Programatically add rust config to vendored protos (#7000) PR #7000
- Engine can store bools (#6994) PR #6994
- Clarify which files should be edited when releasing from branch (#6988) PR #6988
- Core has a PathBuf for build root (#6995) PR #6995
- Don't explicitly use TaskRule (#6980) PR #6980
- Make UI Per-session instead of per-request (#6827) PR #6827
- Replace deprecated cgi.escape() with html.escape() (#6986) PR #6986
- Allow remote store RPC attempts to be configured (#6978) PR #6978
- Prep for 1.13.0 (#6977) PR #6977
- Allow fs_util thread count to be configured (#6976) PR #6976
- Convert Native into a singleton (#6979) PR #6979
1.14.0.dev0 (12/21/2018)
New Features
- Add support for deprecating scoped SubsystemDependencies (#6961) PR #6961
- Add a flag to filedeps v1 to output abs or rel paths (#6960) PR #6960
- Add serverset (#6921) PR #6921
- Use serverset for Store (#6931) PR #6931
- Add Python 3 support to C and C++ module initialization (#6930) PR #6930
- Support source and 3rdparty dependencies in v2 python test running (#6915) PR #6915
- Add tool classpath for ./pants scalafix (#6926) PR #6926
- Log aggregate statistics for remote executions (#6812) PR #6812
Version updates
Bugfixes
Refactoring, Improvements, and Tooling
- Ensure digests are uploaded before attempting execution (#6965) PR #6965
- Fix tokenize encoding issue engine parser on Python 3 (#6962) PR #6962
- Fix scheduler.metrics() returning bytes instead of unicode (#6969) PR #6969
- Use stdout with bytes for task context (#6968) PR #6968
- Fix plaintext_recorder sometimes being passed TextIO (#6963) PR #6963
- Switch daytime CI to Python 3 only (#6952) PR #6952
- Renamespace and publish the buck zip utils (#6955) PR #6955
- Add filedeps goal and tests for v2 (#6933) PR #6933
- serverset: Add ability to retry a function (#6953) PR #6953
- Only build fs_util when releasing (#6951) PR #6951
- Exclude Antlr test from testprojects to avoid interpreter conflict (#6944) PR #6944
- Fix failing lint with TEST_BUILD pattern (#6943) PR #6943
- Fix relative import for testprojects dummy test on Python 3 (#6942) PR #6942
- Fix relative import for conftest test on Python 3 (#6941) PR #6941
- Fix Travis environment variable overriding interpreter_selection test's config (#6939) PR #6939
- PythonToolPrepBase now sets up its interpreter. (#6928) PR #6928
- Remove remaining unnecessary __future__ imports (#6925) PR #6925
- Construct clients on demand (#6920) PR #6920
- Enforce interpreter constraints for antlr3 python code. (#6924) PR #6924
1.13.0rc1 (12/18/2018)
New Features
- Add tool classpath for ./pants scalafix (#6926) PR #6926
Bugfixes
- Bump scalafix version and use os.pathsep (#6938) PR #6938
1.13.0rc0 (12/13/2018)
New Features
Bugfixes
Refactoring, Improvements, and Tooling
- Ensure pants is running in exception sink tests. (#6912) PR #6912
- Unblacklist JVM check_style Python 3 integration test thanks to using Python 3.5+ (#6882) PR #6882
- Upgrade Travis to Xenial (Ubuntu 16.04) (#6885) PR #6885
- Make PexBuilderWrapper a Subsystem. (#6897) PR #6897
- Make graph traces stable. (#6909) PR #6909
- Fix build-support/bin/release.sh -p. (#6908) PR #6908
- Re-skip flaky test_mixed_python_tests. (#6904) PR #6904
- Skip EngineTest#test_trace_multi. (#6899) PR #6899
- Fix flaky test_process_request_*. (#6895) PR #6895
- Convert some of release.sh to python, batch pants invocations (#6843) PR #6843
- [Bug fix] Fix test_interpreter_selection_integration unicode issues for Python 3 (#6887) PR #6887
1.13.0.dev2 (12/07/2018)
New Features
Bugfixes
- Flush the console after all @console_rules have completed (#6878) PR #6878
- Straighten out interpreter search path configuration (#6849) PR #6849
- Make TestPinger more robust. (#6844) PR #6844
- Fix clippy pre-commit check when used as a commit hook. (#6859) PR #6859
- Don't copy over the os environment to avoid an encoding error (#6846) PR #6846
Refactoring, Improvements, and Tooling
- use the cbindgen crate and some decorators to DRY out the rust/python ffi (#6869) PR #6869
- Use __iter__ instead of .dependencies in v2 rules (#6873) PR #6873
- Improve error message for locale check (#6821) PR #6821
- Port remaining tests to new TestBase base class. (#6864) PR #6864
- Replace try! with ? (#6868) PR #6868
- Remove some deprecated pex-related functions. (#6865) PR #6865
- add scala_jar to the docsite (#6857) PR #6857
- Port a few tests over to the new TestBase. (#6854) PR #6854
- Use github release version of coursier instead of dropbox link (#6853) PR #6853
1.13.0.dev1 (11/30/2018)
New features
- Add --remote-execution-process-cache-namespace (#6809) PR #6809
Bugfixes
- Fix unused error value. (#6834) PR #6834
- [deferred-sources] fix glob expansion issue in deferred sources mappe… (#6824) PR #6824
- Fix a bug when selecting interpreters with no constraints at all. (#6822) PR #6822
- Pin a conan dep that was floating to a version that was not compatible with python 2. (#6825) PR #6825
Refactoring, Improvements, and Tooling
- [docs] add language about flaky tests / issues for them (#6837) PR #6837
- Include uname in rust cache key (#6842) PR #6842
- Only build fs_util as part of dryrun (#6835) PR #6835
- ci.sh can run cargo-audit (#6549) PR #6549
- Run cargo clippy in pre-commit (#6833) PR #6833
- Statically link openssl for reqwest (#6816) PR #6816
- Use pantsbuild.org not example.com (#6826) PR #6826
- Leverage default target globs. (#6819) PR #6819
- Make PythonInterpreterCache into a subsystem. (#6765) PR #6765
1.13.0.dev0 (11/26/2018)
New features
- Header file extensions as options for C/C++ targets (#6802) PR #6802
API Changes
- Use both the deprecated and new locations of fatal_warnings args (#6798) PR #6798
Bugfixes
- Fix disappearing cursor (#6811) PR #6811
Refactoring, Improvements, and Tooling
- Add nailgun-specific main which uses paths in calling process (#6792) PR #6792
- Move file owners computation into the engine and make lighter (#6790) PR #6790
- Bump Conan to 1.9.2 (#6797) PR #6797
- Make bootstrap jar reproducible (#6796) PR #6796
- Remove unused CompilerCacheKey (#6805) PR #6805
- Fix documentation example for using scalac_plugins (#6807) PR #6807
- Remove Params::expect_single compatibility API (#6766) PR #6766
- add integration test for invalidation of ctypes c++ sources (#6801) PR #6801
1.12.0rc0 (11/19/2018)
New features
- Add prelude and epilogue (#6784) PR #6784
Bugfixes
- Use ThreadPool for cache fetching and rust tar for artifact extraction (#6748) PR #6748
1.12.0.dev1 (11/16/2018)
API Changes
- bump pex version to 1.5.3 (#6776) PR #6776
New Features
Bugfixes
Refactoring, Improvements, and Tooling
- notes for 1.11.0rc2 (#6777) PR #6777
- Skip another flaky test. (#6781) PR #6781
- Make cargo as relative symlink not absolute (#6780) PR #6780
- Skip broken test_pantsd_parent_runner_killed (#6779) Issue #6778 PR #6779
- Skip a flaky test. (#6775) PR #6775
- Set TERM=dumb in tests/python/pants_test/rules:test_integration (#6774) PR #6774
- [zinc compile] Use default for rebase-map in zinc wrapper: part 2 (#6569) PR #6569
- Add OSX 10.12 and 10.13 (#6760) PR #6760
- Log digests, not fingerprints, when uploads fail (#6769) PR #6769
- Force consistent stty size on travis (#6768) PR #6768
- Python test runner uses pytest (#6661) PR #6661
- Unblacklist some others which are flakily failing in both 2 and 3 (#6763) PR #6763
- Fix bad usage of future.moves.collections (#6747) PR #6747
- Update rust deps (#6759) PR #6759
- Switch from enum_primitive to num_enum (#6756) PR #6756
- Buffer downloads in memory not on disk (#6746) PR #6746
- [rsc-compile] use already captured target sources snapshot instead of re-capturing (#6700) PR #6700
- DownloadFile: Async and share an http Client (#6751) PR #6751
- Fix Python 3 option integration test issue with unicode (#6755) PR #6755
- Ignore paths more deeply to avoid graph impact when ignored files are added/removed (#6752) PR #6752
- Run integration test against Python 3 (#6732) PR #6732
- Cache file downloads in the Store (#6749) PR #6749
- Allow tests to run with isolated stores (#6743) PR #6743
- Update to rust 1.30 (#6741) PR #6741
- Fix unit test http server threading (#6744) PR #6744
- Add intrinsic to download a file (#6660) PR #6660
- Rename DirectoryDigest to Digest (#6740) PR #6740
- Allow multiple intrinsics to supply the same product type (#6739) PR #6739
- WriterHasher returns a Digest not a Fingerprint (#6738) PR #6738
- Minor cleanups to integration tests (#6734) PR #6734
1.12.0.dev0 (11/06/2018)
New Features
- Compiler option sets for Native targets (#6665) PR #6665
- Add UI to engine execution (#6647) PR #6647
- Add support for un-cacheable rules, and stop caching console_rules (#6516) PR #6516
- test console_task which aggregates test results (#6646) PR #6646
- console_rules can exit with exit codes (#6654) PR #6654
- Allow v2-only goals to be implicitly registered (#6653) PR #6653
- Collection is iterable (#6649) PR #6649
- fall back to most recent known osx version for bootstrap binaries (#6681) PR #6681
Bugfixes
- Fail build when setup-py run failed (#6693) PR #6693
- Move ivy/coursier link farms under versioned task directories (#6686) PR #6686
- Fix bugs in the parent/child relationship in ProcessManager (#6670) PR #6670
- Ensure that changing platforms invalidates pex binary creation (#6202) PR #6202
- Fix python lint dependency on pyprep goal (#6606) Issue #5764 PR #6606
Refactoring, Improvements, and Tooling
- Upgrade to pex 1.5.2. (#6725) PR #6725
- Bump to jarjar 1.7.2 to pull in several fixes. (#6695) PR #6695
- Add test to assert that type validation works for Get (#6731) PR #6731
- Add a better error message for missing RootRules (#6712) PR #6712
- Fix Python 3 renaming assertRegexpMatches to assertRegex (#6723) PR #6723
- De-flake JarPublishTest. (#6726) PR #6726
- Fix Python 3 binary vs unicode integration test issues (#6724) PR #6724
- Remove unneeded allow(dead_code) (#6717) PR #6717
- Fix test get subprocess output interleaved py3k (#6713) PR #6713
- Disable deploy shard for PR (#6709) PR #6709
- Fixup Checkstyle local resolves. (#6707) PR #6707
- Update Node.js README file (#6664) PR #6664
- Match stage for Deploy Pants Pex Unstable (#6704) PR #6704
- [rsc-compile] Bump rsc and scala meta versions in rsc compile (#6683) PR #6683
- Revert "Convert release.sh from bash to python [part 1] (#6674)" (#6699) PR #6674
- Pause all PantsService threads before forking a pantsd-runner (#6671) PR #6671
- Python3 unit test fixes pt1 (#6698) PR #6698
- Deploy pex every commit on master and branch (#6694) PR #6694
- Fix flaky list comparison test (#6688) PR #6688
- Do not compile native targets if they contain just header files (#6692) PR #6692
- Update PyPI default URL to pypi.org (#6691) PR #6691
- Re-add used-but-removed futures dep, which (due to a PR race) had a new usage added in 01c807ef, but its declaration removed in faeaf078. (#6680) PR #6680
- Remove the FSEventService pool in favor of execution on the dedicated service thread. (#6667) PR #6667
- Convert release.sh from bash to python [part 1] (#6674) PR #6674
- Make PailgunServer multithreaded in order to avoid blocking the PailgunService thread. (#6669) PR #6669
- add some more context to errors locating the native engine binary (#6575) PR #6575
- Remove broken pants_dev broken image (#6655) PR #6655
1.11.0rc0 (10/16/2018)
New features
- Add a node_scope option to node_module targets to support package-scopes (#6616) PR #6616
- Split conan resolve by native_external_library targets (takeover). (#6630) PR #6630
- Add intrinsic task to merge DirectoryDigests (#6635) Issue #5502 PR #6635
Bugfixes
- Tighten up checkstyle plugin subsystem option passing. (#6648) PR #6648
- [dep-usage] when no summary, ensure json output is unicode (#6641) PR #6641
- Fix console_rule generators, and add a test to coverage running them under run_rule. (#6644) PR #6644
- Add bounds checking to Entry::current_running_duration (#6643) PR #6643
1.11.0.dev3 (10/13/2018)
API Changes
New features
Bugfixes
Refactoring, Improvements, and Tooling
- Leverage factory_dict. (#6623) PR #6623
- [rsc-compile] only metacp the jdk/scala synthetics one time per run (#6614) PR #6614
- Clarify factory method terminal constructor calls. (#6625) PR #6625
- Simplify pants.pex creation, leverage -c. (#6620) PR #6620
- Add fs_util gc (#6612) PR #6612
- add release notes for 1.10.0rc2 (#6615) PR #6615
- Fatal error logging followup fixes (#6610) PR #6610
- Fix typo (#6611) PR #6611
- Consolidate Resettable instances (#6604) PR #6604
- Update lmdb to 0.8 (#6607) PR #6607
- first attempt at centralizing more global error logging state in ExceptionSink (#6552) PR #6552
- [rsc-compile] update jdk dist lookup and usage to work remotely (#6593) PR #6593
1.11.0.dev2 (10/05/2018)
API Changes
New features
Bugfixes
Refactoring, Improvements, and Tooling
- Update the "hello world" plugin doc. (#6601) PR #6601
- More pinning to fix jupyter floats. (#6600) PR #6600
- Handle RPC errors as well as message-inline errors (#6589) PR #6589
- Add hello world plugin to documentation (#6587) PR #6587
- Don't immediately fail after a MacOS upgrade. (#6591) PR #6591
- Enhance the login task. (#6586) PR #6586
- StubCAS is built with a builder (#6582) PR #6582
- Use uuid v4 in field which is specified to be a uuid v4 (#6576) PR #6576
1.11.0.dev1 (09/28/2018)
API Changes
- Store and populate DirectoryDigests for cached targets (#6504) PR #6504
New features
Bugfixes
- refactor encoding for multiple nailgun messages, refactor logging on exit (#6388) PR #6388
- [zinc-compile][hermetic] raise failure on compile failures (#6563) PR #6563
- ExecuteProcessRequest works with overlapping output files and dirs (#6559) Issue #6558 PR #6559
Refactoring, Improvements, and Tooling
- Add forbidden imports check to ban std::sync primitives. (#6566) PR #6566
- Pin jupyter transitive deps in integration tests (#6568) PR #6568 Pex Issue #561 Pex PR #562
- Switch synchronization primitive usage to parking_lot (#6564) PR #6564
- [rules-graph] ensure params in messages are sorted alphabetically (#6562) PR #6562
- [rsc] break out metacp-ing jars into a separate job in RscCompile (#6538) PR #6538
- Relativise paths (#6553) PR #6558 PR #6553
- Ensure consistent performance for instance memos. (#6554) PR #6554
- Refactor pantsd integration test framework (#6508) PR #6508
- Ensure JarLibrary classpath entries have directory digests (#6544) PR #6544
- Remove usage of @memoized_property on MappedSpecs. (#6551) PR #6551
- Update rust to 1.29 (#6527) PR #6527
- Use .jdk dir for hermetic execution (#6502) PR #6502
- Relativise path to compiler bridge (#6546) PR #6546
- Make the sizes of the members of enum Node more uniform (#6545) PR #6545
- Explicitly use backports.configparser (#6542) PR #6542
- Merge subjects and variants into Params, and remove Noop (#6170) PR #6170
- custom scalac version test - bump fixture to 2.12.4 (#6532) PR #6532
1.11.0.dev0 (09/14/2018)
API Changes
- Upgrade Node.js to 8.11.3 and Yarn to 1.6.0 (#6512) PR #6512
New features
Bugfixes
- make fatal_warnings_enabled_args a tuple instead of just parens (#6497) PR #6497
- pass through compatibility to synthetic python thrift targets (#6499) PR #6499
- Apply workaround similer to #6409 to bootstrapper (#6498) PR #6498
- Fix encoding of workunits under pantsd (#6505) PR #6505
- refactor command line target spec resolution and check that all target roots exist (#6480) PR #6480
Refactoring, Improvements, and Tooling
- delete unnecessary testproject and broken test (#6494) PR #6494
- skip integration test with pants_requirement() (#6493) PR #6493
- Add bootstrapper jar to compile the compile-bridge. (#6462) PR #6462
- [Hermetic zinc compile] Memoize scalac classpath snapshots (#6491) PR #6491
- remove FIXME and (cosmicexplorer) comments (#6479) PR #6479
- Consume the bootstrapper and modify zinc to allow remote exec (#6463) PR #6463
1.10.0rc0 (09/10/2018)
New features
Bugfixes
- Fixup JsonEncoderTest encoding tests. (#6457) PR #6457
- Switch back to forked grpc-rs (#6418) PR #6418
- Fix pants_requirement environment markers. (#6451) PR #6451
- Fix CI failures introduced by #6275 (#6454) PR #6454
- Make sure directory digest is defined for cache hits (#6442) PR #6442
- Cancel running work when entering the fork context (#6464) PR #6464
- Fix setup.py rendering. (#6439) PR #6439
- Detect ns packages using correct interpreter. (#6428) PR #6428
- Fixup tests involving pexrc. (#6446) PR #6446
- [fix] Pass full path to isdir rather than just basename. (#6453) PR #6453
- Add missing call to super. (#6477) PR #6477
- Remove broken pyenv shims from the PATH. (#6469) PR #6469
Refactoring, Improvements, and Tooling
- fs_util and process_executor: Use default --local-store-path (#6444) PR #6444
- satisfy python_dist setup_requires with a pex to resolve transitive deps, and some other unrelated native toolchain changes (#6275) PR #6275
- Work around production coverage float. (#6452) PR #6452
- Get clippy from the beta channel. (#6441) PR #6441
- Tighten travis matrix and python activation. (#6440) Issue #8315 PR #6440
- Ensure unstable pants dists can never conflict. (#6460) PR #6460
- Extend fs_util deadline to 30 minutes (#6471) PR #6471 PR #6433
- remove clean-all from pants invocations in python_dist() integration testing + some other refactoring (#6474) PR #6474
- Re-enable pants_setup_requires:bin IT. (#6466) PR #6466
Documentation
- Minor tweak on blogpost (#6438) PR #6438
1.10.0.dev5 (08/31/2018)
New features
Bugfixes
- Fix --binaries-path-by-id fingerprinting error (#6413) PR #6413
- Remove false positive glob expansion failure warnings (#6278) PR #6278
- Change zinc logging so it doesn't error out (#6409) PR #6409
- Move fork context management to rust (#5521) PR #5521
- Link requirements targets to their source. (#6405) PR #6405
- Fix pants_requirement by allowing Python 3 (#6391) PR #6391
Refactoring, Improvements, and Tooling
Migration to Python3 compatibility
- Python 3 - fixes to get most of src unit tests green (#6372) PR #6372
1.10.0.dev4 (08/24/2018)
Refactoring, Improvements, and Tooling
- Fix CI (#6402) PR #6402
- Requirements on language-specific sources should be optional. (#6375) PR #6375
- Deprecate --quiet recursive option (#6156) PR #6156
- Decode python_eval template resource as utf-8. (#6379) PR #6379
- Use set literals & set comprehensions where possible (#6376) PR #6376
- Stabilize test case sorting in suites. (#6371) PR #6371
Migration to Python3 compatibility
Documentation
- [engine] Add note to readme about fs_util (#6377) PR #6377
1.10.0.dev3 (08/20/2018)
New features
Bugfixes
- Fix Single Address Exclude (#6366) PR #6366
- Add an environment marker to pants_requirement. (#6361) PR #6361
- Make requirements on codegen products optional. (#6357) PR #6357
- Use --entry-point not -c when building pex (#6349) PR #6349 PR #6267
- Recover from cancelled remote execution RPCs (#6188) PR #6188
- Use forked version of grpcio (#6344) PR #6344 PR #211
- added fullpath to fix path concat issue with files when not in git root (#6331) PR #6331
- Log test targets that failed to run. (#6335) PR #6335
Refactoring, Improvements, and Tooling
- Run clippy with nightly rust on CI (#6347) PR #6347
- Fix formatting of store.rs (#6350) PR #6350 PR #6336
- Download Directory recursively from remote CAS (#6336) PR #6336
- Process execution: Create symlink to JDK on demand (#6346) PR #6346
- Simplify ExecuteProcessRequest construction (#6345) PR #6345
- ci.sh uses positive rather than negative flags (#6342) PR #6342
- Merge directories with identical files (#6343) PR #6343
- Set chunk size in process_executor (#6337) PR #6337
1.10.0.dev2 (08/10/2018)
New features
- Add a --loop flag, to allow for running continuously (#6270) PR #6270
Bugfixes
- pantsrc file paths are always unicode (#6316) PR #6316
Refactoring, Improvements, and Tooling
- Relativize most paths in the zinc compile command line (#6322) PR #6322
- A few misc cleanups (#6324) PR #6324
- Use dependency ClasspathEntries, not merged strings (#6317) PR #6317
- Register products when compilation finishes (#6315) PR #6315
- ClasspathEntry optionally takes a DirectoryDigest (#6297) PR #6297
- Cache more of rust. (#6309) PR #6309
- Tighten up local process streaming. (#6307) PR #6307
- Bump rust to 1.28 (#6306) PR #6306
- Remove unused Task._build_invalidator root param. (#6308) PR #6308
- Reinstate possibility of local process streaming. (#6300) PR #6300
Documentation Updates
Migration to Python3 compatibility
- Skip known to fail tests in py3 (#6323) PR #6323
- Strings are correctly returned from rust code (#6325) PR #6325
- Switch to Py2 and Py3 shards. (#6289) PR #6289
- Python 3 fixes - various bytes vs unicode issues (#6311) PR #6311
- Always return unicode with hexdigest() (#6313) PR #6313
- Specify unicode vs bytes for Path and FileContent types (#6303) PR #6303
- Python 3 fixes - add open backport to contrib (#6295) PR #6295
- Python 3 fixes - add open() backport to safe_open() (#6304) PR #6304 PR #6290
- Require the system encoding to be UTF-8 (#6305) PR #6305
- Python 3 fixes - add open() backport stage 2 (#6291) PR #6291 PR #6290
- drop self from __init__ and __new__ (#6299) PR #6299
1.10.0.dev1 (08/03/2018)
New features
- Add --output-dir flag to ScalaFmt task (#6134) PR #6134
Bugfixes
Refactoring, Improvements, and Tooling
Documentation Updates
- Modify the alias page to actually reference the alias target (#6277) PR #6277
Migration to Python3 compatibility
- Python 3 fixes - add open() backport stage 1 (#6290) PR #6290
- Python 3 fixes - fix issues with binaries, option, pantsd, java, and build graph (#6287) PR #6287
- Python 3 fixes - fix issues with engine (#6279) PR #6279
- Rename deprecated assertions (#6286) PR #6286
- Python 3 fixes - fix contrib folders problems (#6272) PR #6272
- Python 3 fixes - fix contrib/python checkstyle (#6274) PR #6274
1.10.0.dev0 (07/27/2018)
- Remove 1.10.x deprecations (#6268) PR #6268
New Features
Bugfixes
Refactoring, Improvements, and Tooling
- Convert fmt.isort to bootstrapping isort. (#6182) PR #6182
- Fix env construction on ExecuteProcessRequest (#6220) PR #6220
- Ci deduplication (#6186) PR #6186
- [missing-deps-suggest] move buildozer cli to a new line (#6190) PR #6190
- Print stack trace on ExecutionGraph task failures (#6177) PR #6177
- Add basic native task unit tests. (#6179) PR #6179
- Start migrating away from SchedulerTestBase (#5929) PR #5929
- Only clone taken Strings, not all Strings (#6240) PR #6240
- Remove unused custom working_set parameters. (#6221) PR #6221
- Update protobuf and grpcio deps (#6248) PR #6248
Migration to Python3 compatibility
- Python 3 fixes - fix backend/docgen test issues with bytes vs unicode (#6265) PR #6265
- Python 3 fixes - fix scm bytes vs unicode issues (#6257) PR #6257
- Python 3 fixes - fix net/http issues with bytes vs unicode (#6258) PR #6258
- Python 3 fixes - fix test_base.create_files() unicode issue (#6266) PR #6266
- Fix invalidation unicode vs bytes issues (#6262) PR #6262
- Fix fake options unicode vs bytes issues (#6263) PR #6263
- Python 3 fixes - fix ivy issues with unicode vs bytes (#6264) PR #6264
- Bump beautifulsoup4 to 4.6 to fix Python 3 issue. (#6260) PR #6260
- Python 3 fixes - fix unicode and __hash__ issues with release folder (#6261) PR #6261
- Python 3 fixes - fix syntax issue in reporting test (#6259) PR #6259
- Python 3 fixes - fix process test byte issue (#6256) PR #6256
- Split file set by line instead of spaces to resolve errors (#6247) PR #6247
- Python 3 fixes - test root unicode vs bytes (#6253) PR #6253
- Port test/tasks to Python 3 (#6255) PR #6255
- Python 3 fixes - fix base folder (#6252) PR #6252
- Python 3 fixes - fix invalid ABCMeta comparison (#6251) PR #6251
- Fix syntax issue with raising error (#6245) PR #6245
- Exclude faulthandler and futures if Python 3 (#6244) PR #6244
- Python 3 fixes - fix tarutil and contextutil_test (#6243) PR #6243
- Python 3 fixes - use unicode with temporary_directory() file path (#6233) PR #6233
- Python 3 fixes - fix netrc.py, retry.py, and test_objects.py (#6235) PR #6235
- Python 3 fixes - fix dirutil, fileutil, and xml_parser tests (#6229) PR #6229 PR #6228
- Fix issue of os.environ expecting bytes vs unicode in Py2 vs Py3 (#6222) PR #6222
- Python 3 fixes - specify binary vs unicode behavior of temporary_file() (#6226) PR #6226
- Python 3 fixes - fix process_handler timing out (#6232) PR #6232
- Port bin to Python 3 (#6126) PR #6126
- Python 3 fixes - fix various TestBase issues (#6228) PR #6228
- An initial engine terminal UI and demo. (#6223) PR #6223
- Python 3 - fix cffi resolver issues (#6225) PR #6225
- Exclude subprocess32 if Python 3 (#6212) PR #6212
- Fix imports of future.utils (#6213) PR #6213
- Port test's root folder (#6207) PR #6207
- Port task (#6200) PR #6200
- Port backend/jvm (#6092) PR #6092
- Port net (#6162) PR #6162
- Port pantsd/ to python3 (#6136) PR #6136
- futurize confluence (#6115) PR #6115
- Port testutils to Python 3 (#6211) PR #6211
- Port examples to Python 3 (#6210) PR #6210
- Port pants-plugins to Python 3 (#6209) PR #6209
- Port cache to Python 3 (#6129) PR #6129
- Port stats to Python 3 (#6198) PR #6198
- Port subsystem to Python 3 (#6199) PR #6199
- Port source to Python 3 (#6197) PR #6197
- Port scm to Python 3 (#6196) PR #6196
- Port releases to Python 3 (#6194) PR #6194
- Port process package to Python 3 (#6193) PR #6193
- Prepare a noop release for 1.9.0rc1. (#6204) PR #6204
- Port reporting to Python 3 (#6195) PR #6195
- Port build graph to Python 3 (#6128) PR #6128
- Port contrib/node to py3 (#6158) PR #6158
- update contrib/python with py3 compat (#6184) PR #6184
1.9.0rc0 (07/19/2018)
New features
Bugfixes
- Fix incorrect use of bytes() when invoking the daemon in a tty (#6181) PR #6181
- rustfmt check more reliably works (#6172) PR #6172
- Fix isort issues (#6174) PR #6174
- add the target fingerprint to the version of each local dist so that we don't use the first cached one (#6022) PR #6022
- Eliminate obsolete PANTS_ARGS from ci. (#6141) PR #6141
- Preserve output directories if process execution failed (#6152) PR #6152
Refactoring, Improvements, and Tooling
Documentation Updates
- Impose a consistent sort on CONTRIBUTORS.md. (#6125) PR #6125
Python 3 porting (#6062)
- Port engine to Python 3 (#6133) PR #6133
- Port go to py3 (#6139) PR #6139
- Port init package to Python 3 (#6145) PR #6145
- Port help package to Python 3 (#6144) PR #6144
- Port invalidation to Python 3 (#6147) PR #6147
- port cpp to py3 (#6116) PR #6116
- Port ivy to Python 3 (#6154) PR #6154
- Port java to Python 3 (#6159) PR #6159
- Port contrib/scalajs to py3 (#6164) PR #6164
- port scrooge to py3 (#6165) PR #6165
- Add missing future dependency to BUILD (#6135) PR #6135
- Port binaries package to Python 3 (#6127) PR #6127
- Port option package to python3 (#6117) PR #6117
- Port to mypy to py3 (#6140) PR #6140
- Port goal package to Python 3 (#6138) Issue #6062 PR #6138
- Port findbugs to py3 (#6137) PR #6137
- Port backend project info to Python 3 (#6132) PR #6132
- Port backend graph info to Python 3 (#6131) PR #6131
- Port core tasks to Python 3 (#6130) PR #6130
1.9.0.dev1 (07/14/2018)
New features
- Add support for reusing Graph node values if their inputs haven't changed (#6059) PR #6059
- Compile a VERY simple java source remotely (no dependencies or inner classes) (#5999) PR #5999
- Expose materialize_directory as an intrinsic function on the scheduler (#6028) PR #6028
- Targets always have a Snapshot (#5994) PR #5994
- Add an execution strategy flag (#5981) PR #5981
- Enable passing option sets to the compiler and deprecate fatal_warnings (#6065) PR #6065
API Changes
Bugfixes
- Fix local execution of hermetic integration tests (#6101) PR #6101
- Use PrimitivesSetField in ScalaJs target and minor help text fixup (#6113) PR #6113
- Fix 'current' platform handling. (#6104) PR #6104
- Make RUST_BACKTRACE sniffing less specific (#6107) PR #6107
- Improve source field deprecations (#6097) PR #6097
- Remove and prevent inaccurate __eq__ implementations on datatype (#6061) PR #6061
- Ensure correct toolchain per clone. (#6054) PR #6054
- Have pantsbuild-ci-bot do deploys. (#6053) PR #6053
- Fix go-import meta tag ends with /> #6036 (#6037) PR #6037
- Fix bad exclusion introduced during rushed change. (#6034) PR #6034
- Fix unicode handling in Exiters (#6032) PR #6032
- [pantsd] Improve environment unicode handling. (#6031) PR #6031
- Actually return execution options (#6019) PR #6019
- Ignore the logs/ dir. (#6021) PR #6021
- Fix edge removal in Graph that could make invalidation inaccurate (#6123) PR #6123
Refactoring, Improvements, and Tooling
- Port errorprone to py3 (#6118) PR #6118
- Port console to Python 3 (#6121) PR #6121
- Port buildgen to py3 (#6110) PR #6110
- Add release metadata to boxfuture (#6106) PR #6106
- Port engine/fs.py datatype() instances (#6103) PR #6103 PR #6098 PR #6092
- Port findbugs to py3. (#6120) PR #6120
- Port codeanalysis to py3. (#6111) PR #6111
- Port buildrefactor to py3. (#6109) PR #6109
- Switch from output_async to spawn_async, and buffer output. (#6105) PR #6105
- Allow Rust to store unicode as well as bytes (#6108) PR #6108 PR #6103
- Remove unnecessary __future__ imports (#6096) PR #6096
- Port fs to python 3 compatibility (#6091) PR #6091
- Nodes output cheaply-cloneable values (#6078) PR #6078
- execution_strategy is a memoized_property (#6052) PR #6052
- Port backend/python to Python 3 (#6086) Issue #6062 PR #6086
- Port backend/native to Python 3 (#6084) Issue #6062 PR #6084
- Port majority of pants/util to Python 3 (#6073) Issue #6062 PR #6073
- Port backend/codegen and backend/docgen to Python 3 (#6083) PR #6083
- Port util/process_handler.py and util/tarutil.py to Python 3 (#6082) PR #6082 PR #6073
- Add -ltrace and requests debug logging. (#6070) PR #6070
- Port util metaprogramming files to Python3 (#6072) Issue #6062 PR #6072
- Add future lib and port src/base to Python3 (#6067) Issue #6062), PR #6067
- Run futurize --stage1 to make safe changes for python 3 compatibility. (#6063) PR #6063 Issue #6062
- Switch to a per-entry state machine in Graph (#6013) PR #6013
- Log more in rust tests (#6060) PR #6060
- Introduce libc subsystem to find crti.o on linux hosts and unskip the native backend subsystem tests (#5943) PR #5943
- Clean up process execution python API (#6051) PR #6051
- Skip pyprep and pytest-prep if there are no python targest (#6039) PR #6039
- Simplify rust code (#6043) PR #6043
- [remoting] Move local process execution tempdirs into the workdir, add option to not delete them (#6023) PR #6023
- Many rust lints (#5982) PR #5982
- Include type name in TypedDataType construction errors (#6015) PR #6015
- Consolidate src/python/pants/python -> src/python/pants/backend/python (#6025) PR #6025
- Extract and genericize Graph for easier testing (#6010) PR #6010
- Add libc search noop option (#6122) PR #6122
- Fix test_objects handling of dataclass() py2-py3 compatibility (#6098) PR #6098 Issue #6062
1.9.0.dev0 (06/25/2018)
New features
API Changes
Bugfixes
- Run scalafix before scalafmt (#6011) PR #6011
Refactoring, Improvements, and Tooling
- Add .vscode/ folder to .gitignore (#6020) PR #6020
- [engine] Selecting for ExecuteProcessResult will Throw on non-zero exit (#6000) PR #6000
- Context always has a scheduler in tests (#5997) PR #5997
- Engine looks up default sources when parsing (#5989) PR #5989
- Fix TestSetupPyInterpreter.test_setuptools_version (#5988) PR #5988
- Caching tests are parsed through the engine (#5985) PR #5985
- Override get_sources for pants plugins (#5984) PR #5984
- make_target upgrades sources to EagerFilesetWithSpec (#5974) PR #5974
- Robustify test_namespace_effective PYTHONPATH. (#5976) PR #5976
Documentation Updates
- 1.7.0 release notes (#5983) PR #5983
1.8.0rc0 (06/18/2018)
Bugfixes
Refactoring, Improvements, and Tooling
- Remove DeprecatedPythonTaskTestBase (#5973) Issue #5870 PR #5973
- Mark a few options that should not show up in ./pants help. (#5968) PR #5968
Documentation Updates
- adding more documentation for python_app (#5965) PR #5965
1.8.0.dev4 (06/15/2018)
New features
Bugfixes
Refactoring, Improvements, and Tooling
- Record start times per graph node and expose a method to summarize them. (#5964) PR #5964
- Remove value wrapper on the python side of ffi. (#5961) PR #5961
- Construct rule_graph recursively (#5955) PR #5955
- Support output directory saving for local process execution. (#5944) PR #5944
- use liblzma.dylib for xz on osx and add platform-specific testing to the rust osx shard (#5936) PR #5936
- Improve PythonInterpreterCache logging (#5954) PR #5954
- Re-shade zinc to avoid classpath collisions with annotation processors. (#5953) PR #5953
- [pantsd] Robustify client connection logic. (#5952) PR #5952
- Enable fromfile support for --owner-of and increase test coverage (#5948) PR #5948
- move glob matching into its own file (#5945) PR #5945
- Add new remote execution options (#5932) PR #5932
- Use target not make_target in some tests (#5939) PR #5939
- [jvm-compile] template-methodify JvmCompile further; add compiler choices (#5923) PR #5923
- Add script to get a list of failing pants from travis (#5946) PR #5946
- Integration test for daemon environment scrubbing (#5893) PR #5893
1.8.0.dev3 (06/08/2018)
New features
Bugfixes
Refactoring, Improvements, and Tooling
- Put the ChangeCalculator implementation next to TargetRootsCalculator (#5917) PR #5917
- Remove sdist publishing hack. (#5926) PR #5926
- Upgrade to pex 1.4.3. (#5910) PR #5910
- Kill unused legacy code. (#5921) PR #5921
- Add @classproperty (#5901) PR #5901
- Simplify PathGlobs python datatype (#5915) PR #5915
- Split short-form from long-form of setup_legacy_graph (#5911) PR #5911
- Add Daniel McClanahan & Dorothy Ordogh to committers (#5909) PR #5909
- Merge Root/Inner Entry cases into an EntryWithDeps case. (#5914) PR #5914
- Make mock test server emit timing data (#5891) PR #5891
- Update release jvm docs to have notes about gpg 2.1 (#5907) PR #5907
- Set output_files field on remote Action (#5902) PR #5902
- From<Digest> no longer panics (#5832) PR #5832
- Use tempfile crate not tempdir crate (#5900) PR #5900
1.8.0.dev2 (06/02/2018)
Bugfixes
Refactoring, Improvements, and Tooling
- Add deprecation warning for pep8 'plugin' in pythonstyle suppress file (#5888) PR #5888
- warn or error on matching source globs (#5769) PR #5769
- Mark things which generate cffi for change detection (#5883) PR #5883
- Sort list goal output (#5872) PR #5872
- Output stdout and stderr when nailgun fails to connect (#5892) PR #5892
New features
- Remote execution can be enabled by flags (#5881) PR #5881
1.8.0.dev1 (05/25/2018)
Bugfixes
New features
API Changes
Refactoring, Improvements, and Tooling
- [remoting] Store raw bytes for stdout and stderr if received inline. (#5855) PR #5855
- [rust/engine] add timeout description for grpc process requests (#5632) PR #5632
- Use tokio for scheduler requests and local process execution (#5846) PR #5846
- Rust compilation is more robust and fast (#5857) PR #5857
- Core has a CommandRunner (#5850) PR #5850
- Only depend on subprocess32 in python2. (#5847) PR #5847
- Hermeticize cargo build. (#5742) PR #5742
- A utility to aggregate s3 access logs. (#5777) PR #5777
- Update all rust dependencies (ie, ran cargo update). (#5845) PR #5845
Documentation Updates
- Document how to select a Python interpreter (#5843) PR #5843
1.8.0.dev0 (05/18/2018)
Bugfixes
- Invalidate all tasks on source root changes. (#5821) PR #5821
New features
- Allow alternate binaries download urls generation and convert GoDistribution and LLVM subsystems to use it (#5780) PR #5780
API Changes
Refactoring, Improvements, and Tooling
- Revert to non-forked grpcio-compiler (#5842) PR #5842
- cloc uses v2 process execution (#5840) PR #5840
- Remove extra workunit from coursier resolve (#5837) PR #5837
- Remove stale comment (#5839) PR #5839
- Script BinaryUtils can be captured as snapshots (#5835) PR #5835
- CommandRunners implement a single trait (#5836) PR #5836
- Directories can be merged synchronously (#5834) PR #5834
- Allow arbitrary directories to be Snapshotted (#5801) PR #5801
- Regression test for #4596 (#4608) PR #4608
- Empty digest is always known (#5829) PR #5829
- Local process execution can fetch output files (#5784) PR #5784
- Fetch native stack traces if any cores were dumped (#5828) PR #5828
- FileContents is gotten from DirectoryDigest not Snapshot (#5820) PR #5820
- [release.sh] Use git configured gpg binary if one is set (#5826) PR #5826
- [release-doc] rm explicit owner list in favor of just using -o (#5823) PR #5823
- brfs: Sleep a bit after mounting the filesystem (#5819) PR #5819
- Snapshot contains a DirectoryDigest (#5811) PR #5811
- Add a facility for exposing metrics from the native engine (#5808) PR #5808
- Expand engine readme (#5759) PR #5759
- Document python_app target in Python readme. (#5816) PR #5816
- [release-docs] Update step 0, linkify links (#5806) PR #5806
1.7.0.rc0 (05/11/2018)
Bugfixes
- Fix a broken 3rdparty example. (#5797) PR #5797
- Adding compile scopes, because thats expected from doc gen (#5789) PR #5789
- Copy locally build .whl files to dist dir when 'binary' goal is invoked. (#5749) PR #5749
- [pytest runner] re-add --options flag as a shlexed list of strings (#5790) PR #5790 PR #)
New features
Refactoring, Improvements, and Tooling
- Bump to scala 2.11.12 by default. (#5804) PR #5804
- Review feedback from #5792. (#5796) PR #5796
- Skip commit hooks during publishing (#5795) PR #5795
- Improve support for intrinsic tasks (#5792) PR #5792
- Remote CommandRunner has reset_prefork method (#5791) PR #5791
- PosixFS can get PathStats for a set of PathBufs (#5783) PR #5783
- Bump to zinc 1.1.7 (#5794) PR #5794
- Add configurable timeouts for reading/writing to the cache. (#5793) PR #5793
- Improve clarity of the "why use pants" page (#5778) PR #5778
- Repair PyPI user checking in release scripts. (#5787) PR #5787
1.7.0.dev2 (05/04/2018)
New features
Refactoring, Improvements, and Tooling
- Extract OneOffStoreFileByDigest (#5782) PR #5782
- Introduce a backdoor around PYTHONPATH scrubbing in pytest runs. (#5767) PR #5767
- Address @jsirois final comments that were not addressed on PR #5765 (#5773) PR #5773
- Extract AppBase base class (#5772) PR #5772
- Bump ordermap to indexmap 1 (#5771) PR #5771
- Disable lint for Python 3 targets (#5765) PR #5765
- Nav menu change with drop-downs (#5750) PR #5750
- Expose rules from language backends with an application to python_dist() creation (#5747) PR #5747
- Move From impls from hashing to bazel_protos (#5706) PR #5706
- Reformat bazel_protos/build.rs (#5760) PR #5760
- Add test that pantsd can be used twice in parallel (#5757) PR #5757
- type-check specific datatype fields concisely and remove the class name argument (#5723) PR #5723
- expand doc publish script, use products for sitegen tasks, and clarify the publish site subdir option (#5702) PR #5702
- Prepare 1.6.0rc3 (#5756) PR #5756
- Save noop time on codegen (#5748) PR #5748
- Rename and simplify store_list. (#5751) PR #5751
- Boxable::to_boxed returns BoxFuture not Box<Self> (#5754) PR #5754
- Misc rust fixups (#5753) PR #5753
- eagerly fetch stderr in remote process execution (#5735) PR #5735
- Looping request with backoff period (#5714) PR #5714
- Fixup dev-dependencies in brfs. (#5745) PR #5745
- brfs: FUSE filesystem exposing the Store and remote CAS (#5705) PR #5705
- Update errorprone to 2.3.1 and findbugs to spotbugs 3.1.3 (#5725) PR #5725
- Dedupe parsed Gets (#5700) PR #5700
- Update my name to the right one (#5741) PR #5741
- Stop using tools.jar for JAXB xjc tool since tools.jar has been removed from Java 9+ (#5740) PR #5740
- Update running from sources docs (#5731) PR #5731
- Use Scala 2.12.4 for --scala-platform-version=2.12 (#5738) PR #5738
- Extract reusable test data (#5737) PR #5737
- Only upload digests missing from CAS (#5713) PR #5713
- Prepare 1.5.1rc2 (#5734) PR #5734
- Break a Core / Node cycle (#5733) PR #5733
- [rm-deprecation] remove leveled_predicate kwarg from buildgraph walk fns (#5730) PR #5730
- Bump max local store size (#5728) PR #5728
1.7.0.dev1 (04/20/2018)
New features
Bugfixes
Refactoring, Improvements, and Tooling
- Update junit-runner to 1.0.24 and use junit-runner-annotations 0.0.21 in tests (#5721) PR #5721
- convert usages of the ExecuteProcess helper into simple @rules to simplify snapshot consumption for process execution (#5703) PR #5703
- Fix some errorprone warnings and remove duplicates from findbugs targets (#5711) PR #5711
1.7.0.dev0 (04/13/2018)
New Features
- @rules as coroutines (#5580) PR #5580
API Changes
Bugfixes
Refactoring, Improvements, and Tooling
- Use absolute path to check_rust_formatting (#5694) PR #5694
- Remove unnecessary parens (#5693) PR #5693
- Don't rename process_execution to process_executor (#5692) PR #5692
- Run process execution Nodes on a CpuPool (#5691) PR #5691
- add docs about how to run rust in IntelliJ (#5688) PR #5688
- Prepare 1.6.0rc2 (#5690) PR #5690
- Reset LMDB Environments when forking (#5689) PR #5689
- Part 1: Add ability to check what CAS blobs are missing (#5686) PR #5686
- Improve pypi package expected releasers pre-check. (#5669) PR #5669
- Prepare 1.6.0rc1 (#5685) PR #5685
- Make coursier resolve more friendly (#5675) PR #5675
- Upgrade virtualenv. (#5679) PR #5679
- Cleanup unused_parens warning for cast. (#5677) PR #5677
- Add build_flags per go_binary (#5658) PR #5658
- Bump to rust 1.25 (#5670) PR #5670
- Add explicit JAXB dependencies in the junit-runner so it works in Java 9+ without --add-modules=java.xml.bind (#5667) PR #5667
- [junit-runner] cache localhost lookups to ease OSX/JDK DNS issues (#5660) PR #5660
- Narrow down BuildLocalPythonDistributions target type (#5659) PR #5659
- Run lint in commit hooks. (#5666) PR #5666
- Ban testprojects/pants-plugins from TestProjectsIntegrationTest. (#5665) PR #5665
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