releasing/cbrtools/perl/MakeRel
author Bob Rosenberg <bob.rosenberg@nokia.com>
Mon, 20 Sep 2010 10:55:43 +0100
changeset 658 cab9da9b71bb
parent 602 3145852acc89
permissions -rw-r--r--
Test and fail for badly invalid unit elements when joining
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     1
#!perl
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     2
# Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     3
# All rights reserved.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     4
# This component and the accompanying materials are made available
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     5
# under the terms of the License "Eclipse Public License v1.0"
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     6
# which accompanies this distribution, and is available
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     8
# 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     9
# Initial Contributors:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    10
# Nokia Corporation - initial contribution.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    11
# 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    12
# Contributors:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    13
# 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    14
# Description:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    15
# 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    16
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    17
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    18
use strict;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    19
use FindBin;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    20
use lib "$FindBin::Bin";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    21
use Getopt::Long;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    22
use IniData;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    23
use EnvDb;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    24
use MrpData;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    25
use MakeRel;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    26
use CommandController;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    27
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    28
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    29
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    30
# Globals.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    31
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    32
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    33
my $verbose = 0;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    34
my $fixLibs = 0;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    35
my $iniData = IniData->New();
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    36
my $commandController = CommandController->New($iniData, 'MakeRel');
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    37
my $envDb;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    38
my $makeRel;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    39
my $notesSrc;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    40
my $project;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    41
my $reallyrun;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    42
my @mrpData;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    43
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    44
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    45
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    46
# Main.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    47
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    48
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    49
ProcessCommandLine();
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    50
PrintHeinousWarning();
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    51
MakeRel::MakeReleases($iniData, $envDb, \@mrpData, $notesSrc, 'MakeRel', $verbose, $project);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    52
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    53
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    54
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    55
# Subs.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    56
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    57
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    58
sub ProcessCommandLine {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    59
  Getopt::Long::Configure ("bundling");
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    60
  my $help;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    61
  my $stdin;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    62
  GetOptions("h" => \$help, "v+" => \$verbose, "n=s" => \$notesSrc, "p" => \$stdin, "l" => \$fixLibs, "w=s" => \$project, "f" => \$reallyrun);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    63
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    64
  if ($help) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    65
    Usage(0);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    66
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    67
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    68
  # Create the MrpData objects. These will not write any files to disk, and so if any of
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    69
  # them die, there is no need to perform any file system cleanup.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    70
  if ($#ARGV == -1 and $stdin) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    71
    # Read input from STDIN.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    72
    MakeMrpData(\@mrpData, *STDIN);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    73
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    74
  elsif ($#ARGV == 0) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    75
    # Read input from a file.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    76
    if (-f $ARGV[0]) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    77
      open (IN, $ARGV[0]) or die "Error: Couldn't open $ARGV[0] for reading: $!\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    78
      MakeMrpData(\@mrpData, *IN);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    79
      close (IN);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    80
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    81
    else {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    82
      print "Error: $ARGV[0] is not a file\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    83
      Usage(1);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    84
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    85
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    86
  elsif ($#ARGV == 1) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    87
    # Read input from a single set of command line arguments.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    88
    if ($iniData->RequireInternalVersions()) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    89
      die "Error: Internal version number not specified\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    90
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    91
    else {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    92
      push (@mrpData, MrpData->New(shift @ARGV, shift @ARGV, '', $iniData, $verbose, $fixLibs));
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    93
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    94
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    95
  elsif ($#ARGV == 2) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    96
    # Read input from a single set of command line arguments.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    97
    push (@mrpData, MrpData->New(shift @ARGV, shift @ARGV, shift @ARGV, $iniData, $verbose, $fixLibs));
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    98
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    99
  else {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   100
    print "Error: invalid number of arguments\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   101
    Usage(1);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   102
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   103
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   104
  $envDb = EnvDb->Open($iniData, $verbose);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   105
}
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   106
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   107
sub Usage {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   108
  my $exitCode = shift;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   109
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   110
  Utils::PrintDeathMessage($exitCode, "\nUsage: makerel [options] [[<mrp_file> <version> [<internal_version>]] | [mrp_list_file]]
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   111
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   112
options:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   113
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   114
-h                    help
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   115
-v                    verbose output (-vv very verbose)
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   116
-n <notes_src_file>   compile all release notes using a single source file
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   117
-p                    read a piped mrp list from STDIN
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   118
-l                    copy missing ARMI lib files from THUMB is possible
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   119
-f                    force (no prompting)
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   120
-w <project name>     make the release in this \"project\"
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   121
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   122
Unsupported tool.\n");
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   123
}
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   124
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   125
sub PrintHeinousWarning {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   126
  Utils::QueryUnsupportedTool(<<GUILTY, $reallyrun);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   127
############################ WARNING ################################
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   128
# Do not use MakeRel  under normal circumstances.   If you  wish to #
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   129
# make a component release,   use the PrepRel and MakeEnv commands. #
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   130
# ( PrepRel to specify the version numbers,  etc.,  then MakeEnv to #
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   131
# actually make the release(s). )                                   #
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   132
#####################################################################
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   133
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   134
The problem with MakeRel is that it doesn't ensure your environment
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   135
is clean before making the releases. Hence, component releases made
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   136
using MakeRel are not subject to the normal guarantees, that ensure
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   137
users of your release can precisely reproduce what you have on your
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   138
development drive.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   139
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   140
Usually, releases made using MakeRel are unacceptable to licensee
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   141
integration teams. Use with caution.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   142
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   143
GUILTY
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   144
}
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   145
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   146
sub MakeMrpData {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   147
  my $mrpData = shift;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   148
  local *IN = shift;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   149
  print "Gathering release info...\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   150
  my @failedReleases;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   151
  my @lines;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   152
  while (my $line = <IN>) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   153
    # Remove line feed, white space and comments.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   154
    chomp $line;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   155
    $line =~ s/^\s*$//;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   156
    $line =~ s/#.*//;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   157
    if ($line eq '') {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   158
      # Nothing left.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   159
      next;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   160
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   161
    push @lines, $line;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   162
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   163
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   164
  # Reading in a separate loop due to Perl 5.8.0 defect # 21217, due to be fixed in 5.8.1.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   165
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   166
  my $lineNum = -1;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   167
  foreach my $line (@lines) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   168
    $lineNum++;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   169
    eval {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   170
      (my $mrpName, my $extVer, my $intVer) = split (/\s+/, $line, 4);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   171
      unless (defined $mrpName and defined $extVer) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   172
        die "Error: Invalid arguments at line $lineNum\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   173
      }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   174
      if (not defined $intVer) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   175
        if ($iniData->RequireInternalVersions()) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   176
          die "Error: Internal version number not specified\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   177
        }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   178
        else {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   179
          $intVer = '';
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   180
        }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   181
      }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   182
      my $thisMrpData = MrpData->New($mrpName, $extVer, $intVer, $iniData, $verbose, $fixLibs);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   183
      push (@$mrpData, $thisMrpData);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   184
    };
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   185
    if ($@) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   186
      print $@;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   187
      push (@failedReleases, "$line - $@");
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   188
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   189
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   190
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   191
  if ($#failedReleases >= 0) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   192
    print "\nThere was an error making the following release(s):\n\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   193
    foreach my $rel (@failedReleases) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   194
      print "$rel";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   195
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   196
    die "\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   197
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   198
}
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   199
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   200
__END__
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   201
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   202
=head1 NAME
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   203
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   204
MakeRel - Make a single, or set of component releases.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   205
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   206
=head1 SYNOPSIS
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   207
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   208
  makerel [options] [[<mrp_file> <version> [<internal_version>]] | [mrp_list_file]]
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   209
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   210
options:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   211
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   212
  -h                    help
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   213
  -v                    verbose output (-vv  very verbose)
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   214
  -n <notes_src_file>   compile all release notes using a single source file
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   215
  -p                    read a piped mrp list from STDIN
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   216
  -l                    copy missing ARMI lib files from THUMB is possible
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   217
  -f                    force (no prompting)
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   218
  -w <project>          make the releases in this "project"
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   219
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   220
=head1 DESCRIPTION
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   221
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   222
C<MakeRel> is a tool that can generate one or more component releases. Where ever possible the tool C<MakeEnv> should be used instead of C<MakeRel> because this guarantees the ability to reproduce the entire environment from which a release was made, rather than just packaging up a particular set of source and binaries.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   223
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   224
See the document I<Making Releases> for more complete coverage of the process of making releases in general.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   225
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   226
=head1 STATUS
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   227
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   228
Unsupported/experimental. If you find a problem, please send us a patch.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   229
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   230
=head1 KNOWN BUGS
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   231
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   232
None.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   233
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   234
=head1 COPYRIGHT
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   235
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   236
 Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   237
 All rights reserved.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   238
 This component and the accompanying materials are made available
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   239
 under the terms of the License "Eclipse Public License v1.0"
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   240
 which accompanies this distribution, and is available
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   241
 at the URL "http://www.eclipse.org/legal/epl-v10.html".
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   242
 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   243
 Initial Contributors:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   244
 Nokia Corporation - initial contribution.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   245
 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   246
 Contributors:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   247
 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   248
 Description:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   249
 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   250
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   251
=cut