Closed sageserpent-open closed 9 months ago
The Sonatype JIRA ticket https://issues.sonatype.org/browse/OSSRH-95530 has been completed. Now to try it out...
Got the libraries published to Sonatype, so far so good...
... next, how to get the packaged executable on to GitHub as a release ...
It seems to work - in fact it works so well it is masking a problem with the artifacts published to Sonatype.
What happens is that the Coursier bootstrap executable (made available in a GitHub release by manual upload) contains both the kinetic-merge_3
JAR and the supporting rabinfingerprint_3
JAR (which incidentally shouldn't have the _3
part - it is built from Java).
So it doesn't need these artifacts to be published to Sonatype, as long as all the other dependencies are available - which they obviously are as the SBT build can pull them in.
Now there is a case to be made for not bothering to publish to Sonatype, but it would be nice to allow others to call Kinetic Merge programmatically, which is what the automated tests already do.
If so, then the code in the Rabin fingerprinting support project should be either published too (which is not a good idea because it is a copy-and-paste from another public repository; I don't want to impersonate them, even if under the com.sageserpent
organization), or fused into the kinetic-merge
artifact as a slightly fatter JAR.
Need to think about this...
Also need to document the, ahem, installation process - this is currently a case of executing:
curl -LJO --verbose http://github.com/sageserpent-open/kineticMerge/releases/download/v<release version>/kinetic-merge
chmod ug+x kineticMerge
Oh, and there needs to be a .bat
file for Windows too!
As of release 0.1.4 the Rabin fingerprinting dependency is shaded into the JAR for Kinetic Merge.
So any use of the Kinetic Merge JAR from Sonatype / Maven Central should resolve without referencing a non-published library.
Install procedure tested on a Linux machine with no local build of Kinetic Merge, confirmed to work properly.
All that is left is to burn in the release version into the executable...
The version is now reported.
As an aside, IntelliJ can no longer correctly import the SBT project due to all the trickery used to avoid generating a dependency on the Rabin Fingerprint project in the published POM, so it has to be told to build with SBT.
That needs fixing at some point. (Fixed in #16 )
Have done a couple of releases, so closing this as good.
Not so fast - for some reason the packageExecutable
is run against the snapshot version even though this is done after the publish of the non-snapshot version to Sonatype, so the version reported by kinetic-merge --help
is wrong.
As of release 0.1.7 / published libraries version 0.1.7 the executable now reports the correct version, so closing again.
Following in from #1, this requires the supporting dependencies used by the packaged executable to be made available at Maven Central or wherever Coursier gets them from, and a release to be defined in GitHub that includes the packaged executable.
Some documentation as to how to download the executable and use it would be nice too. 😸