1 / 28

The Tools of Open Source:

The Tools of Open Source:. What you need to know to participate Ray Kimsey ADEC / NC State University Ron L. Roeber University of Nebraska - Lincoln. Successful Open Source Projects. Linux Apache Projects HTTP Perl PHP Sendmail. Characteristics of successful projects.

Download Presentation

The Tools of Open Source:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Tools of Open Source: What you need to know to participate Ray Kimsey ADEC / NC State University Ron L. Roeber University of Nebraska - Lincoln

  2. Successful Open Source Projects • Linux • Apache Projects • HTTP • Perl • PHP • Sendmail NETC 2002

  3. Characteristics of successful projects 1. Good programmers working on a project on which they want to work. NETC 2002

  4. Characteristics of successful projects 2. Communication & coordination of effort • Generally no F2F meetings • Rely on technology for communications - Email is LCD a lot of times NETC 2002

  5. Characteristics of successful projects 3. Version management • Small number of core programmers • Large number of contributors • Patches • Features • Concurrent Versions System (CVS) NETC 2002

  6. Characteristics of successful projects 4. Growth → Project management • Bug tracking & resolution • Task management NETC 2002

  7. Characteristics of successful projects 5. Up-to-date web page • Explains what the software does • Provides latest project information • Details the licensing agreement • Acknowledges any special system requirements NETC 2002

  8. CVSVersion Control &Distributed Application Development NETC 2002

  9. What is CVS? • CVS stands for "Concurrent Versions System" • CVS records a complete history of a project • Centralized vs. Decentralized development • Team and distributed development NETC 2002

  10. CVS Overview • CVS is a software development repositorty that facilitates the distributed development of code (Python, Perl, PHP, HTML…) • CVS allows for versioning software and websites • CVS works best with text files but does "handle" graphics and other binary files NETC 2002

  11. CVS Software • A CVS repository resides on a server. CVS commands are issued "on the server". • CVS is not a protocol or daemon. It is "easy" to set up and get running on a server. • Developers interact (usually) with the CVS tree via locally running software • WinCVS • MacCVS • Pharmacy or tkCVS • Built-in to many tools (Emacs, Quanta…) NETC 2002

  12. CVS Concept • Common Development Traits • Build Software, make it live • Give other people access to code • Developer/Designer at the center of activities • CVS Development • Repository is at the center of activity • Developers, designers, students…even the live web site checks out its own copy. NETC 2002

  13. How CVS works in English • Create an application • When ready for viewing or sharing, place it in repository • Login to the server • Checkout a working copy • Make changes to your copy. . . NETC 2002

  14. How CVS works in English • See what others have done • Resolve conflicts • Commit the changes to the repository NETC 2002

  15. Using CVS • CVS client software allows user’s machines to interact with the CVS repository by issuing the “appropriate” commands and sub-commands. • WinCVS • MacCVS • Pharmacy • tkCVS • Built in to Emacs/Xemacs, Quanta Gold, others NETC 2002

  16. CVS Sub-Commands • import - create a repository entry • checkout - get a copy of the files from the repository • update - Update all changes others have made and refresh my working copy accordingly. Nothing changes in the repository • commit - Add your changes to the CVS repository NETC 2002

  17. CVS Directory Files $CVSROOT | +--oursite | | +--index.html,v | +--graphics | +--clover.png,v CVS directory contain instructions for building any previous version of the project NETC 2002

  18. Time Travel • History files contain all the information required to construct the present version of each file. • Any previous version can be constructed • versions 1.1 or “as of May 3, 2002” can be resurrected NETC 2002

  19. Handling Binary Files • Line Feed Format: Repository vs. Client • Keyword Substitution • Wrappers • cvs admin -kb NETC 2002

  20. Web Access • Look at CVS tree in living color! • Browsing of a CVS repository • ViewCVS • http://viewcvs.sourceforge.net/ • CVSweb • http://people.freebsd.org/~fenner/cvsweb/ NETC 2002

  21. Configuration Files • modules - definitions of your names for sites/projects • cvswrappers - set hook for transforming files on the way in or out of CVS (binaries) • commitinfo - checks to see if a commit is allowed based on policies • verifymsg - evaluates log message NETC 2002

  22. Configuration Files • editinfo - program used to edit log message (*NIX) • loginfo - calls programs to run when commit is complete • cvsignore - ignore these files of mine (.BAK, .exe, .old, .ron) NETC 2002

  23. Automations • e-mail others • update sites • check for formatting NETC 2002

  24. What CVS is not • A substitute for management • A substitute for communication • Is not an automated testing program • Does not have a built-in process model • Does not have change control NETC 2002

  25. Limitations • Best if you have an investment in *nix environments • Designed for programmers • Concepts are hard to grasp • Alien concept to designers NETC 2002

  26. Helper Applications • LXR – Linux Cross Referencing Tool http://lxr.linux.no/ • Bonsai – Query contents of CVS archive-tree control http://www.mozilla.org/bonsai.html • TinderBox – prevent things from going up in flames – for large number of developers http://www.mozilla.org/tinderbox.html • Bugzilla – bug reporting and tracking http://bugzilla.mozilla.org/ NETC 2002

  27. Alternatives • DAV - (Distributed Authoring and Versioning) http://www.webdav.org • arch - http://www.regexps.com/arch.html • Perforce – http://www.perforce.com/ NETC 2002

  28. Demonstration • SourceForge http://www.sf.net • Bioinformatics.Org http://bioinformatics.org • ADEC http://savannah.ces.ncsu.edu NETC 2002

More Related