Software Toolkits Building Communities Luis Ibáñez KITWARE, Inc.
-
Upload
austin-hall -
Category
Documents
-
view
216 -
download
0
Transcript of Software Toolkits Building Communities Luis Ibáñez KITWARE, Inc.
Software Toolkits
BuildingCommunities
Luis IbáñezKITWARE, Inc.
If a tree falls in a forest…and nobody is around to hear it,
does it make a sound?
No Users
=
No Toolkit
How to sustain a Toolkit
Developers Mailing List
CVS Repository
CMake Configuration
Dart Dashboard
Bug Tracking
Moderator
Gatekeeper
Guru
Bad Guy
Czar
Doxygen Documentation Volunteer
How to sustain a Toolkit
Writing Tests
Writing Applications
Tutorials
License
XTreme
Outsider
Prophet
Lawyer
CVS
Repository
User 1
User 2
User 3
User 4
User 5
Developer X
Developer W
Developer Z
Developer Y
Developer M
Read OnlyRead / Write
CVS
Who ? When ? What ? Why ?
For every change in the code, CVS provides an answer to
Also: Compare with old versions, and Restore old versions
CVS
First step:
Provide CVS literacy,
Tutorials,
Set up a fake repository for practice
CMake
Build configuration
LibraryA.libSource1.cxx
Source2.cxx
Source3.cxx
Source4.cxx
Source5.cxx
Source6.cxx
Source7.cxxExecutable1.exe
LibraryM.lib
LibraryK.lib
LibraryH.lib
LibraryM.lib
CMake
Generating Project Files
VC++ 6.0Project.dsw
CMakeLists.txt
CMakeLists.txt
CMakeLists.txt
CMakeLists.txt
CMake
VC++ 7.0Project.sln
UnixMakefiles
BorlandMakefiles
NMakeMakefiles
CMake
Functionalities
CMakeLists.txtFindOpenGL.cmake
FindITK.cmake
FindVTK.cmake
FindJPEG.cmake
TRY_COMPILE
TRY_RUN
COPY
Test Versions
Dart-Tests
Static / SharedUse / NotUse
Options
Dart
Every line of code is presumed brokenuntil proven correct
If it is not being compiled and testedchances are that is broken
Dart
DartServer
Platform XMac OS
Platform XMac OS
Platform XMac OS
Platform WWin XP, VC7
Platform WWin XP, VC7
Platform WWin XP, VC7
Platform ZLinux, GCC 3.3
Platform ZLinux, GCC 3.3
Platform ZLinux, GCC 3.3
Platform ZLinux, GCC 3.3
Platform YLinux, ICC
Platform YLinux, ICC
Platform YLinux, ICC
Platform YLinux, ICC
Platform MSun, GCC
Platform MSun, GCC
Platform MSun, GCC
Dart
DartWeb Page
CVSAware
NavigateDates Doxygen
RegressionTesting
Compare testsAcross platforms
CodeCoverage
PurifyValgrind
Dart - Dashboard
Dart - Dashboard
Dart - Dashboard
Bug Tracking
Bug Tracker
CVS Commentsreference Bug-ID
Feature Request
Documentation
Incorrect Code
Performance Issues
Categories
User 1
User 2
User 3
Developer A
Developer B
Developer C
Bug Tracking
Bug Tracking
Project Management
Who is doing whatAvoid duplication of effortInform users about future
developments Track progress of sub-projectsBut: requires some discipline
Project Management
Making Releases
Freezing Coverage 80%
BugTracker
Clearance
TestsPassing
Packaging.tar.gz
.zipCDs
Time
Doxygen
Generating Documentation from Code
Doxygen
HTMLLaTeX
PostScript
WindowsHelp
RTF
ClassA.h
ClassB.h
ClassC.h
ClassD.h
ClassE.h
Doxygen
Generating Documentation from Code
Doxygen
UMLClass
Diagrams
UMLCollaboration
Diagrams List ofClasses
ArticlePages
List ofMethods
ConceptualGrouping
/** This is documentation */class A{/** Convergence criterion */void SetTolerance( float );};
Images
Equations
Communications
WeeklyTCons
Users MailingList
InstantMessaging
DevelopersMeetings
Tutorials atConferences
BOF atConferences
TeleConferenceNetMeeting
FTPfor Data
Developers Users
Dev. MailingList
Users Mailing ListTreat the first users very well.Use:
maybe, perhaps, it seems, it looks like, you may want to.
Train users to report: platform, compiler, version.
Assume first that the user is rightDon’t say it works until you test it.Collect Frequently Asked Questions (FAQ)
Meta Documents
White PapersJournal PapersDiagramsSlides PresentationsBooks
Teaching by Example
Start from ScratchThen simple examples
showing only one featureProgress toward functional
examplesProvide examples that can be
used as toolsRegression testing examples
Are we there yet ?