Variations that select versions of project libraries

The scheme that is described in View that uses results of a nightly build uses version labels to select particular versions of libraries. For more flexibility, other versions can be selected as shown by the following added rules:

(1)
element * CHECKEDOUT
(2a)
element lib/libcmd.a LAST_NIGHT
(2b)
element lib/libparse.a LAST_NIGHT
(3a)
element lib/libcalc.a R2_BL2
(3b)
element lib/*.a /main/LATEST
(4)
element * /main/LATEST

The LAST_NIGHT version of some libraries can be selected, the R2_BL2 version of others, and the most recent version of still others. (Rule 3b is not required here, because Rule 4 handles all other libraries. It is included for clarity only.)

Other kinds of metadata can also be used to select library versions. A config spec can mix and match library versions as the following added rules indicate:

(1)
element * CHECKEDOUT
(2)
element lib/libcmd.a {lib_selector=="experimental"}
(3)
element lib/libcalc.a {lib_selector=="experimental"}
(4)
element lib/libparse.a {lib_selector=="stable"}
(5)
element lib/*.a {lib_selector=="released"}
(6)
element * /main/LATEST

For example, lib_selector attributes can take values such as experimental, stable, and released.