Modular Software Building with Python SCons

Date and Time: 
2012 Tuesday, February 21st
Location: 
ML-132 Main Seminar
Speaker: 
Gary Granger

Abstract:

The SCons tool is a software construction framework based on Python and an alternative to tools like 'make' and 'autoconf' . The software source components and their dependencies are defined using a library of Python modules, and, if needed, the full power of Python is available for scripting and customizing the build procedures and products.

Software engineers in the Earth Observing Laboratory have been using SCons for a few years to build several libraries and applications. SCons customizations developed and shared in EOL facilitate code sharing across different source trees. For example, the source directory for a library can be included in the source trees of different applications, such as by using subversion external references, and other parts of the source tree can find and use that dependency automatically. Likewise, once one project scripts the build settings necessary for a common requirement like netcdf, other projects can share that same script. Other customizations provide for continuous integration and testing, API documentation generated with doxygen, and platform adaptations for Linux, Windows, and Macs.

This presentation will give an overview of how SCons works, how it is extended with tool modules, and how EOL uses the tool extensions to provide a modular, reusable software build framework.

Speaker Description: 

Gary Granger received a Bachelor of Science degree in Computer Engineering from Virginia Tech, then began working for the Atmospheric Technology Division at NCAR in 1992.  Over the years he has worked in several software development areas related to field deployment and instrument development, including field operations, visualization, and wind profiling radars. Currently he works in the Software Systems Group of the Earth Observing Laboratory, developing software in C++ and Python for the Integrated Sounding System, and developing LabVIEW software for spectrometers.  He also advocates good software engineering practices in EOL and supports related infrastructure, such as subversion, build frameworks, and continuous integration servers.

AttachmentSize
PDF icon eol-scons-presentation-SEA-2012.pdf132.34 KB

Event Category: