Title: Software Toolkits Building Communities
1Software ToolkitsBuildingCommunities
Luis Ibáñez KITWARE, Inc.
2If a tree falls in a forestand nobody is
around to hear it,does it make a sound?
3No UsersNo Toolkit
4How to sustain a Toolkit
Developers Mailing List
Moderator
Gatekeeper
CVS Repository
Guru
CMake Configuration
Bad Guy
Dart Dashboard
Czar
Bug Tracking
Volunteer
Doxygen Documentation
5How to sustain a Toolkit
Writing Tests
XTreme
Outsider
Writing Applications
Prophet
Tutorials
Lawyer
License
6CVS
Read Only
Read / Write
Repository
7CVS
For every change in the code, CVS provides an
answer to
- Who ?
- When ?
- What ?
- Why ?
Also Compare with old versions, and Restore old
versions
8CVS
First step Provide CVS literacy, Tutorials, Se
t up a fake repository for practice
9CMake
Build configuration
10CMake
Generating Project Files
NMakeMakefiles
VC 7.0Project.sln
VC 6.0Project.dsw
UnixMakefiles
BorlandMakefiles
11CMake
Functionalities
CMakeLists.txt
12Dart
Every line of code is presumed brokenuntil
proven correct
If it is not being compiled and testedchances
are that is broken
13Dart
DartServer
14Dart
DartWeb Page
Compare testsAcross platforms
CVSAware
NavigateDates
Doxygen
CodeCoverage
PurifyValgrind
RegressionTesting
15Dart - Dashboard
16Dart - Dashboard
17Dart - Dashboard
18Bug Tracking
Bug Tracker
19Bug Tracking
20Bug Tracking
21Project Management
- Who is doing what
- Avoid duplication of effort
- Inform users about future developments
- Track progress of sub-projects
- But requires some discipline
22Project Management
23Making Releases
24Doxygen
Generating Documentation from Code
Doxygen
25Doxygen
Generating Documentation from Code
/ This is documentation / class A /
Convergence criterion / void SetTolerance( float
)
Doxygen
ArticlePages
Equations
Images
UMLClassDiagrams
UMLCollaborationDiagrams
ConceptualGrouping
List of Methods
List ofClasses
26Communications
FTPfor Data
Weekly TCons
BOF atConferences
Dev. MailingList
Developers
Tutorials atConferences
Users
Tele Conference NetMeeting
Users MailingList
InstantMessaging
DevelopersMeetings
27Users Mailing List
- Treat the first users very well.
- Usemaybe, perhaps, it seems, it looks like, you
may want to. - Train users to report platform, compiler,
version. - Assume first that the user is right
- Dont say it works until you test it.
- Collect Frequently Asked Questions (FAQ)
28Meta Documents
- White Papers
- Journal Papers
- Diagrams
- Slides Presentations
- Books
29Teaching by Example
- Start from Scratch
- Then simple examples showing only one feature
- Progress toward functional examples
- Provide examples that can be used as tools
- Regression testing examples
30Are we there yet ?