Skip to main content
Help us improve Python packaging – donate today!

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 here.

1.5.x Stable Releases

This document describes releases leading up to the 1.5.x stable series.

1.5.0 (03/19/2018)

The 1.5.0 stable release, with no additional changes since the rc1 release.

A quick summary of the changes since the 1.4.x branch:

  • V1 engine removed.
  • A new Thrift binary tool subsystem.
  • Redesign JavaScript Style Checker to use ESLint directly
  • Old python pipeline removed.
  • Enable workdir-max-build-entries by default.

1.5.0rc1 (03/14/2018)

Bugfixes

  • Render a warning rather than failing list when no targets are matched (#5598) PR #5598
  • [pantsd] Repair stale sources invalidation case. (#5589) PR #5589

Refactoring, Improvements, and Tooling

  • Further –changed optimization (#5579) PR #5579
  • [pantsd] Don’t compute TargetRoots twice. (#5595) PR #5595
  • [coursier] use same artifact cache override as ivy (#5586) PR #5586

1.5.0rc0 (03/07/2018)

Refactoring, Improvements, and Tooling

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

New Features

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

Documentation Updates

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

1.5.0.dev5 (03/02/2018)

New Features

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

Bugfixes

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

Refactoring, Improvements, and Tooling

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

1.5.0.dev4 (02/23/2018)

New Features

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

Public API Changes

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

Bugfixes

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

Documentation Updates

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

Refactoring, Improvements, and Tooling

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

1.5.0.dev3 (02/10/2018)

New Features

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

Refactoring, Improvements, and Tooling

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

1.5.0.dev2 (02/05/2018)

New Features

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

API Changes

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

Bugfixes

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

Documentation Updates

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

Refactoring, Improvements, and Tooling

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

1.5.0.dev1 (01/26/2018)

New Features

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

API Changes

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

Bugfixes

Documentation Updates

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

Refactoring, Improvements, and Tooling

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

1.5.0.dev0 (01/22/2018)

New Features

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

API Changes

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

Bugfixes

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

Refactoring, Improvements, and Tooling

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

Documentation Updates

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

Release history Release notifications

History Node

1.7.0.dev1

History Node

1.7.0.dev0

History Node

1.6.0rc2

History Node

1.6.0rc1

History Node

1.6.0rc0

History Node

1.6.0.dev2

History Node

1.6.0.dev1

History Node

1.6.0.dev0

History Node

1.5.1rc2

History Node

1.5.1rc1

History Node

1.5.1rc0

This version
History Node

1.5.0

History Node

1.5.0rc1

History Node

1.5.0rc0

History Node

1.5.0.dev5

History Node

1.5.0.dev4

History Node

1.5.0.dev3

History Node

1.5.0.dev2

History Node

1.5.0.dev1

History Node

1.5.0.dev0

History Node

1.4.0

History Node

1.4.0rc5

History Node

1.4.0rc4

History Node

1.4.0rc3

History Node

1.4.0rc2

History Node

1.4.0rc1

History Node

1.4.0rc0

History Node

1.4.0.dev27

History Node

1.4.0.dev26

History Node

1.4.0.dev25

History Node

1.4.0.dev24

History Node

1.4.0.dev23

History Node

1.4.0.dev22

History Node

1.4.0.dev21

History Node

1.4.0.dev20

History Node

1.4.0.dev19

History Node

1.4.0.dev18

History Node

1.4.0.dev17

History Node

1.4.0.dev16

History Node

1.4.0.dev15

History Node

1.4.0.dev14

History Node

1.4.0.dev13

History Node

1.4.0.dev11

History Node

1.4.0.dev10

History Node

1.4.0.dev9

History Node

1.4.0.dev8

History Node

1.4.0.dev7

History Node

1.4.0.dev6

History Node

1.4.0.dev5

History Node

1.4.0.dev4

History Node

1.4.0.dev3

History Node

1.4.0.dev2

History Node

1.4.0.dev1

History Node

1.4.0.dev0

History Node

1.3.1rc2

History Node

1.3.1rc1

History Node

1.3.1rc0

History Node

1.3.0

History Node

1.3.0rc4

History Node

1.3.0rc3

History Node

1.3.0rc2

History Node

1.3.0rc1

History Node

1.3.0rc0

History Node

1.3.0.dev19

History Node

1.3.0.dev18

History Node

1.3.0.dev17

History Node

1.3.0.dev16

History Node

1.3.0.dev15

History Node

1.3.0.dev14

History Node

1.3.0.dev13

History Node

1.3.0.dev12

History Node

1.3.0.dev11

History Node

1.3.0.dev10

History Node

1.3.0.dev9

History Node

1.3.0.dev8

History Node

1.3.0.dev7

History Node

1.3.0.dev6

History Node

1.3.0.dev5

History Node

1.3.0.dev4

History Node

1.3.0.dev3

History Node

1.3.0dev2

History Node

1.3.0dev1

History Node

1.3.0dev0

History Node

1.2.1

History Node

1.2.1rc0

History Node

1.2.0

History Node

1.2.0rc4

History Node

1.2.0rc3

History Node

1.2.0rc2

History Node

1.2.0rc1

History Node

1.2.0rc0

History Node

1.2.0dev12

History Node

1.2.0dev11

History Node

1.2.0dev10

History Node

1.2.0dev9

History Node

1.2.0dev8

History Node

1.2.0dev7

History Node

1.2.0-dev6

History Node

1.2.0-dev5

History Node

1.2.0-dev4

History Node

1.2.0-dev3

History Node

1.2.0-dev2

History Node

1.2.0-dev1

History Node

1.2.0-dev0

History Node

1.1.0

History Node

1.1.0-rc9

History Node

1.1.0-rc8

History Node

1.1.0-rc7

History Node

1.1.0-pre6

History Node

1.1.0-pre5

History Node

1.1.0-pre4

History Node

1.1.0-pre3

History Node

1.1.0-pre2

History Node

1.1.0-pre1

History Node

1.1.0-pre0

History Node

1.1.0-rc0

History Node

1.0.1

History Node

1.0.1-rc0

History Node

1.0.0

History Node

1.0.0-rc3

History Node

1.0.0-rc2

History Node

1.0.0-rc1

History Node

0.0.82

History Node

0.0.81

History Node

0.0.80

History Node

0.0.79

History Node

0.0.78

History Node

0.0.77

History Node

0.0.76

History Node

0.0.75

History Node

0.0.74

History Node

0.0.73

History Node

0.0.72

History Node

0.0.71

History Node

0.0.70

History Node

0.0.69

History Node

0.0.68

History Node

0.0.67

History Node

0.0.66

History Node

0.0.65

History Node

0.0.64

History Node

0.0.63

History Node

0.0.62

History Node

0.0.61

History Node

0.0.60

History Node

0.0.59

History Node

0.0.58

History Node

0.0.57

History Node

0.0.56

History Node

0.0.55

History Node

0.0.54

History Node

0.0.53

History Node

0.0.52

History Node

0.0.51

History Node

0.0.50

History Node

0.0.49

History Node

0.0.48

History Node

0.0.47

History Node

0.0.46

History Node

0.0.45

History Node

0.0.44

History Node

0.0.43

History Node

0.0.42

History Node

0.0.41

History Node

0.0.40

History Node

0.0.39

History Node

0.0.38

History Node

0.0.37

History Node

0.0.36

History Node

0.0.35

History Node

0.0.34

History Node

0.0.33

History Node

0.0.32

History Node

0.0.31

History Node

0.0.30

History Node

0.0.29

History Node

0.0.28

History Node

0.0.27

History Node

0.0.26

History Node

0.0.25

History Node

0.0.24

History Node

0.0.23

History Node

0.0.22

History Node

0.0.21

History Node

0.0.20

History Node

0.0.18

History Node

0.0.17

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
pantsbuild.pants-1.5.0-cp27-none-macosx_10_10_intel.whl (2.3 MB) Copy SHA256 hash SHA256 Wheel cp27 Mar 20, 2018
pantsbuild.pants-1.5.0-cp27-none-manylinux1_x86_64.whl (11.2 MB) Copy SHA256 hash SHA256 Wheel cp27 Mar 20, 2018
pantsbuild.pants-1.5.0.tar.gz (2.0 MB) Copy SHA256 hash SHA256 Source None Mar 20, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page