MIDAS workshop 22 Sep 2025, Konstantin Olchanski, TRIUMF Wishlist and ongoing things in the MIDAS underbelly 1) big missing piece - "software QA infrastructure" * nightly builds (kinda have them now, minus ROOT, python and javascript) * nightly run memory sanitizer and thread sanitizer * nightly static analyzer (have nightly doxygen for call graphs) * nightly test coverage report (have "make coverage" from Ben) * nightly copilot and chatgpt "AI code reviews" (yes) other large projects have all this stuff. it's absense in MIDAS is hard to hide. perl has "make test" since mid-1990-ies. * why important: a) stalled rework of db_delete(path,flag), to-be-removed "flag" argument is used inconsistently, need a set of test cases to make sure db_delete() does the right thing before rework and after rework. b) stalled MIDAS-RPC layer rework, have standalone RPC test code, needs to be added to "make test", but there is no "test framework". c) recent change to odbxx (use of thread-local storage), I think this changs breaks all multithreaded code, need a test case to prove it either way. 2) ODB ongoing rework: * main goal is to remove all recursive code, remove recursive locking, remove complex and brittle recursive locking code in db_lock_database() and db_unlock_database() * eventually have separate read lock and write lock (per text book) * eventually have efficient "write-protected odb" (have this now, but sometimes it is too slow) 3) history improvements: * compressed history files * faster read of history files (now: one read() per history record, read a block of records or use mmap()) * reduce number of history files in the main subdirectory (move old files to a different subdirectory, etc) 4) RPC improvements wishlist: * rework mserver connection so it can be tunneled through ssh * JSON-encoded RPC for C/C++-free MIDAS clients * commit the RPC code rework that can transport std::string and std::vector 5) "other" * rework and commit the cascade code from T2K/ND280 * implement memory limit for mhttpd, mlogger * fix buglets in web pages (run start page, history editor page, etc) * more std::string everywhere (needs std::string support in MIDAS RPC!) K.O.