Conary:Labels
From rPath Wiki
A label in Conary is used to locate contents in a Conary repository. A trove, such as a package or group, can exist on several labels, including within the same repository. The label indicates the repository hostname and the branch of development on which a trove is said to exist. The label syntax always includes an "at" symbol ("@") and a colon(":").
Conary ensures that a package installed on a system is always updated from the same label from which it was installed. Therefore, when you release custom packages and groups for an appliance on a label (such as example.rpath.org@corp:example-1), the appliance will consistently check for updates on that label (unless you specify otherwise).
See Conary:Version String to see how a label fits in with other important identifying information in a Conary version string.
The following is an example label and a list of its parts:
example.rpath.org@corp:example-1-devel
- example.rpath.org -- This is the repository hostname for the repository on which the item resides. In the case of rBuilder, many repositories can reside on a single rBuilder instance, each with its own repository hostname like this one relative to the rBuilder instance.
- corp:example-1-devel -- This is the branch name within the repository. A branch name informed Conary about a group of packages and groups at the same stage in a release management cycle. Though this value can be set to just about anything, rPath recommends using its two colon-separated parts as follows to clarify release management plans:
- corp -- This is called the namespace and is typically some form of the name of the organization that is developing the appliance. rPath Linux branches use "rpl" as their namepsace.
- example-1-devel -- This is called the tag and is used to indicate the appliance product name, the major version of the product, and the stage of product development. A typical release management plan for a product called "Example Appliance" might have the following tags:
- example-1-devel for development of version 1
- example-1-test for version 1 items going through a testing or QA process
- example-1 for the final release of version 1
Conary provides the cvc promote command designed to simplify promoting all the parts of a single appliance from one release management stage to another. The following shows this command being used to promote Example Appliance version 1 from development to testing:
$> cvc promote group-example :example-1-devel--:example-1-test
More parts of the label can be added to the last arguments to promote between namespaces or even between two different repositories. Users can be assured that all packages on the same label that are associated with a group will be promoted with the group to its new label.
