Open Source Software Development Environment

Slides:



Advertisements
Similar presentations
Software Configuration Management Donna Albino LIS489, December 3, 2014.
Advertisements

Version Control What it is and why you want it. What is Version Control? A system that manages changes to documents, files, or any other stored information.
David Notkin Autumn 2009 CSE303 Lecture 22 Subversion is an open source version control system. Social Implications Friday version control system.
Version Control Systems Phil Pratt-Szeliga Fall 2010.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
With Mercurial and Progress.   Introduction  What is version control ?  Why use version control ?  Centralised vs. Distributed  Why Mercurial ?
1 Lecture 19 Configuration Management Software Engineering.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.
Warmup A programmer’s wife tells him, “Would you mind going to the store and picking up a loaf of bread? Also, if they have eggs, get a dozen.” The programmer.
Version control Using Git Version control, using Git1.
Developing C/C++ applications with the Eclipse CDT David Gallardo.
Introduction to Git and Discussion on assignment 1 Gang Luo Sept. 14, 2010.
2010. The Subversion Dilemma Check in buggy code and drive everyone else crazy Avoid checking it in until it’s fully debugged or.
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
An Intro to Concurrent Versions System (CVS) ECE 417/617: Elements of Software Engineering Stan Birchfield Clemson University.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Productivity Tools Ken Nguyen Department of Information Technology Clayton State University.
CSE 219 Computer Science III CVS
Version Control with SVN Images from TortoiseSVN documentation
Version Control Systems. Version Control Manage changes to software code – Preserve history – Facilitate multiple users / versions.
12 CVS Mauro Jaskelioff (originally by Gail Hopkins)
Version Control and SVN ECE 297. Why Do We Need Version Control?
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
WinCVS Training è Basic Concepts è Download & Setup è Importing a new module into CVS Repository è Getting new module from CVS è Getting Latest version.
1 CSE 303 Lecture 19 Version control and Subversion ( svn ) slides created by Marty Stepp
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
DIGITAL REPOSITORIES CGDD Job Description… Senior Tools Programmer – pulled August 4 th, 2011 from Gamasutra.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 28-Jun-16.
1 April 16, Open Source Software Project Infrastructure William Cohen NCSU CSC 591W April 16, 2008.
1 February 6, Patch Submission and Review Process William Cohen NCSU CSC 591W February 11, 2008.
Source Control Dr. Scott Schaefer. Version Control Systems Allow for maintenance and archiving of multiple versions of code / other files Designed for.
CompSci 230 Software Construction
CS5220 Advanced Topics in Web Programming Version Control with Git
Version Control with Subversion
Software Packaging and Releasing
SVN intro (review).
LECTURE 2: Software Configuration Management
Source Control Dr. Scott Schaefer.
Version Control with Subversion (SVN)
An Intro to Concurrent Versions System (CVS)
Version control, using Git
CS5220 Advanced Topics in Web Programming Version Control with Git
Version Control System using Git
Concurrent Version Control
Version Control System
An introduction to version control systems with Git
CSCE 606: Configuration Management
Source Code Management
LECTURE 3: Software Configuration Management
Revision Control Daniel Daugherty
Computer Systems Programming
Subversion Basics Guide
Software Engineering D7032E
Version Control System - Git
Concurrent Versions System
Systems Analysis and Design I
Version/revision control via git
Git Jump Start Steven Borg | Co-founder & Strategist, Northwest Cadence James Tupper| ALM Consultant, Northwest Cadence.
Presentation transcript:

Open Source Software Development Environment William Cohen NCSU CSC 591W January 16, 2008

Outline Community Communication Local machine environment

Community Mixture of people working on OSS projects: Volunteers: Want to learn more by doing Think project is cool Need project for something else Contributors for hire: Someone see value in the project Adding specific features Distributed contributors: Different companies Different continents Different timezones

Communication Email: Usually on mailing lists to allow wider participation Allows archiving information Good for people that are differing timezones IRC: Interactive Often used for quick questions Phone: Maybe have people awake at odd times due to TZ Face-to-face: Less frequent Usually at conferences, e.g. Ottawa Linux Symposium

Local Machine Environment Environment varies based on OSS project Components: Revision Control Systems (RCS) Editing Building Debugging

Revision Control Systems Manages code base for projects Identifies each set of changes Allow multiple versions (branches) of the software to be in development Enables retrieval of specific versions of software Perform comparison between different versions Allow merging of changes from one version to another

RCS Vocabulary Commit Log message Update Repository Checkout Working copy Revision, change, changeset Diff Tag Branch Merge Conflict Lock

Example RCS Systems Centralized (one master repository): CVS Subversion Distributed (multiple repositories): Mercurial Git Monotone

Editing Need write the code Some environments such as eclipse have built in editors Editor individual choice for many projects: Emacs vs. vi Pick what works for you Some editors have highlight and other support for various languages (e.g. Vim and emacs)

Building Have the required supporting software installed on the machine Configure Build Install

Configure Determine the build environment: Operating system Target architecture Where supporting library and include files are located Enable/disable optional features in software Specify installation location

Build Convert the human readable source code into computer can executable code “make” often used to drive build: Makefile lists dependencies for files Makefile contains rules on how to build file from other files

Install Puts software in appropriate locations Separate process after the code is built Usually requires root permissions May need to do other steps to: Inform OS about new shared libraries Enable background process

Debugging Need methods of inspecting code to determine what is going wrong or point out problem area Primitive debugging: Use print statements to print out pieces of information Less primitive: Compile software with additional symbols so debugger knows where things are located Use tools such as gdb or totalview