Software Process, CMake, Dashboards, CPack Bill Hoffman Kitware, Inc.

Slides:



Advertisements
Similar presentations
ITK-Overview Insight Software Consortium. What is ITK Image Processing Segmentation Registration No Graphical User Interface (GUI) No Visualization.
Advertisements

COMPUTERS: TOOLS FOR AN INFORMATION AGE Chapter 3 Operating Systems.
National Alliance for Medical Image Computing Testing with CTest and CDash Julien Jomier Kitware Inc.
Lecture 3 Getting Started with ITK!. Goals for this lecture Learn how to use Cmake Build ITK Example programs that use ITK.
{ Dominion - Test Plan Version 1 – 22 nd Apr Aravind Palanisami.
Visual Studio Online. What it Provides Visual Studio Online, based on the capabilities of Team Foundation Server with additional cloud services, is the.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Web-based Control Interface For a model train control system By: Kevin Sendra.
The Basic Tools Presented by: Robert E., & Jonathan Chase.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
ITK Lecture 12: Open Source & Cross Platform Software Development Methods in Image Analysis CMU Robotics Institute U. Pitt Bioengineering 2630 Spring.
NA-MIC, 2008 June Workshop, IHK Akademie Westerham Engineering Methodology Sebastien BARRE, Ph.D. - Kitware, Inc.
NA-MIC National Alliance for Medical Image Computing IGT Software Design and Process Bill Lorensen GE Research.
Operating Systems Operating System
NA-MIC National Alliance for Medical Image Computing NAMIC-Kit Update Will Schroeder Jim Miller Bill Lorensen.
National Alliance for Medical Image Computing Grid Computing with BatchMake Julien Jomier Kitware Inc.
SPI Software Process & Infrastructure EGEE France - 11 June 2004 Yannick Patois
Article: Source Code Review Systems Author: Jason Remillard Presenter: Joe Borosky Class: Principles and Applications of Software Design Date: 11/2/2005.
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
Software Tools and Processes Training and Discussion October 16, :00-4:30 p.m. Jim Willenbring.
Trilinos User Group Meeting Thursday, November 8 th, 2007 Timothy M. Shead (1424) Danny Dunlavy (1415) SAND P Sandia is a multiprogram laboratory.
The new version control system. Kiril Karaatanasov, July 2006 What is Subversion Subversion is a newly developed open source version control system Subversion.
Open Web App. Purpose To explain Open Web Apps To explain Open Web Apps To demonstrate some opportunities for a small business with this technology To.
Visual Linker Final presentation.
Software Engineering in Robotics Packaging and Deployment of Systems Henrik I. Christensen –
CSC 215 : Procedural Programming with C C Compilers.
How to Install ITK ? (Insight Segmentation and Registration Toolkit) Prepared by: Hussain Rahman MS (CS) 1 st semester Supervised.
 Chapter 6 Architecture 1. What is Architecture?  Overall Structure of system  First Stage in Design process 2.
Software Toolkits Building Communities Luis Ibáñez KITWARE, Inc.
April 30, 2007 openSUSE.org Build Service a short introduction Moiz Kohari VP Engineering.
The 2000 Decennial Census School District Project: Using Census Data for the School District Mapping System **** Development and Implementation Tai A.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Community Software Engineering Practices and Principles A Case Study of the Open Source Insight Toolkit (ITK) Terry Yoo (National Library of Medicine),
FairRoot Build and Test System
NA-MIC National Alliance for Medical Image Computing NA-MIC Core 2 Update: Kitware Will Schroeder Kitware NA-MIC Core 2 PI NA-MIC Core.
Modularization ITK modularization Bill Hoffman
FLUKA GUI Status FLUKA Meeting CERN, 10/7/2006.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Software Process Stephen R. Aylward Kitware, Inc.
計算機視覺 (Computer Vision) 課程簡介 Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh.
CMake refactoring P. Hristov 19/03/2014. History I  Recursive makefiles (F.Carminati):  Problems in dependencies  Slow  "Recursive Makefiles.
William Schroeder, Ph.D. §, Andy Cedilnik §, Sebastien Barré, Ph.D. §, William Lorensen ‡, James Miller, Ph.D. ‡, Daniel Blezek, Ph.D. ‡ § Kitware Inc.,
DCDaPS: Digital Content Distribution and Publishing System.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Software Process Stephen R. Aylward Kitware, Inc.
Computing Division Requests The following is a list of tasks about to be officially submitted to the Computing Division for requested support. D0 personnel.
1 PUPPET AND DSC. INTRODUCTION AND USAGE IN CONTINUOUS DELIVERY PROCESS. VIKTAR VEDMICH PAVEL PESETSKIY AUGUST 1, 2015.
Page 1 CMake Trilinos? Roscoe A. Bartlett Department of Optimization & Uncertainty Estimation Esteban J. Guillen Department.
NA-MIC National Alliance for Medical Image Computing Non-Interactive Tools Stephen Aylward, Kitware
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
NA-MIC, 2008 June Workshop, IHK Akademie Westerham Engineering Methodology Sebastien BARRE - Kitware, Inc.
Build Tools 1. Building a program for a large project is usually managed by a build tool that controls the various steps involved. These steps may include:
How to configure, build and install Trilinos November 2, :30-9:30 a.m. Jim Willenbring.
Ravi Mathur January 8,  What does CMake NOT do? ◦ Doesn’t compile (gcc, MSVC, llvm, make) ◦ Doesn’t manage source code (XCode, Visual Studio) ◦
ITP 109 Week 2 Trina Gregory Introduction to Java.
NA-MIC National Alliance for Medical Image Computing NAMIC Software Process Dan Blezek Jim Miller Bill Lorensen.
CMake: Experience in ALICE P. Hristov 19/06/12. History I Recursive makefiles (F.Carminati): – Problems in dependencies – Slow "Recursive Makefiles.
Software development tools
CMake - Cross-Platform Make R. Douglas Barbieri Made to Order Software Corporation.
Introduction to CMake, v. 2
Build and Test system for FairRoot
GUI plans of work Revisit (reimplement) a new TreeViewer, possibly based on something like Viewpoints (see next slide) (
NAMIC Software Development Environment
Transitioning VisIt to CMake
Pipeline Execution Environment
Core 2 Progress Day 1 Salt Lake City
Build and Package CSE 403 section, 2011 Feb 3, Hao Lu.
National Library of Medicine Segmentation and Registration Toolkit
Cmake Primer.
ITK-Overview Insight Software Consortium.
Presentation transcript:

Software Process, CMake, Dashboards, CPack Bill Hoffman Kitware, Inc.

Software Process Overview  CMake – cross platform building  Dashboards – continuous testing  Mailing List – Developer communication  Wiki – Stored developer communication  Issue Tracker phpBugTracker – keep track of bugs and feature requests

Outline  CMake - Change the way ALL programmers build software  Dashboards - If its not tested it doesn’t work  CPack

CMake - changing the way ALL programmers compile code  1999 Start of the ITK project  Kitware tasked with build environment VTK current build system autoconf on UNIX pcmaker on Windows Very specific to VTK and hard to maintain, no system introspection on windows CMake born out of necessity  2006 KDE adopted CMake

CMake Requirments  Support UNIX/LINUX/Windows/MAC  Simple easy to use  Support code generation at build time ( c++ wrapper support)  Do not require any software other than CMake to be installed. Need only a C++ compiler (same as ITK itself)  Use Native Build tools like Visual Studio and Xcode

Windows GUI Unix GUI CMakeLists.txt MSVC Project.NET Solution Makefile User selects CMake: Example Usage

CMake GUI (ccmake CMakeSetup) Process Flow Configure Write CMakeCache.txt Did Cache Change? Yes No Generate Makefile or Project

CMake Language COMMAND(args) : COMMAND is the name of the command, and args is a white space separated list of arguments. # files needed: Hello.c CMakeLists.txt The CMakeLists.txt file would contain two lines: PROJECT (Hello) ADD_EXECUTABLE(Hello Hello.c)

CMake Language project(SampleProject) find_package(VTK REQUIRED) include(${VTK_USE_FILE}) set(SOURCES mySource1.cxx mySource2.cxx) add_executable(myExecutable ${SOURCES}) target_link_libraries(myExecutable vtkRendering) Easy for smaller projects to use larger projects

Software Process Dashboards Revision Control Results posted on web (i.e., the dashboard) Central DART Server CVS/SVN maintains source code revisions CMake/CTest compiles and tests source code Distributed Clients Developers review results Developers check-in code

Dashboards – “If it’s not tested it doesn’t work”  Code Dasboards and our Software Process Roots in GE Six Sigma initiative  Nightly regression testing (see VTK Dashboard)  Memory (Purify/ValGrind) testing  Coverage testing  Documentation evaluation  Cross platform testing

VTK Quality Dashboard  ard/ MostRecentResults-Nightly/Dashboard.html

Regression Testing  Compare generated image against standard “correct” image pixel-by-pixel comparison can use a threshold metric adjusted for effects like dithering OpenGL is rather loose about image quality

Can search for the checkin that caused the problem

Why Test Daily?  Large code base too large for any single developer to understand  Developers distributed around the world  Identify problems as they occur  Insure that object API remains unchanged  Provide feedback to developers as they experiment with new implementations

CPack – create platform specific installers  NSIS Windows installer package.exe  ZIP file windows install file package.zip .tar.gz.tar.Z compressed files package.tar.gz .tar.sh – package.tar.sh self extracting shell files  Cygwin setup.exe packages CMake BuildPackage