• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pantsbuild / pants / 40845801144
93%

Build:
DEFAULT BRANCH: main
Ran 29 Oct 2026 09:03AM UTC
Jobs 11
Files 1800
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

29 Oct 2026 08:56AM UTC coverage: 93.069% (+0.05%) from 93.016%
40845801144

push

github

web-flow
perf(jvm): stop merging a jvm_artifact's transitive jars into its entry (#23737)

`jvm_artifact` classpath entries held their transitive jars in a single
digest. So a widely depended-on jar, like scala-library, was included in
several classpath entry digests. These duplicates were then materialized
to sandboxes, such as for compile. The classpath also included the
duplicates. Their paths included the fingerprint of the merged digest,
so caches in for example scalac held the duplicate in memory. That also
grew by how many artifacts pulled in the same jars.

This separates them. So a `jvm_artifact` only holds its own jar in its
classpath entry digest, and a new field `exports` is added which refers
to the transitive jars by their own classpath entries. Anything that
previously merged into the classpath entries now gets exported instead.

`export_closure`, `closure`, `args` and `immutable_inputs(_args)`
include each export right after its exporter, to retain the same jar
order. `args` and `immutable_inputs(_args)` take `transitive=True` to
cover the closure in one walk. Equality uses the same trick as
`CoarsenedTarget` and `BuildGoPackageRequest` to only visit each pair
once, as it now represents this transitive graph instead of pre-merging
it.

On a relatively large scala codebase, 57% of the compile classpath was
duplicates. This removes all of them. The scalac nailgun JVMs held about
60% less heap after compiling, and across repeated compiles their jar
index grew about 40% less. Immutable inputs dropped from 1.9GB to 0.6GB
of disk. Cold compiles were slightly faster, and cached compiles are
unchanged.

A side-effect fix is that `deploy_jar` no longer gets duplicates of the
same jars via this mechanism, so its `duplicate_policy` outcomes behave
more as expected. Before, a jar could conflict with itself just because
two artifacts depended on it. That is covered in release notes.

Plugins reading a classpath entry digest or filenames directly no longer
s... (continued)

299 of 302 new or added lines in 17 files covered. (99.01%)

97894 of 105184 relevant lines covered (93.07%)

3.65 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
99.38
-0.63% src/python/pants/jvm/compile_test.py
1
97.66
0.38% src/python/pants/jvm/compile.py
Jobs
ID Job ID Ran Files Coverage
1 test_python_linux_x86_64_8/10 - 40845801144.1 29 Oct 2026 09:10AM UTC 1228
53.19
GitHub Action Run
2 test_python_linux_x86_64_5/10 - 40845801144.2 29 Oct 2026 09:04AM UTC 1240
60.17
GitHub Action Run
3 test_python_linux_x86_64_2/10 - 40845801144.3 29 Oct 2026 09:03AM UTC 1225
59.03
GitHub Action Run
4 test_python_linux_arm64 - 40845801144.4 29 Oct 2026 09:03AM UTC 1210
53.14
GitHub Action Run
5 test_python_linux_x86_64_7/10 - 40845801144.5 29 Oct 2026 09:06AM UTC 1228
50.89
GitHub Action Run
6 test_python_linux_x86_64_3/10 - 40845801144.6 29 Oct 2026 09:03AM UTC 1223
51.86
GitHub Action Run
7 test_python_linux_x86_64_4/10 - 40845801144.7 29 Oct 2026 09:07AM UTC 1254
58.85
GitHub Action Run
8 test_python_linux_x86_64_6/10 - 40845801144.8 29 Oct 2026 09:05AM UTC 1221
49.66
GitHub Action Run
9 test_python_linux_x86_64_1/10 - 40845801144.9 29 Oct 2026 09:03AM UTC 1224
48.69
GitHub Action Run
10 test_python_linux_x86_64_9/10 - 40845801144.10 29 Oct 2026 09:04AM UTC 1235
54.38
GitHub Action Run
11 test_python_linux_x86_64_0/10 - 40845801144.11 29 Oct 2026 09:04AM UTC 1245
56.86
GitHub Action Run
Source Files on build 40845801144
  • Tree
  • List 1800
  • Changed 23
  • Source Changed 17
  • Coverage Changed 22
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #40845801144
  • 9f52888e on github
  • Prev Build on main (#40833729979)
  • Next Build on main (#41124663765)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc