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

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



Hi Felix and Andreas,

To package the whole opencensus-java project for Debian indeed looks like a huge project. But if our goal is to only make Bazel work in Debian, it's a much smaller effort. Because Bazel only depends on opencensus-api (a runtime dependency for grpc). I add a pom.xml for opencensus-api based on opencensus v0.26.x branch. Please check https://github.com/meteorcloudy/opencensus-java/commit/c73f5234188e98138ed5108db8405c1d64ac53b4

With pom.xml file, you can easily build the jar file by `mvn package -Dmaven.test.skip=true`.

And of course, it still has some dependencies. Via `mvn dependency:tree` you can get the dependency graph:

[INFO] io.opencensus:opencensus-api:jar:0.19.2
[INFO] +- io.grpc:grpc-context:jar:1.18.0:compile
[INFO] +- com.google.auto.value:auto-value:jar:1.6.3:compile
[INFO] +- com.google.auto.value:auto-value-annotations:jar:1.6.3:compile
[INFO] \- com.google.auto.service:auto-service:jar:1.0-rc7:compile
[INFO]    +- com.google.auto.service:auto-service-annotations:jar:1.0-rc7:compile
[INFO]    +- com.google.auto:auto-common:jar:0.10:compile
[INFO]    \- com.google.guava:guava:jar:27.0.1-jre:compile
[INFO]       +- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO]       +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
[INFO]       +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
[INFO]       +- org.checkerframework:checker-qual:jar:2.5.2:compile
[INFO]       +- com.google.errorprone:error_prone_annotations:jar:2.2.0:compile
[INFO]       +- com.google.j2objc:j2objc-annotations:jar:1.1:compile
[INFO]       \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.17:compile

But fortunately, those dependencies are already on our radar. https://salsa.debian.org/bazel-team/meta/-/wikis/Workplan-Part-1#3-package-dependencies

I think we can easily package opencensus-api when grpc and auto related jars are in Debian.

Cheers,
Yun Peng

On Wed, 27 May 2020 19:25:21 +0200 Felix Natter <fnatter@gmx.net> wrote:
> 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}",

Reply to: