Important concepts in LArSoft implementation.
How the LArSoft code is organized. The LArSoft body of code has two components, experiment-specific code and experiment-agnostic data structures, algorithms, interfaces, etc.
Expectations for contributing code to LArSoft. Code can be non-breaking or breaking and the expectations for each case is covered.
To make code thread-safe, it is important to know what objects are shared and know when they are shared. The difficulty depends on the context. Based on: Making Code Thread-Safe by Kyle Knoepfel and Introduction to multi-threading and vectorization by Matti Kortelainen.
How LArSoft is doing code analysis. Based on LArSfot Redmine wiki page on code analysis and Erica Snider’s – LArSoft code analysis process presentation.
How to test LArSoft. Based on Erica Snider’s Introduction to LArSoft – source material and Erica Snider’s Introduction to LArSoft CI System.)
The set of tools, applications and machines that allows users to specify and automate the execution of tests of LArSoft software. This material is based on Erica Snider’s Introduction to LArSoft CI System and the redmine wiki page on CI.