ppkarwasz commented on PR #2155:
URL: https://github.com/apache/zookeeper/pull/2155#issuecomment-2047451913

   > maybe we can mark this dependency as runtime optional instead of test?
   
   Personally I am not a big fan of `optional` or `provided` dependencies: 
their role is documentation only. The meaning is pretty much up to each 
developer to interpret. I interpret `provided` as "we don't bundle Logback, but 
you **need** it for Zookeeper to run". Regarding `optional` I interpret it as 
"some Zookeeper features only work with Logback" (a Logback appender maybe?). I 
think the message that should be sent to users is "Zookeeper prefers/recommends 
Logback, but it will work with whatever SLF4J implementation your provide him".
   
   Inside the Zookeeper project their usefulness is also somehow limited: the 
Maven Compiler and Surefire plugins will use them, but the Maven Assembly 
plugin will not package them in the `tar.gz` archive.
   
   So the only difference between runtime `optional` and `test` is that Logback 
is available at compilation time. This **is not** an advantage: if Zookeeper 
fails to compile without Logback, it means that it references some 
Logback-specific classes.
   
   **Remark**: The way Logback is treated in this PR is similar to the Jetty 
dependency. Jetty is included in the `tar.gz`, but there are no runtime 
dependencies on it.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@zookeeper.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to