1 April 16, Open Source Software Project Infrastructure William Cohen NCSU CSC 591W April 16, 2008
2 2 Project Needs ● Web Site ● Mailing Lists ● Version control/code repository ● Bug tracking ● Real-time chat (optional) ● Wiki (optional)
3 April 16, Web Site ● Web site is clearing house for the various other piece of the project ● Make sure things are clear and well organized
4 April 16, Mailing Lists ● Very important communication channel for projects ● Make sure that mailing list is available when project is announced ● Use existing mailing list management software (do NOT manage by hand)
5 April 16, List Management Software ● Subscription via and web interface ● Digest and message-by-message mailing modes ● Moderation to control spam and no member posting ● Administration interface ● Header manipulation ● Archiving to allow search postings
6 April 16, Spam Control ● Filtering postings: ● Auto posting only from list subscribers ● Spam filtering software ● Moderation (gray area where human examines) ● Address hiding: ● Avoid harvesters using list
7 April 16, Header ● Most people use filtering to group list in folder. Possible keys: ● Subject line field: ● To:, cc:, replyto: fields ● Encourage replies to go to whole list rather than individuals (want to archive that knowledge)
8 April 16, Archiving ● The list management software should archive for future reference ● Web interface to allow people that are not member read list ● Should reflect current list state (not require a week for message to be posted on web) ● Threading discussion so people can follow threads ● Web addresses should be static, so the URL can be passed between people ● Searchable ● Easy archiving and mirroring, make it possible for others to have archive
9 April 16, Example Management Software ● Mailing list management software: ● Mailman — ● SmartList — ● Ecartis — ● ListProc — ● Ezmlm — ● Dada — ● Mailing list archiving software: ● MHonArc — ● Hypermail — ● Lurker — ● Procmail —
10 April 16, Version Control ● Version control need to for tracking changes to project ● Needs to be available when the project is first setup ● Use version control for non-code things such as FAQ, documentation and web pages
11 April 16, Version Control Desired Features ● Browsable by web ● Commit s to inform people when changes occur ● Singularity of information: ● Avoid having to check information in twice ● Allow use of merges from different branches ● Branching: ● Allow developers to work on multiple versions of project at same time ● Authorization: ● Allow default read-only access ● Allow people to be added to read-write access
12 April 16, Version Control Software ● CVS — ● Subversion — ● Mercurial — ● GIT — ● monotone —
13 April 16, Bug Tracking ● Software to track state of: ● Features/Enhancements ● Defects ● Tasks of definite duration ● One-stop place to find out state of Feature/Enhancement/Defect/Task ● Needs to have some way of marking duplicates ● to keep interested people informed of state changes ● Ability to tie version control system to bug tracker, e.g. log bug fix - > close bug
14 April 16, Bug Tracking Software ● Bugzilla — ● GNATS — ● Trac — ● Mantis —
15 April 16, Real-time Chat ● Place to ask quick questions ● Usually not archived ● A number of places to create channels ● Pick project name or something obvious as channel name ● Include channel topic: ● Printed when people join channel ● Gives people idea of channel's purpose and ground rules
16 April 16, Wikis ● Any visitor can enter content ● Can make it easy for people to add content ● Pitfall to watch for: ● Lack of organization ● Duplication of information ● Inconsistent target audience/writing style
17 April 16, Canned Hosting ● Minimal work to setup project on ● May not provide as much control for configuration ● An number of sites have setup for open source projects: ● SourceForge ● savannah.gnu.org ● BerliOS.de
18 April 16, Further Reading ●