Skip to content

Manage native classifier artifacts consistently: all platforms? or current platform only? #241

@ctrueden

Description

@ctrueden

For jogamp artifacts, we currently manually articulate all platforms for jogamp components in the <dependencyManagement> section—e.g.:

<dependency>
	<groupId>org.jogamp.gluegen</groupId>
	<artifactId>gluegen-rt</artifactId>
	<version>${org.jogamp.gluegen.gluegen-rt.version}</version>
	<classifier>natives-android-aarch64</classifier>
</dependency>

Even though we have nice properties defined for use downstream:

<scijava.natives.classifier.gluegen>${scijava.natives.classifier.jogamp}</scijava.natives.classifier.gluegen>
<scijava.natives.classifier.joal>${scijava.natives.classifier.jogamp}</scijava.natives.classifier.joal>
<scijava.natives.classifier.jocl>${scijava.natives.classifier.jogamp}</scijava.natives.classifier.jocl>
<scijava.natives.classifier.jogl>${scijava.natives.classifier.jogamp}</scijava.natives.classifier.jogl>

I don't remember for sure, but I might have done this because regardless of platform, we still want to manage all native classifiers for downstream consumers to depend upon should they so choose. (This seems like it should be rare to me, but what do I know, maybe it's helpful for debugging sometimes to depend on the natives-linux-amd64 artifact from a Windows box?)

But regardless of whether this pattern is considered good or not, we are currently inconsistent with how we handle the javacpp component native classifiers, which are each only managed for the current platform.

We need to make a decision about which approach is best: "all platforms always" (our current approach for jogamp natives) or "current platform only" (our current approach for javacpp natives).

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions