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

pantsbuild / pants / 7918
0%
main: 93%

Build:
Build:
LAST BUILD BRANCH: multiplatform_pex_with_uv
DEFAULT BRANCH: main
Ran 13 Nov 2015 11:19PM UTC
Jobs 8
Files 0
Run time –
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

pending completion
7918

push

travis-ci

stuhood
Add a per-JvmTarget option to pass only direct dependencies to the compiler

_applies atop [r/3036](https://rbcommons.com/s/twitter/r/3036/), but probably doesn't need to_

This adds support for 'strict' dependency checking, whereby only directly declared dependencies are provided to the compiler.

- Add `strict_deps` to JvmTarget
- Add the `--strict-deps` option on a new ZincLanguageMixin for subsystems
- Add a `Java` language subsystem (perhaps the most contentious part of the patch?
- Compute dependency lists in JvmCompile based on strict deps
- Fix a package oddity in `org.pantsbuild.zinc` that I noticed while running with strict
- Clean up tests for missing dependencies, which may now be checked in multiple ways

----

Sidenotes:

javac never inspects transitive deps during compilation, so by providing only direct deps you can compile with signficantly smaller classpaths (less analysis loaded, fewer entries to check). scalac, on the other hand, has plenty of cases where transitive deps are necessary for inference. In particular, to compute the least-upper-bound of the left and right hand side of a conditional:

    // may need to inspect transitive deps to infer the LUB for the two types
    // on the rhs, so that it can be used as the type for the variable on the lhs
    val animal = if (feline) Cat("") else Dog("")

This improves in `dotty`, the next version of the scala compiler. Rather than eagerly finding a LUB for the types, it instead infers the type of `animal` to be a union type: literally, `val animal: Cat | Dog`. Later, the types explicitly declared at the use-site for `animal` are checked against the union type:

    def walk(a: Animal) = ???
    // the typecheck compares the union type to the declared type and passes if:
    //   (Cat <: Animal && Dog <: Animal)
    walk(animal)

Testing Done:
https://travis-ci.org/pantsbuild/pants/builds/91009354

Bugs closed: 2456

Reviewed at https://rbcommons.com/s/twitter/r/3037/
Jobs
ID Job ID Ran Files Coverage
1 7918.1 (CI_FLAGS="-cjlpn 'Various pants self checks'") 13 Nov 2015 11:19PM UTC 0
Travis Job 7918.1
4 7918.4 (CI_FLAGS="-fkmsrcjlp 'Python contrib tests'") 13 Nov 2015 11:31PM UTC 0
Travis Job 7918.4
5 7918.5 (CI_FLAGS="-fkmsrjlpn -i 0/6 'Python integration tests for pants - shard 1'") 13 Nov 2015 11:23PM UTC 0
Travis Job 7918.5
6 7918.6 (CI_FLAGS="-fkmsrjlpn -i 1/6 'Python integration tests for pants - shard 2'") 13 Nov 2015 11:27PM UTC 0
Travis Job 7918.6
7 7918.7 (CI_FLAGS="-fkmsrjlpn -i 2/6 'Python integration tests for pants - shard 3'") 13 Nov 2015 11:31PM UTC 0
Travis Job 7918.7
8 7918.8 (CI_FLAGS="-fkmsrjlpn -i 3/6 'Python integration tests for pants - shard 4'") 13 Nov 2015 11:32PM UTC 0
Travis Job 7918.8
9 7918.9 (CI_FLAGS="-fkmsrjlpn -i 4/6 'Python integration tests for pants - shard 5'") 13 Nov 2015 11:34PM UTC 0
Travis Job 7918.9
10 7918.10 (CI_FLAGS="-fkmsrjlpn -i 5/6 'Python integration tests for pants - shard 6'") 13 Nov 2015 11:34PM UTC 0
Travis Job 7918.10
Source Files on build 7918
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #7918
  • e246df18 on github
  • Prev Build on master (#7912)
  • Next Build on master (#7920)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc