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

Reply via email to