source: stable/0.6/prepare_new_release @ 1695

Last change on this file since 1695 was 1695, checked in by tkr, 11 years ago

Syncing stable/0.6 with trunk

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 22.1 KB
Line 
1#!/bin/sh
2
3# Copyright (C) 2007  International Business Machines.
4# All Rights Reserved.
5# This file is distributed under the Common Public License.
6# It is part of the BuildTools project in COIN-OR (www.coin-or.org)
7#
8# $Id: prepare_new_release 1695 2010-10-30 22:24:42Z tkr $
9#
10# Author: Andreas Waechter     IBM      2007-06-21
11# Modified: Lou Hafer          SFU      2008-01-20
12#       Accommodate simultaneous creation of releases with circular
13#       dependencies.
14# Modified: Ted Ralphs         Lehigh University 2009-07-10
15#       Set libtool version info automatically
16# Modified: Lou Hafer          SFU      2010-06-02
17#       Adapt to new script architecture pioneered in *_new_stable; major
18#       rewrite.
19
20#set -x -v
21set -e
22
23# You can think of this script as having two sections: parameter parsing and
24# validation, followed by generation of the release candidate. See the help
25# message for a good description of the actions taken to generate the release
26# candidate.
27
28# Know thy self. If there are no '/' chars in the command name, we're running
29# in the currrent directory. Otherwise, strip the command name, leaving the
30# prefix.  Coin-functions is expected to live in the same directory.
31
32if expr "$0" : '.*/.*' >/dev/null 2>&1 ; then
33  cmdDir=`echo $0 | sed -e 's,\(.*\)/[^/]*,\1,'`
34else
35  cmdDir='.'
36fi
37cmdDir=`cd $cmdDir ; pwd`
38if test -r $cmdDir/coin-functions ; then
39  . $cmdDir/coin-functions
40else
41  echo "Cannot find utility functions file coin-functions; exiting."
42fi
43
44# Note that plain sh does not accept negative exit values
45
46exitValue=0
47
48# Specify the COIN URL base for convenience.
49
50coinURL="https://projects.coin-or.org/svn"
51
52# Begin parameter processing.
53
54printHelp=0
55ignoreBuildToolsMismatch=0
56suppressCheckout=0
57
58# stableURL will be the stable branch that is the parent for the release we
59# are building. We'll need to be able to distinguish ThirdParty and Data
60# builds, and BuildTools itself; they require special handling. If a project
61# is not BuildTools, ThirdParty, or Data, it's `normal'.
62
63stableURL=
64isThirdParty=no
65isData=no
66isBuildTools=no
67isNormal=yes
68
69# cmdBTURL is required when stableURL specifies a ThirdParty or Data
70# project --- we'll need to assemble a temporary package while creating the
71# release candidate.
72
73cmdBTURL=
74
75# stableExternals specifies externals for which we are doing simultaneous
76# releases. We will use the stable branch of the external while preparing and
77# testing this release candidate, changing the Dependencies file to specify a
78# (nonexistent) release of the external at the last moment.
79
80stableExternals=
81
82# exciseExternals specifies externals that should be removed when creating the
83# new release.
84
85exciseExternals=
86
87# We need at least one parameter.
88
89if test "$#" -eq 0; then
90  printHelp=1
91else
92
93# Process the parameters. A parameter without an opening `-' is assumed to be
94# the spec for the stable branch.
95
96  while test $# -gt 0 && test $exitValue = 0 && test $printHelp = 0 ; do
97    case "$1" in
98      -h* | --h*) printHelp=1 ;;
99      -i* | --i*) ignoreBuildToolsMismatch=1 ;;
100      -p* | --p*) suppressCheckout=1 ;;
101      -s* | --s*)
102           if expr "$1" : '.*-s.*=.*' 2>&1 >/dev/null ; then
103             stableExternals=`echo $1 | sed -n -e 's/[^=]*=\(.*\)/\1/p'`
104           else
105             shift
106             stableExternals=$1
107           fi
108           ;;
109      -x* | --x*)
110           if expr "$1" : '.*-x.*=.*' 2>&1 >/dev/null ; then
111             exciseExternals=`echo $1 | sed -n -e 's/[^=]*=\(.*\)/\1/p'`
112           else
113             shift
114             exciseExternals=$1
115           fi
116           ;;
117       -b* | --b*)
118           if expr "$1" : '.*-b.*=.*' 2>&1 >/dev/null ; then
119             cmdBTURL=`echo $1 | sed -n -e 's/[^=]*=\(.*\)/\1/p'`
120           else
121             shift
122             cmdBTURL=$1
123           fi
124           if expr "$cmdBTURL" : '.*BuildTools.*' 2>&1 >/dev/null ; then
125             case $cmdBTURL in
126               http*) ;;
127                   *) cmdBTURL=${coinURL}/$cmdBTURL
128                      ;;
129             esac
130           else
131             echo ''
132             echo "URL $cmdBTURL does not point to BuildTools."
133             echo ''
134             printHelp=1
135             exitValue=3
136            fi
137           ;;
138           
139       -*) echo "$0: unrecognised command line switch '"$1"'."
140           printHelp=1
141           exitValue=1
142           ;;
143        *) stableURL=$1
144           if expr "$stableURL" : '.*/stable/.*' 2>&1 >/dev/null ; then
145             case $stableURL in
146               http*) ;;
147               BuildTools/ThirdParty/* )
148                 stableURL=${coinURL}/$stableURL
149                 ;;
150               ThirdParty/* )
151                 stableURL=${coinURL}/BuildTools/$stableURL
152                 ;;
153               CoinAll/* )
154                 stableURL=${coinURL}/CoinBinary/$stableURL
155                 ;;
156               *) stableURL=${coinURL}/$stableURL
157                 ;;
158             esac
159           else
160             echo ''
161             echo "URL $stableURL does not specify a stable release."
162             echo ''
163             printHelp=1
164             exitValue=2
165           fi
166           ;;
167    esac
168    shift
169  done
170
171# Consistency checks: Make sure that the stable URL exists. If we're building
172# a ThirdParty or Data release, we need a BuildTools URL.
173
174  if test $printHelp = 0 && test $exitValue = 0 ; then
175    if svn list $stableURL 2>&1 >/dev/null ; then
176      :
177    else
178      echo "Stable URL $stableURL does not seem to exist."
179      printHelp=1
180      exitValue=5
181    fi
182  fi
183  if test $printHelp = 0 && test $exitValue = 0 ; then
184    case $stableURL in
185      *ThirdParty/* )
186        isThirdParty=yes
187        isNormal=no
188        ;;
189      *Data/* )
190        isData=yes
191        isNormal=no
192        ;;
193      *BuildTools/* )
194        isBuildTools=yes
195        isNormal=no
196        ;;
197      *)
198        ;;
199    esac
200    if test $isThirdParty = yes || test $isData = yes ; then
201      if test -z $cmdBTURL ; then
202        echo "You must provide a BuildTools URL to build a ThirdParty or Data project."
203        printHelp=1
204        exitValue=4
205      else
206        if svn list $cmdBTURL 2>&1 >/dev/null ; then
207          :
208        else
209          echo "BuildTools URL $cmdBTURL does not seem to exist."
210          printHelp=1
211          exitValue=6
212        fi
213      fi
214    fi
215  fi
216fi  # if "$#" .eq 0
217
218if test $printHelp = 1 ; then
219  cat <<EOF
220Usage: prepare_new_release <stableVer> [options]
221
222COIN standard practice is to generate periodic releases by taking a snapshot
223of the stable branch of the project.  You can use this script to prepare
224a new release based on the specified stable branch.
225
226<stableVer> specifies the stable branch of your project to be used to
227create the new release.  You can specify the entire URL, or you just enter
228what comes after "https://projects.coin-or.org/svn".  A typical example is
229
230  prepare_new_release Ipopt/stable/3.3
231
232Options:
233  -b <BuildToolsURL>    URL for BuildTools; required to generate a release
234                        for a ThirdParty or Data project.
235  -i                    Ignore BuildTools version mismatches in externals.
236  -p                    Suppress checkout (useful for testing)
237  -s <projectlist>      Suppress conversion from stable to release for the
238                        listed externals (comma-separated list of project
239                        names, e.g., -s Osi,Cbc).
240  -x <projectlist>      Remove the listed projects from the list of externals
241                        (comma-separated list of project names).
242
243This script will do the following:
244
245  - Automatically determine the next release number (X.Y.0 if this is the
246    first release for stable/X.Y, otherwise one greater than any existing
247    release)
248  - Check out a clean copy of the specified stable branch, without externals
249  - Make sure that the svn:externals property points to releases, with the
250    exception of projects in the list specified with -s.
251  - Create a new package configure.ac file with the release version number
252    specified in the AC_INIT macro.
253  - Use the "get.*" scripts to download any ThirdParty code.
254  - Execute run_autotools to update configure, Makefile.in, etc., to reflect
255    the most recent release of BuildTools.
256  - Run the configure script, compile the code, and run the unit test.
257  - Replace stable externals for projects specified with -s with the
258    appropriate (yet to be committed) release.
259
260If there is any error during these tasks the script will stop and you should
261examine the output.
262
263If the script completes without error, examine the output, particularly the
264output of the unit test ('make test') and the set of externals specified in
265the Dependencies file.
266
267This script does not make any changes to the repository.  If you want to
268commit the new release, run the "commit_new_release" script, as described
269at the end of the output.
270
271EOF
272fi
273
274if test $exitValue != 0 || test $printHelp = 1 ; then
275  exit $exitValue
276fi
277
278# End of parameter parsing. We have a stable URL to work with.  Tell the
279# user what we've seen.
280
281stableURL=`echo $stableURL | sed -e 's|/$||'`
282stableProj=`extractProjFromURL $stableURL`
283majVer=`extractMajorFromURL $stableURL`
284minVer=`extractMinorFromURL $stableURL`
285stableVer=$majVer.$minVer
286echo "Stable URL..........: $stableURL"
287echo "Stable project......: $stableProj"
288echo "Stable branch.......: $stableVer"
289if test -n "$stableExternals" ; then
290  echo "Stable externals....: $stableExternals."
291fi
292
293# Find out the most recent release (if any) for the stable branch, then
294# construct the revision number of the new release. If there are existing
295# releases, it's a matter of bumping the revision number and inserting the
296# new revision in the URL. Otherwise, we know the new revision is 0 and we
297# can simply tweak the stable URL.
298
299releaseURL=`bestRelease $stableURL $majVer $minVer | sed -e 's|/$||'`
300if test -n "$releaseURL" ; then
301  curRel=`extractReleaseFromURL $releaseURL`
302  existingURL=$releaseURL
303  newRel=`expr $curRel + 1`
304else
305  curRel=-1
306  releaseURL=`echo $stableURL | sed -e s/stable/releases/`
307  existingURL="none"
308  newRel=0
309fi
310newVer=$majVer.$minVer.$newRel
311releaseURL=`replaceVersionInURL $releaseURL $majVer $minVer $newRel`
312
313echo "Top release URL.....: $existingURL"
314echo "New release URL.....: $releaseURL"
315
316# Relevant only if we're building ThirdParty or Data
317
318if test $isThirdParty = yes || test $isData = yes ; then
319  echo "BuildTools URL......: $cmdBTURL"
320fi
321
322# We need a libtool version number only for normal projects
323
324if test $isNormal = yes ; then
325  newLTCurrent=`calcLibtoolAge $stableURL -1`
326  newLTRevision=$newRel
327  newLTAge=`calcLibtoolAge $stableURL $majVer`
328  newLTVer=${newLTCurrent}:${newLTRevision}:${newLTAge}
329  echo "Libtool version.....: $newLTVer"
330fi
331
332# Now decide where to build and check out code. If the stable project name
333# contains a '/', strip it out to make the build and checkout directories.
334
335topBuildDir=`echo $stableProj | sed -e 's|.*/\([^/]*\)$|\1|'`
336topBuildDir="${topBuildDir}-${newVer}"
337if test $isThirdParty = yes; then
338  coDir=$topBuildDir/Thirdparty/$stableProj
339elif test $isData = yes; then
340  coDir=$topBuildDir/Data/$stableProj
341else
342  coDir=$topBuildDir
343fi
344echo "Build directory.....: $topBuildDir"
345echo "Checkout directory..: $coDir"
346
347# Check out the stable branch that'll be the base of the new release. No
348# externals at this point. Creating a release of a ThirdParty or Data project
349# requires a bit of work, as we need to assemble a temporary package with a
350# BuildTools external.
351
352echo ''
353echo "===> Checking out stable release $stableVer without externals..."
354echo ''
355
356rm -rf $topBuildDir
357cmd="svn co --ignore-externals $stableURL $coDir"
358if test $suppressCheckout = 1 ; then
359  echo "Pretending to do: $cmd"
360else
361  rm -rf $topBuildDir
362  echo $cmd
363  eval $cmd
364fi
365
366if test $isThirdParty = yes || test $isData = yes; then
367  echo ''
368  echo '===> Checking out BuildTools (Data or ThirdParty) ...'
369  echo ''
370  cmd="svn co $cmdBTURL $topBuildDir/BuildTools"
371  if test $suppressCheckout = 1 ; then
372    echo "Pretending to do: $cmd"
373  else
374    echo $cmd
375    eval $cmd
376  fi
377fi
378
379startDir=`pwd`
380coDir=`cd $coDir; pwd`
381topBuildDir=`cd $topBuildDir; pwd`
382
383cd $coDir
384
385# Find configure.ac files for the package and project and update the version.
386# We have no externals or third-party code at this point, so there will be
387# two files for a normal project, one for a ThirdParty or Data project, and
388# none for BuildTools.
389
390echo ''
391echo "===> Checking for configure.ac files ..."
392bak_files=`find . -name 'configure.ac'`
393
394if test -n "$bak_files" ; then
395  for i in $bak_files; do
396    cp $i $i.bak
397  done
398
399# Take the attitude that [] around parameters in AC_INIT is optional,
400# it's the commas that count. This does make for a surpassing ugly regular
401# expression.  A comma in the version string will cause a spectacular failure.
402# In AC_COIN_PROJECTDIR_INIT, take the attitude that the existing parameters
403# don't matter, we know what the release parameters should be.
404
405  echo ''
406  echo "===> Updating version numbers in configure.ac files ..."
407  for i in $bak_files; do
408    sed -e "s|AC_INIT\(.*\),\(\[*\)[^],]*\(\]*\),\(.*\)|AC_INIT\1,\2$newVer\3,\4|" $i > bla
409    mv bla $i
410    sed -e "s|AC_COIN_PROJECTDIR_INIT(.*)|AC_COIN_PROJECTDIR_INIT\($stableProj,$newLTCurrent:$newLTRevision:$newLTAge\)|" $i > bla
411    mv bla $i
412    svn diff $i
413  done
414else
415  echo "    ... none to process."
416fi
417
418# Find ProjConfig.h. If there's a definition for PROJ_VERSION, adjust it and
419# add ProjConfig.h.bak to the list of files to be restored.
420
421stableProjUC=`echo $stableProj | tr '[a-z]' '[A-Z]'`
422configFileLoc=`find . -name '*Config.h' -print`
423if test -n "$configFileLoc" ; then
424  versionSym=${stableProjUC}_VERSION
425  echo ''
426  echo "===> Updating $versionSym in $configFileLoc (if present)"
427  echo ''
428  mv $configFileLoc $configFileLoc.bak
429  bak_files="$bak_files $configFileLoc"
430  sed -e "s/# *define $versionSym.*\$/#define $versionSym \"$newVer\"/" <$configFileLoc.bak >$configFileLoc
431  svn diff $configFileLoc
432fi
433
434# Look for a file specifying externals.
435
436srcDepFile=
437for file in Dependencies Externals ; do
438  if test -r $file ; then
439    srcDepFile=$file
440    break
441  fi
442done
443
444# Now generate a proper Dependencies file for the release.  Each line
445# in a Dependencies file has the format <ext_name> <ext_url>.  Normally,
446# each <ext_url> should be a stable branch.  References to stable branches
447# will be converted to references to releases unless the reference is to
448# a project in the stableExternals list (in which case it'll be converted
449# at the very end). References to releases are not changed. References to
450# trunk are an error. Failure to find a release for an external not in the
451# stableExternals list is an error. Save the existing externals and srcDepFile,
452# as we'll probably change both.
453
454if test -n "$srcDepFile" ; then
455
456  svn propget svn:externals . > .Externals.original
457  bak_files="$bak_files $srcDepFile"
458  cp $srcDepFile $srcDepFile.bak
459
460  echo ''
461  echo "===> Checking externals in $srcDepFile ..."
462  echo ''
463
464# Because we're working directly from command output, the regular expression
465# must check for lines.
466
467  ourBTURL=`svn propget svn:externals . | \
468            sed -n -e 's/^BuildTools *https:\([^ ]*\)$/https:\1/p'`
469  if test -z "$ourBTURL" ; then
470    ourBTURL=none
471  fi
472  echo "Our BuildTools...:    $ourBTURL"
473
474  rm -f Dependencies
475  ext_name=
476  ext_url=
477  buildtoolsMismatch=0
478  for i in `cat $srcDepFile.bak`; do
479    if test "$ext_name" = ""; then
480      ext_name="$i"
481    else
482      ext_url=$i
483      if expr "$ext_name" : '#.*' 2>&1 >/dev/null ; then
484        echo "    $ext_name $ext_url ==> skipped"
485        ext_name=
486        continue
487      fi
488      ext_urltype=`extractTypeFromURL $ext_url`
489      ext_proj=`extractProjFromURL $ext_url`
490
491# See if this external should be dropped.
492
493      if expr "$exciseExternals" : '.*'$ext_proj'.*' 2>&1 > /dev/null ; then
494        echo "    $ext_name $ext_url ==> excised"
495        ext_name=
496        continue
497      fi
498
499# External must be a stable or a release.
500
501      if test $ext_urltype != stable && test $ext_urltype != release ; then
502        echo ''
503        echo "===> The external URL $ext_url is not a stable branch or release. Exiting."
504        echo ''
505        exit 2
506      fi
507
508      ext_isNormal=`isNormalURL $ext_url`
509
510# Convert stable branches to releases unless listed in stableExternals.
511# Existing releases are unchanged.
512
513      if test $ext_urltype = stable ; then
514        if expr "$stableExternals" : '.*'"$ext_proj"'.*' 2>&1 >/dev/null ; then
515          echo "    $ext_name $ext_url unchanged"
516          ext_rel_url=$ext_url
517        else
518          ext_majVer=`extractMajorFromURL $ext_url`
519          ext_minVer=`extractMinorFromURL $ext_url`
520          ext_rel_url=`bestRelease $ext_url $ext_majVer $ext_minVer`
521          if test -z "$ext_rel_url" ; then
522            echo ''
523            echo "===> No release for $ext_url. Exiting."
524            echo ''
525            exit 2
526          fi
527          # Normal (not BuildTools/ThirdParty/Data) need a directory name,
528          # and it may differ from the project name. Carefully preserve it.
529          if test $ext_isNormal = yes ; then
530            ext_tail=`extractTailFromExt $ext_url`
531            ext_rel_url=${ext_rel_url}${ext_tail}
532          fi
533          echo "    $ext_name $ext_url ==> $ext_rel_url"
534        fi
535      else
536        ext_rel_url=$ext_url
537        echo "    $ext_name $ext_url ==> unchanged"
538      fi
539
540# Get the BuildTools URL for the external and compare to the BuildTools URL
541# for the source, assuming we have one and the external has one. We only need
542# to do this for normal URLs, and we need to strip the tail.
543
544      if test $ext_isNormal = yes &&
545         test $ext_proj != BuildTools && test $ourBTURL != none ; then
546        ext_rel_url_notail=`echo $ext_rel_url | sed -e 's,/[^/]*$,,'`
547        extBTURL=`svn propget svn:externals $ext_rel_url_notail`
548        extBTURL=`echo $extBTURL | \
549          sed -n -e 's/.*BuildTools https:\([^ ]*\) .*/https:\1/p'`
550        if test -n "$extBTURL" ; then
551          testResult=`compareURLVersions "$ourBTURL" "$extBTURL"`
552          if test $testResult = no ; then
553            echo "    WARNING: BuildTools mismatch: $ext_rel_url_notail uses $extBTURL"
554            if test $ignoreBuildToolsMismatch = 0 ; then
555               buildtoolsMismatch=1
556            fi
557          fi
558        fi
559      fi
560
561      echo "$ext_name  $ext_rel_url" >>Dependencies
562      ext_name=
563      echo ''
564    fi
565  done
566
567# If we have a BuildTools mismatch, and mismatch is not permitted, exit.
568
569  if test $buildtoolsMismatch -gt $ignoreBuildToolsMismatch ; then
570    echo "Exiting due to BuildTools mismatches; use -i to ignore."
571    exit 2
572  fi
573
574  echo ''
575  echo '===> Updating svn:externals property and checking out externals ...'
576  echo ''
577
578  svn propset svn:externals -F Dependencies .
579  svn update
580
581  if test -d ThirdParty ; then
582    echo ''
583    echo '===> Downloading ThirdParty code ...'
584    echo ''
585
586    ext_name=
587    ext_url=
588    for i in `svn propget svn:externals .` ; do
589      if test -z "$ext_name" ; then
590        ext_name="$i"
591      else
592        ext_url=$i
593        if expr "$ext_name" : 'ThirdParty/.*' 2>&1 >/dev/null ; then
594          cd $ext_name
595          ext_proj=`extractProjFromURL $ext_url`
596          getScript=get.$ext_proj
597          if test -x "$getScript" ; then
598            ./$getScript -patch
599          fi
600          cd $coDir
601        fi
602        ext_name=
603      fi
604    done
605  fi
606fi
607
608# Finally! Done processing externals. If this is a ThirdParty project, we
609# still have to run the get script.
610
611if test $isThirdParty = yes ; then
612  if test -x get.$stableProj ; then
613    echo ''
614    echo '===> Downloading third party code ...'
615    echo ''
616    ./get.$stableProj
617  fi
618fi
619
620# Don't run run_autotools for BuildTools!
621
622if test $isBuildTools = no ; then
623  echo ''
624  echo '===> Running BuildTools/run_autotools ...'
625  echo ''
626  if test $isThirdParty = yes || test $isData = yes ; then
627    cd ../..
628    ./BuildTools/run_autotools
629    cd "$coDir"
630  elif test $isNormal = yes ; then
631    ./BuildTools/run_autotools
632  fi
633fi
634
635# Let's see if it works. We only run tests for normal projects. DO NOT turn
636# on --enable-maintainer-mode in the initial configure command. At the least,
637# it's not needed. At the worst, as of 100526, it'll undo all the careful
638# work above to set externals.
639
640if test $isNormal = yes ; then
641  (set -e
642   echo ''
643   echo '===> Creating build directory and running the configuration script...'
644   echo ''
645   mkdir build
646   cd build
647   cmd="$coDir/configure -C"
648   echo $cmd
649   eval $cmd
650   echo ''
651   echo '===> Compiling code...'
652   echo ''
653   cmd='make install'
654   echo $cmd
655   eval $cmd
656   echo ''
657   echo '===> Running the unit test...'
658   echo ''
659   echo '*******************************************************************************'
660   echo '***                                                                         ***'
661   echo '***                       BEGIN OUTPUT OF MAKE TEST                         ***'
662   echo '***                                                                         ***'
663   echo '*******************************************************************************'
664   echo ''
665   cmd='make test'
666   echo $cmd
667   eval $cmd
668   echo ''
669   echo '*******************************************************************************'
670   echo '***                                                                         ***'
671   echo '***                        END OUTPUT OF MAKE TEST                          ***'
672   echo '***                                                                         ***'
673   echo '*******************************************************************************'
674  )
675  if test $? != 0; then
676    echo ''
677    echo 'Error during build or test'
678    echo ''
679    exit 3
680  fi
681  echo ''
682  echo '===> ALL TESTS PASSED'
683fi
684
685echo ''
686if test $isNormal = yes ; then
687  echo 'Please review the output above, particularly the one of make test.'
688else
689  echo 'Please review the output above.'
690fi
691echo ''
692
693# Do we need to plug in nonexistent releases for circular dependencies tested
694# with the stable versions? If so, generate a new Dependencies. This is the
695# only reason stable references should appear in the externals for a release,
696# so we don't need to check further before removing them.
697
698if test -n "$stableExternals" ; then
699  echo "===> Grooming externals to remove stable externals used for testing ..."
700  mv Dependencies Dependencies.temp.$$
701  ext_name=
702  ext_url=
703  for i in `cat Dependencies.temp.$$`; do
704    if test "$ext_name" = ""; then
705      ext_name="$i"
706    else
707      ext_url=$i
708      ext_urltype=`extractTypeFromURL $ext_url`
709      ext_proj=`extractProjFromURL $ext_url`
710      if test $ext_urltype = stable ; then
711        ext_rel_url=$ext_url
712        ext_majVer=`extractMajorFromURL $ext_url`
713        ext_minVer=`extractMinorFromURL $ext_url`
714        ext_rel_url=`echo $ext_url | sed -e 's,/stable/,/releases/,'`
715        ext_rel_url=`replaceVersionInURL $ext_rel_url $ext_majVer $ext_minVer 0`
716        echo "    $ext_name $ext_url ==> $ext_rel_url"
717      else
718        ext_rel_url=$ext_url
719      fi
720      echo "$ext_name  $ext_rel_url" >>Dependencies
721      ext_name=
722    fi
723  done
724  rm -f Dependencies.temp.$$
725  svn propset -F Dependencies svn:externals .
726  echo ''
727fi
728
729if test -r Dependencies ; then
730  echo 'Also, please confirm the externals are correct:'
731  svn propget svn:externals
732fi
733
734echo ''
735echo 'After reviewing the output above, you can create a new release by going into'
736echo 'the directory'
737echo ''
738echo "          $startDir"
739echo ''
740echo "and run the commit_new_release script"
741
742cd $topBuildDir
743
744cat >.new_release_data <<EOF
745coinURL=$coinURL
746startDir=$startDir
747topBuildDir=$topBuildDir
748coDir=$coDir
749releaseURL=$releaseURL
750stableURL=$stableURL
751newVer=$newVer
752bak_files="$bak_files"
753EOF
Note: See TracBrowser for help on using the repository browser.