Difference between revisions of "CDashSummary"

From NAMIC Wiki
Jump to: navigation, search
(New page: == Description == [http://www.cmake.org CMake] is used to control the software build process using simple platform, compiler and operating system independent configuration files. CMake ge...)
 
Line 1: Line 1:
== Description ==
+
== Description and Documentation==
  
[http://www.cmake.org CMake] is used to control the software build process using simple platform, compiler and operating system independent configuration files. CMake generates native makefiles and workspaces that can be used in the development environment of your choice. That is, CMake does not attempt to replace standard development tools such as compilers and debuggers, rather it produces build files and other development resources that can benefit from automated generation. Further, once CMake configuration files are created, they can be used to produce developer resources across the many platforms that CMake supports. CMake is quite sophisticated: it is possible to support complex environments requiring system configuration, pre-processor generation, code generation, and template instantiation.
+
CDash is a dashboard testing server distributed along with [[CmakeSummary|CMake]]. CDash is an open source, web-based software testing server. CDash aggregates, analyzes and displays the results of software testing processes submitted from clients located around the world. Developers depend on CDash to convey the state of a software system, and to continually improve its quality. CDash is a part of a larger software process that integrates Kitware's CMake, CTest, and CPack tools, as well as other external packages used to design, manage and maintain large-scale software systems.  
  
Note that CMake currently supports C/C++ development environments. Work is underway to support Java and FORTRAN environments; with a generalized architecture for support of other programming languages.
+
CTest and DART form the core of the NAMIC [[media:SoftwareProcess.ppt|test-driven development (TDD) process]]. This process facilitates agile programming by supporting a continuous feedback look between user, developers and test results. As the this figure shows, CTest is used to test code found in a source code repository (i.e., CVS or SVN), push the results to DART, where the results are viewed by developers possibly distributed around the world. Developers then make corrections to code or necessary modifications to insure that the dashboard stays "green" and the code quality stays high.
  
== Typical Usage ==
+
A rigorous testing process such as that practiced by NAMIC is critical to the stability and robustness of software systems. Without continuous testing, changes introduced into the system can easily introduce unanticpated side effects and/or bugs. Over time this can produce brittle code resulting in frustrated users. Worse yet, complex algorithms may behave differently, possibly producing inaccurate or even incorrect results. Another advantage of continuous testing is that bugs are easily discovered and repaired when changes to the source code occur. Waiting to fix bugs at the point of software release can be a difficult endeavor due to the loss of causility between code check-in and software fauls.
  
The CMake application is typically [http://www.cmake.org/HTML/Download.html downloaded] for a particular operating system. CMake can be run in two modes: as GUI-based application or from the command line. Either way, CMake is run in two steps. First, a configuration step to characterize the development environment and allow the user to specify build options and the compiler to use; and second, a generation step to produce the build files (e.g., makefiles or project files). Once the build files are generated, the developer than uses standard tools (e.g., "make") to build their software.
+
Additional usage details for it can be found [http://www.cdash.org here].
 
 
== Languages ==
 
 
 
CMake is written in C++. It defines its own language, the CMake configuration language, contained in a simple ASCII text file (i.e., the CMakeLists.txt file) consisting of CMake commands. The form of the CMake commands is "ACTION Arguments". There is also support for conditional constructs.
 
 
 
== Platforms ==
 
 
 
CMake runs across most combinations of hardware, operating system, and compilers.
 
 
 
== Software Dependencies ==
 
 
 
CMake is written in the C/C++ languages, and requires a C++ compiler to build CMake from source code. Otherwise if downloading CMake, no external software is required.
 
 
 
== Documentation, Tutorials and Examples ==
 
 
 
[http://www.cmake.org/HTML/Documentation.html Online documentaion] is available from the CMake web site.
 
 
 
The book ''Mastering CMake'' is available for purchase from [http://www.kitware.com/products/cmakebook.html Kitware] or [http://www.amazon.com Amazon.com].
 
 
 
In addition, ITK and VTK both use CMake to control their build process. Examing the CMakeLists.txt files found in these projects can be instructive for the advanced user.
 
 
 
== Revision Control ==
 
 
 
CMake uses CVS to manage the source code. Instructions for obtaining [http://www.cmake.org/HTML/Download.html CMake CVS access] are available online. (We strongly recommend that you use the pre-compiled binaries; building CMake from source code is only for the advanced user.)
 
 
 
== Size of Community ==
 
 
 
There are over 250 subscribers to the [http://www.cmake.org/mailman/listinfo/cmake CMake mailing list].
 
 
 
== License ==
 
 
 
[http://www.cmake.org/HTML/Copyright.html The CMake Copyright] is an open-source, Berkely-style license. It allows unrestricted use, including use in commercial products. (The only exceptions are software modules found in the patented software directory.)
 

Revision as of 11:09, 4 June 2008

Home < CDashSummary

Description and Documentation

CDash is a dashboard testing server distributed along with CMake. CDash is an open source, web-based software testing server. CDash aggregates, analyzes and displays the results of software testing processes submitted from clients located around the world. Developers depend on CDash to convey the state of a software system, and to continually improve its quality. CDash is a part of a larger software process that integrates Kitware's CMake, CTest, and CPack tools, as well as other external packages used to design, manage and maintain large-scale software systems.

CTest and DART form the core of the NAMIC test-driven development (TDD) process. This process facilitates agile programming by supporting a continuous feedback look between user, developers and test results. As the this figure shows, CTest is used to test code found in a source code repository (i.e., CVS or SVN), push the results to DART, where the results are viewed by developers possibly distributed around the world. Developers then make corrections to code or necessary modifications to insure that the dashboard stays "green" and the code quality stays high.

A rigorous testing process such as that practiced by NAMIC is critical to the stability and robustness of software systems. Without continuous testing, changes introduced into the system can easily introduce unanticpated side effects and/or bugs. Over time this can produce brittle code resulting in frustrated users. Worse yet, complex algorithms may behave differently, possibly producing inaccurate or even incorrect results. Another advantage of continuous testing is that bugs are easily discovered and repaired when changes to the source code occur. Waiting to fix bugs at the point of software release can be a difficult endeavor due to the loss of causility between code check-in and software fauls.

Additional usage details for it can be found here.