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

pantsbuild.pants-2.17.0rc0-cp39-cp39-macosx_11_0_arm64.whl (13.5 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pantsbuild.pants-2.17.0rc0-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.0rc0-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.0rc0-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.0rc0-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 96e0eb66a990c9f9f264df351b814a6a61b98bf0dd4f0660be6664c196cfc3c2
MD5 3571239712fe849fb2ebb2132e8d3c5c
BLAKE2b-256 904d83d52fa91638782773894a2e316447c755802cba83986d425002926bb1aa

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc0-cp39-cp39-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a0bddbc9905460c43dbc240bd1ba58f385fe31c0e1889703aa31353588ad3a88
MD5 698dd01d64b103c454f6316d6e7f0f1b
BLAKE2b-256 ae18d3ac200d656ed3b585b1220026135f7a913c7fae1be4ef09e78ba8a891ad

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7e55630fa7cb70a3441f5d69119703fad58d4cd6704dfe1dae8f53b549797736
MD5 11ac97bd4f01c912114545a0b81641f6
BLAKE2b-256 f7802397e4981385477ac0fb8c253ceb6b24eeac7131251f0690a551eebdba07

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 1f49713bf945f9f37e34a11322eb89f92cd45446c2919a8c9470195ce423c8bd
MD5 872083f118900536d81bd3f8d672c31b
BLAKE2b-256 0fe7467193c3d7b42e130ca229b781b30fb172c1f3a33d347ee4b936d1151dee

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 173953e06ea3fc4f5fd7fa4b992cdcf5f7fb6d509e3302cee5ca7056a96db83a
MD5 ab95427d87824a1e95d927a2ec2973fb
BLAKE2b-256 463eb0267152231401b78d7a8072e5e9c593879ab34c88612d85559926972242

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc0-cp38-cp38-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e205841f522891452c0d984d8b00ba8fb1ed3a23f900c39e236b99f33efdc39d
MD5 1aa71d40560dd4b3d70940fc59b47de3
BLAKE2b-256 6074d89b5097eea6d8862eba112a9e755300624c6a525915b35f4298f0557c02

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c6cc9caed00c23582c8ce860e615859a32145ce72088f03253bd320f6caa17ae
MD5 ec0561948bd3eca8cc0392b9b447b852
BLAKE2b-256 ed57fbfdbb2ef2204c2b896bdd7fc162ff57c4e9a0c46f2b6d4067ec350df91a

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc0-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d1b612148727312391a787279b004023de343d2feb018a1fdcceb4656df44fd6
MD5 a03a8a2df9ba3cd409b509ebb2a0d109
BLAKE2b-256 66d1b545d8bc9ce9e102002c5d3306280af73fcd7148d9533256a5203d1a4510

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc0-cp37-cp37m-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e89cbdaf0b7877d281a06bf472c304a8c518fb41994faabdbfb59a4e88eadfe0
MD5 e5065f290ef2aabab7dea9ecd0915968
BLAKE2b-256 463713e0ef1cba56a7fbdb15d8ceb6f5f2b97efa85ee771adcfeecd8e84fca80

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.17.0rc0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 05d341d8a2e572e922adcb409554719ff630ed6a30947e3f2d21b6209924e172
MD5 5989e85873a3d94cd63bba7944f91629
BLAKE2b-256 7f218db2482256eeeb63c204f8cddf9f1fd41738f0962f32a8acbef27d36e1ab

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