desruisseaux commented on PR #1726: URL: https://github.com/apache/maven/pull/1726#issuecomment-2376344706
> So even if we have a smarter api, we'll need stable artifacts during a build, else we'll loose any possibility of optimisation. My idea was to ensure that "stable artifacts" means "not rewritten" rather than "rewritten identically", in which case the situation (for the purpose of optimization) become equivalent to reproducible build. > Try it on maven. Just run mvn -DskipTests package multiple times. No jars will be modified. In that case, we are already close to above-mentioned equivalence, isn't it? If the optimization doesn't work yet, in my understanding on the compiler plugin side, it seems to be a bug (the change detection algorithm in "incremental compilation" is comparing relative paths against absolute paths, thus always thinks that there is changes). Therefore, reproducible build would be a workaround for such bugs rather than something fundamentally needed for optimization. But the same workaround would work with semantic equivalence if we compute the SHA1 on ZIP entries instead of the ZIP file (admittedly maybe not using standard Unix tools). Note: I'm all in favour of the *goals* behind reproducible builds. I just think that throwing away metadata like timestamps is going a bit too far, and that semantic equivalence as Microsoft and Eclipse Tycho do would allow us to have the best of both worlds. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@maven.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org