releasing/cbrtools/perl/QuickStart
changeset 602 3145852acc89
equal deleted inserted replaced
600:6d08f4a05d93 602:3145852acc89
       
     1 #!perl
       
     2 # Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 # All rights reserved.
       
     4 # This component and the accompanying materials are made available
       
     5 # under the terms of the License "Eclipse Public License v1.0"
       
     6 # which accompanies this distribution, and is available
       
     7 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 # 
       
     9 # Initial Contributors:
       
    10 # Nokia Corporation - initial contribution.
       
    11 # 
       
    12 # Contributors:
       
    13 # 
       
    14 # Description:
       
    15 # 
       
    16 #
       
    17 
       
    18 =head1 Overview
       
    19 
       
    20 This document is intended to familiarise the reader with basic release tool commands. It covers topics such as installing and upgrading a development environment, and viewing details about particular releases within that environment. It does not cover the process of preparing new environments or making releases (see the document I<Making Releases> for material on that topic).
       
    21 
       
    22 =head1 Glossary
       
    23 
       
    24 =over 4
       
    25 
       
    26 =item *
       
    27 
       
    28 B<Component> - A deliverable piece of software.
       
    29 
       
    30 =item *
       
    31 
       
    32 B<Release> - A delivery of a component (may contain source or binaries or both).
       
    33 
       
    34 =item *
       
    35 
       
    36 B<Version> - The name of a specific component release (must be unique).
       
    37 
       
    38 =item *
       
    39 
       
    40 B<Baseline> - A set of component releases (referred to by their version) that are known to work together.
       
    41 
       
    42 =item *
       
    43 
       
    44 B<Environment> - A development drive that contains an F<\epoc32> tree generated from the binaries in a set of component releases.
       
    45 
       
    46 =back
       
    47 
       
    48 =head1 Getting an Environment
       
    49 
       
    50 When ever a component release is made, the release tools make note of the entire environment from which it was made. To install the environment from which the component C<mycomp> version C<059> was made, use the command C<GetEnv>:
       
    51 
       
    52   getenv mycomp 059
       
    53 
       
    54 This will install into the root of the current drive all the binaries that were present when C<mycomp 059> was released. It is possible therefore to reproduce the environment from which any component release has been made. Normally, however, each project will have official environments that are prepared by a build / integration team. They will release a dummy component (normally the name of the project) that can be used to reproduce these official environments. The dummy component will probably not contain any binaries, but should contain a set of release notes (see the section I<Viewing a Component's Release Notes>).
       
    55 
       
    56 =head1 Upgrading a Single Component
       
    57 
       
    58 Single components can be installed into an environment using the command C<GetRel>, for example:
       
    59 
       
    60   getrel mycomp 060
       
    61 
       
    62 If a version of C<mycomp> is already installed in the current environment, it's binaries will be removed before those from C<060> are installed.
       
    63 
       
    64 =head1 Upgrading to a New Environment
       
    65 
       
    66 The command C<GetEnv> can be used to upgrade an existing environment, for example:
       
    67 
       
    68   getenv myproject 030
       
    69 
       
    70 As with C<GetRel>, old component versions are removed before the new are installed. If environment already contains something similar to C<myproject 030>, the process of upgrading it should be fairly quick.
       
    71 
       
    72 =head1 Viewing the State of an Environment
       
    73 
       
    74 The component versions that are currently installed in an environment can be listed with the following command:
       
    75 
       
    76   envinfo
       
    77 
       
    78 Which will display something like:
       
    79 
       
    80  Component   Version
       
    81 
       
    82  mycomp1     032
       
    83  mycomp2     036
       
    84 
       
    85 =head1 Getting the Source Code for a Component
       
    86 
       
    87 By default, the commands C<GetEnv> and C<GetRel> do not install the source code contained within component releases. If you want to get the source for a single component, use the command C<GetSource>:
       
    88 
       
    89   getsource mycomp
       
    90 
       
    91 This will unpack the source for the currently installed version of C<mycomp> into the root of the current drive. Note, the commands C<GetEnv> and C<GetRel> both have a C<-s> switch that instructs them to unpack source code as well as binaries. Note also that the release tools make no attempt to keep track of source files that have been unpacked into a drive (unlike binary files, which they do keep track of). This means that any existing files of the same name will be over written.
       
    92 
       
    93 There's also a C<RemoveSource> command.
       
    94 
       
    95 =head1 Viewing a Component's Release Notes
       
    96 
       
    97 The release notes for a component can be compiled on the fly using the command C<ViewNotes>. This will compile the release notes into a temporary file and then launch your default web browser to view. For example:
       
    98 
       
    99   viewnotes mycomp 032
       
   100 
       
   101 If the version is ommitted, then the notes for the version that is currently installed will be displayed. Note, C<ViewNotes> assumes that a web browser is already installed, and than there is an association between it and the file extension F<.html>.
       
   102 
       
   103 C<ViewNotes> can also be used to display a summary of all releases that have been made to date using the C<-s> switch. For example:
       
   104 
       
   105   viewnotes -s mycomp 032
       
   106 
       
   107 This can be useful if you want to look back through old release notes.
       
   108 
       
   109 =head1 Other information commands
       
   110 
       
   111 C<BinInfo> lists all the binary files belonging to a component, or to which component a given binary file belongs. C<SourceInfo> does exactly the same with source code directories.
       
   112 
       
   113 C<EnvMembership> and C<DiffEnv> show you information about the contents of different environments. C<ListComponents>, C<LatestVer> and C<EnvSize> report the contents of the local archive.
       
   114 
       
   115 =head1 Recovering your Environment to a Known State
       
   116 
       
   117 If you have forgotten what's on your development drive, and you want to get it back to a clean baseline, you could use C<EnvInfo -f> to examine it, then reinstall all the dirty components and delete any loose files. But C<CleanEnv> does this automatically.
       
   118 
       
   119 =head1 Viewing the Source Differences between Two Component Releases
       
   120 
       
   121 The command C<DiffRel> can be used to compare the source of two releases using a differencing tool of your choice (this must be specified in the release tools configuration file C<reltools.ini> - see the installation guide for details). For example...
       
   122 
       
   123   diffrel mycomp 031 032
       
   124 
       
   125 ...will diff C<mycomp> version C<031> against version C<032>. Alternatively...
       
   126 
       
   127   diffrel mycomp 031 \mycomp
       
   128 
       
   129 ...will diff C<mycomp 031> against the source in the directory F<\mycomp>.
       
   130 
       
   131 =head1 Making Releases
       
   132 
       
   133 See the separate Making Releases document.
       
   134 
       
   135 =head1 Importing and Exporting Releases
       
   136 
       
   137 This is the process of transferring a release from one site to another. It involves encryption, and typically FTP sites. See the separate Exporting and Importing Releases document.
       
   138 
       
   139 =head1 "Validation"
       
   140 
       
   141 If you have two releases that you believe to be the same, you can use the commands C<ValidateRel> and C<ValidateEnv> to compare them. The comparison is intelligent and ignores differences in the timestamps in DLL headers (it uses the standard Symbian utility 'evalid').
       
   142 
       
   143 In particular, if you have constructed a baseline of many individual component releases, we recommend that you occasionally do a 'full build' of all the source code. You can then use 'validateenv' to ensure that the full build has produced the same results as all the individual components.
       
   144 
       
   145 =head1 COPYRIGHT
       
   146 
       
   147  Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
       
   148  All rights reserved.
       
   149  This component and the accompanying materials are made available
       
   150  under the terms of the License "Eclipse Public License v1.0"
       
   151  which accompanies this distribution, and is available
       
   152  at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
   153  
       
   154  Initial Contributors:
       
   155  Nokia Corporation - initial contribution.
       
   156  
       
   157  Contributors:
       
   158  
       
   159  Description:
       
   160  
       
   161 
       
   162 =cut