Bug #5195
closedMaven Source Code of HE 10.3, 10.5 and 10.6 do not compile
0%
Description
As a Java developer, I download Saxon-HE binaries as a dependency via the Maven repository. For debugging the SAXON source code will be downloaded as well and usually, I am able to build a project with the provided pom.xml at Maven.
Unfortunately, the Maven Source Code of HE 10.3, 10.5 and 10.6 do not compile!
The fix of 10.3 was tiny: https://github.com/svanteschubert/Saxon-HE-enhanced-accuracy/commit/616453e0c484ce8a92dc4127c219a9fb751c85df
The fix of 10.5 was easy: https://github.com/svanteschubert/Saxon-HE-enhanced-accuracy/commit/279ab0f7a0ba2c26dc7b37d20d214fa4c7d3b13c
The fix of 10.6 is impossible as barely source code is being provided in the JAR:
- https://repo1.maven.org/maven2/net/sf/saxon/Saxon-HE/10.6/Saxon-HE-10.6-sources.jar <- 0.9 MB
- https://repo1.maven.org/maven2/net/sf/saxon/Saxon-HE/10.5/Saxon-HE-10.5-sources.jar <- 5.1 MB
The fix for the pom.xml may look like the following: A working pom.xml for 10.3 may look like this: https://github.com/svanteschubert/Saxon-HE-enhanced-accuracy/blob/Saxon-HE-v10.3/pom.xml For 10.5 like this: https://github.com/svanteschubert/Saxon-HE-enhanced-accuracy/blob/Saxon-HE-v10.5/pom.xml
Please node that the library you are likely using:
<dependency>
<groupId>jline</groupId>
<artifactId>jline</artifactId>
<version>2.14.6</version>
<optional>true</optional>
has a new group-id and is continued as:
<dependency>
<groupId>**org.**jline</groupId>
<artifactId>jline</artifactId>
<version>3.21.0</version>
<optional>true</optional>
</dependency>
but the latter/newest one is not compiling with your sources. see https://github.com/svanteschubert/Saxon-HE-enhanced-accuracy/blob/Saxon-HE-v10.3/pom.xml#L128
I have just improved my tooling to combine your Maven artefacts (bin/jar/pom) to create a buildable version on a branch and I am constantly rebasing my changes on top of them (as decimal-based floating-point IEEE 754 (since 2008) is not allowed by XSL 1.1 (2007 ). Even have an automated script. you may reuse parts for your testing: https://github.com/svanteschubert/Saxon-HE-enhanced-accuracy/blob/accuracy-feature/saxon-update.sh
But just after finishing my work today, I have realized your new Git repo. Have not identified the 10.6 sources of the Maven bundle and it does not fix the Maven Source/pom problem at the Maven repo. I very much do like your signing of Java Source files of the Maven Saxon-HE source JAR with signed hashes in the META-INF of the JAR, but if the classes are not buildable they are surely not the ones that I am running, right?
Looking forward to meeting you all again in Prag (in some future...)
Happy New Yeary especially to the Saxon team! Svante
Updated by Norm Tovey-Walsh over 2 years ago
Thank you, Happy New Year, and apologies for the inconvenience. I shall have to investigate what's gone wrong in building the Maven packages.
Updated by Norm Tovey-Walsh over 2 years ago
The build script definitely failed to construct useful sources jar. Sorry about that.
I've applied the proposed DOM4JNodeWrapper
fix, so that shouldn't be an issue in the future.
I can't reproduce the import com.saxonica...
problems that you saw in the 10.5 sources. I'm going to guess that we noticed and corrected that after the 10.5 release.
Updated by Norm Tovey-Walsh over 2 years ago
I believe that jline
is only used in the command line tool for Gizmo
. The jline
API changed in v3 and we haven't updated Gizmo to use the latest version. In the short term depending on the V2 api should be fine.
Updated by Norm Tovey-Walsh over 2 years ago
I think I've fixed the errors so that we're building a correct sources jar again. Unfortunately, there's no way to update the release on Maven except to make a 10.6.1 release.
How urgently do you need a resolution? Could it wait until the next maintenance release? Would sending you a corrected jar file help?
Updated by Svante Schubert over 2 years ago
Thank you very much for your fixes, we can wait for the next release, Norm!
May I suggest that you use in the future your Maven repo given pom.xml for
a smoke test build, so I will never write such an issue again? ;-)
Thank you very much for the quick fix! Looking forward to your next release!
Svante
Updated by Norm Tovey-Walsh over 2 years ago
- Status changed from New to Resolved
Thanks. Yes, I have a couple of background "todo" items (a couple, cough) around improving regression testing and building a smoke test with the distribution artifacts is one of them!
Updated by Svante Schubert over 2 years ago
One last thing, perhaps you might want to consider adding those resources
(e.g. XSL files) that are currently only available in the Maven JAR of
binaries as well to the Maven source JAR,
see file suffixes of
https://github.com/svanteschubert/Saxon-HE-enhanced-accuracy/blob/accuracy-feature/saxon-update.sh#L72
It would be nice if all artefacts within the binary JAR could be created
from the source JAR.
Finally, thinking it over, why are there HASHes of every Java file being
signed within the JAR? Wouldn't it be sufficient to have one single hash
for the complete JAR?
Just some thoughts but maybe they were worth being stated ;-)
Have a great week!
Svante
Updated by O'Neil Delpratt about 2 years ago
- Fixed in Maintenance Release 10.7 added
Bug fix applied in the Saxon 10.7 maintenance release. Closing this bug issue. If the problem still exists please reopen.
Updated by O'Neil Delpratt about 2 years ago
- Status changed from Resolved to Closed
Please register to edit this issue