Hi all - I'm happy to announce the merge earlier today of a huge amount of work by Tony Atkins in rewriting all of our core test cases away from PouchDB, a popular in-process replica of CouchDB, in favour of executing against an actual CouchDB instance, running in either a docker or vagrant container. This work was issued in pull request https://github.com/GPII/universal/pull/728 written up in https://issues.gpii.net/browse/GPII-3619 .

The original thinking behind our adoption of PouchDB was to isolate our test runs against dependence on external resources, as well as promising better between-test isolation based on the ability to bring up a fresh database each time. In practice, we increasingly found PouchDB a source of problematic memory leaks as well as odd incompatibilities with CouchDB itself which diminished the value of using it as a mock in the first place.

Eventually things came to a head with https://issues.gpii.net/browse/GPII-3630 where the addition of a moderate-sized onboarding pull from Tony himself tipped the test process over the edge into consuming a full 2GB process size, meaning that we could no longer guarantee to reliably run tests on future onboarding pulls at all. Since we originally adopted PouchDB, improvements in the convenience and reliability of container technologies orchestrated in CI have improved significantly, as well as the reliability of out-of-process debugging tools which can now be used as a comparable replacement to in-browser debugging.

Tony's replacement with CouchDB drops the memory usage of the test run by around a factor of ten, and in CI at least runs comparably quickly to the PouchDB version, even taking in to account the overhead in instructing CouchDB to drop and reconstruct the database between test runs. He has worked industriously and meticulously in rewriting thousands of our core test cases, as well as in many instances improving their structure by adopting Infusion's newer "sequence grade" approach for orchestrating asynchronous tests.

This places us in a great position to be more agile in the face of an ever-increasing stream of onboarding work by JJ, Tony and others, as well as ensuring that we go into our upcoming deployments at NOVA and elsewhere with greater confidence in the output of our CI. Thanks to him for this amazing work, done very quickly and to a high standard under time pressure - a bottle of the very finest Scotch has been sent his way across the remainingly integral parts of the EU.

Cheers,

Antranig.
_______________________________________________
Architecture mailing list
Architecture@lists.gpii.net
https://lists.gpii.net/mailman/listinfo/architecture

Reply via email to