SourceForge for GUS

Project Management Facilities
for GUS
Useful Facilities for GUS
• CVS
• Bug/Feature Tracking
• Mailing Lists
• Documentation
• Release Management
Less Useful Facilities
• Forum
• Task management
• Customer Support
• Patches
CVS
• Organize top level by releasable
“Packages”
• Organize Packages into “Components”
• Components have standard stuff:
– bin, lib, doc, config, install*, readme.txt,
changes.txt, todo.txt?
CVS Packages - proposal
• GUS
–
–
–
–
–
–
Model
ObjRelP
ObjRelJ
Common
DBAdmin
WebFramework
• Annotator
• Dots
– Build
• Allgenes, PlasmoDB, …
• GeneDB
• DistribJob
CVS Practices
• Checkin frequently with accurate
comments
• Use tagging and branching for branches
• Obviates need for author info in source
file?
• Use CVS browser to see branches
• Checkout into directory with branch
designation
CVS Limitations for GUS
• Doesn’t handle
– Schema changes
– Schema documentation changes
– What else?
• These need to be coordinated by CBIL
CVS on SourceForge
• Provides:
– Ready-to-use CVS server
– primitive CVS browser on web
• Use daily tarball for backup
• Consider using “syncmail” to send mail on
commit
Concerns with SourceForge CVS
• Cannot access CVS server directly
– To rename files or directories must:
• Remove files and add, losing history
• Do this recursively (manually) to rename a directory
• OR… go through a request to SourceForge support!
– This impacts our ability to refactor…
– …risking that our code will become badly structured
• Alternative: CVS server at CBIL
– Ability to fully administer it
– Use cvs.gusdev.org
– Use gCVS freeware CVS browser
Bug/Feature Tracking
• Ideal structure:
– For each Package:
• Bugs
– Component
– Version
• Features
– Component
• Each package has its own admin
– Assigns bugs
– Manually collapses redundant bugs with commenting
SourceForge Tracker Limitations
• Rigid bug/feature tracking system
– Must display irrelevant built-in trackers
– Can never delete any tracker
– Can never delete/rename any
categories/groups
– Cannot use text search against
categories/groups
Bug Tracking on SourceForge
• Place component in category field, eg:
– ObjRelJ
– WebFramework…
• Place package-version in group field:
•
•
•
•
– GUS-3.0.1
– GUS-3.0.2
– Annotator-1.1.2
We can constrain on package, component, version
All packages must share one manager
Manager does bug assignments
Alternative:
– Each package gets dedicated bug tracker
FeatureTracking on SourceForge
• Place component in category field, eg:
– ObjRelJ
– WebFramework…
• Place package in group field:
•
•
•
•
– GUS
– Annotator
We can constrain on package, component
All packages must share one manager
Manager does feature assignments
Alternative:
– Each package gets dedicated bug tracker
Mailing Lists
• One for GusOnSourceForge
• One per Package (GUS, Annotator…)
• Start out private (only developers)
Release Management
• A Release is:
– A tagged “package” in CVS
– Tagged with version: 3.1.1
(major.minor.bugfix)
– Should be tagged only after testing
Reasons for Releasing
• “Release early, release often; the mantra of Open Source
software developers everywhere.” – from
•
•
•
•
•
•
SourceForge
Brings new features to users
Brings the system to a workable milestone
Enforces feature prioritization
Forces early testing
Allows proper bug tracking by version #
Encourages automated testing
Making a Release Available
• Two mechanisms:
– CVS checkout –tag
• Ok for developers
• Requires compilation
– Upload Tarfile to SourceForge’s Release site
• Includes .jar file and other compilations
• Nec. when we offer GUS as a turnkey system
• Helps clarify what releases exist
• How do we access their FTP site through our firewall?
What a SourceForge Release
Includes
• The package
• Release notes
• Changed file
– Concatenation of component’s change file
• http://sourceforge.net/project/showfiles.p
hp?group_id=1111
SourceForge Concerns
• Response time
• Perishable trackers
• Unable to fully administer CVS
• Tracker limitations