Software Packaging and Releasing

Slides:



Advertisements
Similar presentations
Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.
Advertisements

Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
VisIt Software Engineering Infrastructure and Release Process LLNL-PRES Lawrence Livermore National Laboratory, P. O. Box 808, Livermore,
6 November 2009 Upgrading Your Geant4 Release J. Perl 1 Upgrading Your Geant4 Release Joseph Perl, SLAC Geant4 v9.2p02.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
14 January 2011 Upgrading Your Geant4 Release J. Perl 1 Upgrading Your Geant4 Release Joseph Perl, SLAC.
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.
® IBM Software Group © 2003 IBM Corporation How to Download and Install RMC 7.5 David Trent RMC Product Manager.
EQNet Travel Well Criteria.
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.
"Piled Higher and Deeper" by Jorge Cham
Introduction to Version Control with SVN & Git CSC/ECE 517, Fall 2012 Titus Barik & Ed Gehringer, with help from Gaurav.
1 Lecture 19 Configuration Management Software Engineering.
Guideline: How to build AMSS source code? History: 01/02/ Make Draft 05/02/2010 – Release /02/2010 – Updated.
EGEE is a project funded by the European Union under contract IST Testing processes Leanne Guy Testing activity manager JRA1 All hands meeting,
Testing E001 Access to Computing: Programming. 2 Introduction This presentation is designed to show you the importance of testing, and how it is used.
Version control Using Git Version control, using Git1.
Test-Stable Tag Process 1.For each active release branch there will be a pre-defined CVS Test Tag maintained by TOG. An active release branch is any OpenPegasus.
Managing Software Patches 10/15/ Introducing Solaris OE Patches A patch contains collection of files and directories Patch replaces existing files.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
EGEE is a project funded by the European Union under contract IST JRA1-SA1 requirement gathering Maite Barroso JRA1 Integration and Testing.
March 11, 2008 USCMS Tier-2 Workshop Oh Dear God Alain made a PowerPoint presentation 1.
Yannick Patois - Datagrid Software Repository Presentation - March, n° 1 Datagrid Software Repository Presentation CVS, packages and automatic.
A Git Workflow Model Slides produced from blog by Vincent Driessen and secondary posting at The.
How to configure, build and install Trilinos November 2, :30-9:30 a.m. Jim Willenbring.
Outline Announcements: –HW II due today! –HW III on web CVS.
OCR A Level F453: The function and purpose of translators Translators a. describe the need for, and use of, translators to convert source code.
Starter To complement our notes and learning from last lesson (Topic 10 Introducing Large ICT Systems: Features of Large ICT Systems), fold your piece.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
1 February 6, Patches William Cohen NCSU CSC 591W February 6, 2008.
1 April 14, Starting New Open Source Software Projects William Cohen NCSU CSC 591W April 14, 2008.
1 Creative Innovation – Customer Satisfaction – Continual Quality Improvement Accessing and Building Asterisk SCF.
1 April 16, Open Source Software Project Infrastructure William Cohen NCSU CSC 591W April 16, 2008.
1 March 19, Test Plans William Cohen NCSU CSC 591W March 19, 2008.
1 April 2, Software Packaging and Releasing Best Practices William Cohen NCSU CSC 591W April 2, 2008.
1 February 6, Patch Submission and Review Process William Cohen NCSU CSC 591W February 11, 2008.
1 March 12, Testing William Cohen NCSU CSC 591W March 12, 2008.
1 January 14, Evaluating Open Source Software William Cohen NCSU CSC 591W January 14, 2008 Based on David Wheeler, “How to Evaluate Open Source.
1 March 10, Project Planning William Cohen NCSU CSC 591W March 10, 2008.
1 April 21, Funding Open Source Software Projects William Cohen NCSU CSC 591W April 21, 2008.
CS5220 Advanced Topics in Web Programming Version Control with Git
Chapter 9 Managing Software
Development Environment
Test Granularities Unit Testing and Automation
Git & Github Timothy McRoy.
Open Source Software Development Environment
Version control, using Git
System Programming and administration
Gaudi software release procedures
CVS revisions UML diagram
Concurrent Version Control
UNIT 15 Webpage Creator.
How to Upgrade Your Geant4 Release
Version Control System
Revision Control Daniel Daugherty
Figure 6-4: Installation and Patching
Electronics II Physics 3620 / 6620
Introduction to Version Control with Git
Discussing an OVS/OVN Split
Queries raised regarding use of SOLAR
COMPONENTS – WHY? Object-oriented source-level re-use of code requires same source code language. Object-oriented source-level re-use may require understanding.
NAVIGATING THE MINEFIELD
Carthage ios 8 onwards Dependency manager that streamlines the process of integrating the libraries into the project.
Review of Previous Lesson
Outline Announcements: Version control with CVS HW II due today!
Presentation transcript:

Software Packaging and Releasing William Cohen NCSU CSC 591W March 24, 2008

Why Package? Make it clear what is in the software Want to have easy to install software Want to avoid the rough edges software in development version of software Code repository constantly changing

Software Release Process Create release branch Stabilize release branch Packaging Testing

Creating Release Branch Want to allow developers to continue to work Make separate branch to separate development from stabilization Tag showing what the release version is based on Usually some change in code with release number before and after tagging

Release Numbers Release number uniquely identifies version Group of digits separated by dots (“.”) Numbering: Major number, before “.”: Indicates major new features or changes Minor number, after “.” Indicates bug fixes or minor changes Linux distributions may have additional build numbers due to multiple builds (adding patches) Numbering ordered

Multiple Branches With mature projects multiple versions in use With multiple branches able to maintain multiple version concurrently

Stabilizing Release Branch Making sure that existing code works in release Not adding new features during stabilization Have some criteria saying that the release is good: New features works Old bugs fixed Ideally, little work require to stabilize the code from code repository

Source Packaging Open Source Software packages released as source code Have a tarball or zip file that contains the various pieces of source Source package Create single directory with contents Name of package should match created directory, e.g. oprofile-0.9.3.tar.gz should create a directory oprofile-0.9.3

Files in Source Packaging The source for the software COPYING/License file: Describe how the software can be copied and used Release notes describing package: New Features Fixed Bugs INSTALL file: List other packages needed to build software How to install the software README file: Information on the software Contact information NEWS file:

Testing Check that software works Do more that simple visual inspection of source Make sure that instructions are accurate Build from scratch Install resulting build Run test suites to check everything works Check build in multiple machines: 32- and 64-bit machine Little- and big-endian machines

Binary/Installable Packages For convenience some software projects produce binary or installable packages May build for some common platforms Often binary/installable packaging performed by distributions Need to make sure that source code for binary/installable package available: Original source tarball Any patches or modification of original source code

Candidate Release Put out version of source that wider audience can try out Testing on unusual machines Use in unusual situations, e.g. stress testing Use feedback to determine whether additional changes required

Security Release Only fixes security issue, no other issues Release process not as public because software already in use with security issue May use additional “.” number for release to avoid changing release numbering

Announcing Release Want people to know about the new release Places to post: Project webpage Freshmeat.net Explain what is new and what has changed Information to make sure people can check obtained correct download, MD5/SHA1 checksum

Further Reading Producing Opens Source Software by Karl Fogel