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.9.x Release Series
2.9.0rc4 (Jan 06, 2022)
New Features
- JVM Resources support (cherrypick of #13908) (#14088)
2.9.0rc3 (Jan 05, 2022)
Bug fixes
-
Fix incorrectly setting
name
onpython_requirements
macro (Cherry-pick of #14065) (#14067) -
Fix help strings which were accidentally tuples, and add a validation. (cherrypick of #14057) (#14068)
2.9.0rc2 (Jan 03, 2022)
New Features
-
Add duration and cache source to test output. (cherrypick of #13889) (#14002)
-
Support Docker build target stage (Cherry pick of #13956) (#13997)
-
Support
test --debug
with scalatest and junit. (cherrypick of #13958 and #13966) (#14000) -
Docker context troubleshooter (Cherry pick of #13896) (#13953)
User API Changes
- Upgrade to Pex 2.1.61 and use
--venv
copies. (Cherry pick of #13979) (#13980)
Bug fixes
-
Fix
.pyi
type stubs to show up inpython_distribution
(cherrypick of #14033) (#14035) -
Restore the
pants
namespace package. (Cherry picked from #13972) (#13977) -
Fix deprecated
[python-setup].interpreter_search_paths
and[pex].bootstrap_interpreter_names
not working (#14009) -
Fix file sources codegen for the Docker build context. (Cherry pick of #14024) (#14025)
-
[jvm] Use appropriate coordinate serialization for Coursier CLI inputs. (cherrypick of #14038) (#14046)
-
[jvm] Parse maven coordinates using regular expression (cherrypick of #14010) (#14015)
-
[jvm] Fix parsing of
Coursier
report coordinates whenpackaging
is reported. (cherrypick of #13996) (#13998) -
[jvm] Fix use of multiple scalac plugins when one plugin has multiple classpath entries (cherrypick of #14012) (#14014)
2.9.0rc1 (Dec 21, 2021)
User API Changes
-
Set a default for
[jvm].resolves
and[jvm].default_resolve
(cherrypick of #13925) (#13930) -
[jvm] Normalize the layout of JVM subsystems and add support for compiler options (cherrypick of #13926) (#13931)
-
Upgrade Pex to 2.1.59. (#13932) (#13933)
Bug fixes
-
Fix
tailor
not setting thename
field (Cherry-pick of #13913) (#13924) -
Fix
--log-levels-by-target
not working for logs from Python code (Cherry-pick of #13939) (#13940) -
Revert "Turn off validation for unset
SourcesField
ifrequired=False
" (#13856) (cherrypick of #13944) (#13946) -
[jvm] Expose additional JVM backends and symbols (cherrypick of #13943) (#13947)
2.9.0rc0 (Dec 17, 2021)
New Features
-
Add
--docker-run-args
option to supportdocker run [args] <image>
. (#13818) -
An include_requirements field on pex_binary. (#13894)
-
Add new
secrets
field todocker_image
. (#13830) -
[jvm] Add support for Scalatest (#13872)
Bug fixes
-
[jvm] Apply the resolve for
deploy_jar
and restore validation of resolve compatibility (#13911) -
Fix
java_junit_test
andscala_junit_test
targets to useresolve
instead ofcompatible_resolves
(#13870) -
[jvm] Fix
tailor
for the addition ofScalatest
. (#13887) -
Fix
setup_py
resource packaging. (#13878)
Documentation
-
Fix rendering of default field values in reference docs. (#13891)
-
Provide helpful error message in case of undefined Docker build arg. (#13880)
-
[docs] Enable
Java
andScala
backends on the docsite. (#13909) -
Update the project description. (#13906)
-
Add warning when building AWS Lambdas and Google Cloud Functions on macOS. (#13790)
2.9.0.dev4 (Dec 13, 2021)
New Features
-
[jvm] Hook up the ability to run JUnit tests written in Scala (#13868)
-
scala: add
scalafmt
support forfmt
andlint
goals (#13814) -
scala: add protobuf codegen support via
scalapb
(#13853) -
Add support for global
scalac
plugins. (#13827) -
JVM: Adds
jar
field tojvm_artifact
(#13834)
User API Changes
-
relocate_files
no longer used withexport-codegen
goal (#13829) -
Include
shell_source(s)
indocker_image
build context. (#13761)
Plugin API Changes
-
Codegen plugins can turn off
export-codegen
integration. (#13828) -
Deprecate
testutil.RuleRunner.create_files()
.create_file()
and.add_to_build_file()
(#13817)
Bug fixes
- Fix
.pyi
files not automatically depending on__init__.py
(#13844)
Performance
- [jvm] Use
immutable_inputs
to provide the compiletime classpath (#13862)
Documentation
-
Improve Docker undefined build arg behavior (#13723)
-
Add missing backtick (#13861)
-
Do not log extra deprecation info when there are no changes for
update-build-files --check
. (#13855)
2.9.0.dev3 (Dec 06, 2021)
New Features
-
java: add support for Google Java Format (#13811)
-
Adds support for remote jvm artifact urls (#13793)
-
Go tests can depend on
file
targets (e.g.testdata
folder) (#13781) -
An option to test/run/repl against the entire lockfile. (#13732)
-
Add
test_timeout
fields togo_package
(#13707) -
Added the
paths
goal to render all paths between two targets (#13778) -
Add support for inferring relative imports from Scala (#13775)
-
go: add
go vet
linter (#13438) -
Support interpolating Docker build args into the
repository
field ofdocker_image
targets. (#13721) -
Expose Pex
--resolve-local-platforms
option. (#13715) -
Expose Pex
--layout
option forpex_binary
. (#13714) -
Add
skip_tests
field togo_package
andshunit2_test
(#13708) -
JVM: Support strong first-party declarations of provided types (#13698)
-
scala: add
repl
support (#13576) -
Capture pylint reports. (#13689)
User API Changes
-
Rename
pypi_repositories
field torepositories
(#13794) -
Add
--local-cache
and--process-cleanup
to replace--process-execution-local-cache
and--process-execution-local-cleanup
(#13769) -
Add
pants_requirements
target generator and deprecatepants_requirement
macro (#13512) -
Stop generating
go_package
targets fromgo_mod
(#13702) -
Rename
go_first_party_package
target togo_package
(#13681) -
Upgrade default version of Black from 21.9b0 to 21.12b0 (#13816)
-
Upgrade to Pex 2.1.56. (#13713)
Plugin API Changes
IntField
andFloatField
can ban negative numbers and zero (#13705)
Bug fixes
-
Support materializing files through file symlinks. (#13789)
-
Fix duplicate error message for
publish
with no matching targets (#13776) -
Fix bug when
docker push
ing multiple tags. (#13764) -
Fix Java / Scala cycle artifact filename collision. (#13759)
-
Fix
run
goal forpex_binary
with a script entry point from a 3rdparty dependency. (#13748) -
Fix hadolint SIGSEGV. (#13736)
-
Fix
--resolve-local-platforms
help. (#13722) -
Avoid calling disabled stream handlers. (#13680)
-
Fix Go compilation failures causing
test
goal to error (#13711) -
Fix UI rendering of Go packages with no tests (#13710)
-
Fix dup 3rdparty dists introduced by local dists. (#13690)
-
Make tailor generate correct fields for python_requirements. (#13687)
-
Interactive processes kill the process and its children on Ctrl+C. (#13678)
2.9.0.dev2 (Nov 18, 2021)
New Features
-
[jvm] Add support for compiling cycles between Java and Scala (#13653)
-
[jvm]: Add Export types to dependency inference code and include exports in compile results for Java sources (#13603)
-
Allow tailor to pick up
docker_image
targets for any file with "Dockerfile" in it (#13601) -
[jvm] Add Scala consumed-symbols inference. (#13632)
-
[jvm] Add basic extraction of consumed symbols for Scala (#13628)
User API Changes
-
Report standard backends in anonymous telemetry (#13670)
-
Add
[twine].ca_certs_path
option. (#13593) -
Bump twine to 3.6.0 and add tool lockfile (#13594)
-
Ban
*
globs and!
ignores insource: str
field (#13629)
Bug fixes
-
Pass Docker env vars to
docker publish
. (#13669) -
Fix download URL for
grpc_python_plugin
on macos. (#13656) -
Fix Python dependency inference breaking with
python_source
targets (#13627) -
Fix swallowing of git stderr. (#13626)
-
Register skip fields for python linters and mypy also on the
python_test_utils
target. (#13616)
2.9.0.dev1 (Nov 13, 2021)
New Features
-
Add
instructions
field todocker_image
to support generating the Dockerfile (#13386) -
Add
--unowned-dependency-behavior
option for Python (#13491)
User API Changes
- Upgrade default pylint to v2.11.1 (#13585)
Plugin API Changes
- [plugin-api] Add
default_glob_match_error_behavior
toSourcesField
. (#13578)
Bug fixes
- Fix
--no-print-stacktrace
. (#13539)
Performance
-
Do not invalidate parent paths when only file content has changed (#13566)
-
Fix caching of binary lookups and avoid re-running
pytest
setup for environment changes (#13559) -
Fix slow performance from recursive
__repr__
and__hash__
for Go (#13492) -
Go: improve performance of first-party package analysis (#13476)
Documentation
- Fix
tailor
confusion with macros vs. targets (#13574)
2.9.0.dev0 (Nov 03, 2021)
New Features
-
Add overrides to python_requirements and poetry_requirements (#13458)
-
Add
--tailor-check
(#13432) -
An option to not clean up the binary chroot for the run goal. (#13427)
-
Add
[tailor].ignore_paths
and[tailor].ignore_adding_targets
(#13422) -
Validate that
[tailor].build_file_name
is compatible with[GLOBAL].build_patterns
(#13420)
User API Changes
-
Remove deprecated
pex_binary
fields. (#13479) -
Remove deprecated --pants-supportdir. (#13473)
-
Remove setup_py_commands from python_distribution. (#13450)
-
Remove deprecated
InferredDependencies.sibling_dependencies_inferrable
kwarg (#13440) -
CheckResults
no longer accepts deprecatedtypechecker_name
kwarg (#13434) -
Remove deprecated
[pytest].junit_xml_dir
option. (#13444) -
Remove deprecated
--list-provides
option (#13441) -
Remove deprecated
module_mapping
andtype_stubs_module_mapping
fields (#13442) -
Remove
entry_point=<none>
forpex_binary
in favor of leaving off the field (#13443) -
Remove deprecated
Sources
type in favor ofSourcesField
(#13439) -
Remove deprecated
requirements_relpath
frompython_requirements
macro (#13437) -
Remove deprecated
protobuf_library
,python_library
,shell_library
, andpython_requirement_library
target aliases (#13429) -
Remove deprecated
--peek-output
(#13433) -
Remove dependencies goal deprecated --type option. (#13431)
-
Remove dependees
--output-format
option. (#13430) -
Validate
python_test
andpython_tests
targets not used forconftest.py
andtest_foo.pyi
(#13436) -
Move
[python] interpreter_search_paths
to[python-bootstrap] search_path
, and add support for sandboxed Python scripts in@rule
s (#13340)
Plugin API Changes
-
Fix
fmt
,lint
,test
, andcheck
plugins having to usesources
FieldSet
value (#13456) -
Add support for extracting
.gz
files. (#13335)
Bug fixes
-
[bugfix] Do not cache Docker invocations between pants runs. Fixes #13461. (#13464)
-
Fix Python bootstrap interpreter search. (#13278)
-
Upgrade to Pex 2.1.54. (#13426)
-
Upgrade to Pex 2.1.53. (#13423)
-
Consume the
go
directive when compiling (#13387) -
Don't error for invalid Go third-party packages unless building them (#13405)
-
assume version 1 for older lockfiles without
version
key (#13399) -
Removes leading whitespace when
tailor
ing BUILD files without header text (#13375) -
Go: don't error for unsupported third-party sources with project introspection (#13377)
-
Fix missing field for
tffmt
inlint
. (#13355) -
Use strict resolves by default for the JVM (#13353)
-
Parse SSH git requirements in poetry config. (#13344)
Performance
-
Check for
@rule
graph cycles asynchronously (#13370) -
Use
--layout=packed
for all monolithic resolves. (#13400)
Documentation
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
Hashes for pantsbuild.pants-2.9.0rc4-cp39-cp39-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 14b98b6e17252439039d40780ecd7b9dd055f9c66d9588e672c366eb24baf1b6 |
|
MD5 | cb4c1cfd8ec64f2b97671fa025e92f5b |
|
BLAKE2b-256 | 670fa564a96ed491058cf5d4ab3916ad9e3b759e89720024ea61f72c723447fd |
Hashes for pantsbuild.pants-2.9.0rc4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd344b2964e73811fe38db62be7945f32bfc61d8cf904582afd5d816c1ff9ba5 |
|
MD5 | dc0530addcb14e5ebef87b7e066f6cb8 |
|
BLAKE2b-256 | 5df6db81ae04acdfba398e47fe69e74183aadf545f9499174d5aca0437f0fdd1 |
Hashes for pantsbuild.pants-2.9.0rc4-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6edf538fe50a4799edab243098035736ae59f69ac649d7783f5968155c37497 |
|
MD5 | edc8bc45601f38bf643f834695d41493 |
|
BLAKE2b-256 | 0f165378ef46dd467005761ca463cf73fce3aaad6d85c99aa2e471b0f88a2db9 |
Hashes for pantsbuild.pants-2.9.0rc4-cp38-cp38-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6cdc4493d2d1be8a4a2991f6fbb4a6ca12529ba333a74b55c52374c86c572307 |
|
MD5 | 9004ebcc57544f86a3e494ea8d2c5421 |
|
BLAKE2b-256 | 479e821782d27f2f0365898ec56f9d08aea945ca903a1967cdd6cd24e7ec7aa1 |
Hashes for pantsbuild.pants-2.9.0rc4-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7c32ab889996c6d5d9955bd7d85318c2af5a4c20e80b15ee994331bb7fbf090 |
|
MD5 | 35a4860356de70eba9880379ad97f693 |
|
BLAKE2b-256 | 0599c3692ad82f841ffe0431e45094fb13fc6d12b33bae8ea4d0e3b634808ce7 |
Hashes for pantsbuild.pants-2.9.0rc4-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e290f5d67ffd7d68b9da84d27aff352781ecfb23cc109f74078d578b07f5255 |
|
MD5 | cad35ae29f31323e915eee7d1cc57114 |
|
BLAKE2b-256 | a26c1bf85d7e78f94279ff975019c7a6230fba4311ffe49276c21c6f391cbc29 |
Hashes for pantsbuild.pants-2.9.0rc4-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 806e6ee76726bdf26a15ac6111386e01733e962cc199e2141cfd77950bae31de |
|
MD5 | 3bfedbc8fe21222ccb658a16674c653b |
|
BLAKE2b-256 | 35069474707e7fa12c4da201992245429006c38c8348ccde13d77c85648552e3 |