[
https://issues.apache.org/jira/browse/BEAM-13504?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17532441#comment-17532441
]
Beam JIRA Bot commented on BEAM-13504:
--------------------------------------
This issue is P2 but has been unassigned without any comment for 60 days so it
has been labeled "stale-P2". If this issue is still affecting you, we care!
Please comment and remove the label. Otherwise, in 14 days the issue will be
moved to P3.
Please see https://beam.apache.org/contribute/jira-priorities/ for a detailed
explanation of what these priorities mean.
> Remove provided/compileOnly deps not intended for external use
> --------------------------------------------------------------
>
> Key: BEAM-13504
> URL: https://issues.apache.org/jira/browse/BEAM-13504
> Project: Beam
> Issue Type: Sub-task
> Components: build-system
> Reporter: Daniel Collins
> Priority: P2
> Labels: stale-P2
> Time Spent: 40m
> Remaining Estimate: 0h
>
> There are a lot of compileOnly deps in place to make certain libraries
> lighter. In many cases, these don't actually reduce the size of the resulting
> binary, and are a result of an overriding strategy where the types of the
> implementation are needed in the loading library.
> In the short term, these can all be replaced by `implementation`, with the
> downside that jars will have extra explicit dependencies, and the upside that
> users will not experience runtime errors due to missing dependencies. In the
> longer term, we should restructure these libraries (sql being the worst
> offender) to use serviceLoaders or other strategies that do not require
> naming the types of the overriders within the same package that the interface
> is declared.
> The one exception to this is libraries that we intend to use whatever version
> the user puts on the classpath at runtime without expressing a version
> preference, such as hadoop or kafka. We should still consider if this has
> value though, as users are still free to explicitly override the dependency
> version we choose, even if we declare an `implementation` dependency on it.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)