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