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.12.x Release Series
2.12.1 (Aug 31, 2022)
The second stable release of 2.12, with only updates to the docs website.
Documentation
-
Create page of Pants team members and proudest contribs (Cherry-pick of #16676) (#16678)
-
Fix example BSP groups file. (Cherry-pick of #16649) (#16651)
2.12.1rc4 (Aug 24, 2022)
User API Changes
- Bump default version of
setuptools
to 63.4 (#16619)
Bug fixes
-
Add
grpcio
to default Python module mapping (#16605) -
Fix
IndexError
when codegen is missing expectedpython_requirement
targets (#16590)
Documentation
- Fix broken link to community page (Cherry-pick of #16468) (#16556)
2.12.1rc3 (Aug 14, 2022)
Bug fixes
-
Include Helm chart dependency inference rules (cherrypick of #16368) (#16490)
-
Fix docker invalidation bug. (cherrypick #16419) (#16479)
-
Explicitly add directory entries to resources JARs (Cherry-pick of #16264) (#16295)
Documentation
-
Fix source roots docs (Cherry-pick of #16363) (#16364)
-
Link to dev.to post on resource hub (cherrypick #16331) (#16348)
2.12.1rc2 (Jul 20, 2022)
Bug fixes
-
Apply parameter filling for
parametrize
d dependencies to excludes, and fix accommodation for file-addressed atom targets (Cherry-pick of #16249) (#16251) -
[internal] Refactors
output_field
to default to something that disambiguates on parametrized fields (cherry-pick of #16232) (#16248)
2.12.1rc1 (Jul 19, 2022)
Plugin API Changes
- Generically compute dynamic defaults for
Field
s (Cherry-pick of #16206) (#16220)
Bug fixes
-
Fix scala plugins args order causing cache issues (Cherry-pick of #16228) (#16233)
-
Fix explicit dependencies of
parametrize
d targets not working for some target types (Cherry-pick of #16197) (#16213) -
Fill address parameters in all cases, rather than only when a consumer is
parametrize
d. (Cherry-pick of #16198) (#16211) -
Use filelists to make archive creation tasks more reliable (Cherry-pick of #16183) (#16185)
Documentation
- Document the "fromfile" feature. (cherrypick of #16205) (#16207)
2.12.1rc0 (Jul 14, 2022)
User API Changes
- Fix poetry locks missing hashes. (Cherry-pick of #16112) (#16114)
Bug fixes
-
Fix defaulting of parameters in explicitly specified deps on
parametrize
d targets for AsyncFieldMixin (Cherry-pick of #16176) (#16179) -
Improve memoization of interpreter constraints, Python parsing, and request classes (Cherry-pick of #16141) (#16153)
-
Fix pantsd TTY handling. (Cherry-pick of #16038) (#16047)
Documentation
-
Updates installation docs to refer to the 1-step setup script (Cherry-picks of #16149) (#16157)
-
Add 2.12 changelog to docsite (cherrypick #16136) (#16138)
-
Update docs with 2.12 changes: default Pex lockfile generator,
pants.toml
env var interpolation, pip VCS requirements, and Python interpreter constraints (Cherry-pick of #16000) (#16059) -
Fix CI provider table rendering. (cherrypick of #16051) (#16061)
-
Document Docker registries configuration options for
skip_push
andextra_image_tags
. (Cherry-pick of #16015) (#16021) -
Bump 2.12 install version (#16002)
2.12.0 (Jun 28, 2022)
The first stable release of the 2.12.x
series, with only documentation changes since the previous rc
!
Documentation
-
Update certificate environment variable advice for #14808. (Cherry-pick of #15943) (#15973)
-
Update the docs for
fmt
and test report changes (Cherry-pick of #15968) (#15970)
2.12.0rc3 (Jun 23, 2022)
New Features
- Add option for max wait before terminating interactive process (Cherry-pick of #15767) (#15908)
User API Changes
- Change the default
remote_cache_warnings
warnings behavior tobackoff
. (Cherry-pick of #15745) (#15746)
Plugin API Changes
- Introduce a plugin API to provide all thread local state, and deprecate stdio-specific methods (Cherry-pick of #15890) (#15907)
Bug fixes
-
Upgrade to
nails
0.13.0
to pick up support forJDK >=13
. (Cherry-pick of #15899) (#15906) -
Allow JVM memory controls to bound the process pool size to less than the process parallelism (Cherry-pick of #15903) (#15905)
-
Fix
[python-infer].inits
and[python-infer].conftests
to considerresolve
field (Cherry-pick of #15787) (#15793) -
Record metrics for remote cache store errors (Cherry-pick of #15744) (#15747)
-
Fix help for
--process-total-child-memory-usage
and--process-per-child-memory-usage
(Cherry-pick of #15733) (#15737)
Documentation
-
Fix broken links to
tailor
documentation (#15843) -
Adds current contents of readme.com docs to repo and adds notes on how to sync. (Cherry-picks #15810) (#15820)
-
Handle anchors in
doc_url()
correctly (cherrypick of #15812) (#15823)
2.12.0rc2 (May 31, 2022)
New Features
- Add Memory controls to JVM processes (Cherry-pick of #15224) (#15682)
User API Changes
- Upgrade Pex to 2.1.90. (Cherry-pick of #15656) (#15658)
Bug fixes
-
Don't install Pex-style lockfile when no requirements used (Cherry-pick of #15706) (#15707)
-
python_requirements()
can handle-r reqs.txt
(Cherry-pick of #15672) (#15677) -
Prevent collisions between attempts to materialize an immutable input digest. (Cherry-pick of #15652) (#15680)
-
Choose correct dialect according to scala-version (Cherry-pick of #15649) (#15681)
2.12.0rc1 (May 23, 2022)
New Features
-
Allow turning off
export
of Python tools likeblack
(Cherry-pick of #15509) (#15511) -
Support relative address syntax for JVM compiler plugin artifacts (Cherry-pick of #15462) (#15468)
User API Changes
- Upgrade Pex to 2.1.88. (Cherry-pick of #15484) (#15485)
Bug fixes
-
Fix incorrect digest for JVM multiple
jvm_artifact(.., jar=..)
entries (Cherry-pick of #15571) (#15611) -
Record Scala
package object
as provided name (Cherry-pick of #15582) (#15608) -
Don't give a subsequent formatter an empty snapshot after skipping (Cherry-pick of #15483) (#15602)
-
Fix lockfile generation for Docker and Terraform to not require Python backend (Cherry-pick of #15453) (#15604)
-
Fix Scala inference not inferring a symbol name after a function call (Cherry-pick of #15565) (#15603)
-
Fix non-deterministic order of
jvm_artifact(.., excludes=..)
(Cherry-pick of #15542) (#15575) -
Fix JVM resource classification and artifact grouping (Cherry-pick of #15567) (#15573)
-
Fix
tag
filtering with--changed-dependees
(Cherry-pick of #15546) (#15564) -
Improve
name=
used forpython_requirements
target generators withtailor
(Cherry-pick of #15507) (#15519) -
jvm: don't generate default tool lockfiles (Cherry pick of #15488) (#15498)
-
jvm: fix incorrect check for root-only
ClasspathEntryRequest
implementations (Cherry pick of #15494) (#15496) -
kotlin: the
plugin_id
field onkotlinc_plugin
target is optional (Cherry-pick of #15459) (#15466) -
kotlin: remove stray scala references (Cherry-pick of #15461) (#15465)
Performance
lint
only finds targets and files if the relevant linters were specified (Cherry-pick of #15579) (#15601)
2.12.0rc0 (May 13, 2022)
User API Changes
-
Upgrade default Protoc version to 3.20.1 (native Apple Silicon support) (Cherry-pick of #15424) (#15441)
-
Require that a target's
interpreter_constraints
are a subset of their dependencies' (Cherry-pick of #15373) (#15407)
Plugin API Changes
- Move
get_git
deprecation to start in2.14.0.dev0
(Cherry-pick of #15423) (#15437)
Bug fixes
-
Fix
tags
to work with filesystem arguments,overrides
field, andpython_tests
(Cherry-pick of #15394) (#15412) -
Support the
{chroot}
env placeholder for all interactive processes that are not executed in the workspace. (Cherry-pick of #15401) (#15405) -
Fix
[]
in file names with target generators (Cherry-pick of #15383) (#15403) -
Fix
tailor
detection of existingpython_requirements
targets (Cherry-pick of #15363) (#15372) -
Add the "named args explanation" to other relevant
parametrize
error messages. (Cherry-pick of #15362) (#15370) -
Use abspath to sandbox in PATH for docker tool shims. (Cherry-pick of #15341) (#15356)
-
Fix non-determinism of
package_data
in generatedsetup.py
files (Cherry-pick of #15292) (#15299) -
Fix a bug in the python venv export logic. (#15294) (#15297)
Performance
- Eagerly skip tools with default lockfiles in
export-lockfiles
goal (Cherry-pick of #15304) (#15308)
Documentation
-
Improve error message for
dependencies
on incompatible Python resolves (Cherry-pick of #15416) (#15439) -
Improve
help
and error message for[python-infer].unowned_dependency_behavior
(Cherry-pick of #15334) (#15391) -
Disallow
!
patterns inbuild_ignore
. (Cherry-pick of #15366) (#15368) -
Improve error message for resolves x interpreter constraints issues (Cherry-pick of #15314) (#15364)
-
Fix error output of
parametrize()
(Cherry-pick of #15339) (#15348)
2.12.0a0 (Apr 29, 2022)
New Features
-
Support poetry wildcard requirements. (#15213)
-
Implement
tailor
goal for Helm charts (#15192) -
Write virtualenvs for Python tools as part of
export
(#15098)
User API Changes
- Upgrade Pex to 2.1.84. (#15288)
Plugin API Changes
-
Allow for arbitrary suffixes when extracting (#15257)
-
Add lz4 support to archive extraction (#15245)
Bug fixes
-
Simplify BSP metadata merging, and handle the empty list. (#15283)
-
BSP resolve filtering observes computed default values of resolve fields (#15282)
-
Memoize equality for
CoarsenedTarget(s)
to avoid exponential runtime incheck
. (#15277) -
Fix ambiguity of Scala
package object
s withclass
orobject
definitions (#15265) -
Fix issue with Docker publish when using
[docker] tools
. (#15255) -
Do not lowercase Docker image tags. (#15254)
-
Fix the placement of the pex verbosity args. (#15243)
-
Fix use of
@
in path names. (#15226) -
Fix lockfile generation for duplicate
jvm_artifact
targets withjar
fields. (#15219) -
golang: add more cache keys based on tool IDs (#15205)
Performance
MyPy
andPylint
partition inputs viaCoarsenedTarget
(#15141)
Documentation
-
Fix
ProtobufSourcesOverridesField
help message (#15272) -
Update
help
for python resolves with recent improvements (#15228) -
Improve cache-related error message to be less confusing (#15202)
-
Show
experimental-bsp
goal in help (#15208) -
Mention resolve when partitioning Mypy and Pylint (#15172)
-
Don't log set up of binary shims (#15203)
2.12.0.dev3 (Apr 16, 2022)
New Features
-
Address specs for parametrized target templates expand to their created targets (#15126)
-
Implement
publish
goal for Helm charts (#15042) -
add experimental kotlin backend to distribution (#15109)
-
Support pip-style VCS requirements. (#15097)
User API Changes
Plugin API Changes
-
Throw a
DuplicateRuleError
when there are conflicting rules in a module. (#15073) -
Expose
GitWorktree
as an@rule
(#15030)
Bug fixes
-
Fix Requires-Python for pantsbuild.pants wheel. (#15149)
-
Allow dashes in inferred asset strings (#15123)
-
Fix when the same
python_requirement
defines both type stub and implementation (#15121) -
Fix missing field check in go protobuf rules (#15105)
Documentation
-
Last round of softwrapping help strings (#15142)
-
Softwrapping a few more files (#15138)
-
Softwrap python backend help strings (#15137)
2.12.0.dev2 (Apr 11, 2022)
New Features
-
Support for env var interpolation in config files. (#15087)
-
Support for finer control over which Docker images to push. (#15000)
-
Add a helpful hint to
lint
if a formatter fails (#15048) -
Add support for Helm 3rd party dependencies (#14964)
User API Changes
-
Default
[python].lockfile_generator
to Pex (#15074) -
Upgrade Pex to 2.1.78. (#15078)
-
terraform: remove
terraform_modules
generator target type (#15035) -
Upgrade to Pex 2.1.77. (#15015)
-
Change JVM defaults to use Temurin JDK distribution (#15009)
Plugin API Changes
-
Remove deprecated
register_options
support. (#15090) -
Remove deprecated target generator API affordances. (#15091)
-
Add
@rule_helper
decorator, which participates in awaitable collection (#15025)
Bug fixes
-
Enable codegen on relocated files (#15100)
-
Preserve tombstones for workunits which complete while they still have children (#15088)
-
Clean the export dir under dist/ before populating it. (#15068)
-
Do not use a repository-PEX if a PEX has platforms specified (#15031)
-
Fix default layout and use of PEX-repositories for legacy lockfiles (#15014)
-
Pin pytest 7.0.1 (#14997)
Documentation
-
files/dirs swapped in Snapshot's repr (#15101)
-
Tweak deprecation messages. (#15027)
-
Add some codegen and terraform backends to docs generator (#15036)
-
Text in angle brackets needs to be escaped for the docsite. (#15046)
-
Fix presented provider backend for rules/subsystems. (#14999)
2.12.0.dev1 (Apr 05, 2022)
New Features
-
Support restricting specific requirements to just wheels or just sdists. (#14985)
-
Add support for Helm unittest (#14849)
-
Add support for parsing address parameters to CLI specs parsing (#14949)
User API Changes
-
Merge list values across config files. (#14850)
-
Write test reports to a standard location under the distdir. (#14929)
-
Upgrade Pex to 2.1.76. (#14992)
-
Upgrade coursier to v2.1.0-M5-18-gfebf9838c (#14978)
Plugin API Changes
-
"Unify"
fmt
andlint
rules for formatters (#14903) -
Refactor
prior_formatter_result
and its usage (#14987) -
Deprecate not implementing
TargetGenerator
inGenerateTargetsRequest
implementors. (#14959)
Bug fixes
-
add go protobuf backend to init/BUILD (#14979)
-
Fix Pylint config check strings (#14946)
-
Fix missing
check
output by allowing disabled workunits to re-enable themselves (#14934) -
Fix unrecognized field error and
update-build-files
to handle target generator moved fields (#14847)
Performance
- Make PEX lockfile subsetting incremental (#14944)
Documentation
- Don't warn if no relevant targets in glob or --changed. (#14904)
2.12.0.dev0 (Mar 25, 2022)
New Features
-
Add Protobuf formatting using buf format (#14907)
-
add registration for the Go Protobuf backend (#14874)
User API Changes
-
Remove
--use-deprecated-python-macros
in favor of always using target generators (#14842) -
Add
django-dotenv
,django-safedelete
andfactory-boy
to default Python module mapping (#14848) -
Add cattrs to Python's DEFAULT_MODULE_MAPPING (#14845)
-
hcl parser 3.0.5 (#14878)
Plugin API Changes
- FmtResult now operates on Snapshots (#14865)
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
Hashes for pantsbuild.pants-2.12.1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0c51bb2ddb46dfa196633862d7406055d74c1e9130a09672352baf12ae42be2 |
|
MD5 | 9a81be036aa40ff6d5a1ad5a9b0afa93 |
|
BLAKE2b-256 | ac53228622f70a4fa26674dd18fb43c31240b6f02f6562cd5d6e7cd477a79a65 |
Hashes for pantsbuild.pants-2.12.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b80988523f562b10d658ddc719206bfd7ed714297e92cf6dce41a2c8fbdcfe2 |
|
MD5 | 4489d794b87a735d6fef795024ef4218 |
|
BLAKE2b-256 | bf5d232965b7ce95067691ffb2d55023b72af88d3a67417b3904a7cc77d397fe |
Hashes for pantsbuild.pants-2.12.1-cp39-cp39-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4525912fb88055de0cc134ba0ef5c226967a67d409bde88ac5675a1b7a37a78 |
|
MD5 | 42b25144b1032f23a4f2921549ee3a19 |
|
BLAKE2b-256 | f3a901b82cfd1a9e2644964bd1c8e536bc47b8bd7b154fd1adaf1c404efbb594 |
Hashes for pantsbuild.pants-2.12.1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df9fdca9d4d15394c73ce5cd9f14ee189b5f22874db78010ed974dc3fb663883 |
|
MD5 | 8d1e4fe191ba8a2454ba0208d5d415a7 |
|
BLAKE2b-256 | eebd9e3fbf7ae6d26f62cda44a50465bd27e39e3d1acf53e8838f2dce324f435 |
Hashes for pantsbuild.pants-2.12.1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dac312a37dce54a1e494af4a4f1d2aff17d81e40c8cffcfd48c1185663011569 |
|
MD5 | c17c833bc01f7890820200adee9c6bb5 |
|
BLAKE2b-256 | da93a2d5f488d8c18a08ff4437cf2c4a7ec58506fdec2a04a7666546b0d82bf1 |
Hashes for pantsbuild.pants-2.12.1-cp38-cp38-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92cb9753238e850edfb2e1b4f3e12222b65436d6d52d271dddfecfab9801a1ec |
|
MD5 | c98f3567a8fa50f15cb089541e96304d |
|
BLAKE2b-256 | 4e17212402218449e728211b91b2e5f83fb6a3d2b98a307efc4e70ff37ee9952 |
Hashes for pantsbuild.pants-2.12.1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7dd0245b5e353608e42f9485897af172a290ec1b161b6c9502962757545b2ee3 |
|
MD5 | 95c624c2ae44795dd44134a8c06a5792 |
|
BLAKE2b-256 | 721a08132ef395173ca233fcedd25be895f43a09c455391a89b602864a26029d |
Hashes for pantsbuild.pants-2.12.1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba2036ed3ef3ff243235f33660f3ec5075575e8a7d2826b3688eaddfbef8a985 |
|
MD5 | fe542abb6b1b5603cfe2318b18f90628 |
|
BLAKE2b-256 | 82742ba1e097e9ef2c5c7b7653eb165e929f73848ba81c2df59cc7cca850572f |
Hashes for pantsbuild.pants-2.12.1-cp37-cp37m-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d69b368822598fa32bd551cd707945655d73a1e4d310c09f8752581994cdac43 |
|
MD5 | 67582eaf1000f0d070b7ea1dbd83630c |
|
BLAKE2b-256 | 1e47415cc702defe84d5ef994a6543735107b873be8351201d929b6c960bb188 |
Hashes for pantsbuild.pants-2.12.1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7614baacd4521249c4ebe68377d1e4b59fce50dc95bb0a671d831b76e2f1f3ef |
|
MD5 | 412be944a6cd51e53f61051e58c54bde |
|
BLAKE2b-256 | c85f2d9f6c20894f29aab720a3d2f305a776d1b01da4a02530f0487093f2c9d5 |