This release is a pre-release and may not be stable for production use.
Pants is an Apache2 licensed build tool written in Python and Rust.
The latest documentation can be found at pantsbuild.org.
2.10.x Release Series
2.10.0rc0 (Feb 07, 2022)
New Features
-
Add
--fmt-only,--check-only, and--lint-only(#14356) -
Add support for building PyOxidizer apps (#14183)
-
Adds
runsupport fordeploy_jartargets (#14352) -
New
[docker].executable_search_pathsoption. (#14360) -
Support Go 1.18 fuzz test targets (#14357)
-
Validate Python user lockfiles & improve tool lockfile error message (#14353)
-
Allow using Yapf with
update-build-filesrather than Black (#14378) -
Graduate Thrift Python support to be stable with
pants.backend.codegen.thrift.apache.python(#14389)
User API Changes
-
Graduate Docker backend from experimental status. (#14310)
-
Graduate the Dockerfile linter Hadolint from experimental status. (#14311)
-
Merge
validategoal withlintgoal (#14102) -
Rename Python resolve options and fields to not say "experimental" (#14326)
-
Add Thrift, Protobuf, Java, and Scala folders to default for
[source].root_patterns(#14363) -
Rename the
download-pex-binscope topex-cli. (#14344) -
Upgrade default Black version to 22.1.0 (#14324)
-
Upgrade default Pytest version to 7 (#14380)
Plugin API Changes
-
Rename
LintRequesttoLintTargetsRequest(#14312) -
New (optional) API for MyPy-friendly options registration (#14331)
-
Remove
PexFromTargetsRequest.additional_requirements(#14350) -
ReplImplementationnow passes root targets, not transitive closure (#14323) -
LintRequest,FmtRequest, andCheckRequestmust setname: ClassVar[str](#14304)
Bug fixes
-
Warn when
[python-protobuf].runtime_dependenciesneeds to use new target generator syntax (#14391) -
Fix native cycle detection error message. (#14381)
-
Fix import parsing regression (#14349)
-
Include link dest in symlink error. (#14384)
Performance
- Lazy load help info (#14305)
Documentation
-
Standardize how we reference formatters, linters, and checkers in goal summary (#14355)
-
Don't enumerate deprecated scopes in help. (#14345)
-
Don't render skipped tools in final summary with
fmt,lint,check, andtest(#14303)
2.10.0.dev3 (Jan 28, 2022)
New Features
-
Support multiple disjoint Python resolves via
[python].experimental_resolves(#14299) -
Optionally render the
--dynamic-uiwith Prodash (#14221) -
Add
context_rootfield todocker_imageanddefault_context_rootoption to[docker]scope. (#14165)
User API Changes
-
Deprecate
generate-user-lockfileand[python].experimental_lockfilein favor of[python].experimental_resolves(#14288) -
Bump versions & regenerate lockfiles for several Python tools, including Twine, PyUpgrade, and MyPy Protobuf (#14277)
-
Upgrade Pex to 2.1.65. (#14256)
Plugin API Changes
-
Remove
PexFromTargetsRequest(direct_deps_only: bool)(#14291) -
Rename
GenerateToolLockfileSentinel.options_scopetoresolve_name(#14231) -
Rename
PythonModuletoPythonModuleOwnersRequest(#14276)
Bug fixes
-
Fix plugin resolution running twice. (#14294)
-
Fix Pylint to consider transitive third-party dependencies (#14289)
-
Fix bad default module mapping for PyMongo (#14284)
-
go: filter out
vendordirectories in tailor (#14259) -
Fix packaged file names for
pex_binariestarget generator (#14269) -
Cap number of UI bars to terminal height (#14228)
-
Fix executability of materialized files for non-owners. (#14298)
Performance
- Dynamically choose per-process concurrency for supported processes (#14184)
Documentation
- Add some missing backends to generated docs (#14290)
2.10.0.dev2 (Jan 22, 2022)
New Features
-
JVM lockfile invalidation headers and verification (#14185)
-
Add new
api-typeshelp goal (#14081) -
Add line numbers to
--unowned-dependency-behaviorerrors (#14169) -
Add Flake8 first-party plugin support (#14027)
-
add runtime dependencies field for Apache Thrift for Python (#14158)
-
Add
#pants: no-infer-deppragma for ignoring imports (#14059 and #14225) -
Add local
.pants.rcsupport (#14142) -
thrift: add scrooge java backend (#14043)
-
add Avro codegen support for Java (#13990)
User API Changes
-
add timeout for remote cache lookups (#14224)
-
Replace
coursier-resolvegoal withgenerate-lockfiles(#14211) -
Replace
jvm-generate-lockfilesgoal withgenerate-lockfiles(#14176) -
Deprecate
sourcefile-validationin favor ofregex-lint(#14173) -
Deprecate
python_requirementsandpoetry_requirementsusing old macro in favor of target generation (#14075) -
Add try/except parsing to import_parser to avoid failing strict checks for optional imports (#14216)
-
Don't error on string imports with
[python-infer].unowned_dependency_behavior(#14179)
Plugin API Changes
- Remove per-language indirection for formatter plugins. (#14166)
Bug fixes
-
Fix complex
__import__statements failing to parse with Python 2.7 - 3.7 (#14232) -
LockfileMetadata- Replace flaky_header_dict()mechanism with more robustheader_attrsmechanism (#14229) -
More accurate reported runtime when
pantsdis in use. (#14177) -
Fix Pylint to run on transitive dependencies to avoid underreporting issues (#13918)
-
[Docker] Fix bug when a putative target address did not exist. (#14125)
-
Fix immutable inputs DCL bug. (#14016)
Performance
- Batching of
lintandfmtinvokes (#14186)
Documentation
- [Doc] Include backend source for goals, subsystems and targets in generated docsite. (#14126)
2.10.0.dev1 (Jan 07, 2022)
New Features
-
JVM Resources support (#13908)
-
Expose Docker build context hash for image tag interpolation. (#13959)
-
Add Thrift IDL codegen using Apache Thrift for Python and Java and Scrooge for Scala (#13987)
-
Add new
image_labelsfield todocker_image. (#13973)
User API Changes
-
Deprecate
[validate].detail_levelin favor of[sourcefile-validation].detail_level(#14103) -
Upgrade Hadolint (dockerfile linter) to from 2.6.0 to 2.8.0 (#14110)
-
Change third party module mapping to consider resolves (#14034)
Plugin API Changes
-
Fix
@ruleeffect validation fornot cacheabletypes. (#14069) -
Allow plugins to use range requirements by applying constraints to plugin resolution (#14058)
Bug fixes
-
Reduce output from
scalafmt, and lower reflective access option threshold for Google Java Format. (#14109) -
Hook up Scalafmt and Google Java Format to
./pants lint(#14108) -
Fix
validategoal crashing if not configured (#14104) -
Fix dropped output race during UI teardown (#14093)
-
Fix incorrectly setting
nameonpython_requirementsmacro (#14065) -
[jvm] Use appropriate coordinate serialization for Coursier CLI inputs. (#14038)
-
Fix
.pyitype stubs to show up inpython_distribution(#14033) -
Fix file sources codegen for the Docker build context. (#14024)
-
[jvm] Parse maven coordinates using regular expression (#14010)
-
[jvm] Fix use of multiple scalac plugins when one plugin has multiple classpath entries (#14012)
Documentation
-
Include provider info in help output for subsystems and target types. (#13993)
-
Fix help strings which were accidentally tuples, and add a validation. (#14057)
2.10.0.dev0 (Dec 27, 2021)
New Features
-
Add duration and cache source to test output. (#13889)
-
Add
pex_binariestarget generator (#13910) -
Support Docker build target stage (#13956)
-
Add
sshfield todocker_image. (#13957) -
Docker
FROMtarget dep inference (#13921) -
Docker context troubleshooter (#13896)
-
java: add protobuf code generation support using
protoc(#13989) -
Support
test --debugwith scalatest and junit. (#13966)
User API Changes
-
Update shellcheck default version to v0.8.0 (#13983)
-
Upgrade to Pex 2.1.61 and use
--venvcopies. (#13979) -
Remove deprecated
[python-setup]in favor of[python](#14004) -
Remove deprecated
typecheckgoal as alias forcheck(#13929) -
Remove deprecated
pants_requirementin favor ofpants_requirements(#13927) -
Remove deprecated
--process-execution-local-cleanupand--process-execution-local-cachein favor of--process-cleanupand--local-cache(#13928)
Plugin API Changes
-
Add
OptionalSingleSourceField(#13982) -
Remove deprecated RuleRunner methods
create_file(s)andadd_to_build_file. (#13954) -
Revert "Turn off validation for unset
SourcesFieldifrequired=False" (#13856) (#13944)
Bug fixes
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pantsbuild.pants-2.10.0rc0-cp39-cp39-manylinux2014_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.10.0rc0-cp39-cp39-manylinux2014_x86_64.whl
- Upload date:
- Size: 45.7 MB
- Tags: CPython 3.9
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b408ed21c83360eb78393da58e635bd7c523a79f35399dfe4e75a5cd7c9bbaf
|
|
| MD5 |
6aa400671039342bef8f6bee8d106190
|
|
| BLAKE2b-256 |
bad30cd174e7f245be0fd600b3f1020939a9b5370c0b519f6abee5dbc7c275ce
|
File details
Details for the file pantsbuild.pants-2.10.0rc0-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: pantsbuild.pants-2.10.0rc0-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 8.0 MB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e58c3a638821cea54cbea2bc1caab15d1148c826dab39f3e4579c511a1b04c9
|
|
| MD5 |
9b6e5218191f11fb3e7793cf5ef2eea0
|
|
| BLAKE2b-256 |
f28656882b06041b96cfbf62fff3d79b86bd6e152001903f5ac9ec089379ea56
|
File details
Details for the file pantsbuild.pants-2.10.0rc0-cp39-cp39-macosx_10_15_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.10.0rc0-cp39-cp39-macosx_10_15_x86_64.whl
- Upload date:
- Size: 8.3 MB
- Tags: CPython 3.9, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6223ea506df6887a47714250794eef2f7fd333e83612b6517f0a482434ca1f1
|
|
| MD5 |
55c28d51aea55a55685ac7f5566c6922
|
|
| BLAKE2b-256 |
655e028775f5b6019a606ac5595fcb3baa3d301586d8a29020ad07feab97aeb6
|
File details
Details for the file pantsbuild.pants-2.10.0rc0-cp38-cp38-manylinux2014_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.10.0rc0-cp38-cp38-manylinux2014_x86_64.whl
- Upload date:
- Size: 45.7 MB
- Tags: CPython 3.8
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17e9cd48d2c71130062dc29d6e425bb14e8cfd5adc0f4f2e2ae0c1099470bca9
|
|
| MD5 |
8c7bd662c5036251313fa508e31b3642
|
|
| BLAKE2b-256 |
cbef47dc1530bcb9b95527a72777954cee6e13c2a2856c215c51a682c9a26049
|
File details
Details for the file pantsbuild.pants-2.10.0rc0-cp38-cp38-macosx_10_15_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.10.0rc0-cp38-cp38-macosx_10_15_x86_64.whl
- Upload date:
- Size: 8.3 MB
- Tags: CPython 3.8, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa418f279992c9e3faa8b6aa7a25a954fa2978ef6040af0720330a17cc7af292
|
|
| MD5 |
e182d352d81afad2e2dcdcf402615524
|
|
| BLAKE2b-256 |
ae7423a784abe7440604f0501b1195016bca99da409c832cc5c29842806c3c2e
|
File details
Details for the file pantsbuild.pants-2.10.0rc0-cp37-cp37m-manylinux2014_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.10.0rc0-cp37-cp37m-manylinux2014_x86_64.whl
- Upload date:
- Size: 45.7 MB
- Tags: CPython 3.7m
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df826c4e0e99a7ef359cddbff9b2f99a15551b63332e299e8968790fe12aebb8
|
|
| MD5 |
240ad7d1754b2231bb99b522c37c91c9
|
|
| BLAKE2b-256 |
da46b70fdb822ae855ff6d2ace9af369bf32fa8dc58929070cc08ec265fe28a0
|
File details
Details for the file pantsbuild.pants-2.10.0rc0-cp37-cp37m-macosx_10_15_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.10.0rc0-cp37-cp37m-macosx_10_15_x86_64.whl
- Upload date:
- Size: 8.3 MB
- Tags: CPython 3.7m, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3a0f9e771f0b78be2643b26f917c838b92c5d2fee195fa27546befc4e4f1644
|
|
| MD5 |
05e77199c478c1307541f3b845205720
|
|
| BLAKE2b-256 |
ee4bbb7f68486c894d4471a8ea4153b45d22be6daeb5059c287c6dada1e4c816
|