-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add uk.org.okapibarcode:okapibarcode:0.4.5 #162
Comments
Thanks for the feedback! I'm very familiar with Gradle, but not familiar with this project, so hopefully we can figure it out between the two of us. I had a look at a few other Gradle-based projects registered for reproducible builds, and also at (what I think is) the shell script which runs the Gradle builds... it appears to me that the Gradle integration relies on the "publishToMavenLocal" Gradle task to generate the JAR and POM files which are then compared against the files available publicly on Maven Central. Does this sound right? If so, I think the issue is that the build is configured to always sign the generated artifacts (JARs, POMs) -- but of course the necessary private key isn't available to you. If you can confirm the above hypothesis, then I think the fix will be to adjust the build file to sign artifacts when publishing to Maven Central, but to not sign them when publishing to a local repository. |
I committed the wip buildspec so you can test by running yes, the verification process is based on the content of once we manage to have your build ok, it would be nice if we could describe for Gradle users what they need to do |
Thanks! I've adjusted the build file to sign when deploying to Maven Central, but not the local Maven repository. I've released version 0.4.5 with this improvement to aid reproducibility verification. Looking at the WIP file, the version needs to be updated to 0.4.5, the tool needs to be changed to gradle, the JDK should be Java 17, and the "-Pskip.signing" build argument can be removed. I'm happy to help document the Gradle requirements a bit better. Note that I've created a Gradle feature request to make all Gradle builds reproducible by default without build customization, so steps may change in the future. See: gradle/gradle#28806 |
Any luck with the adjustments? I'm not able to verify locally due to file permission issues while running |
buildspec updated in 204f06e to me javadoc is out of scope of Reproducible Builds: if Gradle |
Interesting! Is the JavaDoc JAR file not compared during verification? I don't see it listed in As to why it might have been different, the only thing I can think of is if slightly different Java versions are generating slightly different JavaDoc output. Have you seen this happen before? Regarding the Gradle build documentation, where in the docs would be the best place to look to add a few improvements? |
look at the last line of every report: "(size is calculated without javadoc, that has been excluded from reproducibility checks)" |
Thanks, I had missed that. Is that a pragmatic choice (e.g. because different Java minor releases change the JavaDoc output so much that it is hard to reproduce reliably), or a principled choice (e.g. because JavaDoc output is considered out of scope regardless of the implementation difficulty or ease)? Where should I look to contribute Gradle configuration documentation? Is this page (https://reproducible-builds.org/docs/jvm/) generated from this Markdown (https://github.com/prototypefund/reproducible-website/blob/master/_docs/jvm.md)? They seem similar, but not quite in sync. Or would this file (https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/doc/TOOLS.md) be better? |
at the very beginning, it was a pure pragmatic choice based on the low value from knowing that java doc could be reproduced as source and binary: I knew that javadoc was not meant to be stable over time because it often depends on external site urls providing external javadoc to create link, then it was not unexpected when a javadoc site disappears that javadoc won't render the same was (and I don't want to try to inject mocks at that level: too complex, I had sufficient work for source and binaries). |
modifying https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/doc/TOOLS.md looks a good choice |
OK, thanks! I'll have a look at Since JavaDoc JARs are flaky and excluded, then the Gradle |
are you able to work on open-telemetry/opentelemetry-java#4488? it would be nice :) |
on |
Hi @gredler. Can you share the diff you're seeing in the |
I will have a look at this! |
oh, I forgot to configure the link to diffoscope files in https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/uk/org/okapibarcode/okapibarcode/README.md : they'll appear tonight here is one, for example https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/uk/org/okapibarcode/okapibarcode/okapibarcode-0.4.6.diffoscope |
The builds for this project should be reproducible, starting with version 0.4.5.
https://github.com/woo-j/OkapiBarcode/
https://central.sonatype.com/artifact/uk.org.okapibarcode/okapibarcode/0.4.5
The text was updated successfully, but these errors were encountered: