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.

The latest documentation can be found at pantsbuild <>_.

2.7.x Stable Releases

2.7.1 (Oct 27, 2021)

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

2.7.1rc1 (Oct 11, 2021)

User API Changes

  • Add [mypy].extra_type_stubs (Cherry-pick of #13180) (#13211)

Bug fixes

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

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

  • Do not change working directory when extracting archives (cherrypick of #12497 and #13077) (#13159)

2.7.1rc0 (Oct 04, 2021)

Bug fixes

  • Upgrade to Pex 2.1.51. (#13098) (Cherry picks of 513647c1 b1d7ab9d) (#13102)

  • Upgrade to Pex 2.1.50 and leverage packed layout. (Cherry picks of 433a4dd 0d36002 7ba06a5) (#13078)

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

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

2.7.0 (Sep 24, 2021)

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

2.7.0rc5 (Sep 22, 2021)

Bug fixes

  • Fix case sensitivity of module_mapping for python_requirements and poetry_requirements (Cherry-pick of #12980) (#12981)

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

2.7.0rc4 (Sep 17, 2021)

Plugin API Changes

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

Bug fixes

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


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

2.7.0rc3 (Sep 10, 2021)

User API Changes

  • Add version to lockfile metadata headers (cherry-pick of #12788) (#12816)

Bug fixes

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

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


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

2.7.0rc2 (Sep 05, 2021)

Bug fixes

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

2.7.0rc1 (Sep 01, 2021)

Bug fixes

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

  • Add specific and actionable instructions to stale lockfile errors (cherrypick of #12699). (#12717)

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

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

2.7.0rc0 (Aug 31, 2021)

New Features

  • Add [tool].lockfile (e.g. [black].lockfile) for Python tools and activate ./pants generate-lockfiles by default (#12684)

  • Add --generate-lockfiles-resolve to allow generating for only certain tools (#12676)

  • Add [generate-lockfiles].custom_command (#12687)

  • Add experimental Docker build rules. (#12467)

User API Changes

  • Use Pants's default tool lockfiles by default for Python tools like Black, Pytest, and Flake8 (#12689)

  • Set [python-setup].invalid_lockfile_behavior to error by default (#12686)

  • Bump default for pytest-cov ([pytest].extra_requirements) and [coverage-py].version so both use coverage 5.5 (#12690)

  • Pin GitPython==3.1.18 by default with Bandit to ensure yanked release isn't used in lockfile generation (#12691)

  • Stop pinning stevedore<3 by default for Bandit (#12681)

  • Stop installing setuptools by default with Black, Flake8, Isort, and Yapf (#12673)

  • Stop using [python-setup].requirements_constraints when installing tools like Black and MyPy (#12639)

  • Default to my-dep-stubs and stubs-my-dep being third-party type stubs (#12598)

  • Type stubs should be registered as normal requirements, not in [mypy].extra_requirements (#12597)

Plugin API Changes

  • Support indivisible Sources fields (#12685)

  • Render EngineAware parameters in cycle errors from Graph. (#12668)

  • Split PexRequirements into three unioned types (#12644)

  • Add __repr__ impl for PySnapshot (#12622)

  • Remove the rationale field from BashBinaryRequest. (#12624)

Bug fixes

  • The pex_binary "venv" mode now sees bin scripts. (#12664)

  • Fix UI rendering when multiple tasks have the same label. (#12659)

  • tailor: do not append comma to kwarg with empty tuple (#12653)

  • Fix FindBinary when which is discoverable on $PATH on macOS (#12581)

  • Fix coloring of stderr logs with pantsd (#12585)


  • Decompose requirements pexes (#12675)


  • Switch log warning rendering to yellow. (#12596)

  • Align Enriched*Result colors, sigils, and log levels. (#12645)

  • Fix Toolchain plugin being included in generated reference docs (#12642)

2.7.0.dev4 (Aug 15, 2021)

New Features

  • Add additional Google Cloud libraries to dependency inference's default module mapping (#12553)

  • Validate that pytest-cov is installed when [test].use_coverage is set (#12534)

User API Changes

  • Deprecate --pants-supportdir, rename --engine-visualize-to, and fix help for --loop. (#12558)

  • Change the PythonProtobufMypyPlugin option scope. (#12525)

Plugin API Changes

  • Upgrade packaging from 20.9 to 21.0 (#12561)

  • Allow newer versions of setuptools and wheel. (#12555)

  • Deprecate an options scope with underscores. (#12532)

  • Remove TestResult.skip() in favor of TestFieldSet.opt_out() (#12516)

  • Finally get rid of Optionable entirely. (#12538)

Bug fixes

  • Fix shfmt and --test-open-coverage to handle CPU architecture Platform changes (#12546)

  • Fix asdf directory lookup. (#12528)

  • Fix shlexing of passthrough args. (#12547)

  • pyenv should fall back to $HOME/.pyenv (#12527)


  • Stream files into the local store while capturing them (#12563)

  • use REAPI batch API for small blob writes (#12537)

  • add capabilties cache for remote store client (#12522)

2.7.0.dev3 (Aug 06, 2021)

New Features

  • Add skip_tests field to python_tests to facilitate incremental migrations (#12510)

  • Adds support for Poetry group dependencies (#12492)

  • Tailor pex_binary targets for entry points. (#12478)

User API Changes

  • Add to default module mapping: Django extensions, Google Cloud, Pillow, and python-dotenv (#12506)

Plugin API Changes

  • Refactor Pex working directory handling. (#12479)

Bug fixes

  • Make the pantsd crash error message more precise. (#12512)

  • Resolve plugins using the PEX --python option. (#12500)

  • Shield isolated-Sessions / StreamingWorkunitHandlers from Ctrl+C. (#12483)

  • Fix default coverage collection. (#12477)


  • Don't resolve constraints file / lockfile if no 3rd-party requirements used (#12488)

2.7.0.dev2 (Jul 30, 2021)

New Features

  • Provide a peek goal to easily view BUILD metadata from command line (#11347)

  • Add entry_points field to python_distribution (#11872)

  • Add hadolint to lint Docker files (#12426)

  • Add experimental Docker target type and tailor (#12431)

  • Support pex_binary addresses in provides=setup_py(entry_points) field (#12414)

  • Add option for async completion of StreamingWorkunitHandlers, disable by default in containers (#12392)

  • Dependency inference for pex_binary and python_awslambda can disambiguate ambiguous modules based on file paths (#12326)

User API Changes

  • Deprecate [pytest].pytest_plugins in favor of [pytest].extra_requirements (#12450)

  • Deprecate setup_py().with_binaries() in favor of entry_points field (#12413)

  • Add instruction set architecture awareness to platforms and --url-platform-mapping options (#12367)

  • Add [python-setup].interpreter_versions_universe to ensure Pants works robustly with future Python interpreters (#12379)

  • Upgrade to Lambdex 0.1.5. (#12461)

  • Upgrade to Pex 2.1.44. (#12342)

Bug fixes

  • More robust support for Poetry dependency attributes (markers, andextras) (#12323)

  • Mark workunits blocked, and skip rendering completed workunits (#12369)


  • Do not upload Action inputs for remote cache writes. (#12443)

  • Skip preparation of workunit log messages which will never be rendered. (#12396)


  • Clarify when we are subsetting the lockfile for 3rdparty dependencies (#12435)

  • Add counters for blob bytes uploaded/downloaded to/from CAS (#12471)

  • Add cache and runtime metadata to Process workunits (#12469)

  • Fix the content type for Pants' wheel long_descriptions. (#12391)

2.7.0.dev1 (Jul 16, 2021)

New Features

  • Allow restricting which versions are valid for ExternalTools. (#12332)

  • Add yapf Python formatter (#12317)

  • Add ASDF support to interpreter-search-paths (#12028)

Plugin API Changes

  • Validate option default values to be of correct type. (#12331)

Bug fixes

  • Do not leak subsystems as goals to the command line interface (#12337)

  • Fix anonymous telemetry logging. (#12340)

  • Fixup incorrect platform help message. (#12320)


  • Improve wording for pex_binary platforms field help (#12304)

2.7.0.dev0 (Jul 09, 2021)

New Features

  • Add skimage module mapping for dependency inference (#12301)

  • Add experimental terraform plugin with fmt and lint rules (#11973)

  • Add support for MyPy report files (#12271)

  • Support running tailor on subdirs. (#12262)

  • Support building dists from preexisting (#12250)

User API Changes

  • Don't tailor a python_library for a solitary (#12288)

  • Apply a concurrency limit to remote store/cache/execution gRPC requests (#12256)

Bug fixes

  • Fix poetry_requirements: ignore internal projects. (#12280)

  • Fix poetry_requirements handling of python. (#12278)

  • Do not use [python-setup].resolve_all_constraints when using platforms (#12268)

  • Hotfix for poetry_requirements not being recognized as a macro in build files (#12263)

  • Include experimental Go backends in pantsbuild.pants (#12290)


  • Improve error for out-of-line Gets. (#12305)

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

Supported by

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