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 ;-)