[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Can you help? (ITP: opencensus-java -- Stats collection and distributed tracing framework)



Andreas Tille <tille@debian.org> writes:

> Hi Felix,

hello Andreas,

> since you recently provided some help with another Java package: This
> one is a predependency for bazel which would be really great to have
> torch (the machine learning framework) which in turn is needed by lots
> of COVID-19 relevant packages.  So if you have a clue how to build this
> it would be another interesting step forward.
>
> Kind regards
>
>      Andreas.
>
> PS: Feel free to answer on list
>
>       https://lists.debian.org/debian-java/2020/05/msg00019.html
>
>
> I've started packaging in
>
>    https://salsa.debian.org/java-team/opencensus-java
>
> to support bazel packaging.  Unfortunately I have no idea how to fix all
> the (Build-)Depends of the gradle build.  I was following a hint given
> on debian-java list to find out some dependency relations via
>
>    gradle build --info

Wow, what a huge project (and, as usual in Java, with a huge number of
dependencies)...

There are toplevel dependencies (/build.gradle), which are "only" gradle
plugins, so IMHO some of these are candidates for patching out:

        classpath 'ru.vyarus:gradle-animalsniffer-plugin:1.4.6'
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE")
        classpath 'net.ltgt.gradle:gradle-errorprone-plugin:0.0.16'
        classpath "net.ltgt.gradle:gradle-apt-plugin:0.18"
        classpath 'com.github.ben-manes:gradle-versions-plugin:0.20.0'
        classpath "gradle.plugin.com.github.sherter.google-java-format:google-java-format-gradle-plugin:0.8"
        classpath "me.champeau.gradle:jmh-gradle-plugin:0.4.8"
        classpath "gradle.plugin.io.morethan.jmhreport:gradle-jmh-report:0.9.0"

Then there are ~50 dependencies in the 'libraries' map (most probably
all referenced in subdirectory build.gradle's, like "compile
libraries.grpc_context" in /api/build.gradle):

     libraries = [
                appengine_api: "com.google.appengine:appengine-api-1.0-sdk:${appengineVersion}",
                aspectj: "org.aspectj:aspectjrt:${aspectjVersion}",
                auto_value: "com.google.auto.value:auto-value:${autoValueVersion}",
                auto_service: 'com.google.auto.service:auto-service:1.0-rc3',
                byte_buddy: 'net.bytebuddy:byte-buddy:1.8.22',
                config: 'com.typesafe:config:1.2.1',
                disruptor: 'com.lmax:disruptor:3.4.2',
                errorprone: "com.google.errorprone:error_prone_annotations:${errorProneVersion}",
                findbugs_annotations: "com.google.code.findbugs:annotations:${findBugsAnnotationsVersion}",
                google_auth: "com.google.auth:google-auth-library-credentials:${googleAuthVersion}",
                google_cloud_logging: "com.google.cloud:google-cloud-logging:${googleCloudGaVersion}",
                google_cloud_trace: "com.google.cloud:google-cloud-trace:${googleCloudBetaVersion}",
                log4j2: "org.apache.logging.log4j:log4j-core:${log4j2Version}",
                zipkin_reporter: "io.zipkin.reporter2:zipkin-reporter:${zipkinReporterVersion}",
                zipkin_urlconnection: "io.zipkin.reporter2:zipkin-sender-urlconnection:${zipkinReporterVersion}",
                jaeger_reporter: "io.jaegertracing:jaeger-client:${jaegerReporterVersion}",
                google_cloud_monitoring: "com.google.cloud:google-cloud-monitoring:${googleCloudGaVersion}",
                grpc_auth: "io.grpc:grpc-auth:${grpcVersion}",
                grpc_context: "io.grpc:grpc-context:${grpcVersion}",
                grpc_core: "io.grpc:grpc-core:${grpcVersion}",
                grpc_netty: "io.grpc:grpc-netty:${grpcVersion}",
                grpc_netty_shaded: "io.grpc:grpc-netty-shaded:${grpcVersion}",
                grpc_stub: "io.grpc:grpc-stub:${grpcVersion}",
                guava: "com.google.guava:guava:${guavaVersion}",
                jsr305: "com.google.code.findbugs:jsr305:${findBugsJsr305Version}",
                signalfx_java: "com.signalfx.public:signalfx-java:${signalfxVersion}",
                spring_aspects: "org.springframework:spring-aspects:${springVersion}",
                spring_boot_starter_web: "org.springframework.boot:spring-boot-starter-web:${springBootVersion}",
                spring_boot_starter_web2: "org.springframework.boot:spring-boot-starter-web:${springBoot2Version}",
                spring_cloud_build: "org.springframework.cloud:spring-cloud-build:${springCloudVersion}",
                spring_cloud_starter_sleuth: "org.springframework.cloud:spring-cloud-starter-sleuth:${springCloudVersion}",
                spring_context: "org.springframework:spring-context:${springVersion}",
                spring_context_support: "org.springframework:spring-context-support:${springVersion}",
                prometheus_simpleclient: "io.prometheus:simpleclient:${prometheusVersion}",
                protobuf: "com.google.protobuf:protobuf-java:${protobufVersion}",
                opencensus_proto: "io.opencensus:opencensus-proto:${opencensusProtoVersion}",
                gson: "com.google.code.gson:gson:${gsonVersion}",
                httpcomponents: "org.apache.httpcomponents:httpclient:${httpcomponentsVersion}",

                // Test dependencies.
                guava_testlib: "com.google.guava:guava-testlib:${guavaVersion}",
                junit: 'junit:junit:4.12',
                mockito: 'org.mockito:mockito-core:2.28.1',
                spring_test: "org.springframework:spring-test:${springVersion}",
                truth: 'com.google.truth:truth:1.0',
                spring_boot_test: "org.springframework.boot:spring-boot-starter-test:${springBootTestVersion}",
                spring_boot_test2: "org.springframework.boot:spring-boot-starter-test:${springBoot2Version}",
                dropwizard: "io.dropwizard.metrics:metrics-core:${dropwizardVersion}",
                dropwizard5: "io.dropwizard.metrics5:metrics-core:${dropwizard5Version}",
                sprint_boot_starter_tomcat: "org.springframework.boot:spring-boot-starter-tomcat:${springBoot2Version}",
                javax_servlet: "javax.servlet:javax.servlet-api:${javaxServletVersion}",


So if you want to package the whole thing, you have to package most of
these (ca. 50) non-test dependencies (some of them are already packaged, of
course and as noted, some can be replaced by small patches).

> and added some of the modules I was able to detect from the gradle cache
> but this did not helped much.  I would be happy if someone could lend a
> helping hand since I have the feeling that my attempt looks a bit
> fruitless.  The package is relevant to get bazel packaged which would
> open the chance to package tensorflow which is used in several packages
> that help fighting COVID-19 and thus is part of the Debian Med COVID-19
> sprint.

This is an ambitious goal :-)

Cheers and Best Regards,
--
Felix Natter


Reply to: