Table of Contents
Chapter 1: Introduction
EPICS source/release control has been completely redone for R3.12. This section describes why certain improvements were made and why they were worth waiting for.
Base and Extensions
EPICS was divided into two parts during the development of R3.12, "base" and "extensions." Base includes those core parts of EPICS that are in general required, e.g.: channel access, database routines, the sequencer and dct. Extensions are those parts of EPICS that are optional. Unlike base, which is a fixed distribution, a site can choose which extensions they need for their local system. The extensions were unbundled from the base distribution to improve code maintenance and simplify the EPICS build.
The EPICS build has been simplified:
It is now required that GNU make version 3.71 or later be obtained for the EPICS build. Sun make is no longer sufficient.
- Imake, and more importantly, Imake.tmpl are no longer used. Low-level makefiles are no longer automatically generated.
- A set of configuration files has been provided in a central location. Only a few of these files are site-modifiable, and are easily identified.
- The number of shell-scripts has been reduced from a set of over twenty to about ten. Make itself is now used to traverse the source tree during a build.
Source Control, Development and Distribution
In R3.12, CVS has displaced SCCS as the tool for source control. CVS is superior to SCCS for several reasons, here are the most important ones:
EPICS releases are maintained by a site designated as the "repository site." Though this site uses a tool for source control, EPICS is no longer distributed as a file repository. It is instead delivered as a set of files that do not have to be "checked out." This simplifies the build by removing a "sccsInfo" type step.
- Operations can be performed on source trees instead of individual files.
- Entire revisions of EPICS, old or new, can be "checked out" with a given time stamp.
- Developers can concurrently edit the same files. CVS will interactively merge the changes later.
The most important result of using CVS for source control is that now EPICS software can be easily developed at separate sites concurrently. Sites that wish to develop parts of EPICS base must checkout a copy of EPICS base and config, and then create a release, noting both the time and date of this action. The release Tar file may then be taken to the local site and then merged into a local CVS tree. When a site is finished modifying EPICS, they can make a new release and merge it back at the master site. Specific instructions for this are provided later in this document.
During the development of R3.12 we have seen several changes in EPICS. CVS is now used instead of SCCS for internal source control, though the release itself is delivered as a set of straight files. Parts of EPICS are now unbundled products, such as the operator interfaces. But most importantly, the EPICS configuration has been greatly simplified, making EPICS easier to build at distribution sites.
Table of Contents Next Chapter