On Fri, Nov 27, 2020 at 14:20 Ian Wienand wrote:
On Thu, Nov 26, 2020 at 06:10:34PM +0000, Tristan Cacqueray wrote:
Probably the easiest solution will be for one of OpenDev's Zuul admins to arrange an autohold for a build which includes your new plugin, and then we can demo it there before releasing it again (three cheers for "testing like production!").
Though I'd be happy to get a test instance and feed it with real ci comments to demonstrate the results.
We probably want to document this. As a start, I put a hold on a job.
After I set /etc/hosts for review.opendev.org to the held node locally, I could log into the test gerrit (otherwise i'm redirected to the real site).
I then created a openstack/diskimage-builder project via the UI, just for testing. I started getting some errors which [2] resolved after a container restart.
I copied in the raw git tree from the real openstack/diskimage-builder git repo, and ran a re-index by sshing in as the 'Gerrit Code Review' user using suexec
ssh -i ~gerrit2/review_site/etc/ssh_host_rsa_key -p 29418 -l 'Gerrit Code Review' localhost 'suexec --as "Ian Wienand" gerrit index changes-in-project openstack/diskimage-builder'
I don't know if that's right, but it seemed to work. Fiddling with this was where I found [2]
Then I could see the dib changes; e.g.
https://104.130.172.52/c/openstack/diskimage-builder/+/751610
Very willing to take suggestions on what we could do better here. It would probably be awesome if we could figure out automated import of a live tree in the system-config test, so we have a bunch of changes with zuul comments pre-populated. Perhaps something like keep a zip of a smaller repo that has a bunch of reviews and comments, and populate that into the testing gerrit?
I can see the plugin is installed, because in the web console you get the log from [3,4]. However, I can't actually see the table.
Tristan -- have sent you a note separately on how to log in for live debugging if you like.
Thanks, I have switched the auth to DEVELOPMENT_BECOME_ANY_ACCOUNT and created a fake Zuul CI comment in https://104.130.172.52/c/openstack/diskimage-builder/+/554002
I can't say too much, because Tristan has written something and I haven't, but the choice of Reason or BuckleScript or OCaml or whatever is going on [5] really lowers the "bus factor" of this. I can read it and get the gist of what's going on; but it compiles down to [6] which I have no idea how to debug. AFAICT, Reason 3.0.4 was released 3 years ago, so it's either finished or ... not that active. I use emacs and write email in mutt -- I'm the first to admit I'm behind on the latest web framework trends. But after investigating TBH I remain unconvinced mostly that we can mantain this indefinitely, and secondly that the tooling will remain maintained.
From what I understand, we can either use java and the polymer template system, or the javascript api to implement the zuul results table.
I used a `compile to js` language named ReasonML because this let me write applications where most of the runtime errors are simply not possible. Moreover, the code can be compiled to other targets such as Erlang or native assembly. The language was created by the author of ReactJS and it is designed for Javascript developper, see the difference here: https://rescript-lang.org/docs/manual/v8.0.0/overview To debug [6], you would use the same tools as for any javascript applications. For example, using a source map so that the debugger can hook into the non-minified source. I'd be happy to use another implementation, I wrote this one rather quickly to restore the zuul-results build table in the new gerrit. Though I think ReasonML is the right tool for this job. Regards, -Tristan
Anyway, getting a better flow for testing plugins will serve us all well at any rate.
-i
[1] https://review.opendev.org/c/opendev/system-config/+/764396 gerrit: fix db/ mount for gate testing [2] https://review.opendev.org/c/opendev/system-config/+/764395 gerrit: set ownership on ~gerrit2/.ssh directory [3] https://softwarefactory-project.io/cgit/software-factory/re-gerrit/tree/src/... [4] https://softwarefactory-project.io/cgit/software-factory/zuul-results-gerrit... [5] https://reasonml.github.io/ [6] https://104.130.172.52/plugins/zuul-results/static/zuul-results.js [7] https://github.com/facebook/reason/releases/tag/3.0.4