Skip to content

Compiler dependencies with plus one and strict deps #1052

Open
@liucijus

Description

@liucijus

In some cases Scala compiler needs some deps to be on the classpath, which are not directly mentioned in the source code of the target. Such deps should come transitively with plus-one. Otherwise it is a coupling on the client side, which will will break if implementation target changes its dependencies. This becomes an issue if such coupling happens to an external dep implementation.

Repro: https://github.com/wix-playground/scala-unused-deps/tree/master/type_annotations

a.Hello depends on b.LoggingProvider, but it also asks to add //type_annotation/c, which is implementation detail of b.LoggingProvider.

If implementation of LoggingProvider is changed to use d.BetterLogger, it requires not only to add d to b, but also d to a, and remove c from a.

Metadata

Metadata

Assignees

No one assigned

    Labels

    dep-trackingStrict/unused deps, label collections related issues

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions