Skip to main content

A scalable build tool for large, complex, heterogeneous repos.

Project description

Pants is an Apache2 licensed build tool written in Python and Rust.

The latest documentation can be found at pantsbuild.org.

2.8.x Release Series

2.8.0 (Nov 17, 2021)

The first stable release of the 2.8.x series, with no changes since the previous release candidate!

2.8.0rc6 (Nov 16, 2021)

New features

  • Add [twine].ca_certs_path option (Cherry-pick of #13593) (#13642)

User API Changes

  • Ban * globs and ! ignores in source: str field (Cherry-pick of #13629) (#13636)

  • Bump twine to 3.6.0 and add tool lockfile (Cherry-pick of #13594) (#13640)

Bug fixes

  • Fix Python dependency inference breaking with python_source targets (Cherry-pick of #13627) (#13633)

  • Register skip fields for python linters and mypy also on the python_test_utils target. (Cherry-pick of #13616) (#13623)

2.8.0rc5 (Nov 10, 2021)

Performance

  • Fix caching of binary lookups and avoid re-running pytest setup for environment changes (cherrypick of #13559) (#13561)

Documentation

  • Fix tailor confusion with macros vs. targets (cherrypick of #13574) (#13582)

2.8.0rc4 (Nov 09, 2021)

Bug fixes

  • Don't duplicate Go error logs when dependency failed to compile (Cherry-pick of #13502) (#13538)

  • Fix --no-print-stacktrace. (cherrypick of #13539) (#13541)

Documentation

  • Fix formatting of overrides field in docs (Cherry-pick of #13549) (#13552)

2.8.0rc3 (Nov 04, 2021)

Performance

  • Go: improve performance of first-party package analysis (Cherry-pick of #13476) (#13486)

  • Fix slow performance from recursive __repr__ and __hash__ for Go (Cherry-pick of #13492) (#13493)

2.8.0rc2 (Nov 02, 2021)

New Features

  • Add overrides to python_requirements and poetry_requirements (Cherry-pick of #13458) (#13475)

  • Add --tailor-check (Cherry-pick of #13432) (#13457)

  • Add [tailor].ignore_paths and [tailor].ignore_adding_targets (Cherry-pick of #13422) (#13454)

  • Validate that [tailor].build_file_name is compatible with [GLOBAL].build_patterns (Cherry-pick of #13420) (#13446)

Plugin API Changes

  • Fix fmt, lint, test, and check plugins having to use sources FieldSet value (Cherry-pick of #13456) (#13466)

Bug fixes

  • Do not cache Docker invocations between Pants runs (Cherry-pick of #13464) (#13467)

  • Upgrade to Pex 2.1.54 (Cherry picks of 50914a5e and 189cd753) (#13459)

2.8.0rc1 (Oct 28, 2021)

Bug fixes

  • Assume version 1 for older lockfiles without version key (cherrypick of #13399) (#13406)

  • Removes leading whitespace when tailoring BUILD files without header text (#13394)

  • Go: don't error for unsupported third-party sources with project introspection (Cherry-pick of #13377) (#13381)

  • Don't error for invalid Go third-party packages unless building them (Cherry-pick of #13405) (#13410)

  • Fix missing field for tffmt in lint. (cherrypick of #13355) (#13356)

Performance

  • Use --layout=packed for all monolithic resolves. (cherrypick of #13400) (#13403)

  • Don't download Go third-party dependencies multiple times (Cherry-pick of #13352) (#13378)

Documentation

  • Make check output more useful for Go and Java (cherrypick of #13379) (#13388)

2.8.0rc0 (Oct 24, 2021)

New Features

  • update-build-files goal formats BUILD files with Black (#13279)

  • Add overrides field to files and resources targets (#13304)

  • Add overrides field to shell_sources, shunit2_sources, and protobuf_sources (#13298)

  • Add overrides field to python_sources and python_tests target (#13270)

  • Depending on a python_distribution with pex_binary now includes the built dist (#13306)

  • Support arbitrary PEP-517 build systems. (#13285)

User API Changes

  • Pants's CLI output uses the full address dir:dir instead of the shorthand dir (#13274)

  • Rename [python-setup] to [python] and move into the python backend. (#13345)

  • The default sources for conftest.py and *_test.pyi now belong to new target generator python_test_utils, not python_tests (#13299)

  • Deprecate including conftest.py and .pyi files in python_tests target's sources field (#13320)

  • Rename docker_image field sources to source (#13327)

  • Merge docker version field into the image_tags field. (#13308)

  • Upgrade default black version from 21.8b0 to 21.9b0 (#13326)

  • Terraform: move terraform validate from lint to check (#13301)

  • Autoflake and Pyupgrade are now activated by experimental backends (#13317)

  • Add google cloud logging to default Python module map (#13305)

Plugin API Changes

  • Add support for structured output from publish goal. (#13292)

Bug fixes

  • Do not choke on . in tool names for experimental_shell_commands. (#13293)

Documentation

  • Fix documentation for file: URLs, and add an assist for malformed URLs. (#13272)

2.8.0.dev5 (Oct 17, 2021)

New Features

  • Add ./pants update-build-files to automate fixing some deprecation warnings (#13273)

  • Add [cli.alias] config section for command line alias support. (#13228)

  • Add run support for new experimental_run_shell_command target. (#13229)

  • Add azure to default Python module mapping (#13275)

  • Support linux arm64 binary tools. (#13249)

  • Add minimal Scala backend (#13130)

User API Changes

  • Fix dir: and dir:: to include generated targets (#13263)

  • Merge Docker image_name into the repository field. (#13225)

  • python_sources and python_tests targets no longer use dependency inference, only python_source and python_test targets (#13231)

Plugin API Changes

  • Verify each observed URL and Digest pair (#13266)

Bug fixes

  • Fix pyupgrade alias name conflict (#13282)

  • Fix generate_all_lockfiles. (#13280)

  • Don't invalidate dependency inference when unrelated file names change (#13248)

  • Fix ./pants help targets to not include deprecated target names (#13236)

2.8.0.dev4 (Oct 11, 2021)

New Features

  • Add support for pyupgrade (#13063)

  • Support optionally restarting interactive processes when input files change (#13178)

  • Package dependencies for shell command. (#13168)

  • Add help tools (#13135)

  • Docker build args config option (#13147)

  • Add [docker].env_vars option. (#13146)

  • Support for directly running a Docker image (#13120)

  • Docker image version tag (#13097)

  • Docker publish support (#13085)

  • New publish goal (#13057)

User API Changes

  • Add [mypy].extra_type_stubs (#13180)

  • Deprecate requirements_relpath and pyproject_toml_relpath in favor of source for python_requirements and poetry_requirements (#13204)

  • Deprecate module_mapping and type_stubs_module_mapping fields for python_requirement in favor of modules and type_stub_modules (#13197)

  • Deprecate python_library, protobuf_library, and shell_library in favor of python_sources, protobuf_sources, and shell_sources (#13196)

  • Add scikit-learn to the default module mapping (#13198)

  • Deprecate python_requirement_library in favor of python_requirement (#13133)

  • An explicit generate_setup field on python_distribution. (#13111)

  • Upgrade to Pex 2.1.51. (#13098)

Plugin API Changes

  • Deprecate Sources in favor of SourcesField, SingleSourceField, and MultipleSourcesField (#13202)

  • Rename ResourcesSources and split target into generator vs. atom (#13194)

  • Rename FilesSources and split target into target generator vs. atom target (#13190)

  • Add engine_error() context manager for testing plugin exceptions (#13108)

Bug fixes

  • [jvm] Ignore symbols exposed by unnamed packages. (#13214)

  • f.ext is now a file argument, not a goal (#13212)

  • pantsd falls back to socket usage if it cannot open a TTY. (#13155)

  • Do not change working directory when extracting archives (#13077)

  • Release the GIL while creating a Session. (#13127)

Performance

  • Changing global options doesn't invalidate as much (#13144)

Documentation

  • Improve a couple of log messages. (#13121)

  • [Docs] Filter out self from list of related subsystems. (#13148)

2.8.0.dev3 (Oct 01, 2021)

New Features

  • Make the number of dots in string dep inference an option. (#13059)

  • Docker image name tags (#13048)

  • Add a --closed option to the dependencies goal. (#13043)

  • Support multiple Docker registries per image. (#13047)

  • Add Docker registry field (#13017)

  • Support for PEP-517/518 builds. (#13012)

  • Add autoflake unused import remover to Python lint tools. (#13010)

  • Support tailoring non-addressable macros. (#12989)

  • Implement Java dep inference mapper and rules (#12978)

  • Include the experimental java backend in the Pants distribution. (#13003)

  • Have peek emit expanded sources and dependencies (#12882)

  • New experimental_shell_command (#12878)

  • Support tailoring with an alternative BUILD file name (#12979)

  • Add Java dependency analysis types and launcher using javaparser library. (#12890)

User API Changes

  • Remove Gofmt backend and activate it with pants.experimental.go (#13014)

  • Register terraform lint & validate backends when the terraform backend is registered (#13002)

  • Deprecate --type in the dependencies goal. (#12998)

Plugin API Changes

  • Add RuleRunner.write_digest() (#13044)

  • Change BinaryNotFoundError constructor to be more generic (#13001)

Bug fixes

  • Don't invalidate the scheduler when piping output. (#13028)

  • Ensure that Tree contents are uploaded after creation. (#13008)

  • Fix case sensitivity of module_mapping for python_requirements and poetry_requirements (#12980)

  • Fix spurious "Scheduling: ..." workunits with remote caching (#12973)

  • Fix ./pants dependencies --transitive when run on a target generator like python_library (#12956)

Performance

  • Use nailgun for javac and import parser (#12982)

2.8.0.dev2 (Sep 17, 2021)

New Features

  • Build and install python_distribution deps for test, run, and repl (#12573)

  • Tailor python_requirements macro invocations. (#12862)

  • Add script field to pex_binary for console scripts (#12849)

  • Add option to [python-setup] to handle a quirk when building python_distribution on MacOS Big Sur. (#12857)

User API Changes

  • Rename the typecheck goal to check (#12858)

  • Ban # in an address's target name (#12940)

  • Upgrade to Pex 2.1.50. (#12888)

  • Add new version of LockfileMetadata to support checking for identically specified requirements (#12782)

Plugin API Changes

  • Add py.typed files for pantsbuild distributions in order to satisfy PEP-561 (#12842)

Bug fixes

  • Fix "file-level dependencies" on files and resources targets to not pull in sibling files (#12941)

  • Add google_cloud_function to plugin dependencies. Fix typo. (#12932)

  • If [python-setup].invalid_lockfile_behavior = ignore, don't require Pants metadata in the lockfile (#12900)

Performance

  • Don't find tar, unzip, and zip as frequently (#12947)

2.8.0.dev1 (Sep 10, 2021)

New Features

  • Support --fail-under on merged coverage. (#12778)

  • Add python-docx to the module mapping dictionary (#12775)

  • Add python-pptx to the module mapping dictionary (#12776)

  • Add opencv-python to the default Python module mapping (#12777)

  • Add PyMuPDF to the default Python module mapping (#12774)

User API Changes

  • Deprecate --list-provides option. (#12759)

  • Upgrade default isort to latest isort==5.9.3 (#12756)

  • Add version to lockfile metadata headers (#12788)

Plugin API Changes

  • OutputPathField.value_or_default() no longer has an Address argument (#12837)

Bug fixes

  • Properly include file dependencies in docker build context (#12758)

  • DigestSubset should not short-circuit when there are ignores involved. (#12648)

  • Fix backports of std lib modules like dataclasses not working with dependency inference (#12818)

Performance

  • Improve cache reuse for ./pants package when using a constraints file or lockfile (#12807)

  • Upgrade to Pex 2.1.48 and leverage packed layout. (#12808)

Documentation

  • Warn if [python-repos] is set during lockfile generation (#12800)

  • Fix a markdown issue in a help string. (#12766)

2.8.0.dev0 (Sep 03, 2021)

New Features

  • Add support for creating GCP Cloud Functions. (#12735)

  • [experimental] Add proof-of-concept Java junit test rule. (#12177)

  • Support TOML tables for dict options in pants.toml (#12707)

User API Changes

  • Remove undocumented pants_version() symbol from BUILD files (#12745)

  • Remove deprecated [python-protobuf.mypy-plugin] in favor of [mypy-protobuf] (#12743)

  • Stop interpolating pants_supportdir in pants.toml and deprecate the option (#12705)

  • Error, don't warn, when --generate-lockfiles-resolve is set to a disabled tool lockfile (#12738)

  • Remove deprecated .with_binaries(). (#12724)

  • Update default [black].version to 21.8b0 (#12718)

  • Update futures to 0.3.17. (#12722)

  • Upgrade to Pex 2.1.47. (#12715)

  • Remove deprecated [pytest].pytest_plugins in favor of [pytest].extra_requirements (#12704)

  • Remove deprecated [grpc_python_plugin] in favor of [grpc-python-plugin] (#12706)

Plugin API Changes

  • Add intrinsic to produce a DigestEntries from a Digest which reference file content by hash (#12693)

Bug fixes

  • Fix UI rendering when a workunit has completed children but no running children (#12748)

  • Improve descriptions of the process executions for PEX_PATH composition. (#12736)

  • Absolutize all of the execute_pex_args in the venv script. (#12727)

  • Include .gitignore in default pantsd_invalidation_globs (#12711)

Performance

  • Simplify implementation of materialize directories (#12696)

Documentation

  • Fix rendering of the ABOUT file. (#12744)

  • Add specific and actionable instructions to stale lockfile errors (#12699)

  • Link to pants slack from pypi project page (#12701)

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pantsbuild.pants-2.8.0-cp39-cp39-manylinux2014_x86_64.whl (60.1 MB view details)

Uploaded CPython 3.9

pantsbuild.pants-2.8.0-cp39-cp39-macosx_11_0_arm64.whl (9.1 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pantsbuild.pants-2.8.0-cp39-cp39-macosx_10_15_x86_64.whl (9.5 MB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

pantsbuild.pants-2.8.0-cp38-cp38-manylinux2014_x86_64.whl (60.1 MB view details)

Uploaded CPython 3.8

pantsbuild.pants-2.8.0-cp38-cp38-macosx_10_15_x86_64.whl (9.5 MB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

pantsbuild.pants-2.8.0-cp37-cp37m-manylinux2014_x86_64.whl (60.1 MB view details)

Uploaded CPython 3.7m

pantsbuild.pants-2.8.0-cp37-cp37m-macosx_10_15_x86_64.whl (9.5 MB view details)

Uploaded CPython 3.7mmacOS 10.15+ x86-64

File details

Details for the file pantsbuild.pants-2.8.0-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

  • Download URL: pantsbuild.pants-2.8.0-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 60.1 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for pantsbuild.pants-2.8.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 115c865bb33dd1e2a61c75bce4a9f8236a218edc723143621ee888c3e89dc1cb
MD5 cfe3050e68e67d9ebbd03b7a2bda1494
BLAKE2b-256 4c4b667dec4b34377717ee1ada3a6be5805893f7b29ea9705e4329d8c2ee33a9

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.8.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: pantsbuild.pants-2.8.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 9.1 MB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for pantsbuild.pants-2.8.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3ede3a8d28f06e31edaf45d676511c86dfa098313ee27a66a1f92d4fc7424c5f
MD5 f79beecc1207c71d6374403798802399
BLAKE2b-256 91b7ec4097c1d2cc74794b1f769587c7d205ae393de1f6528fbc5a7b52d12cce

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.8.0-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: pantsbuild.pants-2.8.0-cp39-cp39-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 9.5 MB
  • Tags: CPython 3.9, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for pantsbuild.pants-2.8.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d18941c5828da33b811f1a39a95bf1e9124d8dbd3e5996f3168abb1b53ff29b6
MD5 38797edd3007e7e25f936bb1355b719a
BLAKE2b-256 9dd0b925695a4b918bf1be7a0dde6cccf403cd0847dafa7edf1e96a0fc399bec

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.8.0-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

  • Download URL: pantsbuild.pants-2.8.0-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 60.1 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for pantsbuild.pants-2.8.0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 813772f38272be1ba04e822346283084482dfc4095a488a964a92650c46f1f2b
MD5 0817c2faad8052142c312e46722855af
BLAKE2b-256 e568f80063e677581a378b3c371f9daa44f8d897f8be83df52c6e98a6425c7b4

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.8.0-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: pantsbuild.pants-2.8.0-cp38-cp38-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 9.5 MB
  • Tags: CPython 3.8, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for pantsbuild.pants-2.8.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 97a09a3b19a9e909db68217206f0233cb0a049b1ce7e9eec30cfd72ab75e4e45
MD5 07b7ab586adaab459749945e6e69ac5c
BLAKE2b-256 c4526f600b06981900eab6fd5b65f03587002744c0cac30595162f0d1bd3dae7

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.8.0-cp37-cp37m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: pantsbuild.pants-2.8.0-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 60.1 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for pantsbuild.pants-2.8.0-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a75d69c8fcc35d2d34b24d1e228213ba14aa4aa6e68841693e11bca419500c8b
MD5 134810eef64f76142f43447915fbf9b8
BLAKE2b-256 2584ed3a3e2c9a526ec77a21ebc894fb546055a07fce2e042836dad13678f9f7

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.8.0-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: pantsbuild.pants-2.8.0-cp37-cp37m-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 9.5 MB
  • Tags: CPython 3.7m, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for pantsbuild.pants-2.8.0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 a332485ffd873152f30516e3240db92b7b82c5e1f0b486e81e51278e17a630b5
MD5 919d2fb214a15273f296f6688a8f815b
BLAKE2b-256 5a014d42a341379b882689b7225f865da33dcf54ce963cee51088e2b5f400a3a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page