pantsbuild.pants


Namepantsbuild.pants JSON
Version 2.17.1 PyPI version JSON
download
home_pagehttps://github.com/pantsbuild/pants
SummaryThe ergonomic and hermetic software build system for Python, Java, Scala, Go, and Shell. Pants lets you fearlessly scale up your codebase.
upload_time2023-11-10 21:54:36
maintainer
docs_urlNone
author
requires_python>=3.7,<3.10
licenseApache License, Version 2.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Pants is an Apache2 licensed build tool written in Python and Rust.

The latest documentation can be found at [pantsbuild.org](https://www.pantsbuild.org/).


# 2.17.x Release Series

❗❗❗ This project is no longer being released via PyPI, and is instead released via GitHub Releases. See https://github.com/pantsbuild/pants/releases

## What's New

Individuals and companies can now [sponsor Pants financially](https://www.pantsbuild.org/docs/sponsorship).

Pants is an open-source project that is not owned or controlled by any one company or organization, and does incur some expenses. These expenses are managed by Pants Build, a non-profit that was established for this purpose. This non-profit's only source of revenue is sponsorship by individuals and companies that use Pants.

We offer [formal sponsorship tiers for companies](https://www.pantsbuild.org/docs/sponsorship), as well as individual sponsorships via [GitHub](https://github.com/sponsors/pantsbuild).

### Overall

The [`pants` launcher binary](https://github.com/pantsbuild/scie-pants) (aka `scie-pants`) is now the recommended way to run Pants.
Use of a `./pants` shell script in a repository is deprecated.

The `pants` launcher has numerous benefits, such as:

* automatically download and maintain a Python distribution for running Pants
* run `pants` from any directory within a repository and not just the build root
* far less overhead when starting commands (up to 4-5×)

See the [Pants  installation
instructions](https://www.pantsbuild.org/docs/installation) for additional information on how to migrate to the `pants` launcher binary.

Related to this, pants' distribution model is changing, and 2.17 will be the last version where:

* the `pantsbuild.pants` package is published to PyPI. Use [the `pants_requirements` target](https://www.pantsbuild.org/v2.17/docs/reference-pants_requirements) for installing the requisite packages for plugins, rather than `python_requirement` or similar.
* the universal (cross-platform) `pants` PEX is published to GitHub Releases. For future releases, smaller per-platform PEXes will be attached instead.

### Performance

As mentioned above, the new launcher binary reduces start-up overhead.

Large files are now cached as standalone files on disk, rather than stored directly in the internal database pants uses for cache (but still under the `~/.cache/pants/lmdb_store` directory). This improves performance for manipulating these files, especially when the cache directory and sandbox temporary directory are on the same file system and thus allow hard-linking.

### Backends

#### Python

Python dependencies are now analyzed via an intrinsic rule implemented in Rust for increased performance
over the prior Python implementation of the rule. See [#18854](https://github.com/pantsbuild/pants/pull/18854) for
discusion of the performance improvements.

Exported mutable virtualenvs can now include [PEP-660](https://peps.python.org/pep-0660/) editable installs of `python_distribution` targets.
To enable this feature for a resolve, add that resolve's name to the `[export].py_editables_in_resolves` list in `pants.toml`.
See [#18639](https://github.com/pantsbuild/pants/pull/18639) for details on Pants' PEP-660 implementation.

The default `pip` Pants uses under the hood has changed from 20.3.4 to 23.1.2. This newer `pip` has better dependency resolution performance in many cases, but may give different results than the earlier `pip`. Of course those results will still be correct in the sense that they will be compatible with your requirements and constraints.

The `python_awslambda` or `python_google_cloud_function` targets now support a new 'zip' layout, as recommended by the cloud vendors. This layout gives smaller packages and faster cold starts than the existing Lambdex layout, and will become the default in 2.18. See the docs [for `python_awslambda`](https://www.pantsbuild.org/v2.17/docs/awslambda-python#migrating-from-pants-216-and-earlier) and [for `python_google_cloud_function`](https://www.pantsbuild.org/v2.17/docs/google-cloud-function-python#migrating-from-pants-216-and-earlier).

The default value for the `[python].interpreter_constraints` option was deprecated in 2.16 and is now removed: `pants.toml` must provide this option. We recommend constraining to a single interpreter minor version if you can, for instance: `interpreter_constraints = ['==3.11.*']`. See [the Interpreter Compatibility docs for more details](https://www.pantsbuild.org/v2.17/docs/python-interpreter-compatibility).

#### Docker

The Docker backend now supports authenticating with registries via the `DOCKER_HOST`, `DOCKER_CONFIG` and `DOCKER_CERT_PATH` environment variables.

#### New: Javascript (experimental!)

Pants now has _very early_ experimental support for Javascript thanks to ongoing efforts by Tobias Nilsson and
Theo Ribeiro. Please note that the Javascript backend is still incomplete, is being actively developed, and _probably
has critical bugs_. Despite that, the Pants maintainers would appreciate any feedback from the community to help
guide our development efforts.

Supported goals are:

* `test`: Letting you run tests via runners installed with the package manager of your choice.
* `package` goal, either to run a customized `package.json` script that produces an artifact via `node_build_script`, or to pack a tarball for npm-registry publication via the `npm_distribution` target.
* `tailor`: Generates build file targets for `*.js`, `*.test.js` and `package.json` files.
* `generate-lockfile`: Creates the lockfile in the format matching a projects package manager.

The backend supports all package managers provided by `corepack`. `yarn@v2` and [PlugNPlay](https://yarnpkg.com/features/pnp) is not supported.

Enable the `pants.backend.experimental.javascript` backend to try out this support. Please [file issues](https://github.com/pantsbuild/pants/issues/new/choose) for any issues encountered, and follow along [the stabilization ticket on github](https://github.com/pantsbuild/pants/issues/19240).

#### New: Taplo TOML Formatter

Pants now supports the [Taplo TOML formatter](https://taplo.tamasfe.dev/). Enable the `pants.backend.tools.taplo`
backend to add this support.

### Plugin API Changes

Rules should now request output types which do not need an input type via the new one-argument form of `Get`. For
example, rules can now write `await Get(ChosenLocalEnvironmentName)`. Certain request types which exists only to
work around the previous lack of such synax are now deprecated in favor of the one argument `Get()` form.

The `PythonBinary` type is now deprecated, use `PythonBuildStandalone` instead.

----

## 2.17.1 (Nov 10, 2023)

The second stable release of the `2.17.x` series, with only documentation changes since the previous `rc`!

## 2.17.1rc3 (Oct 28, 2023)

### Bug Fixes

* Add best-effort limits on async file opens to reduce file handle counts (Cherry-pick of #20055) ([#20078](https://github.com/pantsbuild/pants/pull/20078))

## 2.17.1rc2 (Oct 17, 2023)

### Bug Fixes

* Fix algorithm for gathering Go build requests with coverage. (Cherry-pick of #20030) ([#20033](https://github.com/pantsbuild/pants/pull/20033))

* `docker_image`: The `image_tags` field must not be empty. (Cherry-pick of #19980) ([#19991](https://github.com/pantsbuild/pants/pull/19991))

### Documentation

* docs: Remove pants 2.15 example configuration. (Cherry-pick of #19995) ([#19997](https://github.com/pantsbuild/pants/pull/19997))

## 2.17.1rc1 (Oct 06, 2023)

### Bug Fixes

* Support using `__defaults__` in same BUILD file as environment targets. (Cherry-pick of #19446) ([#19969](https://github.com/pantsbuild/pants/pull/19969))

* Fetch shellcheck from vscode-shellcheck for M1 support (Cherry-pick of #19945) ([#19952](https://github.com/pantsbuild/pants/pull/19952))

* Immediately invalidate written files in write_digest (Cherry-pick of #19903) ([#19949](https://github.com/pantsbuild/pants/pull/19949))

* Fix "failed to create hardlink" error due to multiple mounts on the same device (Cherry-pick of #19894) ([#19914](https://github.com/pantsbuild/pants/pull/19914))

* Add missing `__init__.py` file for the `yamllint` backend. (Cherry-pick of #19899) ([#19906](https://github.com/pantsbuild/pants/pull/19906))

### Documentation

* Add Tom and Gautham to the Contributors page. (Cherry-pick of #19955) ([#19962](https://github.com/pantsbuild/pants/pull/19962))

* Remove references to PyPI/`pantsbuild.pants` wheels in docs (Cherry-pick of #19924) ([#19936](https://github.com/pantsbuild/pants/pull/19936))

## 2.17.1rc0 (Sep 20, 2023)

### New Features

* `with contextlib.suppress(ImportError)` weakens imports (Cherry-pick of #19293) ([#19789](https://github.com/pantsbuild/pants/pull/19789))

### Bug Fixes

* Port `pantsd` fingerprinting to Rust, and validate from native client (Cherry-pick of #19833) ([#19867](https://github.com/pantsbuild/pants/pull/19867))

* Add additional directories with register.py to pants bin deps (Cherry pick of #19848) ([#19855](https://github.com/pantsbuild/pants/pull/19855))

* Fix global report coverage for namespaced packages (Cherry-pick of #19821) ([#19837](https://github.com/pantsbuild/pants/pull/19837))

* Allow requesters of `TargetRootsToFieldSets` to turn off the secondary ownership warning (Cherry-pick of #19721) ([#19734](https://github.com/pantsbuild/pants/pull/19734))

### Performance

* Remove memoization of the `Paths` intrinsic to reduce memory usage (Cherry-pick of #19689) ([#19717](https://github.com/pantsbuild/pants/pull/19717))

### Documentation

* docs: remove Toolchain references (cherrypick #19508) ([#19828](https://github.com/pantsbuild/pants/pull/19828))

* docs: Improve the help string for the global option 'PANTS_CONCURRENT'. (Cherry-pick of #19822) ([#19824](https://github.com/pantsbuild/pants/pull/19824))

* Fix Documentation (InitialConfiguration) go backend (Cherry-pick of #19806) ([#19809](https://github.com/pantsbuild/pants/pull/19809))

* Fix typoed artifact name in Lambda docs (Cherry-pick of #19739) ([#19746](https://github.com/pantsbuild/pants/pull/19746))

* Update the docs changelog to include 2.17.x. (Cherry-pick of #19729) ([#19736](https://github.com/pantsbuild/pants/pull/19736))

## 2.17.0 (Aug 29, 2023)

The first stable release of the series, with no changes since the previous `rc`!

## 2.17.0rc5 (Aug 26, 2023)

### Bug Fixes

* Remove `tensorboard` mapping from our default mapping (Cherry-pick of #19673) ([#19677](https://github.com/pantsbuild/pants/pull/19677))

### Documentation

* Backport to 2.17: docs: set EnvironmentBehavior in plugin Goal examples (#19590) ([#19664](https://github.com/pantsbuild/pants/pull/19664))

## 2.17.0rc4 (Aug 23, 2023)

### User API Changes

* Require scie-pants 0.9.2 or newer, for new distribution model (Cherry-pick of #19654) ([#19655](https://github.com/pantsbuild/pants/pull/19655))

* Add Python 3.12 to the default interpreter universe (Cherry-pick of #19641) ([#19651](https://github.com/pantsbuild/pants/pull/19651))

### Bug Fixes

* Have Pants create the `immutable_inputs` base parent(s) (Cherry-pick of #19646) ([#19652](https://github.com/pantsbuild/pants/pull/19652))

* Use hardlinking when possible for mypy cache (Cherry-pick of #19633) ([#19650](https://github.com/pantsbuild/pants/pull/19650))

* Undo pyenv install marking files as RO (Cherry-pick of #19645) ([#19648](https://github.com/pantsbuild/pants/pull/19648))

* Make mypy cache move truly atomic (Cherry-pick of #19610) ([#19615](https://github.com/pantsbuild/pants/pull/19615))

* Use named cache for Docker-env PBS (Cherry-pick of #19611) ([#19616](https://github.com/pantsbuild/pants/pull/19616))

* Add path to cache key for Rust dep inference, for relative imports (cherry-pick of #19630) ([#19640](https://github.com/pantsbuild/pants/pull/19640))

### Documentation

* Backport to 2.17: Fix dead doc links (#19546) ([#19659](https://github.com/pantsbuild/pants/pull/19659))

* Additional mentions and tweaks in 2.17's "What's new" (Cherry-pick of #19629) ([#19642](https://github.com/pantsbuild/pants/pull/19642))

* docs: fix code examples for `setting-up-ide` and `interpreter-compatibility` docs (Cherry-pick of #19624) ([#19639](https://github.com/pantsbuild/pants/pull/19639))

* docs: fix markdown inconsistencies (Cherry pick of #19363) ([#19622](https://github.com/pantsbuild/pants/pull/19622))

* docs: add 2.16 entry to changelog (Cherry-pick of #19589) ([#19597](https://github.com/pantsbuild/pants/pull/19597))

## 2.17.0rc3 (Aug 13, 2023)

### User API Changes

* Upgrade the default pip to v23.1.2. (Cherry-pick of #19538) ([#19541](https://github.com/pantsbuild/pants/pull/19541))

### Bug Fixes

* Scala: support Enums in dependency inference (Cherry pick of #19588) ([#19593](https://github.com/pantsbuild/pants/pull/19593))

* Fix the new tool lockfile deprecation message. ([#19565](https://github.com/pantsbuild/pants/pull/19565))

* Fix golangci-lint runner script (Cherry-pick of #19015) ([#19473](https://github.com/pantsbuild/pants/pull/19473))

### Documentation

* Initial draft of What's New for v2.17.x (Cherry-pick of #19168) ([#19595](https://github.com/pantsbuild/pants/pull/19595))

* Add ruff, adjust pyugprade, autoflake in docs (Cherry-pick of #19555) ([#19576](https://github.com/pantsbuild/pants/pull/19576))

* Catch google artifact registry gotcha (Cherry-pick of #19568) ([#19570](https://github.com/pantsbuild/pants/pull/19570))

* Stop referring to ~/.cache/pants/setup in CI docs (Cherry-pick of #19554) ([#19561](https://github.com/pantsbuild/pants/pull/19561))

* Visibility: documentation fixes and clarifications. (Cherry-pick of #19438) ([#19494](https://github.com/pantsbuild/pants/pull/19494))

## 2.17.0rc2 (Jul 14, 2023)

### Bug Fixes

* Visibility: fix issue with using target type in verbose rule selector. (Cherry-pick of #19437) ([#19456](https://github.com/pantsbuild/pants/pull/19456))

* Use the "package_name" variable to fix an UnboundLocalError. (Cherry-pick of #19433) ([#19453](https://github.com/pantsbuild/pants/pull/19453))

* Fix helm documentation example (Cherry-pick of #19271) ([#19313](https://github.com/pantsbuild/pants/pull/19313))

### Documentation

* Tweak getting-help docs (Cherry-pick of #19418) ([#19419](https://github.com/pantsbuild/pants/pull/19419))

* Refine `run_shell_command` docs (Cherry-pick of #19413) ([#19421](https://github.com/pantsbuild/pants/pull/19421))

* Add a sponsorships page to the docsite. (Cherry-pick of #19412) ([#19416](https://github.com/pantsbuild/pants/pull/19416))

* Get doc titles from the in-repo markdown files (Cherry-pick of #19311) ([#19321](https://github.com/pantsbuild/pants/pull/19321))

* docs: layout tweak of caching info, remove toolchain :( and additional info about bazel-remote-cache (Cherry-pick of #19299) ([#19329](https://github.com/pantsbuild/pants/pull/19329))

## 2.17.0rc1 (Jun 08, 2023)

### Plugin API Changes

* Deprecate using `PythonBinary` (Cherry-pick of #19209) ([#19222](https://github.com/pantsbuild/pants/pull/19222))

### Bug Fixes

* Improve handling of additional files in Helm unit tests (Cherry-pick of #19263) ([#19268](https://github.com/pantsbuild/pants/pull/19268))

* Add taplo to the release (Cherry-pick of #19258) ([#19259](https://github.com/pantsbuild/pants/pull/19259))

* Handle from foo import * wildcard imports in Rust dep inference parser (Cherry-pick of #19249) ([#19255](https://github.com/pantsbuild/pants/pull/19255))

* Fix secondary ownership warning semantics (Cherry-pick of #19191) ([#19224](https://github.com/pantsbuild/pants/pull/19224))

## 2.17.0rc0 (Jun 01, 2023)

### User API Changes

* Deprecate the `version/extra_requirements` options on python tools. (Cherry-pick of #19204) ([#19211](https://github.com/pantsbuild/pants/pull/19211))

* Terraform: Hashes for MacOS binaries have changed (Cherry-pick of #19004) ([#19136](https://github.com/pantsbuild/pants/pull/19136))

* Implement layout="zip" for Lambda/GCF, deprecating lambdex (Cherry-pick of #19076) ([#19120](https://github.com/pantsbuild/pants/pull/19120))

* Deprecate `[mypy].extra_type_stubs` and its lockfile. (Cherry-pick of #19084) ([#19087](https://github.com/pantsbuild/pants/pull/19087))

* Bring the tool `--export` option deprecation forward. (Cherry-pick of #19079) ([#19083](https://github.com/pantsbuild/pants/pull/19083))

### Bug Fixes

* Discover Scala REPL main class and coordinates (Cherry-pick of #19189) ([#19203](https://github.com/pantsbuild/pants/pull/19203))

* Scrub the Pyenv install dir before attempting an install. (Cherry-pick of #19193) ([#19197](https://github.com/pantsbuild/pants/pull/19197))

* Avoid extra `.` in `from .. import` parent imports in Rust Python dep inference (Cherry-pick of #19175) ([#19177](https://github.com/pantsbuild/pants/pull/19177))

* Don't try and garbage collect tempfiles (Cherry-pick of #19103) ([#19113](https://github.com/pantsbuild/pants/pull/19113))

* If a shebang already exists when adding a preamble, preserve it. (Cherry-pick of #19133) ([#19138](https://github.com/pantsbuild/pants/pull/19138))

* Workaround `botocore` bug in S3 URL Handler backend (Cherry-pick of #19056) ([#19111](https://github.com/pantsbuild/pants/pull/19111))

### Documentation

* Add `tobni` to Maintainers (Cherry-pick of #19195) ([#19207](https://github.com/pantsbuild/pants/pull/19207))

* Adjust FaaS docs for `layout = "zip"` (Cherry-pick of #19180) ([#19198](https://github.com/pantsbuild/pants/pull/19198))

* Add `botocore-a-la-carte` reference to `s3` URL Handler (Cherry-pick of #19055) ([#19109](https://github.com/pantsbuild/pants/pull/19109))

* add bazel-remote to list of compatible remote caches (Cherry-pick of #19041) ([#19115](https://github.com/pantsbuild/pants/pull/19115))

* Fix docs link to `pants_from_sources` script. (Cherry-pick of #19088) ([#19091](https://github.com/pantsbuild/pants/pull/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](https://github.com/pantsbuild/pants/pull/18984))

* javascript: Add `yarn@v1` support ([#18928](https://github.com/pantsbuild/pants/pull/18928))

* javascript: Support Node.js subpath imports ([#18934](https://github.com/pantsbuild/pants/pull/18934))

* Add Taplo toml formatter ([#18865](https://github.com/pantsbuild/pants/pull/18865))

* Include the Pants native client in released wheels ([#18957](https://github.com/pantsbuild/pants/pull/18957))

* Extract Python dependencies in an intrinsic ([#18854](https://github.com/pantsbuild/pants/pull/18854))

### User API Changes

* Do not publish wheels for all SHAs, and publish to PyPI from Github Actions. ([#19028](https://github.com/pantsbuild/pants/pull/19028))

* Support Python requirement target addrs in tool requirements. ([#19014](https://github.com/pantsbuild/pants/pull/19014))

* javascript: Add an explicit `npm_distribution` target instead of coupling to `node_package` ([#18925](https://github.com/pantsbuild/pants/pull/18925))

* Shorten the deprecation for `export` without `--resolve`. ([#19000](https://github.com/pantsbuild/pants/pull/19000))

* Upgrade Pex to 2.1.137. ([#19003](https://github.com/pantsbuild/pants/pull/19003))

* Remove the underlying implementation of `anonymous-telemetry` ([#18952](https://github.com/pantsbuild/pants/pull/18952))

### Plugin API Changes

* Port Django migrations inference away from `PythonDependencyVisitorRequest` ([#19008](https://github.com/pantsbuild/pants/pull/19008))

* fmtrequest -> abstractfmtrequest ([#18935](https://github.com/pantsbuild/pants/pull/18935))

### Bug Fixes

* Use `{bin_name()} run` as `$0` in `run_shell_command` ([#19020](https://github.com/pantsbuild/pants/pull/19020))

* Make `DigestSubset` symlink-aware ([#18963](https://github.com/pantsbuild/pants/pull/18963))

* javascript: Do not add literal {chroot} to pnpm cache path ([#18921](https://github.com/pantsbuild/pants/pull/18921))

### Documentation

* Clarify how to set $0 properly in `run_in_shell_command` ([#19019](https://github.com/pantsbuild/pants/pull/19019))

* Docs tweaks for 2.16.x ([#19009](https://github.com/pantsbuild/pants/pull/19009))

* Fix example `first_party_dependency_version_scheme` in docs ([#18993](https://github.com/pantsbuild/pants/pull/18993))

## 2.17.0.dev5 (May 08, 2023)

### New Features

* javascript: Implement dependency inference opt-out and improve resillience ([#18931](https://github.com/pantsbuild/pants/pull/18931))

* javascript: Add support for the pnpm package manager ([#18864](https://github.com/pantsbuild/pants/pull/18864))

* Eagerly clean running nodes rather than interrupting them. ([#18855](https://github.com/pantsbuild/pants/pull/18855))

* javascript: Nodejs tests batch support ([#18742](https://github.com/pantsbuild/pants/pull/18742))

* New API type: `CurrentExecutingGoals`. ([#18788](https://github.com/pantsbuild/pants/pull/18788))

### User API Changes

* javascript: Support `package` goal in `node_build_script` target ([#18926](https://github.com/pantsbuild/pants/pull/18926))

* Deprecate running Pants outside scie-pants. ([#18833](https://github.com/pantsbuild/pants/pull/18833))

* Upgrade Pex to 2.1.135. ([#18876](https://github.com/pantsbuild/pants/pull/18876))

### Plugin API Changes

* Remove redundant PythonToolBase/JvmToolBase features. ([#18805](https://github.com/pantsbuild/pants/pull/18805))

### Bug Fixes

* Ensure packaged artefacts are fully replaced in dist/ ([#18930](https://github.com/pantsbuild/pants/pull/18930))

* Use a set when calculating resolve names ([#18939](https://github.com/pantsbuild/pants/pull/18939))

* Use a set when calculating resolve names ([#18939](https://github.com/pantsbuild/pants/pull/18939))

* javascript: Handle package.json placed at the root of the repository ([#18919](https://github.com/pantsbuild/pants/pull/18919))

* Actually run deprecated targets fixer ([#18860](https://github.com/pantsbuild/pants/pull/18860))

* Remove existing entry if any when materialising symlink ([#18873](https://github.com/pantsbuild/pants/pull/18873))

* Ensure non-ambiguous args/env vars injection into PEXes ([#18861](https://github.com/pantsbuild/pants/pull/18861))

* Handle workdir="."/default properly in run_shell_command ([#18840](https://github.com/pantsbuild/pants/pull/18840))

* Write adhoc_tool(stdout/stderr="...") relative to workdir, support absolute paths ([#18814](https://github.com/pantsbuild/pants/pull/18814))

* Patch `StreamingWorkunitContext.get_expanded_specs()`. ([#18713](https://github.com/pantsbuild/pants/pull/18713))

* help backends: Only list enabled experimental backends unless advanced help. ([#18821](https://github.com/pantsbuild/pants/pull/18821))

* Use build root as workdir for shell_command(workdir="") ([#18813](https://github.com/pantsbuild/pants/pull/18813))

* Include `pants.backend.url_handlers.s3` in pants distribution. ([#18826](https://github.com/pantsbuild/pants/pull/18826))

### Performance

* Optimize `Target` and `FieldSet` operations ([#18917](https://github.com/pantsbuild/pants/pull/18917))

* Triage some noqa: PNT30 await-in-loops ([#18831](https://github.com/pantsbuild/pants/pull/18831))

### Documentation

* Update the identity of the response team for CoC violation reporting. ([#16410](https://github.com/pantsbuild/pants/pull/16410))

* Fix adhoc output_... example, document run_shell_command workdir changes ([#18894](https://github.com/pantsbuild/pants/pull/18894))

* Add missing backtick in help string ([#18907](https://github.com/pantsbuild/pants/pull/18907))

* Add Salesforce to the users list ([#18891](https://github.com/pantsbuild/pants/pull/18891))

* update troubleshooting document about self-hosted action runner ([#18900](https://github.com/pantsbuild/pants/pull/18900))

* Credit the Works on ARM program for our CI resources. ([#18892](https://github.com/pantsbuild/pants/pull/18892))

* feat: update installation.md ([#18836](https://github.com/pantsbuild/pants/pull/18836))

* Remove reference to readme.com as the way to edit documentation ([#18863](https://github.com/pantsbuild/pants/pull/18863))

* Fix library name typo in third party example ([#18862](https://github.com/pantsbuild/pants/pull/18862))

* Update mypy and pytest documentation to refer to install_from_resolve ([#18791](https://github.com/pantsbuild/pants/pull/18791))

* Include `symbols` as topic in usage help. ([#18825](https://github.com/pantsbuild/pants/pull/18825))

* docs: reorder contributor steps, rustup is required for git hooks install to work smoothly ([#18828](https://github.com/pantsbuild/pants/pull/18828))

## 2.17.0.dev4 (Apr 23, 2023)

### New Features

* javascript: Manage `npm` version with corepack ([#18748](https://github.com/pantsbuild/pants/pull/18748))

* `python_distribution` editable installs in exports ([#18639](https://github.com/pantsbuild/pants/pull/18639))

### User API Changes

* Default to using the entire tool lockfile. ([#18793](https://github.com/pantsbuild/pants/pull/18793))

* Upgrade Pex to 2.1.134. ([#18785](https://github.com/pantsbuild/pants/pull/18785))

* Use the resolve's ICs for tools. ([#18776](https://github.com/pantsbuild/pants/pull/18776))

* Use Self backport in `BinaryPath` factory method. ([#18763](https://github.com/pantsbuild/pants/pull/18763))

* Deprecate "Secondary Ownership" semantics ([#18737](https://github.com/pantsbuild/pants/pull/18737))

* Expand versions range for `ruff` + upgrade it ([#18707](https://github.com/pantsbuild/pants/pull/18707))

### Plugin API Changes

* Allow `BinaryPaths` to close over their type. ([#18760](https://github.com/pantsbuild/pants/pull/18760))

* Set a central default ICs for tools. ([#18714](https://github.com/pantsbuild/pants/pull/18714))

### Bug Fixes

* The `OverridesField.compute_value()` must return a hashable value. ([#18787](https://github.com/pantsbuild/pants/pull/18787))

* Dedup graph errors. ([#18770](https://github.com/pantsbuild/pants/pull/18770))

* Flush metadata to disk before renaming immutable store files ([#18768](https://github.com/pantsbuild/pants/pull/18768))

* Clear FSDB materialization cache when `remove`ing a file ([#18747](https://github.com/pantsbuild/pants/pull/18747))

* Use address as stable key when batching field sets in `lint`/`test` ([#18725](https://github.com/pantsbuild/pants/pull/18725))

* Fix `repr` for `Field`s that don't define `default`. ([#18719](https://github.com/pantsbuild/pants/pull/18719))

* Add `ruff` lint rules ([#18716](https://github.com/pantsbuild/pants/pull/18716))

* javascript: Use binary shims in nodejs sandboxes ([#18682](https://github.com/pantsbuild/pants/pull/18682))

### Documentation

* Improve error location for invalid targets/target fields. ([#18366](https://github.com/pantsbuild/pants/pull/18366))

* Add info on how to configure Docker Desktop for using `docker_environment` ([#18786](https://github.com/pantsbuild/pants/pull/18786))

* Update linter documentation to refer to `install_from_resolve` ([#18781](https://github.com/pantsbuild/pants/pull/18781))

* docs: Fix typo on requirements-overrides code snippet ([#18750](https://github.com/pantsbuild/pants/pull/18750))

* Edit Python publishing docs for clarity. ([#18718](https://github.com/pantsbuild/pants/pull/18718))

## 2.17.0.dev3 (Apr 10, 2023)

### New Features

* Helm: Add support for DNS lookups in Chart templates ([#18670](https://github.com/pantsbuild/pants/pull/18670))

* Include global Git ignore file and `.git/info/exclude` in `pants_ignore` to ignore for file watching ([#18649](https://github.com/pantsbuild/pants/pull/18649))

### User API Changes

* Remove deprecated default ICs. ([#18627](https://github.com/pantsbuild/pants/pull/18627))

### Plugin API Changes

* Move/Rename: `goals/setup_py.py` -> `{util_rules,goals}/package_dists.py` + `subsystems/setup_py_generation.py` ([#18702](https://github.com/pantsbuild/pants/pull/18702))

* Deprecate some `Request` types in favor of `Get()` with only one arg ([#18655](https://github.com/pantsbuild/pants/pull/18655))

* Add support for `Get(MyType)` syntax with no input args ([#18648](https://github.com/pantsbuild/pants/pull/18648))

### Bug fixes

* Adds a fully-qualified path to a Python interpreter for `pex_binary` `RunRequest`s ([#18699](https://github.com/pantsbuild/pants/pull/18699))

* Remove implicit conversion from `std::io::Error` to `StoreError` ([#18696](https://github.com/pantsbuild/pants/pull/18696))

* Add timeout to remote store calls, and adjust name of cache timeout. ([#18695](https://github.com/pantsbuild/pants/pull/18695))

* Makes `adhoc_tool` actually respect the `extra_env_vars` field; adds tests ([#18692](https://github.com/pantsbuild/pants/pull/18692))

* doc: Describe relevant error modes during rule compilation ([#18663](https://github.com/pantsbuild/pants/pull/18663))

* Bump minimum supported version of Pex to v2.1.129. ([#18678](https://github.com/pantsbuild/pants/pull/18678))

* Fix JVM resource JAR creation on older Mac OSes ([#18673](https://github.com/pantsbuild/pants/pull/18673))

* javascript: Do not read none mapped package.json files in javascript rules ([#18523](https://github.com/pantsbuild/pants/pull/18523))

### Documentation

* Add PEP 621 pyproject.toml file docs ([#18672](https://github.com/pantsbuild/pants/pull/18672))

* Document AWS CDK issue that multiple users have encountered. ([#18656](https://github.com/pantsbuild/pants/pull/18656))

* Error when goals used without relevant backends activated ([#18420](https://github.com/pantsbuild/pants/pull/18420))

* Improve lockfile consumption error message. ([#18638](https://github.com/pantsbuild/pants/pull/18638))

* Remove a python-specific tip from the general prereqs page. ([#18637](https://github.com/pantsbuild/pants/pull/18637))

* Make UUID message clearer ([#18561](https://github.com/pantsbuild/pants/pull/18561))

## 2.17.0.dev2 (Mar 31, 2023)

### New Features

* javascript: Test goal with package manager installed test runner support ([#18554](https://github.com/pantsbuild/pants/pull/18554))

* expose PANTS_VERSION and make it string-comparable ([#18573](https://github.com/pantsbuild/pants/pull/18573))

### User API Changes

* Upgrade Pex to 2.1.131. ([#18626](https://github.com/pantsbuild/pants/pull/18626))

### Bug fixes

* Ensure that sandboxed processes exit before their sandboxes are cleaned up ([#18632](https://github.com/pantsbuild/pants/pull/18632))

* Plumb entire lockfile/internal only code through `create_pex_from_targets` ([#18622](https://github.com/pantsbuild/pants/pull/18622))

* narrow pex_binary files warning ([#18619](https://github.com/pantsbuild/pants/pull/18619))

* Fix PexPEX invocations ([#18610](https://github.com/pantsbuild/pants/pull/18610))

* Improve debug information for docker auth, and expose an environment variable. ([#18599](https://github.com/pantsbuild/pants/pull/18599))

### Performance

* Only materialize immutable files once per process ([#18600](https://github.com/pantsbuild/pants/pull/18600))

### Documentation

* Fix a string that should have been an f-string ([#18608](https://github.com/pantsbuild/pants/pull/18608))

* Fix `./pants` -> `pants` in some docs and help strings. ([#18596](https://github.com/pantsbuild/pants/pull/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](https://github.com/pantsbuild/pants/pull/18534))

* javascript: NodeJS bootstrapping via binary paths, PATH, asdf or nvm ([#18520](https://github.com/pantsbuild/pants/pull/18520))

* javascript: Initial NPM support ([#18326](https://github.com/pantsbuild/pants/pull/18326))

* Always provide Python-for-Pants-scripts ([#18433](https://github.com/pantsbuild/pants/pull/18433))

### User API Changes

* Upgrade Pex to 2.1.130. ([#18576](https://github.com/pantsbuild/pants/pull/18576))

* Deprecate old-style custom tool lockfiles. ([#18494](https://github.com/pantsbuild/pants/pull/18494))

* Let a user resolve shadow a tool lockfile of the same name ([#18481](https://github.com/pantsbuild/pants/pull/18481))

### Bug fixes

* Ensure that a symlinked exported venv exists and is valid. ([#18575](https://github.com/pantsbuild/pants/pull/18575))

* Fail fast for attempts to use `test --debug` with a docker environment ([#18560](https://github.com/pantsbuild/pants/pull/18560))

* Declare ruff outputs as files. ([#18551](https://github.com/pantsbuild/pants/pull/18551))

* Add support for Docker registry auth ([#18541](https://github.com/pantsbuild/pants/pull/18541))

* Fix Poetry req synthesis for URLs with markers. ([#18535](https://github.com/pantsbuild/pants/pull/18535))

* Re-enable hardlinking using `fclonefileat` on macOS. ([#18501](https://github.com/pantsbuild/pants/pull/18501))

### Performance

* Materialize "large" files in a new store location and hardlink them in sandboxes ([#18153](https://github.com/pantsbuild/pants/pull/18153))

* Finish parallelizing materialization of Process inputs ([#18469](https://github.com/pantsbuild/pants/pull/18469))

### Documentation

* First pass at `adhoc_tool` documentation ([#18531](https://github.com/pantsbuild/pants/pull/18531))

* Add Tobias Nilsson to team page ([#18571](https://github.com/pantsbuild/pants/pull/18571))

* docs: fix an f-string in help ([#18539](https://github.com/pantsbuild/pants/pull/18539))

* Clarify that `experimental_` shell functions are deprecated and replaced ([#18529](https://github.com/pantsbuild/pants/pull/18529))

* Update docs on running pants from sources with scie-pants. ([#18513](https://github.com/pantsbuild/pants/pull/18513))

* Add ExoFlare to user list. ([#18496](https://github.com/pantsbuild/pants/pull/18496))

* Fix malformed pantsbuild/example-python link in documentation ([#18484](https://github.com/pantsbuild/pants/pull/18484))

* update scie-jump cache directory reference ([#18485](https://github.com/pantsbuild/pants/pull/18485))

* Expand lockfile documentation to its own page. ([#18471](https://github.com/pantsbuild/pants/pull/18471))

## 2.17.0.dev0 (Mar 10, 2023)

### New Features

* Expose environment information on process metadata ([#18458](https://github.com/pantsbuild/pants/pull/18458))

* Support running `pants` from anywhere in the project. ([#18412](https://github.com/pantsbuild/pants/pull/18412))

### User API Changes

* Audit and update requirements for Python tools. ([#18431](https://github.com/pantsbuild/pants/pull/18431))

* Upgrade Pex to 2.1.128. ([#18453](https://github.com/pantsbuild/pants/pull/18453))

### Bug fixes

* Preserve environment variables in `pantsd` to allow Docker auth. ([#18465](https://github.com/pantsbuild/pants/pull/18465))

* Only expose the equiv of `from typing import *` in prelude files ([#18452](https://github.com/pantsbuild/pants/pull/18452))

* Support type hints in prelude files. ([#18442](https://github.com/pantsbuild/pants/pull/18442))

* Synthesized lockfile targets should never err on missing lockfiles. ([#18406](https://github.com/pantsbuild/pants/pull/18406))

* Fixes to visualisations for xdot ([#18421](https://github.com/pantsbuild/pants/pull/18421))

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/pantsbuild/pants",
    "name": "pantsbuild.pants",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7,<3.10",
    "maintainer_email": "",
    "keywords": "",
    "author": "",
    "author_email": "",
    "download_url": "",
    "platform": null,
    "description": "Pants is an Apache2 licensed build tool written in Python and Rust.\n\nThe latest documentation can be found at [pantsbuild.org](https://www.pantsbuild.org/).\n\n\n# 2.17.x Release Series\n\n\u2757\u2757\u2757 This project is no longer being released via PyPI, and is instead released via GitHub Releases. See https://github.com/pantsbuild/pants/releases\n\n## What's New\n\nIndividuals and companies can now [sponsor Pants financially](https://www.pantsbuild.org/docs/sponsorship).\n\nPants is an open-source project that is not owned or controlled by any one company or organization, and does incur some expenses. These expenses are managed by Pants Build, a non-profit that was established for this purpose. This non-profit's only source of revenue is sponsorship by individuals and companies that use Pants.\n\nWe offer [formal sponsorship tiers for companies](https://www.pantsbuild.org/docs/sponsorship), as well as individual sponsorships via [GitHub](https://github.com/sponsors/pantsbuild).\n\n### Overall\n\nThe [`pants` launcher binary](https://github.com/pantsbuild/scie-pants) (aka `scie-pants`) is now the recommended way to run Pants.\nUse of a `./pants` shell script in a repository is deprecated.\n\nThe `pants` launcher has numerous benefits, such as:\n\n* automatically download and maintain a Python distribution for running Pants\n* run `pants` from any directory within a repository and not just the build root\n* far less overhead when starting commands (up to 4-5\u00d7)\n\nSee the [Pants  installation\ninstructions](https://www.pantsbuild.org/docs/installation) for additional information on how to migrate to the `pants` launcher binary.\n\nRelated to this, pants' distribution model is changing, and 2.17 will be the last version where:\n\n* the `pantsbuild.pants` package is published to PyPI. Use [the `pants_requirements` target](https://www.pantsbuild.org/v2.17/docs/reference-pants_requirements) for installing the requisite packages for plugins, rather than `python_requirement` or similar.\n* the universal (cross-platform) `pants` PEX is published to GitHub Releases. For future releases, smaller per-platform PEXes will be attached instead.\n\n### Performance\n\nAs mentioned above, the new launcher binary reduces start-up overhead.\n\nLarge files are now cached as standalone files on disk, rather than stored directly in the internal database pants uses for cache (but still under the `~/.cache/pants/lmdb_store` directory). This improves performance for manipulating these files, especially when the cache directory and sandbox temporary directory are on the same file system and thus allow hard-linking.\n\n### Backends\n\n#### Python\n\nPython dependencies are now analyzed via an intrinsic rule implemented in Rust for increased performance\nover the prior Python implementation of the rule. See [#18854](https://github.com/pantsbuild/pants/pull/18854) for\ndiscusion of the performance improvements.\n\nExported mutable virtualenvs can now include [PEP-660](https://peps.python.org/pep-0660/) editable installs of `python_distribution` targets.\nTo enable this feature for a resolve, add that resolve's name to the `[export].py_editables_in_resolves` list in `pants.toml`.\nSee [#18639](https://github.com/pantsbuild/pants/pull/18639) for details on Pants' PEP-660 implementation.\n\nThe default `pip` Pants uses under the hood has changed from 20.3.4 to 23.1.2. This newer `pip` has better dependency resolution performance in many cases, but may give different results than the earlier `pip`. Of course those results will still be correct in the sense that they will be compatible with your requirements and constraints.\n\nThe `python_awslambda` or `python_google_cloud_function` targets now support a new 'zip' layout, as recommended by the cloud vendors. This layout gives smaller packages and faster cold starts than the existing Lambdex layout, and will become the default in 2.18. See the docs [for `python_awslambda`](https://www.pantsbuild.org/v2.17/docs/awslambda-python#migrating-from-pants-216-and-earlier) and [for `python_google_cloud_function`](https://www.pantsbuild.org/v2.17/docs/google-cloud-function-python#migrating-from-pants-216-and-earlier).\n\nThe default value for the `[python].interpreter_constraints` option was deprecated in 2.16 and is now removed: `pants.toml` must provide this option. We recommend constraining to a single interpreter minor version if you can, for instance: `interpreter_constraints = ['==3.11.*']`. See [the Interpreter Compatibility docs for more details](https://www.pantsbuild.org/v2.17/docs/python-interpreter-compatibility).\n\n#### Docker\n\nThe Docker backend now supports authenticating with registries via the `DOCKER_HOST`, `DOCKER_CONFIG` and `DOCKER_CERT_PATH` environment variables.\n\n#### New: Javascript (experimental!)\n\nPants now has _very early_ experimental support for Javascript thanks to ongoing efforts by Tobias Nilsson and\nTheo Ribeiro. Please note that the Javascript backend is still incomplete, is being actively developed, and _probably\nhas critical bugs_. Despite that, the Pants maintainers would appreciate any feedback from the community to help\nguide our development efforts.\n\nSupported goals are:\n\n* `test`: Letting you run tests via runners installed with the package manager of your choice.\n* `package` goal, either to run a customized `package.json` script that produces an artifact via `node_build_script`, or to pack a tarball for npm-registry publication via the `npm_distribution` target.\n* `tailor`: Generates build file targets for `*.js`, `*.test.js` and `package.json` files.\n* `generate-lockfile`: Creates the lockfile in the format matching a projects package manager.\n\nThe backend supports all package managers provided by `corepack`. `yarn@v2` and [PlugNPlay](https://yarnpkg.com/features/pnp) is not supported.\n\nEnable the `pants.backend.experimental.javascript` backend to try out this support. Please [file issues](https://github.com/pantsbuild/pants/issues/new/choose) for any issues encountered, and follow along [the stabilization ticket on github](https://github.com/pantsbuild/pants/issues/19240).\n\n#### New: Taplo TOML Formatter\n\nPants now supports the [Taplo TOML formatter](https://taplo.tamasfe.dev/). Enable the `pants.backend.tools.taplo`\nbackend to add this support.\n\n### Plugin API Changes\n\nRules should now request output types which do not need an input type via the new one-argument form of `Get`. For\nexample, rules can now write `await Get(ChosenLocalEnvironmentName)`. Certain request types which exists only to\nwork around the previous lack of such synax are now deprecated in favor of the one argument `Get()` form.\n\nThe `PythonBinary` type is now deprecated, use `PythonBuildStandalone` instead.\n\n----\n\n## 2.17.1 (Nov 10, 2023)\n\nThe second stable release of the `2.17.x` series, with only documentation changes since the previous `rc`!\n\n## 2.17.1rc3 (Oct 28, 2023)\n\n### Bug Fixes\n\n* Add best-effort limits on async file opens to reduce file handle counts (Cherry-pick of #20055) ([#20078](https://github.com/pantsbuild/pants/pull/20078))\n\n## 2.17.1rc2 (Oct 17, 2023)\n\n### Bug Fixes\n\n* Fix algorithm for gathering Go build requests with coverage. (Cherry-pick of #20030) ([#20033](https://github.com/pantsbuild/pants/pull/20033))\n\n* `docker_image`: The `image_tags` field must not be empty. (Cherry-pick of #19980) ([#19991](https://github.com/pantsbuild/pants/pull/19991))\n\n### Documentation\n\n* docs: Remove pants 2.15 example configuration. (Cherry-pick of #19995) ([#19997](https://github.com/pantsbuild/pants/pull/19997))\n\n## 2.17.1rc1 (Oct 06, 2023)\n\n### Bug Fixes\n\n* Support using `__defaults__` in same BUILD file as environment targets. (Cherry-pick of #19446) ([#19969](https://github.com/pantsbuild/pants/pull/19969))\n\n* Fetch shellcheck from vscode-shellcheck for M1 support (Cherry-pick of #19945) ([#19952](https://github.com/pantsbuild/pants/pull/19952))\n\n* Immediately invalidate written files in write_digest (Cherry-pick of #19903) ([#19949](https://github.com/pantsbuild/pants/pull/19949))\n\n* Fix \"failed to create hardlink\" error due to multiple mounts on the same device (Cherry-pick of #19894) ([#19914](https://github.com/pantsbuild/pants/pull/19914))\n\n* Add missing `__init__.py` file for the `yamllint` backend. (Cherry-pick of #19899) ([#19906](https://github.com/pantsbuild/pants/pull/19906))\n\n### Documentation\n\n* Add Tom and Gautham to the Contributors page. (Cherry-pick of #19955) ([#19962](https://github.com/pantsbuild/pants/pull/19962))\n\n* Remove references to PyPI/`pantsbuild.pants` wheels in docs (Cherry-pick of #19924) ([#19936](https://github.com/pantsbuild/pants/pull/19936))\n\n## 2.17.1rc0 (Sep 20, 2023)\n\n### New Features\n\n* `with contextlib.suppress(ImportError)` weakens imports (Cherry-pick of #19293) ([#19789](https://github.com/pantsbuild/pants/pull/19789))\n\n### Bug Fixes\n\n* Port `pantsd` fingerprinting to Rust, and validate from native client (Cherry-pick of #19833) ([#19867](https://github.com/pantsbuild/pants/pull/19867))\n\n* Add additional directories with register.py to pants bin deps (Cherry pick of #19848) ([#19855](https://github.com/pantsbuild/pants/pull/19855))\n\n* Fix global report coverage for namespaced packages (Cherry-pick of #19821) ([#19837](https://github.com/pantsbuild/pants/pull/19837))\n\n* Allow requesters of `TargetRootsToFieldSets` to turn off the secondary ownership warning (Cherry-pick of #19721) ([#19734](https://github.com/pantsbuild/pants/pull/19734))\n\n### Performance\n\n* Remove memoization of the `Paths` intrinsic to reduce memory usage (Cherry-pick of #19689) ([#19717](https://github.com/pantsbuild/pants/pull/19717))\n\n### Documentation\n\n* docs: remove Toolchain references (cherrypick #19508) ([#19828](https://github.com/pantsbuild/pants/pull/19828))\n\n* docs: Improve the help string for the global option 'PANTS_CONCURRENT'. (Cherry-pick of #19822) ([#19824](https://github.com/pantsbuild/pants/pull/19824))\n\n* Fix Documentation (InitialConfiguration) go backend (Cherry-pick of #19806) ([#19809](https://github.com/pantsbuild/pants/pull/19809))\n\n* Fix typoed artifact name in Lambda docs (Cherry-pick of #19739) ([#19746](https://github.com/pantsbuild/pants/pull/19746))\n\n* Update the docs changelog to include 2.17.x. (Cherry-pick of #19729) ([#19736](https://github.com/pantsbuild/pants/pull/19736))\n\n## 2.17.0 (Aug 29, 2023)\n\nThe first stable release of the series, with no changes since the previous `rc`!\n\n## 2.17.0rc5 (Aug 26, 2023)\n\n### Bug Fixes\n\n* Remove `tensorboard` mapping from our default mapping (Cherry-pick of #19673) ([#19677](https://github.com/pantsbuild/pants/pull/19677))\n\n### Documentation\n\n* Backport to 2.17: docs: set EnvironmentBehavior in plugin Goal examples (#19590) ([#19664](https://github.com/pantsbuild/pants/pull/19664))\n\n## 2.17.0rc4 (Aug 23, 2023)\n\n### User API Changes\n\n* Require scie-pants 0.9.2 or newer, for new distribution model (Cherry-pick of #19654) ([#19655](https://github.com/pantsbuild/pants/pull/19655))\n\n* Add Python 3.12 to the default interpreter universe (Cherry-pick of #19641) ([#19651](https://github.com/pantsbuild/pants/pull/19651))\n\n### Bug Fixes\n\n* Have Pants create the `immutable_inputs` base parent(s) (Cherry-pick of #19646) ([#19652](https://github.com/pantsbuild/pants/pull/19652))\n\n* Use hardlinking when possible for mypy cache (Cherry-pick of #19633) ([#19650](https://github.com/pantsbuild/pants/pull/19650))\n\n* Undo pyenv install marking files as RO (Cherry-pick of #19645) ([#19648](https://github.com/pantsbuild/pants/pull/19648))\n\n* Make mypy cache move truly atomic (Cherry-pick of #19610) ([#19615](https://github.com/pantsbuild/pants/pull/19615))\n\n* Use named cache for Docker-env PBS (Cherry-pick of #19611) ([#19616](https://github.com/pantsbuild/pants/pull/19616))\n\n* Add path to cache key for Rust dep inference, for relative imports (cherry-pick of #19630) ([#19640](https://github.com/pantsbuild/pants/pull/19640))\n\n### Documentation\n\n* Backport to 2.17: Fix dead doc links (#19546) ([#19659](https://github.com/pantsbuild/pants/pull/19659))\n\n* Additional mentions and tweaks in 2.17's \"What's new\" (Cherry-pick of #19629) ([#19642](https://github.com/pantsbuild/pants/pull/19642))\n\n* docs: fix code examples for `setting-up-ide` and `interpreter-compatibility` docs (Cherry-pick of #19624) ([#19639](https://github.com/pantsbuild/pants/pull/19639))\n\n* docs: fix markdown inconsistencies (Cherry pick of #19363) ([#19622](https://github.com/pantsbuild/pants/pull/19622))\n\n* docs: add 2.16 entry to changelog (Cherry-pick of #19589) ([#19597](https://github.com/pantsbuild/pants/pull/19597))\n\n## 2.17.0rc3 (Aug 13, 2023)\n\n### User API Changes\n\n* Upgrade the default pip to v23.1.2. (Cherry-pick of #19538) ([#19541](https://github.com/pantsbuild/pants/pull/19541))\n\n### Bug Fixes\n\n* Scala: support Enums in dependency inference (Cherry pick of #19588) ([#19593](https://github.com/pantsbuild/pants/pull/19593))\n\n* Fix the new tool lockfile deprecation message. ([#19565](https://github.com/pantsbuild/pants/pull/19565))\n\n* Fix golangci-lint runner script (Cherry-pick of #19015) ([#19473](https://github.com/pantsbuild/pants/pull/19473))\n\n### Documentation\n\n* Initial draft of What's New for v2.17.x (Cherry-pick of #19168) ([#19595](https://github.com/pantsbuild/pants/pull/19595))\n\n* Add ruff, adjust pyugprade, autoflake in docs (Cherry-pick of #19555) ([#19576](https://github.com/pantsbuild/pants/pull/19576))\n\n* Catch google artifact registry gotcha (Cherry-pick of #19568) ([#19570](https://github.com/pantsbuild/pants/pull/19570))\n\n* Stop referring to ~/.cache/pants/setup in CI docs (Cherry-pick of #19554) ([#19561](https://github.com/pantsbuild/pants/pull/19561))\n\n* Visibility: documentation fixes and clarifications. (Cherry-pick of #19438) ([#19494](https://github.com/pantsbuild/pants/pull/19494))\n\n## 2.17.0rc2 (Jul 14, 2023)\n\n### Bug Fixes\n\n* Visibility: fix issue with using target type in verbose rule selector. (Cherry-pick of #19437) ([#19456](https://github.com/pantsbuild/pants/pull/19456))\n\n* Use the \"package_name\" variable to fix an UnboundLocalError. (Cherry-pick of #19433) ([#19453](https://github.com/pantsbuild/pants/pull/19453))\n\n* Fix helm documentation example (Cherry-pick of #19271) ([#19313](https://github.com/pantsbuild/pants/pull/19313))\n\n### Documentation\n\n* Tweak getting-help docs (Cherry-pick of #19418) ([#19419](https://github.com/pantsbuild/pants/pull/19419))\n\n* Refine `run_shell_command` docs (Cherry-pick of #19413) ([#19421](https://github.com/pantsbuild/pants/pull/19421))\n\n* Add a sponsorships page to the docsite. (Cherry-pick of #19412) ([#19416](https://github.com/pantsbuild/pants/pull/19416))\n\n* Get doc titles from the in-repo markdown files (Cherry-pick of #19311) ([#19321](https://github.com/pantsbuild/pants/pull/19321))\n\n* docs: layout tweak of caching info, remove toolchain :( and additional info about bazel-remote-cache (Cherry-pick of #19299) ([#19329](https://github.com/pantsbuild/pants/pull/19329))\n\n## 2.17.0rc1 (Jun 08, 2023)\n\n### Plugin API Changes\n\n* Deprecate using `PythonBinary` (Cherry-pick of #19209) ([#19222](https://github.com/pantsbuild/pants/pull/19222))\n\n### Bug Fixes\n\n* Improve handling of additional files in Helm unit tests (Cherry-pick of #19263) ([#19268](https://github.com/pantsbuild/pants/pull/19268))\n\n* Add taplo to the release (Cherry-pick of #19258) ([#19259](https://github.com/pantsbuild/pants/pull/19259))\n\n* Handle from foo import * wildcard imports in Rust dep inference parser (Cherry-pick of #19249) ([#19255](https://github.com/pantsbuild/pants/pull/19255))\n\n* Fix secondary ownership warning semantics (Cherry-pick of #19191) ([#19224](https://github.com/pantsbuild/pants/pull/19224))\n\n## 2.17.0rc0 (Jun 01, 2023)\n\n### User API Changes\n\n* Deprecate the `version/extra_requirements` options on python tools. (Cherry-pick of #19204) ([#19211](https://github.com/pantsbuild/pants/pull/19211))\n\n* Terraform: Hashes for MacOS binaries have changed (Cherry-pick of #19004) ([#19136](https://github.com/pantsbuild/pants/pull/19136))\n\n* Implement layout=\"zip\" for Lambda/GCF, deprecating lambdex (Cherry-pick of #19076) ([#19120](https://github.com/pantsbuild/pants/pull/19120))\n\n* Deprecate `[mypy].extra_type_stubs` and its lockfile. (Cherry-pick of #19084) ([#19087](https://github.com/pantsbuild/pants/pull/19087))\n\n* Bring the tool `--export` option deprecation forward. (Cherry-pick of #19079) ([#19083](https://github.com/pantsbuild/pants/pull/19083))\n\n### Bug Fixes\n\n* Discover Scala REPL main class and coordinates (Cherry-pick of #19189) ([#19203](https://github.com/pantsbuild/pants/pull/19203))\n\n* Scrub the Pyenv install dir before attempting an install. (Cherry-pick of #19193) ([#19197](https://github.com/pantsbuild/pants/pull/19197))\n\n* Avoid extra `.` in `from .. import` parent imports in Rust Python dep inference (Cherry-pick of #19175) ([#19177](https://github.com/pantsbuild/pants/pull/19177))\n\n* Don't try and garbage collect tempfiles (Cherry-pick of #19103) ([#19113](https://github.com/pantsbuild/pants/pull/19113))\n\n* If a shebang already exists when adding a preamble, preserve it. (Cherry-pick of #19133) ([#19138](https://github.com/pantsbuild/pants/pull/19138))\n\n* Workaround `botocore` bug in S3 URL Handler backend (Cherry-pick of #19056) ([#19111](https://github.com/pantsbuild/pants/pull/19111))\n\n### Documentation\n\n* Add `tobni` to Maintainers (Cherry-pick of #19195) ([#19207](https://github.com/pantsbuild/pants/pull/19207))\n\n* Adjust FaaS docs for `layout = \"zip\"` (Cherry-pick of #19180) ([#19198](https://github.com/pantsbuild/pants/pull/19198))\n\n* Add `botocore-a-la-carte` reference to `s3` URL Handler (Cherry-pick of #19055) ([#19109](https://github.com/pantsbuild/pants/pull/19109))\n\n* add bazel-remote to list of compatible remote caches (Cherry-pick of #19041) ([#19115](https://github.com/pantsbuild/pants/pull/19115))\n\n* Fix docs link to `pants_from_sources` script. (Cherry-pick of #19088) ([#19091](https://github.com/pantsbuild/pants/pull/19091))\n\n## 2.17.0a1 (May 19, 2023)\n\nDue to infrastructure issues, `2.17.0a1` is a second attempt at publishing `2.17.0a0`.\n\n## 2.17.0a0 (May 18, 2023)\n\nNOTE: `2.17.0a0` was not released to PyPI due to infrastructure issues.\n\n### New Features\n\n* Add a workunit logging plugin ([#18984](https://github.com/pantsbuild/pants/pull/18984))\n\n* javascript: Add `yarn@v1` support ([#18928](https://github.com/pantsbuild/pants/pull/18928))\n\n* javascript: Support Node.js subpath imports ([#18934](https://github.com/pantsbuild/pants/pull/18934))\n\n* Add Taplo toml formatter ([#18865](https://github.com/pantsbuild/pants/pull/18865))\n\n* Include the Pants native client in released wheels ([#18957](https://github.com/pantsbuild/pants/pull/18957))\n\n* Extract Python dependencies in an intrinsic ([#18854](https://github.com/pantsbuild/pants/pull/18854))\n\n### User API Changes\n\n* Do not publish wheels for all SHAs, and publish to PyPI from Github Actions. ([#19028](https://github.com/pantsbuild/pants/pull/19028))\n\n* Support Python requirement target addrs in tool requirements. ([#19014](https://github.com/pantsbuild/pants/pull/19014))\n\n* javascript: Add an explicit `npm_distribution` target instead of coupling to `node_package` ([#18925](https://github.com/pantsbuild/pants/pull/18925))\n\n* Shorten the deprecation for `export` without `--resolve`. ([#19000](https://github.com/pantsbuild/pants/pull/19000))\n\n* Upgrade Pex to 2.1.137. ([#19003](https://github.com/pantsbuild/pants/pull/19003))\n\n* Remove the underlying implementation of `anonymous-telemetry` ([#18952](https://github.com/pantsbuild/pants/pull/18952))\n\n### Plugin API Changes\n\n* Port Django migrations inference away from `PythonDependencyVisitorRequest` ([#19008](https://github.com/pantsbuild/pants/pull/19008))\n\n* fmtrequest -> abstractfmtrequest ([#18935](https://github.com/pantsbuild/pants/pull/18935))\n\n### Bug Fixes\n\n* Use `{bin_name()} run` as `$0` in `run_shell_command` ([#19020](https://github.com/pantsbuild/pants/pull/19020))\n\n* Make `DigestSubset` symlink-aware ([#18963](https://github.com/pantsbuild/pants/pull/18963))\n\n* javascript: Do not add literal {chroot} to pnpm cache path ([#18921](https://github.com/pantsbuild/pants/pull/18921))\n\n### Documentation\n\n* Clarify how to set $0 properly in `run_in_shell_command` ([#19019](https://github.com/pantsbuild/pants/pull/19019))\n\n* Docs tweaks for 2.16.x ([#19009](https://github.com/pantsbuild/pants/pull/19009))\n\n* Fix example `first_party_dependency_version_scheme` in docs ([#18993](https://github.com/pantsbuild/pants/pull/18993))\n\n## 2.17.0.dev5 (May 08, 2023)\n\n### New Features\n\n* javascript: Implement dependency inference opt-out and improve resillience ([#18931](https://github.com/pantsbuild/pants/pull/18931))\n\n* javascript: Add support for the pnpm package manager ([#18864](https://github.com/pantsbuild/pants/pull/18864))\n\n* Eagerly clean running nodes rather than interrupting them. ([#18855](https://github.com/pantsbuild/pants/pull/18855))\n\n* javascript: Nodejs tests batch support ([#18742](https://github.com/pantsbuild/pants/pull/18742))\n\n* New API type: `CurrentExecutingGoals`. ([#18788](https://github.com/pantsbuild/pants/pull/18788))\n\n### User API Changes\n\n* javascript: Support `package` goal in `node_build_script` target ([#18926](https://github.com/pantsbuild/pants/pull/18926))\n\n* Deprecate running Pants outside scie-pants. ([#18833](https://github.com/pantsbuild/pants/pull/18833))\n\n* Upgrade Pex to 2.1.135. ([#18876](https://github.com/pantsbuild/pants/pull/18876))\n\n### Plugin API Changes\n\n* Remove redundant PythonToolBase/JvmToolBase features. ([#18805](https://github.com/pantsbuild/pants/pull/18805))\n\n### Bug Fixes\n\n* Ensure packaged artefacts are fully replaced in dist/ ([#18930](https://github.com/pantsbuild/pants/pull/18930))\n\n* Use a set when calculating resolve names ([#18939](https://github.com/pantsbuild/pants/pull/18939))\n\n* Use a set when calculating resolve names ([#18939](https://github.com/pantsbuild/pants/pull/18939))\n\n* javascript: Handle package.json placed at the root of the repository ([#18919](https://github.com/pantsbuild/pants/pull/18919))\n\n* Actually run deprecated targets fixer ([#18860](https://github.com/pantsbuild/pants/pull/18860))\n\n* Remove existing entry if any when materialising symlink ([#18873](https://github.com/pantsbuild/pants/pull/18873))\n\n* Ensure non-ambiguous args/env vars injection into PEXes ([#18861](https://github.com/pantsbuild/pants/pull/18861))\n\n* Handle workdir=\".\"/default properly in run_shell_command ([#18840](https://github.com/pantsbuild/pants/pull/18840))\n\n* Write adhoc_tool(stdout/stderr=\"...\") relative to workdir, support absolute paths ([#18814](https://github.com/pantsbuild/pants/pull/18814))\n\n* Patch `StreamingWorkunitContext.get_expanded_specs()`. ([#18713](https://github.com/pantsbuild/pants/pull/18713))\n\n* help backends: Only list enabled experimental backends unless advanced help. ([#18821](https://github.com/pantsbuild/pants/pull/18821))\n\n* Use build root as workdir for shell_command(workdir=\"\") ([#18813](https://github.com/pantsbuild/pants/pull/18813))\n\n* Include `pants.backend.url_handlers.s3` in pants distribution. ([#18826](https://github.com/pantsbuild/pants/pull/18826))\n\n### Performance\n\n* Optimize `Target` and `FieldSet` operations ([#18917](https://github.com/pantsbuild/pants/pull/18917))\n\n* Triage some noqa: PNT30 await-in-loops ([#18831](https://github.com/pantsbuild/pants/pull/18831))\n\n### Documentation\n\n* Update the identity of the response team for CoC violation reporting. ([#16410](https://github.com/pantsbuild/pants/pull/16410))\n\n* Fix adhoc output_... example, document run_shell_command workdir changes ([#18894](https://github.com/pantsbuild/pants/pull/18894))\n\n* Add missing backtick in help string ([#18907](https://github.com/pantsbuild/pants/pull/18907))\n\n* Add Salesforce to the users list ([#18891](https://github.com/pantsbuild/pants/pull/18891))\n\n* update troubleshooting document about self-hosted action runner ([#18900](https://github.com/pantsbuild/pants/pull/18900))\n\n* Credit the Works on ARM program for our CI resources. ([#18892](https://github.com/pantsbuild/pants/pull/18892))\n\n* feat: update installation.md ([#18836](https://github.com/pantsbuild/pants/pull/18836))\n\n* Remove reference to readme.com as the way to edit documentation ([#18863](https://github.com/pantsbuild/pants/pull/18863))\n\n* Fix library name typo in third party example ([#18862](https://github.com/pantsbuild/pants/pull/18862))\n\n* Update mypy and pytest documentation to refer to install_from_resolve ([#18791](https://github.com/pantsbuild/pants/pull/18791))\n\n* Include `symbols` as topic in usage help. ([#18825](https://github.com/pantsbuild/pants/pull/18825))\n\n* docs: reorder contributor steps, rustup is required for git hooks install to work smoothly ([#18828](https://github.com/pantsbuild/pants/pull/18828))\n\n## 2.17.0.dev4 (Apr 23, 2023)\n\n### New Features\n\n* javascript: Manage `npm` version with corepack ([#18748](https://github.com/pantsbuild/pants/pull/18748))\n\n* `python_distribution` editable installs in exports ([#18639](https://github.com/pantsbuild/pants/pull/18639))\n\n### User API Changes\n\n* Default to using the entire tool lockfile. ([#18793](https://github.com/pantsbuild/pants/pull/18793))\n\n* Upgrade Pex to 2.1.134. ([#18785](https://github.com/pantsbuild/pants/pull/18785))\n\n* Use the resolve's ICs for tools. ([#18776](https://github.com/pantsbuild/pants/pull/18776))\n\n* Use Self backport in `BinaryPath` factory method. ([#18763](https://github.com/pantsbuild/pants/pull/18763))\n\n* Deprecate \"Secondary Ownership\" semantics ([#18737](https://github.com/pantsbuild/pants/pull/18737))\n\n* Expand versions range for `ruff` + upgrade it ([#18707](https://github.com/pantsbuild/pants/pull/18707))\n\n### Plugin API Changes\n\n* Allow `BinaryPaths` to close over their type. ([#18760](https://github.com/pantsbuild/pants/pull/18760))\n\n* Set a central default ICs for tools. ([#18714](https://github.com/pantsbuild/pants/pull/18714))\n\n### Bug Fixes\n\n* The `OverridesField.compute_value()` must return a hashable value. ([#18787](https://github.com/pantsbuild/pants/pull/18787))\n\n* Dedup graph errors. ([#18770](https://github.com/pantsbuild/pants/pull/18770))\n\n* Flush metadata to disk before renaming immutable store files ([#18768](https://github.com/pantsbuild/pants/pull/18768))\n\n* Clear FSDB materialization cache when `remove`ing a file ([#18747](https://github.com/pantsbuild/pants/pull/18747))\n\n* Use address as stable key when batching field sets in `lint`/`test` ([#18725](https://github.com/pantsbuild/pants/pull/18725))\n\n* Fix `repr` for `Field`s that don't define `default`. ([#18719](https://github.com/pantsbuild/pants/pull/18719))\n\n* Add `ruff` lint rules ([#18716](https://github.com/pantsbuild/pants/pull/18716))\n\n* javascript: Use binary shims in nodejs sandboxes ([#18682](https://github.com/pantsbuild/pants/pull/18682))\n\n### Documentation\n\n* Improve error location for invalid targets/target fields. ([#18366](https://github.com/pantsbuild/pants/pull/18366))\n\n* Add info on how to configure Docker Desktop for using `docker_environment` ([#18786](https://github.com/pantsbuild/pants/pull/18786))\n\n* Update linter documentation to refer to `install_from_resolve` ([#18781](https://github.com/pantsbuild/pants/pull/18781))\n\n* docs: Fix typo on requirements-overrides code snippet ([#18750](https://github.com/pantsbuild/pants/pull/18750))\n\n* Edit Python publishing docs for clarity. ([#18718](https://github.com/pantsbuild/pants/pull/18718))\n\n## 2.17.0.dev3 (Apr 10, 2023)\n\n### New Features\n\n* Helm: Add support for DNS lookups in Chart templates ([#18670](https://github.com/pantsbuild/pants/pull/18670))\n\n* Include global Git ignore file and `.git/info/exclude` in `pants_ignore` to ignore for file watching ([#18649](https://github.com/pantsbuild/pants/pull/18649))\n\n### User API Changes\n\n* Remove deprecated default ICs. ([#18627](https://github.com/pantsbuild/pants/pull/18627))\n\n### Plugin API Changes\n\n* Move/Rename: `goals/setup_py.py` -> `{util_rules,goals}/package_dists.py` + `subsystems/setup_py_generation.py` ([#18702](https://github.com/pantsbuild/pants/pull/18702))\n\n* Deprecate some `Request` types in favor of `Get()` with only one arg ([#18655](https://github.com/pantsbuild/pants/pull/18655))\n\n* Add support for `Get(MyType)` syntax with no input args ([#18648](https://github.com/pantsbuild/pants/pull/18648))\n\n### Bug fixes\n\n* Adds a fully-qualified path to a Python interpreter for `pex_binary` `RunRequest`s ([#18699](https://github.com/pantsbuild/pants/pull/18699))\n\n* Remove implicit conversion from `std::io::Error` to `StoreError` ([#18696](https://github.com/pantsbuild/pants/pull/18696))\n\n* Add timeout to remote store calls, and adjust name of cache timeout. ([#18695](https://github.com/pantsbuild/pants/pull/18695))\n\n* Makes `adhoc_tool` actually respect the `extra_env_vars` field; adds tests ([#18692](https://github.com/pantsbuild/pants/pull/18692))\n\n* doc: Describe relevant error modes during rule compilation ([#18663](https://github.com/pantsbuild/pants/pull/18663))\n\n* Bump minimum supported version of Pex to v2.1.129. ([#18678](https://github.com/pantsbuild/pants/pull/18678))\n\n* Fix JVM resource JAR creation on older Mac OSes ([#18673](https://github.com/pantsbuild/pants/pull/18673))\n\n* javascript: Do not read none mapped package.json files in javascript rules ([#18523](https://github.com/pantsbuild/pants/pull/18523))\n\n### Documentation\n\n* Add PEP 621 pyproject.toml file docs ([#18672](https://github.com/pantsbuild/pants/pull/18672))\n\n* Document AWS CDK issue that multiple users have encountered. ([#18656](https://github.com/pantsbuild/pants/pull/18656))\n\n* Error when goals used without relevant backends activated ([#18420](https://github.com/pantsbuild/pants/pull/18420))\n\n* Improve lockfile consumption error message. ([#18638](https://github.com/pantsbuild/pants/pull/18638))\n\n* Remove a python-specific tip from the general prereqs page. ([#18637](https://github.com/pantsbuild/pants/pull/18637))\n\n* Make UUID message clearer ([#18561](https://github.com/pantsbuild/pants/pull/18561))\n\n## 2.17.0.dev2 (Mar 31, 2023)\n\n### New Features\n\n* javascript: Test goal with package manager installed test runner support ([#18554](https://github.com/pantsbuild/pants/pull/18554))\n\n* expose PANTS_VERSION and make it string-comparable ([#18573](https://github.com/pantsbuild/pants/pull/18573))\n\n### User API Changes\n\n* Upgrade Pex to 2.1.131. ([#18626](https://github.com/pantsbuild/pants/pull/18626))\n\n### Bug fixes\n\n* Ensure that sandboxed processes exit before their sandboxes are cleaned up ([#18632](https://github.com/pantsbuild/pants/pull/18632))\n\n* Plumb entire lockfile/internal only code through `create_pex_from_targets` ([#18622](https://github.com/pantsbuild/pants/pull/18622))\n\n* narrow pex_binary files warning ([#18619](https://github.com/pantsbuild/pants/pull/18619))\n\n* Fix PexPEX invocations ([#18610](https://github.com/pantsbuild/pants/pull/18610))\n\n* Improve debug information for docker auth, and expose an environment variable. ([#18599](https://github.com/pantsbuild/pants/pull/18599))\n\n### Performance\n\n* Only materialize immutable files once per process ([#18600](https://github.com/pantsbuild/pants/pull/18600))\n\n### Documentation\n\n* Fix a string that should have been an f-string ([#18608](https://github.com/pantsbuild/pants/pull/18608))\n\n* Fix `./pants` -> `pants` in some docs and help strings. ([#18596](https://github.com/pantsbuild/pants/pull/18596))\n\n## 2.17.0.dev1 (Mar 24, 2023)\n\n### New Features\n\n* engine: add an option to clear the destination directory when writing digest to disk ([#18534](https://github.com/pantsbuild/pants/pull/18534))\n\n* javascript: NodeJS bootstrapping via binary paths, PATH, asdf or nvm ([#18520](https://github.com/pantsbuild/pants/pull/18520))\n\n* javascript: Initial NPM support ([#18326](https://github.com/pantsbuild/pants/pull/18326))\n\n* Always provide Python-for-Pants-scripts ([#18433](https://github.com/pantsbuild/pants/pull/18433))\n\n### User API Changes\n\n* Upgrade Pex to 2.1.130. ([#18576](https://github.com/pantsbuild/pants/pull/18576))\n\n* Deprecate old-style custom tool lockfiles. ([#18494](https://github.com/pantsbuild/pants/pull/18494))\n\n* Let a user resolve shadow a tool lockfile of the same name ([#18481](https://github.com/pantsbuild/pants/pull/18481))\n\n### Bug fixes\n\n* Ensure that a symlinked exported venv exists and is valid. ([#18575](https://github.com/pantsbuild/pants/pull/18575))\n\n* Fail fast for attempts to use `test --debug` with a docker environment ([#18560](https://github.com/pantsbuild/pants/pull/18560))\n\n* Declare ruff outputs as files. ([#18551](https://github.com/pantsbuild/pants/pull/18551))\n\n* Add support for Docker registry auth ([#18541](https://github.com/pantsbuild/pants/pull/18541))\n\n* Fix Poetry req synthesis for URLs with markers. ([#18535](https://github.com/pantsbuild/pants/pull/18535))\n\n* Re-enable hardlinking using `fclonefileat` on macOS. ([#18501](https://github.com/pantsbuild/pants/pull/18501))\n\n### Performance\n\n* Materialize \"large\" files in a new store location and hardlink them in sandboxes ([#18153](https://github.com/pantsbuild/pants/pull/18153))\n\n* Finish parallelizing materialization of Process inputs ([#18469](https://github.com/pantsbuild/pants/pull/18469))\n\n### Documentation\n\n* First pass at `adhoc_tool` documentation ([#18531](https://github.com/pantsbuild/pants/pull/18531))\n\n* Add Tobias Nilsson to team page ([#18571](https://github.com/pantsbuild/pants/pull/18571))\n\n* docs: fix an f-string in help ([#18539](https://github.com/pantsbuild/pants/pull/18539))\n\n* Clarify that `experimental_` shell functions are deprecated and replaced ([#18529](https://github.com/pantsbuild/pants/pull/18529))\n\n* Update docs on running pants from sources with scie-pants. ([#18513](https://github.com/pantsbuild/pants/pull/18513))\n\n* Add ExoFlare to user list. ([#18496](https://github.com/pantsbuild/pants/pull/18496))\n\n* Fix malformed pantsbuild/example-python link in documentation ([#18484](https://github.com/pantsbuild/pants/pull/18484))\n\n* update scie-jump cache directory reference ([#18485](https://github.com/pantsbuild/pants/pull/18485))\n\n* Expand lockfile documentation to its own page. ([#18471](https://github.com/pantsbuild/pants/pull/18471))\n\n## 2.17.0.dev0 (Mar 10, 2023)\n\n### New Features\n\n* Expose environment information on process metadata ([#18458](https://github.com/pantsbuild/pants/pull/18458))\n\n* Support running `pants` from anywhere in the project. ([#18412](https://github.com/pantsbuild/pants/pull/18412))\n\n### User API Changes\n\n* Audit and update requirements for Python tools. ([#18431](https://github.com/pantsbuild/pants/pull/18431))\n\n* Upgrade Pex to 2.1.128. ([#18453](https://github.com/pantsbuild/pants/pull/18453))\n\n### Bug fixes\n\n* Preserve environment variables in `pantsd` to allow Docker auth. ([#18465](https://github.com/pantsbuild/pants/pull/18465))\n\n* Only expose the equiv of `from typing import *` in prelude files ([#18452](https://github.com/pantsbuild/pants/pull/18452))\n\n* Support type hints in prelude files. ([#18442](https://github.com/pantsbuild/pants/pull/18442))\n\n* Synthesized lockfile targets should never err on missing lockfiles. ([#18406](https://github.com/pantsbuild/pants/pull/18406))\n\n* Fixes to visualisations for xdot ([#18421](https://github.com/pantsbuild/pants/pull/18421))\n",
    "bugtrack_url": null,
    "license": "Apache License, Version 2.0",
    "summary": "The ergonomic and hermetic software build system for Python, Java, Scala, Go, and Shell. Pants lets you fearlessly scale up your codebase.",
    "version": "2.17.1",
    "project_urls": {
        "Changelog": "https://www.pantsbuild.org/docs/changelog",
        "Documentation": "https://www.pantsbuild.org/",
        "Homepage": "https://github.com/pantsbuild/pants",
        "Mailing lists": "https://www.pantsbuild.org/docs/getting-help",
        "Slack": "https://www.pantsbuild.org/docs/getting-help",
        "Source": "https://github.com/pantsbuild/pants",
        "Tracker": "https://github.com/pantsbuild/pants/issues",
        "Twitter": "https://twitter.com/pantsbuild",
        "YouTube": "https://www.youtube.com/channel/UCCcfCbDqtqlCkFEuENsHlbQ"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c65791adfb939b108f2cddb5e8daacc709817969389a80521befdae804b1683f",
                "md5": "b4566dda3fb41fa74e4b302cb813066f",
                "sha256": "dde7acc6010388ac59e9b50406a2f72a1dc6aa0b2523cb70c5e64e88c7a986c5"
            },
            "downloads": -1,
            "filename": "pantsbuild.pants-2.17.1-cp37-cp37m-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b4566dda3fb41fa74e4b302cb813066f",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7,<3.10",
            "size": 14028357,
            "upload_time": "2023-11-10T21:54:36",
            "upload_time_iso_8601": "2023-11-10T21:54:36.361774Z",
            "url": "https://files.pythonhosted.org/packages/c6/57/91adfb939b108f2cddb5e8daacc709817969389a80521befdae804b1683f/pantsbuild.pants-2.17.1-cp37-cp37m-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d32cd99bb72c6e3e9569bf285ac48ffa8bfea4934cd8e23c2a8af7c8fd6c9526",
                "md5": "ec1ee9c03af167dcfa6302e42de42695",
                "sha256": "a17a7438829e6c4a58a70004b552b88447ac7d9635df4db7416e5b48bac825e9"
            },
            "downloads": -1,
            "filename": "pantsbuild.pants-2.17.1-cp37-cp37m-manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "ec1ee9c03af167dcfa6302e42de42695",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7,<3.10",
            "size": 47421650,
            "upload_time": "2023-11-10T21:54:41",
            "upload_time_iso_8601": "2023-11-10T21:54:41.658494Z",
            "url": "https://files.pythonhosted.org/packages/d3/2c/d99bb72c6e3e9569bf285ac48ffa8bfea4934cd8e23c2a8af7c8fd6c9526/pantsbuild.pants-2.17.1-cp37-cp37m-manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "075685d376faa88c3e67aba804817f9c4ac773ab01906591fb869e8818739c75",
                "md5": "cb2b7528ec2c23ab9faada7115da2708",
                "sha256": "3e75fa3796fd97ead9d651956a05355933328e9c12fbff92d4679af3ca136a43"
            },
            "downloads": -1,
            "filename": "pantsbuild.pants-2.17.1-cp37-cp37m-manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cb2b7528ec2c23ab9faada7115da2708",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7,<3.10",
            "size": 47931265,
            "upload_time": "2023-11-10T21:54:46",
            "upload_time_iso_8601": "2023-11-10T21:54:46.910170Z",
            "url": "https://files.pythonhosted.org/packages/07/56/85d376faa88c3e67aba804817f9c4ac773ab01906591fb869e8818739c75/pantsbuild.pants-2.17.1-cp37-cp37m-manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "abb0efcba00b456f96eb9208502bdc698256e989985c922973107008747953bd",
                "md5": "200e083173a522842e64b12f0055fed0",
                "sha256": "113326aaa79eb1a5b255c18a104acbeeb41403e29b5b07e64c69e6645022748d"
            },
            "downloads": -1,
            "filename": "pantsbuild.pants-2.17.1-cp38-cp38-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "200e083173a522842e64b12f0055fed0",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7,<3.10",
            "size": 14027719,
            "upload_time": "2023-11-10T21:54:51",
            "upload_time_iso_8601": "2023-11-10T21:54:51.614202Z",
            "url": "https://files.pythonhosted.org/packages/ab/b0/efcba00b456f96eb9208502bdc698256e989985c922973107008747953bd/pantsbuild.pants-2.17.1-cp38-cp38-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a6bed37ace6937dbe245e522f78d9df308c146b2548eb8476fdcbdfd5d8824c9",
                "md5": "617dfde268b267464ff6637786f1ae85",
                "sha256": "9f92171ebef60d26f3cc1e4dcf7086c859cb837b1a249366f2b3decbcfeaa4eb"
            },
            "downloads": -1,
            "filename": "pantsbuild.pants-2.17.1-cp38-cp38-manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "617dfde268b267464ff6637786f1ae85",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7,<3.10",
            "size": 47421220,
            "upload_time": "2023-11-10T21:54:55",
            "upload_time_iso_8601": "2023-11-10T21:54:55.480427Z",
            "url": "https://files.pythonhosted.org/packages/a6/be/d37ace6937dbe245e522f78d9df308c146b2548eb8476fdcbdfd5d8824c9/pantsbuild.pants-2.17.1-cp38-cp38-manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8f0c825946d2cb16b011a9f637ca51fefda7be33ad31197328963b9c74ef829b",
                "md5": "dae57066006d9dc437bdd96096882417",
                "sha256": "066c0cebb2f5aa029861e94c5727ddec1d05acc931cdc38e26976aa41e64b7ab"
            },
            "downloads": -1,
            "filename": "pantsbuild.pants-2.17.1-cp38-cp38-manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "dae57066006d9dc437bdd96096882417",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7,<3.10",
            "size": 47931111,
            "upload_time": "2023-11-10T21:55:00",
            "upload_time_iso_8601": "2023-11-10T21:55:00.103212Z",
            "url": "https://files.pythonhosted.org/packages/8f/0c/825946d2cb16b011a9f637ca51fefda7be33ad31197328963b9c74ef829b/pantsbuild.pants-2.17.1-cp38-cp38-manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a817763ada0dc54c95760d9c3face7519a1ad48222ad2842f1854fc6c6b14d1f",
                "md5": "876ea81ce5c60e22749a90920f062535",
                "sha256": "b9a10aa2d902e0a28a5ee07fbc548b0ec563eff245e339aa08d8666a331f61d7"
            },
            "downloads": -1,
            "filename": "pantsbuild.pants-2.17.1-cp39-cp39-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "876ea81ce5c60e22749a90920f062535",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7,<3.10",
            "size": 14027945,
            "upload_time": "2023-11-10T21:55:06",
            "upload_time_iso_8601": "2023-11-10T21:55:06.825756Z",
            "url": "https://files.pythonhosted.org/packages/a8/17/763ada0dc54c95760d9c3face7519a1ad48222ad2842f1854fc6c6b14d1f/pantsbuild.pants-2.17.1-cp39-cp39-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c5b45606a56088b1842d3ad1320240f4adcefe82673e2be268b927bc435098f5",
                "md5": "4a242383ea763c23306182560ad32ee2",
                "sha256": "0b5fdcf6522bfba3bd6072250b46a7b6b20185182e68d0b90f39fb3c0bc18fd6"
            },
            "downloads": -1,
            "filename": "pantsbuild.pants-2.17.1-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "4a242383ea763c23306182560ad32ee2",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7,<3.10",
            "size": 13748049,
            "upload_time": "2023-11-10T21:55:09",
            "upload_time_iso_8601": "2023-11-10T21:55:09.962327Z",
            "url": "https://files.pythonhosted.org/packages/c5/b4/5606a56088b1842d3ad1320240f4adcefe82673e2be268b927bc435098f5/pantsbuild.pants-2.17.1-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7f3e6f3c6d4129efc9fa5420f7620f19fa90987116015e9ac7193412bd2509ad",
                "md5": "fed77a1ce8536d3052b6b16b5866e601",
                "sha256": "fa6bce6ceef3372a14607641256cff69eeccd4830933d6e84d9c4afdc9c51a5c"
            },
            "downloads": -1,
            "filename": "pantsbuild.pants-2.17.1-cp39-cp39-manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "fed77a1ce8536d3052b6b16b5866e601",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7,<3.10",
            "size": 47421871,
            "upload_time": "2023-11-10T21:55:13",
            "upload_time_iso_8601": "2023-11-10T21:55:13.939638Z",
            "url": "https://files.pythonhosted.org/packages/7f/3e/6f3c6d4129efc9fa5420f7620f19fa90987116015e9ac7193412bd2509ad/pantsbuild.pants-2.17.1-cp39-cp39-manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "31453445b31beeaff691ba200f20e2522b89b13ef3698a4fca8c6a934493203f",
                "md5": "243f984915ddd322db2e8abd2ae02a38",
                "sha256": "0ffbca8eee07a825d51b387c62b6e1df4e82f919bdd138db4e18dc10df7dfb63"
            },
            "downloads": -1,
            "filename": "pantsbuild.pants-2.17.1-cp39-cp39-manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "243f984915ddd322db2e8abd2ae02a38",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7,<3.10",
            "size": 47930794,
            "upload_time": "2023-11-10T21:55:18",
            "upload_time_iso_8601": "2023-11-10T21:55:18.703730Z",
            "url": "https://files.pythonhosted.org/packages/31/45/3445b31beeaff691ba200f20e2522b89b13ef3698a4fca8c6a934493203f/pantsbuild.pants-2.17.1-cp39-cp39-manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-11-10 21:54:36",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pantsbuild",
    "github_project": "pants",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pantsbuild.pants"
}
        
Elapsed time: 0.14895s