Hi all,

after 3-4 days of some times 10-16 hours of working on getting the “process” 
running, I’m finally giving up.
We managed to fix a lot of issues in the way the steps were setup and managed 
to get to step 7 however there’s no getting past that.

The problem are the reproducible builds.

While for the java part I think we have all bases covered, however I can’t see 
however how I can fix the compiler to actually produce reproducible builds.

We are passing in the timestamp (slightly different format, however still 
correct as we also adjusted the format-string). When building locally, the 
timestamp is exactly as the timestamp string tells the compiler. On the CI 
however there’s this 60 minute offset. I have explicitly set the time-zone 
wherever I found time-zone relevant code to UTC (Which is the general best 
practice for date stuff). However the offset didn’t change. So I am completely 
out of ideas what could be causing this. If it really is the Summertime in the 
US, well I don’t know how to fix it (perhaps setup a rule to not release in 
this time).

Besides that, there are still differences in the library SWF:

  *   As I mentioned yesterday, the node typedef contains a “net” object 
definition in the local build and a “http” one on the CI server version.
  *   In other modules it’s simply the order of items generated. I guess it’s a 
similar issue as the one I fixed in the build-tools, but I have no idea how to 
fix it in the compiler

So in the end I’m giving up … I think the “process” is now way more stable than 
before, but it’s still a really fragile construct. Today Greg, Carlos and I did 
it together via Zoom and still we had to re-do some steps because one little 
preparation was missed.

I would strongly doubt that the reproducible builds really built globally 
reproducible builds in the past … perhaps it worked in a narrow corridor of 
time-zones and OS/Java versions (I did use java 1.8), but I simply can’t 
believe it ever was 100% reproducible.

So as long as this reproducibility is a requirement, I guess we’re done. I do 
understand what it’s used for in this context, however I think it’s just not 
working.

The other option would be to simply release with maven, which would have been a 
1-2 hour experience for all modules.

I do agree that if the steps work and all preconditions would be checked (which 
they currently are not) it is very easy to break the “process”. And it involves 
running 13 jobs … but as far as I got it also the execution of 32 manual 
commands for everything till step 7
4 + 6 + 3 + 3 + 3 + 4 + 2 + 3 + 3 = 32

So as long as we’re forced to stick to this process … I guess someone else will 
have to do it.

Please feel free to revert any changes I did in the last few months.

Signing off,
Chris

PS: You really should make this ApacheRoyaleCI guy a committer considering the 
amount of emails he’s writing ;-)


Reply via email to