embl-cba / cats

Other
1 stars 2 forks source link

Consider distribution via maven.scijava.org #25

Open imagejan opened 3 years ago

imagejan commented 3 years ago

Using maven.scijava.org instead of a custom bintray repository would simplify it for downstream projects to use cats as a dependency (similar also for this repo's dependencies, such as imaris-writer etc.).

I suggest adding Travis CI for building and deploying to maven.scijava.org, in line with other projects in the SciJava universe.

@tischi Let me know if this is of interest, I can file a PR setting up Travis.

tischi commented 3 years ago

Thanks! Of total interest! Please go ahead and let me know how I can help!

FYI: There will be dependencies in this repo that would need to be moved to maven.scijava.org as well.

imagejan commented 3 years ago

In general, it's ok if the dependencies can be found on one of the configured repositories. There are some however that cannot be found be maven.

The artifacts currently missing (i.e. not on https://dl.bintray.com/tischi/snapshots/ nor anywhere else in the configured repositories) are:

Can you point me to their repositories?

tischi commented 3 years ago

not on https://dl.bintray.com/tischi/snapshots/ nor anywhere else in the configured repositories)

Yes, I know, it was too cumbersome for me to always push them there. Thus I would be very happy if this would be moved to maven.scijava.org!

  1. https://github.com/bigdataprocessor/bigDataProcessor1
  2. https://github.com/tischi/imagej-utils

Not sure this is relevant here, but regarding the bigDataProcessor1: that lives on a different Fiji Update Site (BigDataProcessor), CATS should also run without it, but will have additional features if the BigDataProcessor update site is enabled.

imagejan commented 3 years ago

tischi/imagej-utils

This one depends on -platybrowser versions that are not available in any Maven repository:

        <dependency>
            <groupId>sc.fiji</groupId>
            <artifactId>bigdataviewer-core</artifactId>
            <!-- Transformed Box Dialog -->
            <version>8.0.2-platybrowser</version>
        </dependency>
        <dependency>
            <groupId>sc.fiji</groupId>
            <artifactId>bigdataviewer-vistools</artifactId>
            <!-- Transformed Box Dialog -->
            <version>1.0.0-beta-18-platybrowser</version>
        </dependency>

Are these versions still required, or can we switch to officially deployed versions?

tischi commented 3 years ago

This unfortunately depends... The bdv-platybrowser repos contain functionality/ bug fixes which are, afaik, not available in the officially deployed versions.

See e.g.,

Also some other fixes that I depend on are only in the latest bdv, which is not the one that is currently shipped with Fiji...

But I think some of my repos do not depend on these changes and we could use the official ones. Which repo were you looking at specifically?

imagejan commented 3 years ago

For automatic builds and deployment, it is irrelevant what's currently shipped with Fiji. The only thing we care about is whether your project builds with the dependencies and versions defined in your pom, and if those specific versions are available somewhere on the maven universe defined by the configured repositories (i.e. only maven.scijava.org ideally, or additional bintray or jitpack repositories if required).

If you have a fork of these specific versions of bigdataviewer-core and bigdataviewer-vistools, we could possibly try with a jitpack artifact pointing to a specific commit (as they do in sciview). But if it builds with latest (unforked) versions, even better of course.

imagejan commented 3 years ago

Hm, the entire dependency tree seems to be quite "skrewed up" 😟 (in the sense that dependency versions of transitive dependencies are not found in the repositories that are defined in their respective POMs).

After trying to fix a few versions, I'm stuck at:

Failed to collect dependencies at de.embl.cba:fiji-plugin-morphometry:jar:0.5.2 -> de.embl.cba:fiji-plugin-cats:jar:0.7.2 -> de.embl.cba:classifiers:jar:0.1.03: Failed to read artifact descriptor for de.embl.cba:classifiers:jar:0.1.03: Could not find artifact de.embl.cba:pom-embl-cba:pom:0.1.01 in scijava.public (https://maven.scijava.org/content/groups/public)

I fear we have to start way more down the dependency tree with getting up artifacts onto public repositories. Giving up for now, but will hopefully resume once I find the time.

tischi commented 3 years ago

the entire dependency tree seems to be quite "skrewed up"

Yes, I know, I am currently working on improving this. I think we should start from the easiest with the least dependencies. I will have a look and let you know which one is least complex, ok?