Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Packaging and Releasing

Similar presentations


Presentation on theme: "Software Packaging and Releasing"— Presentation transcript:

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

2 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

3 Software Release Process
Create release branch Stabilize release branch Packaging Testing

4 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

5 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

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

7 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

8 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 tar.gz should create a directory oprofile-0.9.3

9 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:

10 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

11 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

12 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

13 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

14 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

15 Further Reading Producing Opens Source Software by Karl Fogel


Download ppt "Software Packaging and Releasing"

Similar presentations


Ads by Google