Github user srowen commented on the pull request:
https://github.com/apache/spark/pull/1402#issuecomment-48885032
The SLF4J binding is a runtime dependency, and it may be one that a
down-stream consumer wants to override. But leaving it out entirely yields no
runtime binding at all -- no logging. There is an argument for not including
any SLF4J runtime dependency in Spark at all, and which requires users to add
their own to get any log messages. Debatable -- but a different question.
SLF4J is a bit of a funny example though. What about other runtime
dependencies? jets3t is a good one. It has to be on the runtime classpath, so
needs to go into a runtime assembly JAR. It does not need to appear on the
compile classpath, and shouldn't ideally.
This is not the same as "provided" scope, where the user is expected to
bring the artifact from the local environment.
What's the standard SBT magic for this?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---