A scalable build tool for large, complex, heterogeneous repos.
Project description
Pants is an Apache2 licensed build tool written in Python.
The latest documentation can be found at pantsbuild.
2.0.x Stable Releases
This document describes releases leading up to the 2.0.x stable series.
See https://www.pantsbuild.org/v2.0/docs/release-notes-2-0 for an overview of the changes in this release, and https://www.pantsbuild.org/docs/plugin-upgrade-guide for a plugin upgrade guide.
2.0.1 (12/18/2020)
The second stable release in the 2.0.x series, with no changes since rc4.
Thank you for everyone’s feedback!
2.0.1rc4 (12/16/2020)
Bugfixes
Fix filtering of log messages generated in native code. (cherrypick of #11313) (#11318) PR #11318
Upgrade to Pex 2.1.24 to fix macOS Big Sur. (cherrypick of #11312) (#11314) PR #11314
Clean the graph speculatively, and cancel nodes when interest is lost (cherrypick of #11308) (#11310) PR #11310
Implement native Process cache scoping to fix –test-force (cherrypick of #11291) (#11299) PR #11299
Revert “Move graph cycle detection to rust. (#11202)” (cherrypick of #11272) (#11277) PR #11202 PR #11277
Increase Pants’ python recursion limit by default, and allow it to be overridden. (cherrypick of #11271) (#11276) PR #11276
Internal
[tests] Use a bandit version that works with older python versions. (cherrypick of #11268) (#11279) PR #11279
2.0.1rc3 (11/24/2020)
Bugfixes
Fix off-by-one error for python_awslambda sources field validation (#11234) PR #11234
2.0.1rc2 (11/20/2020)
User API Changes
Revert premature deprecation of sources field for python_awslambda (#11216) PR #11216
Bugfixes
2.0.1rc1 (11/16/2020)
User API Changes
Deprecate the sources field for python_awslambda (Cherry-pick of #11176) (#11177) PR #11177
Bugfixes
Fix relative imports in dependency inference (Cherry-pick of #11181) (#11190) PR #11190
2.0.1rc0 (11/11/2020)
User API Changes
Add a specific error for target names containing slashes (cherrypick of #11115) (#11122) PR #11122
Bugfixes
Fix logs for test, lint, fmt, and typecheck to always print, even if cached (Cherry-pick of #11111) (#11116) PR #11116
Fix pytest.pex leaking into coverage data (Cherry-pick of #11110) (#11112) PR #11112
Fix Coverage not finding resource files when generating a report (Cherry-pick of #11129) #11139 PR #11139
Fix !! transitive excludes when used multiple times in a repo (Cherry-pick of #11103) (#11104) PR #11104
Fix setup_py().with_binaries() to properly inject dependencies (#11098) PR #11098
Upgrade to Pex 2.1.21 to fix interpreter selection and race condition (Cherry-pick of #11131) (#11133) PR #11133
Fix –pex-verbosity to work with the interpreter selection PEX (Cherry-pick of #11108) (#11120) PR #11120
2.0.0 (10/27/2020)
The first stable release in the 2.0.x series, with no changes since rc3.
Thank you for everyone’s feedback!
2.0.0rc3 (10/25/2020)
User API Changes
Bugfixes
Documentation
Improve several help messages (Cherry-pick of #11029) (#11035) PR #11035
2.0.0rc2 (10/22/2020)
User API Changes
Fold target help into the help system. (Cherry-pick of #11022) #11028 PR #11028
Rename pex-binary/python-distribution subsystems to avoid naming collisions. (Cherry-pick of #11007) (#11010) PR #11010
Increase default [python-setup].resolver_jobs to cpu_count / 2 (Cherry-pick of #11006) (#11011) PR #11011
Include <PYENV> in [python-setup].interpreter_search_paths default (Cherry-pick of #10998) (#11008) PR #11008
Upgrade Pex to 2.1.20 (Cherry-pick of #11014) (#11016) PR #11016
Plugin API Changes
Validate that option scopes and target aliases don’t collide. (Cherry-pick of #11004) #11015 PR #11015
New Features
Allow changing the versioning scheme for python_distribution first-party dependencies (Cherry-pick of #10977) (#10989) PR #10989
Add [python-setup].resolver_http_cache_ttl option (Cherry-pick of #10997) (#11002) PR #11002
Allow changing the URL to download tools like PEX and Protoc (Cherry-pick of #11013) (#11024) PR #11024
Bugfixes
Revert using libCST for dep inference due to performance (Cherry-pick of #11001) (#11005) PR #11005
Fix resource leak warning with stdio (Cherry-pick of #10995) (#10996) PR #10996
Fix ./pants repl to use global constrains when no targets specified (Cherry-pick of #10991) (#10992) PR #10992
Fix setup_py().with_binaries() to use the default entry point (Cherry-pick of #11021) #11026 PR #11026
Fix overly verbose FieldSet in stack traces (Cherry-pick of #10978) (#10990) PR #10990
Fix several bad usages of itertools.groupby() (Cherry-pick of #10976) (#10979) PR #10979
2.0.0rc1 (10/15/2020)
User API Changes
Restore several removed targets and fields to help with upgrading (#10970) PR #10970
New Features
Add ./pants target-types –all (Cherry-pick of #10957) (#10961) PR #10961
Bugfixes
Fix interpreter selection when building a PEX to use [python-setup].interpreter_search_paths (Cherry-pick of #10965) (#10967) PR #10967
Fix linter targets being skipped when repo has multiple interpreter constraints (Cherry-pick of #10974) #10975 PR #10975
Automatically set setuptools interpreter constraints if unspecified (Cherry-pick of #10951) (#10958) PR #10958
Fix config validation not erroring on global options in wrong scope (Cherry-pick of #10950) (#10956) PR #10956
Fix logging of lint result files (Cherry-pick of #10959) (#10968) PR #10968
2.0.0rc0 (10/11/2020)
User API Changes
Deprecate python_binary in favor of pex_binary (#10939) PR #10939
Deprecate [protoc].runtime_targets in favor of [python-protobuf].runtime_dependencies (#10926) PR #10926
Use the package goal to build setup-py dists. (#10919) PR #10919
Deprecate –print-exception-stacktrace to –print-stacktrace (#10912) PR #10912
Plugin API Changes
New Features
Bugfixes
Fix for log messages/dynamic UI teardown conflict (#10940) PR #10940
Fix some dependencies-like fields not showing up with project introspection (#10923) PR #10923
Send SIGTERM to child processes upon SIGINT (#10930) PR #10930
Fix Python 3.8 syntax not working with dependency inference (#10907) PR #10907
Plumb ca_certs_path to the plugin resolver. (#10910) PR #10910
Documentation
2.0.0b3 (10/3/2020)
API Changes
New Features
Bugfixes
Refactoring, Improvements, and Tooling
Log long running workunits when the dynamic UI is disabled (#10890) PR #10890
Add a 'coverage_' prefix to artifact key (#10891) PR #10891
Remove unused Nailgun code (#10883) PR #10883
Add several rule descriptions and debug hints (#10878) PR #10878
fs_util Directory subsetting ignores non-matches (#10854) PR #10854
Clean up trace logging (#10875) PR #10875
A new mechanism for showing “did you mean” help. (#10872) PR #10872
Check in the Pants logo. (#10871) PR #10871
Improved type annotations for OrderedSet and FrozenOrderedSet, removed code duplication (#10868) PR #10868
Documentation
Prepare 1.30.2rc1 (#10887) PR #10887
2.0.0b2 (9/25/2020)
API Changes
Remove .*/ from –build-ignore defaults (#10856) PR #10856
New Features
Partition MyPy based on interpreter constraints (#10817) PR #10817
Bugfixes
Fix dependency inference AST parsing to include file names (#10857) PR #10857
Validate the names of directory children, and normalize output directory/file names (#10850) PR #10850
Fix empty key for global options in run tracker (#10807) PR #10807
Locate bash before using it to locate BinaryPaths for other tools (#10858) PR #10858
Refactoring, Improvements, and Tooling
Move PantsEnvironment into SessionValues (#10862) PR #10862
Delete binaries/ and net/. (#10861) PR #10861
Add RuleRunner.set_options() (#10859) PR #10859
Improve support of MyPy requirements when Python 2 used (#10853) PR #10853
A script to download rust build helper binaries. (#10851) PR #10851
Hotfix merge conflict in MyPy tests. (#10867) PR #10867
2.0.0b1 (9/23/2020)
API Changes
Default to setting LC_ALL and LANG in subprocesses again (#10800) PR #10800
Default to [python-infer].inits = false (#10813) PR #10813
Deprecate –interpreter-constraints option where it no-ops (#10833) PR #10833
Upgrade setuptools from 49.6.0 to 50.3.0 and wheel from 0.31.1 to 0.35.1 (#10803) PR #10803
New Features
Restore support for third-party requirements with MyPy (#10811) PR #10811
Bugfixes
Plumb the custom certs file through to Pip (via Pex) (#10837) PR #10837
Fix MyPy with Python 2-only third-party requirements (#10820) PR #10820
Fix setup_py.with_binaries() to automatically inject dependencies (#10829) PR #10829
Fix run not working with foo:main entry point. (#10821) PR #10821
Fix internal_only PEXes runtime interpreter diverging from buildtime (#10818) PR #10818
Local process cache validates that digests exist locally before hitting (#10789) PR #10789
Better Ctrl-C handling in the test –debug case (#10835) PR #10835
Fix –pants-ignore-warnings behavior (#10845) PR #10845
Fix display of “Snapshotting” in dynamic UI (#10797) PR #10797
Refactoring, Improvements, and Tooling
Change Display impl of Key (#10848) PR #10848
OptionsBootstrapper is provided via a new SessionValues facility rather than a Param (#10827) PR #10827
Internally stop ignoring missing imports with MyPy (#10828) PR #10828
Make get_options_to_record a ‘public’ api. (#10808) PR #10808
Useful equality for relevant options types (#10815) PR #10815
Clean nodes with uncacheable dependencies once per session (#10814) PR #10814
Disable pantsd when piping output for internal script (#10810) PR #10810
Simplify logging initialization (#10812) PR #10812
Remove support for “weak” Gets (#10805) PR #10805
Un-revert Add cache_failures option to Process type (#10796) PR #10796
Remove reset_interactive_output_stream (#10791) PR #10791
Allow creating empty directories with the engine (#10760) PR #10760
Use “output” and “input” instead of “product” and “subject” (#10790) PR #10790
Add graph test for UncacheableDeps nodes only running once (#10795) PR #10795
Fix our release script to use the correct Python (#10841) PR #10841
Refactor core/util_rules/archive.py to use BinaryPaths (#10836) PR #10836
Work around trailing slash issue with protobuf codegen (#10849) PR #10849
Consolidate “runner” PEXes into “tool” PEXes (#10852) PR #10852
Testing
Re-export QueryRule from pants.testutil.rule_runner (#10806) PR #10806
Documentation
2.0.0b0 (9/15/2020)
API Changes
Bugfixes
@rules consume params to prevent some types of ambiguity (#10764) PR #10764
Fix xdg-open. (#10773) PR #10773
Hide BinaryPath test processes from TUI by default. (#10774) PR #10774
Signal handling fixes (#10758) PR #10758
Fix UUIDRequest scoping. (#10780) PR #10780
Fix DictStringToStringField not working with default values (#10776) PR #10776
Sandbox Pex temporary files. (#10772) PR #10772
Refactoring, Improvements, and Tooling
remoting: move target_platform property into environment variable (#10713) PR #10713
Add the ability to capture all known scope options in run tracker. (#10778) PR #10778
fs_util cat-proto has –child-dir arg (#10228) PR #10228
Simplify –print-exception-stacktrace logic (#10786) PR #10786
Various ExceptionSink improvements (#10781) PR #10781
Revert “Run internal only pexes via discovered python. (#10779)” (#10785) PR #10785
Support volatile processes. (#10768) PR #10768
Run internal only pexes via discovered python. (#10779) PR #10779
Fix a leaking pytest-cov abstraction. (#10775) PR #10775
Support tests for BinaryPaths. (#10770) PR #10770
Documentation
2.0.0a3 (9/11/2020)
API Changes
New Features
Add runtime_binary_dependencies field to python_tests target (#10756) PR #10756
Pass proxy-related env vars through to Pex calls. (#10762) PR #10762
Support custom CA bundles. (#10757) PR #10757
Add support to MyPy for first-party plugins (#10755) PR #10755
Filter log levels by target (#10729) PR #10729
Bugfixes
Refactoring, Improvements, and Tooling
Support binary dependencies in tests. (#10744) PR #10744
Add support to MyPy for third-party requirements and stubs (PEP 561) (#10753) PR #10753
Add new intrinsic Paths to avoid snapshotting (#10741) PR #10741
Remove unused FFI types and tar_api.rs (#10742) PR #10742
Remove daemonize method + tests (#10749) PR #10749
Some refactoring around pantsd and warning filtering (#10748) PR #10748
Refactor pytest_runner_integration_test.py (#10736) PR #10736
Switch the backend of AsyncSemaphore to tokio’s Semaphore. (#10738) PR #10738
Refactor find_valid_field_sets. (#10732) PR #10732
Upgrade to Rust v1.46.0 (#10694) PR #10694
Documentation
Fix ./pants help $goal showing the goal in “related subsystems” (#10754) PR #10754
2.0.0a2 (9/3/2020)
New Features
Bugfixes
Refactoring, Improvements, and Tooling
Improve Pylint to use –python-setup-resolve-all-constraints (#10726) PR #10726
Reorganize pants/backend/python (#10724) PR #10724
Improve RuleGraph convergence time slightly (#10700) PR #10700
Snapshots of single files store normalized paths. (#10707) PR #10707
Add product type to the Rule trait to simplify unit testing. (#10720) PR #10720
Testing
Documentation
Formalize support for VCS-style requirements via PEP 440 (#10728) PR #10728
2.0.0a1 (8/28/2020)
API Changes
Upgrade default Black version to 20.8b1 (#10696) PR #10696
Bugfixes
Refactoring, Improvements, and Tooling
Unify logging implementations and remove simplelog (#10686) PR #10686
Testing
Documentation
2.0.0a0 (8/24/2020)
API Changes
New Features
Bugfixes
Refactoring, Improvements, and Tooling
Revert “Fix run, repl, and test –debug to have hermetic environments (#10668)” (#10688) PR #10688
Implement RuleGraph construction using data flow analysis (#10645) PR #10645
Fix run, repl, and test –debug to have hermetic environments (#10668) PR #10668
Handle workunits corresponding to canceled Nodes. (#10659) PR #10659
Add support for JSON coverage reports (#10625) PR #10625
Add an FFI function for reading a FrozenDict (#10666) PR #10666
Stream output of typecheck, rather than dumping at the end (#10656) PR #10656
Allow binary to be implemented without implementing run (#10660) PR #10660
Reduce noisy log messages from @rule params (#10658) PR #10658
Add type hints to TestBase (#10647) PR #10647
Refactoring in graph (#10637) PR #10637
Stream output of test, rather than dumping at the end (#10634) PR #10634
Preserve Pytest’s exit code with ./pants test (#10632) PR #10632
Rename –per-target-caching to –per-file-caching for lint and fmt (#10630) PR #10630
Upgrade setuptools from 49.2.0 to 49.60 (#10626) PR #10626
Allow test –debug to run on multiple targets sequentially (#10629) PR #10629
Stream output of fmt, rather than dumping at the end (#10627) PR #10627
Stream output of lint, rather than dumping at the end (#10538) PR #10538
Add coverage reports as artifacts on the test goal workunit (#10623) PR #10623
Testing
Change TestBase.request_product() to take an iterable of subjects (#10682) PR #10682
Only use TestBase for tests that run rules (#10680) PR #10680
Change pants_integration_test.py to use Pytest-style functions (#10675) PR #10675
Consolidate GoalRuleTestBase into TestBase (#10679) PR #10679
Rename TestBase.request_single_product to TestBase.request_product (#10678) PR #10678
Reorganize testutil/ (#10674) PR #10674
Add PantsIntegrationTest.setup_tmpdir() (#10673) PR #10673
Change PantsIntegrationTest to be hermetic by default (#10672) PR #10672
Remove unused pytest-timeout plugin from default –pytest-plugins (#10631) PR #10631
Rename PantsRunIntegrationTest to PantsIntegrationTest (#10664) PR #10664
Add tests for HTML and XML coverage reports. (#10211) PR #10211
Documentation/Logging
2.0.0.dev9 (8/15/2020)
API Changes
Deprecate –option-name-check-distance (#10611) PR #10611
New Features
Allow restricting use of resolve_all_constraints. (#10614) PR #10614
Bugfixes
Refactoring, Improvements, and Tooling
2.0.0.dev8 (8/13/2020)
API Changes
New Features
Bugfixes
Refactoring, Improvements, and Tooling
Rename determine_source_files.py and strip_source_roots.py (#10588) PR #10588
Add XML test results as artifacts on the test goal workunit (#10606) PR #10606
Add non-root pantsbuild user to remote execution image (#10583) PR #10583
Move –files-not-found-behavior and BUILD file options out of bootstrap options (#10586) PR #10586
Remoting: limit retries for execution requests. (#10600) PR #10600
Ensure MyPy always runs with at least Python 3.6 internally. (#10602) PR #10602
Documentation
Improve errors for invalid Get objects (#10593) PR #10593
2.0.0.dev7 (8/10/2020)
API Changes
New Features
Allow using file addresses on the command line (#10573) PR #10573
Add –build-patterns option (#10559) PR #10559
Allow protobuf_library targets to specify a python source root. (#10549) PR #10549
Restore the missing init injection logic. (#10517) PR #10517
Add –pex-executable-search-path (#10489) PR #10489
Add support for bandit output file. (#10412) PR #10412
Bugfixes
Sync before executing a process if running in Docker (#10568) PR #10568
Fix some issues from #10535 Address changes (#10555) PR #10555
Remove self-inflicted invalidation caused by exception logging. (#10521) PR #10521
Fix bug that caused setup-py to hang if src root==buildroot. (#10509) PR #10509
Fix ExternalTool to use relative paths (#10503) PR #10503
Fix ./pants binary not outputting the full output path (#10506) PR #10506
Refactoring, Improvements, and Tooling
Stop validating that ! dependency ignores are used (#10585) PR #10585
Lower the default for –python-setup-resolver-jobs (#10584) PR #10584
Automatically inject dependencies on sibling files when dependency inference is unused (#10582) PR #10582
Use a constraints file in this repo. (#10579) PR #10579
Disable speculation by default (#10581) PR #10581
upgrade to Rust v1.45.2 (#10556) PR #10556
Move –tag and –exclude-target-regexp out of bootstrap options (#10569) PR #10569
Allow for disabling pantsrc in OptionsBootstrapper independently of options values (#10562) PR #10562
Refactor rule to resolve address specs (#10563) PR #10563
Stop using AddressWithOrigin for precise file arguments (#10551) PR #10551
Always use generated subtargets with file arguments (#10550) PR #10550
Remove unused SymbolTable (#10544) PR #10544
Support and require disambiguated file addresses (#10535) PR #10535
Revert “Add cache_failures option to Process type (#10433)” (#10534) PR #10534
Simplify source root stripping. (#10543) PR #10543
Improve source root stripping performance. (#10533) PR #10533
ArgSplitter operates relative to the buildroot. (#10540) PR #10540
Simplify the setup-py rules. (#10529) PR #10529
Allow Process to set its workunit level (#10528) PR #10528
Rely on the init-injection rules to trigger errors for un-depended-on-and-relevant __init__.py files. (#10524) PR #10524
Remove rust source include from integration tests. (#10522) PR #10522
upgrade to rust v1.45.1 (#10523) PR #10523
Store SpanIds as integers (#10512) PR #10512
Remove tarutil.py (#10516) PR #10516
Refactor Pex usage through new helper rules (#10514) PR #10514
Get rid of the remote backend subsystems. (#10502) PR #10502
Move subsystem.py and its test into pants.option. (#10500) PR #10500
Lower the default local parallelism, and align the number of swimlanes to it. (#10499) PR #10499
Rotate travis aws creds. (#10496) PR #10496
Add cache_failures option to Process type (#10433) PR #10433
Deprecate Subsystem.get_options() in favor of Subsystem.options (#10493) PR #10493
Simplify script to check __init__.py files (#10488) PR #10488
Merge interactive_process.py into process.py (#10495) PR #10495
Export Get and MultiGet from rules.py (#10485) PR #10485
Simplify engine/internals/nodes.py (#10487) PR #10487
Add cache_failures option to Process type (#10433) PR #10433
Testing
Disable remote execution due to RBE shutdown. (#10566) PR #10566
remoting: use non-RBE pants remote execution image (#10539) PR #10539
Avoid Python 3.8+ for Pylint test (#10548) PR #10548
avoid Py 3.8 for BanditIntegrationTest.test_3rdparty_plugin (#10546) PR #10546
set locale vars for remoting image (#10541) PR #10541
Test for rule graph issues with each distinct backend (#10519) PR #10519
docker image for remote execution without GCP/RBE (#10515) PR #10515
Documentation/Logging
Update docs urls to pantsbuild.org. (#10580) PR #10580
Improve log message when resolving entire lockfile. (#10578) PR #10578
Improve error message when the path component does not exist (#10570) PR #10570
Prepare 1.30.1rc0 (#10554) PR #10554
Improve error message for unrecognized BUILD file symbols (#10531) PR #10531
Reduce verbosity of finding binaries (#10525) PR #10525
Render all frames of a failure in Engine tracebacks (#10510) PR #10510
Fix bad indent of default in option help. (#10501) PR #10501
Fix display of default/current values in help. (#10490) PR #10490
Stop warning when return code != 0 or 1 (#10486) PR #10486
2.0.0.dev6 (7/28/2020)
API Changes
Upgrade to Pex 2.1.14 (#10437) PR #10437
New Features
Improve test output and allow it be configured. (#10484) PR #10484
Bugfixes
Make independent owners requests per file to improve memoization (#10491) PR #10491
Fix PluginField not working in production (#10469) PR #10469
Allow for more cyclic cases with file dependencies (#10475) PR #10475
Fix Protobuf when using source roots (#10453) PR #10453
Fix fromfile expansion to skip passthrough args. (#10457) PR #10457
Fix –print-exception-stacktrace not invalidating pantsd (#10451) PR #10451
fixes in async_semaphore for concurrency ID calculation (#10436) PR #10436
Refactoring, Improvements, and Tooling
Eliminate most rule registration boilerplate. (#10477) PR #10477
Remove unused util/ and base/ code (#10462) PR #10462
Rename UrlToFetch to DownloadFile (#10468) PR #10468
Change the PathGlobs, SnapshotSubset, and UrlToFetch intrinsics to return Digest (#10449) PR #10449
Unify accessing options for a GoalSubsystem with Subsystem (#10456) PR #10456
Rename Workspace.materialize_directory() to Workspace.write_digest() (#10448) PR #10448
Remove unused SingleFileExecutable (#10443) PR #10443
Remove support for Protoc 2 (#10439) PR #10439
Make GoalSubsystem subclass Subsystem. (#10483) PR #10483
Tweaks to help output: (#10466) PR #10466
Cleanup fs.py (#10474) PR #10474
Add UnionMembership.from_rules() (#10472) PR #10472
Kill Reporting (mostly). (#10463) PR #10463
Add dependencies on conftest and init files via inference (#10441) PR #10441
Kill ./pants literals. (#10465) PR #10465
Remove Options <-> Parser cycle. (#10464) PR #10464
Revert “Use isort v5.x as the default version (#10258)” (#10460) PR #10460
Demystify get_all_scoped_flag_names mypy kludges. (#10459) PR #10459
Optimize generated subtargets’ interaction with SpecifiedSourceFiles (#10454) PR #10454
Simplify Collection. (#10450) PR #10450
Improvements to help output. (#10444) PR #10444
Fixes to get the process_executor CLI tool working again. (#10435) PR #10435
Rename argument in streaming workunit callback (#10432) PR #10432
Testing
Only skip building wheels on PR builds (#10482) PR #10482
Skip building wheels if no release files have changed (#10481) PR #10481
Skip flaky GoalRuleIntegrationTest (#10479) Issue #10478 PR #10479
A script to create an index.html for pants wheels on S3. (#10458) PR #10458
Get rid of remaining uses of init_subsystem. (#10427) PR #10427
2.0.0.dev5 (7/22/2020)
API Changes
New Features
Speed up repl to no longer rebuild a Pex on source file changes (#10418) Issue #10406 PR #10418
Refactoring, Improvements, and Tooling
Testing
2.0.0.dev4 (7/21/2020)
API Changes
Upgrade default mypy from 0.781 to 0.782 (#10404) PR #10404
Remove unused –fmt-only option (#10388) PR #10388
Don’t turn on branch coverage by default. (#10386) PR #10386
access store server for action cache (#10329) Issue #10317 PR #10329
Upgrade setuptools from 49.1.0 to 49.2.0 (#10347) PR #10347
Move target.py rules to engine/internals/graph.py (#10372) PR #10372
New Features
Speed up run to no longer rebuild a Pex on source file changes (#10410) Issue #10406 PR #10410
Support for using a single global resolve. (#10405) PR #10405
Flake8 output file support. (#10371) PR #10371
A flag to force rerunning tests, bypassing the cache. (#10403) PR #10403
Support for injecting ancestor conftest.py files. (#10378) PR #10378
Allow ignoring dependencies with ! (#10385) PR #10385
Allow dependencies on files in BUILD files (#10381) PR #10381
Unify generated subtargets with file arguments and –changed-since (#10356) PR #10356
Use colors for log messages (#10278) PR #10278
Bugfixes
Print initial logs from pantsd using local time format Issue #10128
Fix using relative paths with –local-cache-dir and –named-caches-dir (#10398) PR #10398
Fix validation of dependencies ignores breaking with generated subtargets (#10407) PR #10407
close write stream for CAS writes via ByteStream API (#10395) PR #10395
Fix recently added n^2 edge collection. (#10392) PR #10392
Align cache directory calculation so that the LMDB store location is uniformly configurable. (#10391) PR #10391
remoting: use debug level for RE client workunits saved from remote (#10382) PR #10382
Always include types in the engine’s definition of equality. (#10377) PR #10377
Have help respond to color (#10357) PR #10357
Display multiline help nicely. (#10366) PR #10366
Refactoring, Improvements, and Tooling
Add a hint about adjusting max_user_watches on Linux. (#10413) PR #10413
Delete unused v1 sources. (#10411) PR #10411
upgrade to Rust 1.45.0 (#10396) PR #10396
Tolerate target cycles when using dependency inference (#10393) Issue #10059 PR #10393
Revert “Tolerate target cycles when using dependency inference (#10393)” (#10401) PR #10393 PR #10401
Add support for cycle-tolerant “weak” Gets (#10230) PR #10230
Make fetching wheels more resilient to network errors. (#10376) PR #10376
Avoid undefined behaviour around f64/u64 casts (#10374) PR #10374
Fix when an explicitly provided dependency supersedes an inferred dependency (#10375) PR #10375
Fix dependency inference handling of dependencies on self (#10373) PR #10373
Render local process infrastructure errors more verbosely. (#10368) PR #10368
Use our validate goal instead of the custom header check. (#10361) PR #10361
Delete some unused testprojects code. (#10364) PR #10364
Testing
Documentation
A script to generate options reference pages for the docsite. (#10387) PR #10387
2.0.0.dev3 (7/15/2020)
New Features
Allow specifying address and file arguments at the same time (#10345) PR #10345
Make help-all dump a JSON blob containing all help info. (#10336) PR #10336
Integrate option value derivation into help. (#10313) PR #10313
Generate subtargets with file-level precision for dependency inference (#10305) PR #10305
Add option for specifying environment variable with concurrency slot (#10297) PR #10297
Add support for specifying a custom coverage config file (.coveragerc) (#10289) PR #10289
Bugfixes
Fix generated subtargets not working with dependees (#10355) PR #10355
Ignore dead symlinks on Linux as well as OSX (#10339) PR #10339
Fix bug where workunit completion was not reported correctly (#10277) PR #10277
Fix collision in workunit affecting patches. (#10350) PR #10350
Pass stream workunit context to all callbacks calls instead of just passing it in the last call. (#10340) PR #10340
Fix awslambda configuration of Pex. (#10323) PR #10323
Hotfix Bandit breaking from stevedore 3.0 release (#10319) PR #10319
Refactoring, Improvements, and Tooling
Render only leaf rule graph errors, and improve error messages (#10311) PR #10311
Tweak any_matches_filespec to return which paths matched (#10358) PR #10358
Add check for invalid concrete time dates (#10349) PR #10349
Explicit error on missing descriptions in the goals goal. (#10348) PR #10348
Add module to default rule names. (#10341) PR #10341
add artifacts infrastructure on relevant types (#10344) PR #10344
Revert modernization of virtualenv to fix pants.pex deploy in CI. (#10343) PR #10343
Represent generated subtarget addresses as file names (#10338) PR #10338
Remove unusued RunTracker code (#10315) PR #10315
Minor wording change in help message (#10335) PR #10335
Display whether a scope is a goal or subsystem in help. (#10332) PR #10332
Fix run_virtualenv to target the current $PY. (#10331) PR #10331
Modernize virtualenv. (#10330) PR #10330
Stop differentiating between constructors and types in FFI. (#10327) PR #10327
Use generated subtargets internally (#10312) PR #10312
Remove Revision (#10318) PR #10318
Bump to nails 0.6.0 to lay groundwork for cancelation of pantsd runs. (#10320) PR #10320
remove polling remote execution client (#10306) PR #10306
Remove Struct and @addressable abstractions (#10309) PR #10309
Move SubprocessProcessHandler near its single use. (#10307) PR #10307
No longer special case the dependencies field with TargetAdaptor (#10303) PR #10303
Use with_workunit everywhere (#10300) PR #10300
refactor execution strategy options into separate struct (#10304) PR #10304
Remove -q from the release run of reversion. (#10301) PR #10301
Simplify BUILD file parsing (#10298) PR #10298
Testing
2.0.0.dev2 (7/8/2020)
API Changes
Rename FilesContent to DigestContents and InputFilesContent to CreateDigest (#10290) PR #10290
remoting: default is streaming client (#10260) PR #10260
Upgrade setuptools from 47.3.1 to 49.1.0 (#10255) PR #10255
Upgrade packaging from 20.3 to 20.4 (#10256) PR #10256
Deprecate the –v1/–v2 global options. (#10245) PR #10245
New Features
Preserve source roots with Pytest output (#10165) PR #10165
Bugfixes
Downgrade to tokio 0.2.20 to fix materialize_directories. (#10294) PR #10294
Expose method to bring down dynamic UI (#10234) Issue #10005 PR #10234
Fix double-workunit-completion print (#10247) PR #10247 PR #10179
Refactoring, Improvements, and Tooling
Remove v1 source/ abstractions like EagerFileSet (#10292) PR #10292
Use f-strings in engine/util.py (#10288) PR #10288
Use dependency inference internally (#10283) PR #10283
Unify LegacyPythonCallbackParser and Parser (#10281) PR #10281
Lower the default max-memory usage of pantsd. (#10287) PR #10287
Improvements and refactoring of help system. (#10280) PR #10280
Refactor WorkunitStore struct (#10242) PR #10242
remoting: check action cache for cached result before submitting a request (#10253) PR #10253
Remove leftover v1 Target API bindings (#10276) PR #10276
Fix remaining internal dependency cycles (#10254) PR #10254
Remove build_graph.Target (#10266) PR #10266
Remove cache/ and invalidation/ (#10262) PR #10262
Remove obsolete root patterns. (#10263) PR #10263
Remove Task, Goal, and Context (#10252) PR #10252
Simplify git.py and scm.py (#10251) PR #10251
Remove the internal tags type_checked and partially_type_checked (#10244) PR #10244
Remove HydratedTarget, AddressMapper, and BuildGraph (#10250) PR #10250
Remove all remaining v1 Targets (#10246) PR #10246
Remove TestBase.context() (#10248) PR #10248
Delete the rest of v1 pants.backend.python (#10240) PR #10240
Remove the concept of a scope category. (#10224) PR #10224
Testing
Remove stale “pants.pex for integration tests” mechanism (#10279) PR #10279
Re-enable RBE (#10284) PR #10284
Temporarily disable remote execution in CI (#10268) PR #10268
Upgrade responses from 0.10.14 to 0.10.15 (#10257) PR #10257
Increase pylint integration tests timeout. (#10261) PR #10261
Fix broken Pylint test from new isort release (#10259) PR #10259
Simplify ci.py now that we have no v1 tests (#10241) PR #10241
2.0.0.dev1 (7/2/2020)
API Changes
Get rid of –plugins2/–backend-packages2 (#10231) PR #10231
Deprecate –changed-include-dependees in favor of –changed-dependees (#10217) PR #10217
Remove pants.contrib.mypy plugin in favor of v2 implementation (#10157) PR #10157
Remove –coverage-py-omit-test-sources (#10202) PR #10202
Gets rid of the v1 GoalRunner. (#10167) PR #10167
Remove pants.backend.jvm (#10218) PR #10218
Remove –zipkin-trace-v2 option (#10184) PR #10184
Remove core_tasks/ and most of task/ (#10236) PR #10236
Remove v1 portions of backend/native and ipex (#10187) PR #10187
Delete v1 python backend task code (#10223) PR #10223
Remove v1 Python unpack_whls, bundle, and repl (#10204) PR #10204
Remove Thrift (#10171) PR #10171
Remove TestBase.create_library() and `TestBase.target() (#10237) PR #10237
Remove some v1 parts of testutil/ (#10233) PR #10233
New Features
Add new typecheck goal for MyPy (#10212) PR #10212
Properly handle PEP 420 namespace packages (#10183) PR #10183
Add support for creating multiple coverage reports (#9997) PR #9997
Add the ability to write/output the raw coverage file. (#10195) PR #10195
Log Coverage report name as part of the console message. (#10194) PR #10194
Attempt to adjust file handle limits and warn if they cannot be adjusted (#10174) PR #10174
Bugfixes
Fix –changed-dependees to work when v1 is disabled (#10235) PR #10235
Teach pants_requirement() to work with dependency inference (#10232) PR #10232
Remove indentation in process errors. (#10181) PR #10181
Automatically include __init__.py files (#10166) PR #10166
Fix AddPrefix to correctly add arbitrarily many parent components (#10189) PR #10189
Fix dependencies –transitive to include target roots that are also dependencies (#10186) PR #10186
Fix MyPy to include resources, but still not files (#10168) PR #10168
Refactoring, Improvements, and Tooling
Reduce time spend grabbing locks in workunit code (#10179) PR #10179
local_cas supports an instance-name (#10225) PR #10225
local_cas supports GetCapabilities request (#10226) PR #10226
Refactor remoting options into separate struct (#10215) PR #10215
remoting: log RE capabilities and refresh REv2 proto (#10155) PR #10155
Fix stray type error in fs.py (#10182) PR #10182
Remove redundant cast call (#10196) PR #10196
Use debug level for remote store workunits (#10238) PR #10238
Simplify Get implementation. (#10178) PR #10178
Delete the old BinaryTool mechanism. (#10239) PR #10239
Delete more v1 task-related integration tests. (#10210) PR #10210
Refactor coverage integration tests (#10209) PR #10209
Stop using deprecated assertEquals (#10197) PR #10197
Remove ivy/ and most of java/ (#10222) PR #10222
Remove Bundle and App code (#10221) PR #10221
Remove more zipkin-related code (#10207) PR #10207
Remove unused list_backends.py (#10205) PR #10205
Remove internal contrib/ infrastructure (#10177) PR #10177
Rewrite/delete some tests that involve v1 tasks. (#10219) PR #10219
Remove JVM testprojects (#10216) PR #10216
Stop testing testprojects:: (#10170) PR #10170
Remove the src/{scala|java} directories. (#10201) PR #10201
Delete examples/src/{java,scala}. (#10198) PR #10198
Stop running JVM tests written in Java/Scala (#10175) PR #10175
Move scm/ and util/ tests to src (#10176) PR #10176
Nuke more v1 tests (#10172) PR #10172
upgrade tokio to 0.2.21 (#10191) PR #10191
upgrade futures crate to 0.3.5 (#10190) PR #10190
upgrade async-trait crate to 0.1.36 (#10193) PR #10193
upgrade crossbeam-channel create so only one copy (#10192) PR #10192
upgrade indexmap crate (#10199) PR #10199
upgrade parking_lot crate (#10200) PR #10200
Documentation
Prepare 1.30.0rc1. (#10188) PR #10188
2.0.0.dev0 (6/25/2020)
API Changes
Remove v1 JVM backend Tasks. (#10142) PR #10142
Remove targets goal in favor of target-types goal (#10145) PR #10145
Remove deprecated Get[P](S) syntax in favor of Get(P, S) (#10148) Issue #9899 PR #10148
Remove v1 login, server, and killserver goals (#10144) PR #10144
Remove v1 minimize, filemap, paths, sort, and depmap goals (#10135) PR #10135
Replace v1 dependees, dependencies, filedeps, and filter with v2 (#10117) PR #10117
Remove the v1 scrooge contrib plugin. (#10127) PR #10127
Remove support for pants.ini (#10123) PR #10123
Remove the v1 export goal (#10122) PR #10122
Remove pants.backend.docgen (#10121) PR #10121
Remove v1 idea-plugin goal (#10115) PR #10115
Remove v1 Java Protobuf implementation (#10111) PR #10111
Remove pants.contrib.node plugin (#10113) PR #10113
Remove v1 bash-completion goal (#10112) PR #10112
Remove watchman. (#10114) PR #10114
Upgrade default mypy version from 0.780 to 0.781 (#10109) PR #10109
Remove pants.contrib.go plugin (#10107) PR #10107
Remove v1 Python Grpcio codegen backend (#10108) PR #10108
Remove deprecated –v2-ui in favor of –dynamic-ui (#10105) PR #10105
Remove deprecated –enable-pantsd in favor of –pantsd (#10104) PR #10104
Remove deprecated pytest-coverage scope in favor of coverage-py (#10103) PR #10103
Remove pants.contrib.confluence (#10106) PR #10106
New Features
Add support for MyPy to Pants v2 (#10132) Issue #10131 PR #10132
Changes to support Django. (#10088) PR #10088
Add support for enum list options. (#10083) Issue #9968 PR #10083
Bugfixes
Do not render pytest at info by default, but give it a description. (#10164) PR #10164
Preserve source roots in MyPy and Pylint output (#10159) PR #10159
Do not include resource targets in v2 MyPy chroot (#10154) PR #10154
Set dynamic-ui default based on CI (#10140) PR #10140
Fix Pytest XML reports and Coverage breaking with remote execution (#10136) PR #10136
Retry for filesystem changes more quickly, indefinitely, and with logging (#10139) PR #10139
Normalize paths before determining whether we can watch them. (#10130) PR #10130
Refactoring, Improvements, and Tooling
Remove use of importlib for native_engine loading (#10161) PR #10161
Update sha2 crate dependency (#10163) PR #10163
Remove unused rust deps. (#10162) PR #10162
Add message field on workunits and use it to replace some explicit logging (#10158) PR #10158
Expose the types consumed to produce a type in a RuleGraph. (#10153) PR #10153
Upgrade setuptools from 44.0.0 to 47.3.1 (#10149) PR #10149
Support for using unstripped python sources (#10138) PR #10138
fix snapshot subset testing and unrevert #9779 (#10146) PR #10146
Revert “Make SnapshotSubset() faster (#9779)” (#10143) PR #9779 PR #10143
Make SnapshotSubset() faster (#9779) PR #9779
upgrade to rust v1.44.1 (#10125) PR #10125
Remove BuildFile (#10102) PR #10102
Testing
Documentation
Remove the v1 docsite (#10120) PR #10120
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
File details
Details for the file pantsbuild.pants-2.0.1-cp38-cp38-manylinux2014_x86_64.whl
.
File metadata
- Download URL: pantsbuild.pants-2.0.1-cp38-cp38-manylinux2014_x86_64.whl
- Upload date:
- Size: 48.7 MB
- Tags: CPython 3.8
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7214a5e368d5994f34e8d5791fdb45decc8a630b00ce8f7ff1be0ebb3537d05 |
|
MD5 | 7f96d3534ff0dbdb38289aedeeb84e05 |
|
BLAKE2b-256 | b36a5d453dd367433d7e1343f0a48bf777c941ddd972c7083842ba9fdddc5477 |
File details
Details for the file pantsbuild.pants-2.0.1-cp38-cp38-macosx_10_11_x86_64.whl
.
File metadata
- Download URL: pantsbuild.pants-2.0.1-cp38-cp38-macosx_10_11_x86_64.whl
- Upload date:
- Size: 7.3 MB
- Tags: CPython 3.8, macOS 10.11+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e0bfadea7e5fa26f231924e41701721723acb8925e4196eea2ccd087ba68c54 |
|
MD5 | 8a97beacbcfb136b64969f19a4a00ed1 |
|
BLAKE2b-256 | 10984c6caf85a0929cdff314c13d14a64a67debe7f941af007ad063c47ceae8f |
File details
Details for the file pantsbuild.pants-2.0.1-cp37-cp37m-manylinux2014_x86_64.whl
.
File metadata
- Download URL: pantsbuild.pants-2.0.1-cp37-cp37m-manylinux2014_x86_64.whl
- Upload date:
- Size: 48.7 MB
- Tags: CPython 3.7m
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e74b937b41da0a192a4fcbb30fba1d62e8f68486d9380dee86086492e45b88f |
|
MD5 | 4e2ba4e95d8d5f4e7e27b305d63a737c |
|
BLAKE2b-256 | 5e23adcbfcc6e2fcbe1ac701846b24b2ab0bfdca8aa65b72af79cdfcad59a013 |
File details
Details for the file pantsbuild.pants-2.0.1-cp37-cp37m-macosx_10_11_x86_64.whl
.
File metadata
- Download URL: pantsbuild.pants-2.0.1-cp37-cp37m-macosx_10_11_x86_64.whl
- Upload date:
- Size: 7.3 MB
- Tags: CPython 3.7m, macOS 10.11+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c601dc12f10635a4f61800a14e1d916298bea50769356d43d39b2f9519ef4d8f |
|
MD5 | 320efc3ff1b9406438458486efc76eb0 |
|
BLAKE2b-256 | 681054f90ba0a5f14eb138ea856cfedd3714d4d27695e01dbf545e317a6804da |
File details
Details for the file pantsbuild.pants-2.0.1-cp36-cp36m-manylinux2014_x86_64.whl
.
File metadata
- Download URL: pantsbuild.pants-2.0.1-cp36-cp36m-manylinux2014_x86_64.whl
- Upload date:
- Size: 48.7 MB
- Tags: CPython 3.6m
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 910a78cdbf6e3e1e833a546939d14b13b607c584dddd443b50a46a48e8c7565e |
|
MD5 | 5ed1065241ed398b78b7386f9b32dc7f |
|
BLAKE2b-256 | 001cc5ecfd60ed9ce140a63bee2f3fde0b745cb43c5b15df7bf9b36b6c913278 |
File details
Details for the file pantsbuild.pants-2.0.1-cp36-cp36m-macosx_10_11_x86_64.whl
.
File metadata
- Download URL: pantsbuild.pants-2.0.1-cp36-cp36m-macosx_10_11_x86_64.whl
- Upload date:
- Size: 7.3 MB
- Tags: CPython 3.6m, macOS 10.11+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b3967eb325b779b0cb2b29a1f10ca6629bed9aae18fc338a1b1db4c15d6c638 |
|
MD5 | 4e62773c5778bae5cbf6ecafcd248080 |
|
BLAKE2b-256 | 69d6228e2f97d1a61889db18f67810f9a00aa5882d52f36dbe7b6f075154a58a |