Development meeting
This document summarizes the key discussions and decisions from the development meeting held on April 7, 2004. Topics include the establishment of a unified build system aimed at reducing maintenance costs and setup time, the structure of CVS for project management, and the implementation of namespace strategies for better code organization. The meeting also explored testing platforms, programming languages used (ANSI C++, Java), and possible tools for building and automation like GNU Make, Boost Jam, and Apache Ant. Strategies for improving documentation and regression testing were also key points of discussion.
Development meeting
E N D
Presentation Transcript
Development meeting 7 April 2004
Platforms • Build system • CVS structure • Namespace structure • Overall development process • Testing
Platforms • Languages: • ANSI C++ • Java (certain projects) • Linux: • Gcc >=3.0, Flex+Bison, PThreads, GNU Make, CVS (for checkout) • Cygwin • Gcc >=3.0, Flex+Bison, PThreads, GNU Make, CVS (for checkout) • Windows 2000, xp • Visual C++ >= 7, Flex+Bison, PThreads, CVS • VxWorks (eventually)
Build system • Single build system • Lower maintenance cost / time • Easier builds, setup time • Possibilities: • GNU Make (or just Make?) • Boost.Jam • Apache Ant • Goal: able to compile the whole system with one command • Discuss pros/cons
Making Make work • Recursive makes • cd Module/; make • Other ways? • Use the compiler to automatically compute dependencies • gcc –MM file.cpp => file.o : file.cpp file.h some_other_file.h • see sample Makefile • A single Makefile included from the individual modules’ Makefiles • abstracts the nastiness • Much easier to maintain
Documentation/ Doxygen Presentations Publications Internal documentation External documentation [user] Titan Kirk Examples/ ST7 BIOPlex src/ or source/ Model/ [or Structures/???] Common/ [collection of model-based utilities] Reader/ CCA/ doc/ [Design document.] test/ [Simple toy testing – or unit tests?] HCA/ Hybrid/ TPN/ Estimation/ ME CompiledME HybridME Reconfiguration/ GI GI1 CompiledGI RP Tools/ [?] General [was: Util/] SAT Generators BFIG etc. Interfaces DispatcherConnection (down) CommandListener (up) RTAPI bin/ [???] Test/ [regression tests] Libraries/ Log4cplus, uBLAS, Bayes++ etc. CVS directory structure
Namespace structure • Definitely a root namespace. Candidates: • Mers • Titan • Kirk • Within – lots of possibilities: • One per directory? • Paul: Problem - If include file, have to do both include path and using namespace path where path is long • Paul: No • One per logical module? • Maybe – preferably not much depth, e.g. • Mers::Model • One for the whole group • Except experimental stuff – could
Getting this done • … Build system • Order – 2 possibilities: • Move ME,MR,etc. to new SAT engine first, then reorganize • Reorganize, get things working with old SAT engine, the update ME,MR,etc. to new engine