The ergonomic and hermetic software build system for Python, Java, Scala, Go, and Shell. Pants lets you fearlessly scale up your codebase.
Project description
Pants is an Apache2 licensed build tool written in Python and Rust.
The latest documentation can be found at pantsbuild.org.
2.10.x Release Series
2.10.0rc1 (Feb 14, 2022)
New Features
- Improve
export
goal to handle multiple Python resolves (Cherry-pick of #14436) (#14454)
User API Changes
-
python_requirement
usesresolve: str
field, notcompatible_resolves: list[str]
(Cherry-pick of #14420) (#14435) -
Migrate the Docker context tags version from
<stage>.tag
totags.<stage>
. (Cherry-pick of #14376) (#14403)
Bug fixes
-
Fix handling of Go version for third-party packages (Cherry-pick of #14457) (#14459)
-
Fix issue picking up base image tag from Dockerfile with a digest present. (Cherry-pick of #14447) (#14456)
-
Make sure
[python].enable_resolves = false
disables checking for valid resolves (Cherry-pick of #14418) (#14439) -
Fix
pants_requirements
target generator to use resolves (Cherry-pick of #14417) (#14423) -
Fix
tailor
when--use-deprecated-python-macros=false
(Cherry-pick of #14404) (#14424)
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
run
support fordeploy_jar
targets (#14352) -
New
[docker].executable_search_paths
option. (#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-files
rather 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
validate
goal withlint
goal (#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-bin
scope topex-cli
. (#14344) -
Upgrade default Black version to 22.1.0 (#14324)
-
Upgrade default Pytest version to 7 (#14380)
Plugin API Changes
-
Rename
LintRequest
toLintTargetsRequest
(#14312) -
New (optional) API for MyPy-friendly options registration (#14331)
-
Remove
PexFromTargetsRequest.additional_requirements
(#14350) -
ReplImplementation
now passes root targets, not transitive closure (#14323) -
LintRequest
,FmtRequest
, andCheckRequest
must setname: ClassVar[str]
(#14304)
Bug fixes
-
Warn when
[python-protobuf].runtime_dependencies
needs 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-ui
with Prodash (#14221) -
Add
context_root
field todocker_image
anddefault_context_root
option to[docker]
scope. (#14165)
User API Changes
-
Deprecate
generate-user-lockfile
and[python].experimental_lockfile
in 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_scope
toresolve_name
(#14231) -
Rename
PythonModule
toPythonModuleOwnersRequest
(#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
vendor
directories in tailor (#14259) -
Fix packaged file names for
pex_binaries
target 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-types
help goal (#14081) -
Add line numbers to
--unowned-dependency-behavior
errors (#14169) -
Add Flake8 first-party plugin support (#14027)
-
add runtime dependencies field for Apache Thrift for Python (#14158)
-
Add
#pants: no-infer-dep
pragma for ignoring imports (#14059 and #14225) -
Add local
.pants.rc
support (#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-resolve
goal withgenerate-lockfiles
(#14211) -
Replace
jvm-generate-lockfiles
goal withgenerate-lockfiles
(#14176) -
Deprecate
sourcefile-validation
in favor ofregex-lint
(#14173) -
Deprecate
python_requirements
andpoetry_requirements
using 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_attrs
mechanism (#14229) -
More accurate reported runtime when
pantsd
is 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
lint
andfmt
invokes (#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_labels
field todocker_image
. (#13973)
User API Changes
-
Deprecate
[validate].detail_level
in 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
@rule
effect validation fornot cacheable
types. (#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
validate
goal crashing if not configured (#14104) -
Fix dropped output race during UI teardown (#14093)
-
Fix incorrectly setting
name
onpython_requirements
macro (#14065) -
[jvm] Use appropriate coordinate serialization for Coursier CLI inputs. (#14038)
-
Fix
.pyi
type 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_binaries
target generator (#13910) -
Support Docker build target stage (#13956)
-
Add
ssh
field todocker_image
. (#13957) -
Docker
FROM
target dep inference (#13921) -
Docker context troubleshooter (#13896)
-
java: add protobuf code generation support using
protoc
(#13989) -
Support
test --debug
with scalatest and junit. (#13966)
User API Changes
-
Update shellcheck default version to v0.8.0 (#13983)
-
Upgrade to Pex 2.1.61 and use
--venv
copies. (#13979) -
Remove deprecated
[python-setup]
in favor of[python]
(#14004) -
Remove deprecated
typecheck
goal as alias forcheck
(#13929) -
Remove deprecated
pants_requirement
in favor ofpants_requirements
(#13927) -
Remove deprecated
--process-execution-local-cleanup
and--process-execution-local-cache
in favor of--process-cleanup
and--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
SourcesField
ifrequired=False
" (#13856) (#13944)
Bug fixes
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
File details
Details for the file pantsbuild.pants-2.10.0rc1-cp39-cp39-manylinux2014_x86_64.whl
.
File metadata
- Download URL: pantsbuild.pants-2.10.0rc1-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.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d73ed1878abdeb8112dbb28d0144f94361dfe1cfc503c3b7d60a94283a829f2e |
|
MD5 | c52519406a326bbc44b5be5570071bfd |
|
BLAKE2b-256 | 56113ec92fc7ae049cbfcd03438acbfa41b6d6376e126c89d2ee215dd50387e7 |
File details
Details for the file pantsbuild.pants-2.10.0rc1-cp39-cp39-macosx_11_0_arm64.whl
.
File metadata
- Download URL: pantsbuild.pants-2.10.0rc1-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.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01a0d46311b80b928f036faaf4f5967ad68cf093fd57d1f65492921cb734a208 |
|
MD5 | 227ffc7d719520ff4ad1177e66920b10 |
|
BLAKE2b-256 | 86d95b06a64b080d7ef53f08351a970c304bb9afeb1d9450fc75f1296822feef |
File details
Details for the file pantsbuild.pants-2.10.0rc1-cp39-cp39-macosx_10_15_x86_64.whl
.
File metadata
- Download URL: pantsbuild.pants-2.10.0rc1-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.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82349e5a039ca45d025a1ccf1d246af3c58812a455b607e14ab7db86dadd2952 |
|
MD5 | 5391216f69ec789014fcf995ea328bd0 |
|
BLAKE2b-256 | 443f46d694ce17f7a5f219222065d7eead0de957da65eef1a5511aeed1d27742 |
File details
Details for the file pantsbuild.pants-2.10.0rc1-cp38-cp38-manylinux2014_x86_64.whl
.
File metadata
- Download URL: pantsbuild.pants-2.10.0rc1-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.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd65b9a30a2cef22f45ed54738ddb937294d2f6ece3f8c9593b4efcc9ef9e5de |
|
MD5 | 37fd33cd0c8a8ce4c13ce4d9a2ca4dd0 |
|
BLAKE2b-256 | eac635c63d8f00b98d3076628055a0a47787f1a8ca95a99677c56c504d74d852 |
File details
Details for the file pantsbuild.pants-2.10.0rc1-cp38-cp38-macosx_10_15_x86_64.whl
.
File metadata
- Download URL: pantsbuild.pants-2.10.0rc1-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.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f2543a352fd45a8654da6bb34b0a936a34f463b1b846fa4a5c6b77982887819 |
|
MD5 | 8f884faef43776f6d145b952ef36d7ad |
|
BLAKE2b-256 | 773243262997e9a8e31c53aa9d1501a3c0a936d9a849064d97aba42c30ec1fa1 |
File details
Details for the file pantsbuild.pants-2.10.0rc1-cp37-cp37m-manylinux2014_x86_64.whl
.
File metadata
- Download URL: pantsbuild.pants-2.10.0rc1-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.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9384f17538ac36de7ea5f34782034646ece3687fd546e11ed11dc8aa88aa2d42 |
|
MD5 | 455b12a8dbadc5da6176ac058264a60f |
|
BLAKE2b-256 | 7371c6f84a477d2b25610fbf039f0002a5dbe393538763d9c257793cd1e37d35 |
File details
Details for the file pantsbuild.pants-2.10.0rc1-cp37-cp37m-macosx_10_15_x86_64.whl
.
File metadata
- Download URL: pantsbuild.pants-2.10.0rc1-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.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd9fd29941a2d2e017c4e8f65d34daac15b4a1d5a3ab6cb057adccedb8c52196 |
|
MD5 | 26dcd9d6df6e39e4b16e4079c0f5ab0d |
|
BLAKE2b-256 | 8062a7153a3f6077ff3f7efeac61b09865168023211948043be83029c794f530 |