[ 
https://issues.apache.org/jira/browse/BEAM-13504?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Beam JIRA Bot reassigned BEAM-13504:
------------------------------------

    Assignee:     (was: Emily Ye)

> 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-assigned
>          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.1#820001)

Reply via email to