Skip to main content

The ergonomic and hermetic software build system for Python, Java, Scala, Go, and Shell. Pants lets you fearlessly scale up your codebase.

Project description

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

The latest documentation can be found at pantsbuild.org.

2.17.x Release Series

2.17.0rc1 (Jun 08, 2023)

Plugin API Changes

  • Deprecate using PythonBinary (Cherry-pick of #19209) (#19222)

Bug Fixes

  • Improve handling of additional files in Helm unit tests (Cherry-pick of #19263) (#19268)

  • Add taplo to the release (Cherry-pick of #19258) (#19259)

  • Handle from foo import * wildcard imports in Rust dep inference parser (Cherry-pick of #19249) (#19255)

  • Fix secondary ownership warning semantics (Cherry-pick of #19191) (#19224)

2.17.0rc0 (Jun 01, 2023)

User API Changes

  • Deprecate the version/extra_requirements` options on python tools. (Cherry-pick of #19204) (#19211)

  • Terraform: Hashes for MacOS binaries have changed (Cherry-pick of #19004) (#19136)

  • Implement layout="zip" for Lambda/GCF, deprecating lambdex (Cherry-pick of #19076) (#19120)

  • Deprecate [mypy].extra_type_stubs and its lockfile. (Cherry-pick of #19084) (#19087)

  • Bring the tool --export option deprecation forward. (Cherry-pick of #19079) (#19083)

Bug Fixes

  • Discover Scala REPL main class and coordinates (Cherry-pick of #19189) (#19203)

  • Scrub the Pyenv install dir before attempting an install. (Cherry-pick of #19193) (#19197)

  • Avoid extra . in from .. import parent imports in Rust Python dep inference (Cherry-pick of #19175) (#19177)

  • Don't try and garbage collect tempfiles (Cherry-pick of #19103) (#19113)

  • If a shebang already exists when adding a preamble, preserve it. (Cherry-pick of #19133) (#19138)

  • Workaround botocore bug in S3 URL Handler backend (Cherry-pick of #19056) (#19111)

Documentation

  • Add tobni to Maintainers (Cherry-pick of #19195) (#19207)

  • Adjust FaaS docs for layout = "zip" (Cherry-pick of #19180) (#19198)

  • Add botocore-a-la-carte reference to s3 URL Handler (Cherry-pick of #19055) (#19109)

  • add bazel-remote to list of compatible remote caches (Cherry-pick of #19041) (#19115)

  • Fix docs link to pants_from_sources script. (Cherry-pick of #19088) (#19091)

2.17.0a1 (May 19, 2023)

Due to infrastructure issues, 2.17.0a1 is a second attempt at publishing 2.17.0a0.

2.17.0a0 (May 18, 2023)

NOTE: 2.17.0a0 was not released to PyPI due to infrastructure issues.

New Features

  • Add a workunit logging plugin (#18984)

  • javascript: Add yarn@v1 support (#18928)

  • javascript: Support Node.js subpath imports (#18934)

  • Add Taplo toml formatter (#18865)

  • Include the Pants native client in released wheels (#18957)

  • Extract Python dependencies in an intrinsic (#18854)

User API Changes

  • Do not publish wheels for all SHAs, and publish to PyPI from Github Actions. (#19028)

  • Support Python requirement target addrs in tool requirements. (#19014)

  • javascript: Add an explicit npm_distribution target instead of coupling to node_package (#18925)

  • Shorten the deprecation for export without --resolve. (#19000)

  • Upgrade Pex to 2.1.137. (#19003)

  • Remove the underlying implementation of anonymous-telemetry (#18952)

Plugin API Changes

  • Port Django migrations inference away from PythonDependencyVisitorRequest (#19008)

  • fmtrequest -> abstractfmtrequest (#18935)

Bug Fixes

  • Use {bin_name()} run as $0 in run_shell_command (#19020)

  • Make DigestSubset symlink-aware (#18963)

  • javascript: Do not add literal {chroot} to pnpm cache path (#18921)

Documentation

  • Clarify how to set $0 properly in run_in_shell_command (#19019)

  • Docs tweaks for 2.16.x (#19009)

  • Fix example first_party_dependency_version_scheme in docs (#18993)

2.17.0.dev5 (May 08, 2023)

New Features

  • javascript: Implement dependency inference opt-out and improve resillience (#18931)

  • javascript: Add support for the pnpm package manager (#18864)

  • Eagerly clean running nodes rather than interrupting them. (#18855)

  • javascript: Nodejs tests batch support (#18742)

  • New API type: CurrentExecutingGoals. (#18788)

User API Changes

  • javascript: Support package goal in node_build_script target (#18926)

  • Deprecate running Pants outside scie-pants. (#18833)

  • Upgrade Pex to 2.1.135. (#18876)

Plugin API Changes

  • Remove redundant PythonToolBase/JvmToolBase features. (#18805)

Bug Fixes

  • Ensure packaged artefacts are fully replaced in dist/ (#18930)

  • Use a set when calculating resolve names (#18939)

  • Use a set when calculating resolve names (#18939)

  • javascript: Handle package.json placed at the root of the repository (#18919)

  • Actually run deprecated targets fixer (#18860)

  • Remove existing entry if any when materialising symlink (#18873)

  • Ensure non-ambiguous args/env vars injection into PEXes (#18861)

  • Handle workdir="."/default properly in run_shell_command (#18840)

  • Write adhoc_tool(stdout/stderr="...") relative to workdir, support absolute paths (#18814)

  • Patch StreamingWorkunitContext.get_expanded_specs(). (#18713)

  • help backends: Only list enabled experimental backends unless advanced help. (#18821)

  • Use build root as workdir for shell_command(workdir="") (#18813)

  • Include pants.backend.url_handlers.s3 in pants distribution. (#18826)

Performance

  • Optimize Target and FieldSet operations (#18917)

  • Triage some noqa: PNT30 await-in-loops (#18831)

Documentation

  • Update the identity of the response team for CoC violation reporting. (#16410)

  • Fix adhoc output_... example, document run_shell_command workdir changes (#18894)

  • Add missing backtick in help string (#18907)

  • Add Salesforce to the users list (#18891)

  • update troubleshooting document about self-hosted action runner (#18900)

  • Credit the Works on ARM program for our CI resources. (#18892)

  • feat: update installation.md (#18836)

  • Remove reference to readme.com as the way to edit documentation (#18863)

  • Fix library name typo in third party example (#18862)

  • Update mypy and pytest documentation to refer to install_from_resolve (#18791)

  • Include symbols as topic in usage help. (#18825)

  • docs: reorder contributor steps, rustup is required for git hooks install to work smoothly (#18828)

2.17.0.dev4 (Apr 23, 2023)

New Features

  • javascript: Manage npm version with corepack (#18748)

  • python_distribution editable installs in exports (#18639)

User API Changes

  • Default to using the entire tool lockfile. (#18793)

  • Upgrade Pex to 2.1.134. (#18785)

  • Use the resolve's ICs for tools. (#18776)

  • Use Self backport in BinaryPath factory method. (#18763)

  • Deprecate "Secondary Ownership" semantics (#18737)

  • Expand versions range for ruff + upgrade it (#18707)

Plugin API Changes

  • Allow BinaryPaths to close over their type. (#18760)

  • Set a central default ICs for tools. (#18714)

Bug Fixes

  • The OverridesField.compute_value() must return a hashable value. (#18787)

  • Dedup graph errors. (#18770)

  • Flush metadata to disk before renaming immutable store files (#18768)

  • Clear FSDB materialization cache when removeing a file (#18747)

  • Use address as stable key when batching field sets in lint/test (#18725)

  • Fix repr for Fields that don't define default. (#18719)

  • Add ruff lint rules (#18716)

  • javascript: Use binary shims in nodejs sandboxes (#18682)

Documentation

  • Improve error location for invalid targets/target fields. (#18366)

  • Add info on how to configure Docker Desktop for using docker_environment (#18786)

  • Update linter documentation to refer to install_from_resolve (#18781)

  • docs: Fix typo on requirements-overrides code snippet (#18750)

  • Edit Python publishing docs for clarity. (#18718)

2.17.0.dev3 (Apr 10, 2023)

New Features

  • Helm: Add support for DNS lookups in Chart templates (#18670)

  • Include global Git ignore file and .git/info/exclude in pants_ignore to ignore for file watching (#18649)

User API Changes

  • Remove deprecated default ICs. (#18627)

Plugin API Changes

  • Move/Rename: goals/setup_py.py -> {util_rules,goals}/package_dists.py + subsystems/setup_py_generation.py (#18702)

  • Deprecate some Request types in favor of Get() with only one arg (#18655)

  • Add support for Get(MyType) syntax with no input args (#18648)

Bug fixes

  • Adds a fully-qualified path to a Python interpreter for pex_binary RunRequests (#18699)

  • Remove implicit conversion from std::io::Error to StoreError (#18696)

  • Add timeout to remote store calls, and adjust name of cache timeout. (#18695)

  • Makes adhoc_tool actually respect the extra_env_vars field; adds tests (#18692)

  • doc: Describe relevant error modes during rule compilation (#18663)

  • Bump minimum supported version of Pex to v2.1.129. (#18678)

  • Fix JVM resource JAR creation on older Mac OSes (#18673)

  • javascript: Do not read none mapped package.json files in javascript rules (#18523)

Documentation

  • Add PEP 621 pyproject.toml file docs (#18672)

  • Document AWS CDK issue that multiple users have encountered. (#18656)

  • Error when goals used without relevant backends activated (#18420)

  • Improve lockfile consumption error message. (#18638)

  • Remove a python-specific tip from the general prereqs page. (#18637)

  • Make UUID message clearer (#18561)

2.17.0.dev2 (Mar 31, 2023)

New Features

  • javascript: Test goal with package manager installed test runner support (#18554)

  • expose PANTS_VERSION and make it string-comparable (#18573)

User API Changes

  • Upgrade Pex to 2.1.131. (#18626)

Bug fixes

  • Ensure that sandboxed processes exit before their sandboxes are cleaned up (#18632)

  • Plumb entire lockfile/internal only code through create_pex_from_targets (#18622)

  • narrow pex_binary files warning (#18619)

  • Fix PexPEX invocations (#18610)

  • Improve debug information for docker auth, and expose an environment variable. (#18599)

Performance

  • Only materialize immutable files once per process (#18600)

Documentation

  • Fix a string that should have been an f-string (#18608)

  • Fix ./pants -> pants in some docs and help strings. (#18596)

2.17.0.dev1 (Mar 24, 2023)

New Features

  • engine: add an option to clear the destination directory when writing digest to disk (#18534)

  • javascript: NodeJS bootstrapping via binary paths, PATH, asdf or nvm (#18520)

  • javascript: Initial NPM support (#18326)

  • Always provide Python-for-Pants-scripts (#18433)

User API Changes

  • Upgrade Pex to 2.1.130. (#18576)

  • Deprecate old-style custom tool lockfiles. (#18494)

  • Let a user resolve shadow a tool lockfile of the same name (#18481)

Bug fixes

  • Ensure that a symlinked exported venv exists and is valid. (#18575)

  • Fail fast for attempts to use test --debug with a docker environment (#18560)

  • Declare ruff outputs as files. (#18551)

  • Add support for Docker registry auth (#18541)

  • Fix Poetry req synthesis for URLs with markers. (#18535)

  • Re-enable hardlinking using fclonefileat on macOS. (#18501)

Performance

  • Materialize "large" files in a new store location and hardlink them in sandboxes (#18153)

  • Finish parallelizing materialization of Process inputs (#18469)

Documentation

  • First pass at adhoc_tool documentation (#18531)

  • Add Tobias Nilsson to team page (#18571)

  • docs: fix an f-string in help (#18539)

  • Clarify that experimental_ shell functions are deprecated and replaced (#18529)

  • Update docs on running pants from sources with scie-pants. (#18513)

  • Add ExoFlare to user list. (#18496)

  • Fix malformed pantsbuild/example-python link in documentation (#18484)

  • update scie-jump cache directory reference (#18485)

  • Expand lockfile documentation to its own page. (#18471)

2.17.0.dev0 (Mar 10, 2023)

New Features

  • Expose environment information on process metadata (#18458)

  • Support running pants from anywhere in the project. (#18412)

User API Changes

  • Audit and update requirements for Python tools. (#18431)

  • Upgrade Pex to 2.1.128. (#18453)

Bug fixes

  • Preserve environment variables in pantsd to allow Docker auth. (#18465)

  • Only expose the equiv of from typing import * in prelude files (#18452)

  • Support type hints in prelude files. (#18442)

  • Synthesized lockfile targets should never err on missing lockfiles. (#18406)

  • Fixes to visualisations for xdot (#18421)

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.17.0rc1-cp39-cp39-macosx_11_0_arm64.whl (13.5 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pantsbuild.pants-2.17.0rc1-cp39-cp39-macosx_10_15_x86_64.whl (13.7 MB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

pantsbuild.pants-2.17.0rc1-cp38-cp38-macosx_10_15_x86_64.whl (13.7 MB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

pantsbuild.pants-2.17.0rc1-cp37-cp37m-macosx_10_15_x86_64.whl (13.7 MB view details)

Uploaded CPython 3.7mmacOS 10.15+ x86-64

File details

Details for the file pantsbuild.pants-2.17.0rc1-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a78f1acd7dfe0c3a964c67a086728a13399bee05af8a9882ce734fedb55e7328
MD5 aafeb151ce8496249b126eabf8718453
BLAKE2b-256 e97521bdca1cc37f5d7eec0403735374b52c7d07f86981b4a4bdf7ef35d1e3c4

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.17.0rc1-cp39-cp39-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc1-cp39-cp39-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8ea258839b770b330179b0176db7c37708416de315f4f20ab05a0f77461b32e2
MD5 f8f01f54215a4929affe3db46eef35ed
BLAKE2b-256 9d1ce8ed2cf98b3c331f254ac2735f1f4512072c0772371d95f3e8cc33ec300e

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.17.0rc1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d9399c2212514db3f20c403d3c7ac3462b4bec77e13891825835d4fa911c8644
MD5 9d78c00abeefb10085892787140c9cd8
BLAKE2b-256 be466a5acbcbe962c06204f02260c4856742f42b22260ddfa7222d991ff648e8

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.17.0rc1-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 352284d62f92bad09253e0f0cb1045e3c75b98e27f581a920982a9d82be6355c
MD5 2525a5ce3022efa23f2d1ad5dfc3c02a
BLAKE2b-256 493a1425b893efafd371e25472b438ea40a2eb5379e2bdf0a801621cf27dff36

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.17.0rc1-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae159f2a6e858a28254cd1484d5db6bfbbcdddaaeb97602ba1910ba6eb906d55
MD5 08ff7254f72e6364f784cacfc7598720
BLAKE2b-256 89175559779ca7b9445835d4761705a01a6a2c2aae8ac478fdd1d4077533ec60

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.17.0rc1-cp38-cp38-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc1-cp38-cp38-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8ced22124f7c34eb0748cdb1226681d6e1e74b138f8e986e1e5834e4d5d283b7
MD5 bac16562f6ca1a575c3e2950a2cfcef5
BLAKE2b-256 b594c957f62cc03c2cb2d95053239224eee2e93a303c624e8d5a995c33b8bed9

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.17.0rc1-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3a1988b72de25bac30e059c17a9f0b6082f311539caedeccf0ef812b1038fefa
MD5 0b8bd1b6ee4703521a4dd54b9fb59bf2
BLAKE2b-256 5b30433206b3a7178b0897587f50025d286144ac48599d0557bc7a5c32278436

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6348fb678bbac350e30e735f4021fb047915308fdf3a6adaaf9b90fad1a7f717
MD5 c4e899883bcfc886b0b6eb4d641464a5
BLAKE2b-256 29b679f81296880a11089df2b1ce54ad27ce98fcd0b3c5b26e26b1a6b70c85c2

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.17.0rc1-cp37-cp37m-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc1-cp37-cp37m-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8b6b614c190b0e8cdb059b3faee76ecb55f738d65b1439cebcae81d55760931c
MD5 264f0e85a15a22c63d47e1430b887224
BLAKE2b-256 c306b643a674b86d1376cc8957d12331c28ac6207eca22f629ba7454380aeb4f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5316d2a5275348ad4363b36d80a7622d9a0e9c994c973e8b76cb7e01a2f2d67d
MD5 fbc6b53e21dea52f7212a9da52d8fe24
BLAKE2b-256 c17038fa31efa6b2006b09f6fcc2ed86dc96b9776520f3866151fddbb7a07d6f

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