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

pantsbuild.pants-2.17.0a1-cp39-cp39-macosx_11_0_arm64.whl (13.4 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

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

Uploaded CPython 3.9 macOS 10.15+ x86-64

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

Uploaded CPython 3.8 macOS 10.15+ x86-64

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

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0a1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1ee2092d79179988e8efe95d079c53729a128cd04469bd5d4b121393f5ad26bf
MD5 739026e34b459197730f7426e3e0103d
BLAKE2b-256 c603434ca32d3c1f93f68261d4994a4aec2801eec103a1cccf2a66d78f8bcddf

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0a1-cp39-cp39-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 216664c1c28d6ae728e804106254d3dd0365975b6d0b80668ac2766d1a5b6753
MD5 a6e60479fd3bd822eaf134ae3a656623
BLAKE2b-256 e7fdd5d071d99840a211d186180c5011f0587d222f65447ed57222ab83dc0a1a

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0a1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7f37900915c79c96d1cdc3a9777f40df7b1be3845a0ea3b68dca754d5bc545d0
MD5 b54480bda85b6df8bbd6a653ae6cc1d7
BLAKE2b-256 02254394d3fb6eed5cdeb5d026c7ed2ce7aace6a54e305a77bab626122c693ad

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0a1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6147dccb71bcfa2a10433f39d06e18029696a3e87b43f8ce6b16e088829f306e
MD5 6e29f3e22bf9d300d4194db92bdbde7d
BLAKE2b-256 de605feb2ce087a2f33a1076ca55c0d192d8a3478c3fb52e8d05025a5ead0c75

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0a1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8ba8a021f1271f39a49498fd6351d9fdabb1b14cd4522f18c2bc5768e9b02e31
MD5 beafb087d326e14c72928f5de3572523
BLAKE2b-256 ff0967f65254eb78fb38aa13e6d5977aa3f9c3ade70b8ff49ff8803a5403386f

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0a1-cp38-cp38-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d89a617f5bc298a88586908760ab4c80ca9ce64c70dda5f324d400f7273ded8e
MD5 431f75d4b7b953fae319a6f616d60d43
BLAKE2b-256 f233a20b2145b8899acc20b0840149ac9c50d8c13895f38728c1c8d4201432d6

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0a1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e30400a0c9766e65b61cb8cfb3e93230ce695edb83b55d6dcb188f16ccc23021
MD5 d61f0b7b34433273b75cc377c2bef8d0
BLAKE2b-256 5bcf8f20f167a76c198777f27366cb6402cabe9b7672f300bce593ddf55e79ef

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0a1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b91199fce6ebdeb3f033179978aff1d2013f0888449957f22a0e5606fb0eb073
MD5 a42425b0c6ec29896b7ee7ba84334406
BLAKE2b-256 87cb820f62039af8a0bf3a6544d5c0a6ecd5fbfd00c2bce27ba05df2ecfd59df

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0a1-cp37-cp37m-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 157de711a6f2eb1fe34fb49eb0132d9c92f65d969929a8a0c3fd899dd8c6b159
MD5 24a5092e8b8e47763bc21d281f667c2d
BLAKE2b-256 0da91abc1d498a7267f853e1a233c97b8deaf3a84301a319f4d61d4dcb4cc07d

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0a1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 02f5e7a4aa5ab54f6631f13ac39b065481c4152f7fcab214f9d5baa40aa48158
MD5 e0ea90da53407336ab48fb3af0fdc04a
BLAKE2b-256 fd207642d9ef35016bcef8425aa59a3a5e2facd35abc9c2aa7dd6e91a1d83edc

See more details on using hashes here.

Provenance

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