OSEE's action tracking system (ATS) has the concept of a "version".

It is typically useful to define a version of the system, or sub-system,
that you are going to target with a set of changes ("Actions", in OSEE
terminology).

Before you can assign actions to a version, the version needs to be
created.

A version is created for a specific team.

If you want more than one team to target the same version, create a
parent team that the other teams belong to, and create the version for
the parent team.



1.  Open the ATS perspective and go to the ATS Navigator.
2.  Open the Versions tree and select “Create New Version”
3.  Select the team that you want to create the version for and click OK
4.  Give the new version a name