Versions and variants

A version is a form of a product configuration or product that is different in some way from other forms. A variant is a variation of a product. Both versions and variants are ways of configuring your product. In Rational® Engineering Lifecycle Manager, variants are called branches.

Versions

Versions provide a way for teams to capture their product at a certain point in time. As products meet milestones, teams either check in a version of the product or create a baseline. Initially, the version might be a way for teams to mark that a goal was met. But as product development continues, the team might need to replace a configuration or product with a previous version for reproducibility. For example, a team might need to reproduce their product environment to solve a customer issue.

Alternatively, if a team needs to replace a configuration or product with an improved configuration or product, they might check in a version in one product and then replace older products with the newer version.

Product versions

Versions have relationships to older and newer versions. Consider a product that is called SuperCar. When the team created the product, it was assigned a version number of 1, and it was displayed as SuperCar-1. Later, a change was made to SuperCar-1 to create a version, displayed as SuperCar-2. SuperCar-1 is a predecessor of SuperCar-2. SuperCar-2 is a successor of SuperCar-1.

The product tree does not show all versions of products in the Browse Products page. If you want to see versions of a product, right-click over it and choose Show Audit History.

When you check in a product, the product tree is versioned, but the related artifacts in the tree are not.

Therefore, by checking in a product, you capture the links to each related artifact, not a version of the artifacts. If a related artifact is modified in its native tool after you check in the product, the next time you access the artifact, you see the latest artifact in the product version.

Product configuration baselines

Product configurations are never checked in. Instead, you can create a baseline of a configuration, which is a non-modifiable version of a particular time. For example, your team might want to capture a weekly build milestone, monthly milestones, or milestones for specific customers. Configuration baselines give teams advantages. Baselines let teams reproduce a hierarchical environment for testing and creating a patch to fix a problem. Baselines enable teams to get back to work quickly after they reach a milestone because the configuration is not checked in. Imported files are created as baselines by default. You can quickly begin to use a newly created baseline by right-clicking it and choosing to create a modifiable copy.

The product tree does not show all baselines for a configuration in the Browse Products page. To see the baselines for a configuration, enter the name in Quick Search and click the Search icon.

When you create a baseline of a configuration, the related artifacts in the configuration are not part of a product so they are not versioned. A product can be checked in as often as a user needs, even several times per day. Typically, a baseline is not created for a configuration as often. Therefore, the related artifacts in the configuration would probably be out of sync with the products they support, but possibly not, depending on your workflow.

Branches

Branching provides teams with a way of creating a different variant of a product. As products evolve, teams sometimes find themselves creating products for customers that need something a little different from the mainstream product. Other teams that create products used worldwide find that they need to make many variations of a product for different countries, for example, because of voltage requirements. Branching provides teams with customization capabilities.

Additionally, teams might create a branch if a product is recalled for safety issues. The team would create a branch to fix the safety issues, and then would replace the problem branch with the new branch.

Dimensions and values can be an important part of branch selection. See Dimension values precedence


Feedback