Rosie is a tool for managing Rose suite configurations which is included in Rose. The purpose of Rosie is to facilitate suite development, management and collaboration. Rosie:
Adds version control to Rose suite configurations.
Updates a database to keep track of Rose suite configurations.
This tutorial does not require specific FCM knowledge but basic version control awareness is important. For more information on FCM version control see the FCM User Guide.
A Rosie suite is a Rose suite configuration which is managed by the Rosie system.
Rosie suites can be created by the command:
- rosie create
Create a new suite.
Create a new suite, starting with the content of another suite. (rosie copy is an alias that extends rosie create)
By default Rosie creates the working copy (local copy) of new suites in
~/roses directory though Rosie working copies can be created
Working copy installed in
FCM is a SVN (Subversion) wrapper which provides a standard working practice for SVN projects. FCM implements all of the SVN commands as well as additional functionality. See the FCM User Guide for more information.
Each Rosie suite is assigned a unique name made up of a prefix followed by a hyphen and then an identifier made up of two characters and three numbers, e.g:
The prefix denotes the repository in which the suite is located. Prefixes are
site specific and are configured by the
Within the Rose user community the
u prefix is typically configured to
point at the
All Rosie suites require a
rose-suite.info file. This file
provides information about the suite for use in the suite management and
version control systems. The
rose-suite.info file uses the
Rose Configuration Format.
The main settings are:
A short title for the suite.
The user who has control over the suite (i.e. their username).
The project to which this suite belongs (can be an arbitrary name).
An optional list of users who have permission to commit to the trunk of the suite.
Rosie provides commands for managing suites, including:
- rosie checkout
Creates a local copy of a suite.
- rosie ls
Lists all locally checked-out suites.
- rosie lookup
Searches the suite database (using information from suite’s
For brevity this practical uses the abbreviated version of SVN commands,
svn st is the abbreviated form of
FCM supports both the full and abbreviated names.
Create A New Rosie Suite.
First, create a blank Rosie suite in an appropriate repository. You will probably want to use a “testing” repository if one is available to you.
You can specify the repository to use with the
--prefixcommand-line option. For instance to use the (internal) Met Office Testing Repository supply the command line argument
rosie create --prefix=<prefix>
You will then be presented with a
rose-suite.infofile open in a text editor. For the
titlefield type “Dummy Weather Forecasting Suite” and for the
projectenter “tutorial”. Save the file and close the editor.
If the text editor does not appear you may have to press enter on the keyboard.
Rosie will create the new suite in the
~/rosesdirectory and the exact location will appear in the command output. Move into the suite directory:
Add Files To The Suite.
Add the files from the Weather Forecasting Suite by running:
rose tutorial rose-weather-forecasting-suite .
We now need to add these files to version control. First check the SVN status by running:
You should see a list of files with the
?symbol next to them, as well as
Msymbol beside it.
?means the files marked are untracked (not version controlled), whereas
Mindicates files which have been modified. Add all untracked files to version control by running:
fcm add --check .
Answer yes (“y”) where prompted. Now check the status again:
You should see a list of files with the
Acharacter, meaning “added”, next to them. Finally commit the changes by running:
A text editor will open. Add a message for your commit, save the file and close the editor. You will then be prompted as to whether you want to make the commit. Answer yes.
You have now added the Weather Forecasting Suite to version control. Open the Trac browser to see your suite:
A web browser window will open, showing the Trac page for your Rosie suite.
Checkout The Suite.
Now that the suite is in the Rosie repository a working copy can be checked out on any machine with access to the repository by executing:
rosie checkout <name>
Test this by deleting the working copy then checking out a new one:
cd ~/roses rm -rf <name> rosie checkout <name>
Make Changes In A Branch.
Next we will make a change to the suite. Rather than making this change in the “trunk” (referred to as “master” in git terminology) we will work in a new “branch”.
Create a new branch called “configuration-change” by running:
fcm bc configuration-change
Provide a brief commit message of your choosing when prompted and enter yes (“y”).
You can list all branches by running:
Switch to your new branch:
fcm sw configuration-change
Check the status of the project:
You should see the
rose-suite.conffile with a
M, meaning modified, next to it. Commit the change by running:
Again you will need to provide a commit message and answer yes to the prompt.
Merge The Branch.
Switch back to the trunk then merge your change branch into the trunk:
fcm sw trunk fcm merge configuration-change
Check the status (you should see the
Msymbol next to the
rose-suite.conffile) then commit the merge:
fcm st fcm ci