Software Release Tools Manual

Lassi A. Tuura

CERN - European Laboratory for Particle Physics

Experimental Physics Division

CH-1211 Geneva 23
Switzerland
<>


Table of Contents
Preface
I Basics
1 Introduction
1.1 Software Release Tools
1.2 People and Roles
1.3 What The Release Tools Provide
1.4 How to Use This Manual
1.5 Document Conventions
2 Fundamental Terminology
2.1 Packages, Dependencies and Versions
2.2 Targets
2.3 Releases
3 Working Model
4 Tools Overview
4.1 Source Code Management Tools
4.2 Build Environment Tools
5 Directory Structure Overview
II Developer's Guide
6 Overview
7 Getting Started
7.1 Setting Up Environment
7.2 Using The Right Make Program
7.3 Customising CVS
7.4 Running Software
7.5 Accessing Release Documentation
8 Building Existing Packages
8.1 Recompiling One Package
8.2 Using A Working Release
8.3 Three Ways of Building Packages
8.4 Releasing the Sources
9 Contributing Changes
9.1 Committing Your Changes To The Repository
9.2 Sharing The Changes With Other Developers
10 Creating A New Package
10.1 Choosing Package Name
10.2 Structuring The Package
10.3 Writing Administrative Files
10.4 Using Other Packages
10.5 Writing The Configuration Script
10.6 Writing A Makefile
10.7 Configuring and Reconfiguring The Package
10.8 Building The Package
10.9 Installing Package Products
10.10 Writing Testing Rules
10.11 Writing Clean-Up Rules
10.12 Importing The Package Into CVS
11 Managing Package Hierarchies
11.1 Introduction to Hierarchical Packages
11.2 Creating Hierarchical Packages
11.3 Extracting Partial Hierarchies From CVS
11.4 Controlling Hierarchical Builds
12 Managing Package Versions
12.1 The Issues
12.2 Accessing Versions
12.3 Assigning Versions
12.4 Removing Versions
12.5 Communicating With Other Developers
13 Advanced Package Topics
13.1 Reducing Make Output
13.2 PACKAGE File Syntax
14 Working Disconnected
15 Writing Makefiles
15.1 Basics
15.2 Defining Targets
15.3 Defining Target Properties
15.4 Defining Custom Rules
15.5 Uses
15.6 Linksets
15.7 Portability Considerations
15.8 How Does it Work?
16 Writing Configure Scripts
17 SRT Files
18 SRT Tools Summary
III Software Librarian's Guide
19 System Requirements
20 Supported Targets
21 Installing The Software Release Tools
22 Working With Releases
22.1 Creating The First Release
22.2 Subsequent Releases
22.3 Assigning Release Numbers
22.4 Choosing Release Interval
22.5 Easing The Job With Gadgetry
22.6 Logging Activity For Developers
22.7 Removing Releases
23 Communicating With Developer Community
23.1 Planning Releases
23.2 Setting Up CVS Tools
23.3 Using The Web
23.4 Tracking Bugs
23.5 Manual And Automated Testing
24 SRT Tools Summary
IV Maintainer's Guide
25 To Be Written...
V Reference Section
srt
config.guess
config.sub
install-sh
mkinstalldirs
move-if-change
parse-uses
tsort-libs
autoconf definitions
standard.mk
srt-env
VI Appendices
A Mirroring
A.1 Introduction
A.2 Mirroring The Tools
A.3 Mirroring By Release Copy
A.4 Mirroring By Building Releases
A.5 Removing Mirrored Releases
B Common Traps And Pitfalls
B.1 Interactions Between AFS And CVS
C Frequently Asked Questions
D Makefile Requirements
E Package Requirements
F Details on Makefile Uses
F.1 Reference Page Legend
F.2 Option Sets
CLHEP
X
age
bison
c
c++
cernlib
f77
f90
flex
kuipc
lhc++
objy
pccts
tcl
xdr
G Details on Tools
logiscope
insure++
purify
codecheck
H Windows NT Considerations
VII Tutorials
I Short Introduction To CVS
J Short Introduction To GNU make
K Short Introduction To GNU autoconf
Glossary
Index