mojohaus / jaxb2-maven-plugin

JAXB2 Maven Plugin
https://www.mojohaus.org/jaxb2-maven-plugin/
Apache License 2.0
103 stars 75 forks source link

New release to support reproducible builds #296

Open lucamolteni opened 5 months ago

lucamolteni commented 5 months ago

To be published in apache, https://github.com/apache/incubator-kie-optaplanner requires reproducible builds. It seems like the current build is blocked by jaxb2-maven-plugin:3.1.0, here's the output of

man clean install
mvn artifact:check-buildplan
...
[ERROR] plugin without solution org.codehaus.mojo:jaxb2-maven-plugin:3.1.0, see https://github.com/mojohaus/jaxb2-maven-plugin
...

It seems like there are commit related to reproducible build such as https://github.com/mojohaus/jaxb2-maven-plugin/pull/243 but in 3.1.0 it seems unsupported (see https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/codehaus/mojo/jaxb2-maven-plugin/README.md)

From local checking out the master branch it seems like the build plan correctly works and reproducible builds are supported.

Can you tell me when there will be a new release?

Thank you

lucamolteni commented 5 months ago

Tagging @olamy as you did the last release

hboutemy commented 5 months ago

@lucamolteni #243 is about having jaxb maven plugin itself reproducible it is not about the plugin to produce reproducible output

I just tested Kie Optaplanner build reproducibility locally:

mvn clean install -DskipTests && mvn clean package -DskipTests artifact:3.5.1-SNAPSHOT:compare -Dcompare.fail=false 

the only issues are with Quarkus-generated files

├── META-INF/quarkus-extension.properties
│ @@ -1,4 +1,4 @@
│  #Generated by extension-descriptor
│ -#Wed Jan 24 07:05:47 CET 2024
│ +#Wed Jan 24 07:09:42 CET 2024
│  deployment-artifact=org.optaplanner\:optaplanner-quarkus-deployment\:999-SNAPSHOT
│  provides-capabilities=org.optaplanner.optaplanner-quarkus
├── META-INF/quarkus-javadoc.properties
│ @@ -1,9 +1,9 @@
│  #
│ -#Wed Jan 24 07:05:47 CET 2024
│ +#Wed Jan 24 07:09:42 CET 2024
│  org.optaplanner.quarkus.config.OptaPlannerRuntimeConfig.solver=During run time, this is translated into OptaPlanner's {@link SolverConfig}\nruntime properties.

but your use of JAXB2 does not have any issue

hboutemy commented 5 months ago

starting an effort to better understand this jaxb2 reproducible output and clarify where to solve it (a maven plugin or a jaxb2 implementation): https://github.com/jvm-repo-rebuild/reproducible-central/issues/139