[ 
https://issues.apache.org/jira/browse/CASSANDRA-18906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17772200#comment-17772200
 ] 

Maxim Muzafarov commented on CASSANDRA-18906:
---------------------------------------------

{quote}For what reason would an integrator of this project find the necessary?
{quote}
The problem is that we don't know in all the cases how Cassandra poms are used 
by other projects and how they actually perform their upgrade procedures. The 
PR we have now highlights 
[#2770|https://github.com/apache/cassandra/pull/2770/files#diff-2c11c59ea199afd7097d89eece180d6ce6f9ee7568ffb141994f5dff9d9c2d27L43]
 how a transitive dependency could be used unintentionally. I agree that they 
look completely redundant, but removing them from minor/major releases is more 
natural than removing them from fix releases. Here is the link to the release 
policy here it is mentioned - "Bugfix: apply to oldest applicable LTS". In my 
humble opinion, it looks scary to backport to 4.1, but I don't want to block 
the patch either if it's really necessary.
[https://cwiki.apache.org/confluence/display/CASSANDRA/Patching%2C+versioning%2C+and+LTS+releases]

> Exclude unnecessary dependencies introduced by caffeine update to 2.9.2
> -----------------------------------------------------------------------
>
>                 Key: CASSANDRA-18906
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18906
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Build
>            Reporter: Stefan Miklosovic
>            Assignee: Stefan Miklosovic
>            Priority: Normal
>             Fix For: 5.x
>
>         Attachments: signature.asc
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> When I checked out the latest code with CASSANDRA-18805 in, I noticed that it 
> pulls these dependencies:
> {code}
> [resolver:resolve] Downloading 
> https://repo1.maven.org/maven2/com/github/ben-manes/caffeine/caffeine/3.1.8/caffeine-3.1.8.pom
> [resolver:resolve] Downloaded 
> https://repo1.maven.org/maven2/com/github/ben-manes/caffeine/caffeine/3.1.8/caffeine-3.1.8.pom
>  (3 KB at 8.7 KB/sec)
> [resolver:resolve] Downloading 
> https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.37.0/checker-qual-3.37.0.pom
> [resolver:resolve] Downloaded 
> https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.37.0/checker-qual-3.37.0.pom
>  (3 KB at 127.9 KB/sec)
> [resolver:resolve] Downloading 
> https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.21.1/error_prone_annotations-2.21.1.pom
> [resolver:resolve] Downloaded 
> https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.21.1/error_prone_annotations-2.21.1.pom
>  (2 KB at 119.3 KB/sec)
> [resolver:resolve] Downloading 
> https://repo1.maven.org/maven2/com/google/errorprone/error_prone_parent/2.21.1/error_prone_parent-2.21.1.pom
> [resolver:resolve] Downloaded 
> https://repo1.maven.org/maven2/com/google/errorprone/error_prone_parent/2.21.1/error_prone_parent-2.21.1.pom
>  (13 KB at 658.5 KB/sec)
> [resolver:resolve] Downloading 
> https://repo1.maven.org/maven2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.pom
> [resolver:resolve] Downloaded 
> https://repo1.maven.org/maven2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.pom
>  (0 B at 0.0 KB/sec)
> [resolver:resolve] Resolving artifacts
> [resolver:resolve] Downloading 
> https://repo1.maven.org/maven2/com/github/ben-manes/caffeine/caffeine/3.1.8/caffeine-3.1.8.jar
> [resolver:resolve] Downloading 
> https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.37.0/checker-qual-3.37.0.jar
> [resolver:resolve] Downloading 
> https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.21.1/error_prone_annotations-2.21.1.jar
> [resolver:resolve] Downloading 
> https://repo1.maven.org/maven2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.jar
> [resolver:resolve] Downloaded 
> https://repo1.maven.org/maven2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.jar
>  (0 B at 0.0 KB/sec)
> [resolver:resolve] Downloaded 
> https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.21.1/error_prone_annotations-2.21.1.jar
>  (17 KB at 219.1 KB/sec)
> [resolver:resolve] Downloaded 
> https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.37.0/checker-qual-3.37.0.jar
>  (220 KB at 2490.9 KB/sec)
> [resolver:resolve] Downloaded 
> https://repo1.maven.org/maven2/com/github/ben-manes/caffeine/caffeine/3.1.8/caffeine-3.1.8.jar
>  (869 KB at 6679.8 KB/sec)
> {code}
> Notice there is checker-qual and error_prone_annotations
> If you do this on the current cassandra-5.0:
> {code}
> find . -type f -name '*.java' | xargs grep 'import .*\.Nullable;' | cut -d 
> ':' -f2 | sort | uniq
> {code}
> you will get
> {code}
> import org.checkerframework.checker.nullness.qual.Nullable;
> import javax.annotation.Nullable;
> {code}
> The first import is wrong. We should not use that, we should use just 
> javax.annotation.Nullable.
> The reason why it is possible to use that import is that it is on the 
> classpath. Even worse, it is also added into libs which is not necessary at 
> all.
> error_prone_annotations are compile-time annotations and checker-qual are 
> too. We do not need them in Cassandra at all. They are dependencies which are 
> brought there from caffeine. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to