mhonarc-commits
[Top] [All Lists]

CVS: devtools/bin release,1.21,1.22

2003-07-19 17:06:59
Update of /cvsroot/mhonarc/devtools/bin
In directory subversions:/tmp/cvs-serv6114/bin

Modified Files:
	release 
Log Message:
bin/release:
  + Added -notest option for skipping the test build phase.
  + Added check for .dep and .rpm files when copying project built
    distribution bundles.
  + Some documentation updates.


Index: release
===================================================================
RCS file: /cvsroot/mhonarc/devtools/bin/release,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -r1.21 -r1.22
*** release	31 Oct 2002 06:20:08 -0000	1.21
--- release	20 Jul 2003 00:05:47 -0000	1.22
***************
*** 75,78 ****
--- 75,79 ----
      'n',		# Just echo what would be done.
      'news=s',		# News file to include mail sent out
+     'notest',		# Skip the test build
      'notlatest',	# Not latest release, so do not update latest link
      'noversion-check',	# Bypass version check
***************
*** 255,258 ****
--- 256,261 ----
    ## Run a test build
    TEST: {
+     last TEST  if $opt{'notest'};
+ 
      if ( -e $testdir ) {
        die qq/Error: Test build directory already exists, "$testdir".\n/,
***************
*** 283,288 ****
      }
      ch_dir($reldir)  || die qq/Error: Unable to chdir to "$reldir": $!\n/;
    }
-   run_prg('/bin/rm', '-rf', $testroot)  if ($TEST_ONLY || !$snapmode);
  
    ## If only testing, we are done.
--- 286,292 ----
      }
      ch_dir($reldir)  || die qq/Error: Unable to chdir to "$reldir": $!\n/;
+ 
+     run_prg('/bin/rm', '-rf', $testroot)  if ($TEST_ONLY || !$snapmode);
    }
  
    ## If only testing, we are done.
***************
*** 546,550 ****
    my @files = grep { /\.tar$/ ||
  		     /\.tar\.(?:gz|bz2|Z)$/ ||
! 		     /\.zip$/
  		   } readdir(DIR);
    closedir(DIR);
--- 550,556 ----
    my @files = grep { /\.tar$/ ||
  		     /\.tar\.(?:gz|bz2|Z)$/ ||
! 		     /\.zip$/ ||
! 		     /\.dep$/ ||      # Debian package
! 		     /\.rpm$/	      # RPM package
  		   } readdir(DIR);
    closedir(DIR);
***************
*** 682,697 ****
  can affect the release process.
  
  =item *
  
! Automatic tagging of the project in CVS (if C<-create> option specified)
! to allow source code recovering for a specified release version.
  
  =item *
  
! Export of project into project release directory.
  
  =item *
  
! Tar-gzipping of the built project.
  
  =item *
--- 688,709 ----
  can affect the release process.
  
+ The test build can be skipped by using the C<-notest> option.
+ 
  =item *
  
! Automatic tagging of the project in CVS -- if C<-create> option
! specified -- to allow source code recovering for a specified release
! version.  If C<-create> is not specified, the project must already
! be tagged for the specified version.
  
  =item *
  
! Export of project into project release directory.  This provides
! a browsable version of files for a release.
  
  =item *
  
! Tar-gzipping of the built project, unless the project itself creates
! its own distribution bundles (see L<NOTES|NOTES>).
  
  =item *
***************
*** 710,714 ****
  Version numbers must conform to the following Perl regular expression:
  C</^\d+\.\d+(?:\.\d+)?$/>.
! Examples: C<1.0>, C<0.10.4>, C<23.0.1>.
  
  =head1 OPTIONS
--- 722,727 ----
  Version numbers must conform to the following Perl regular expression:
  C</^\d+\.\d+(?:\.\d+)?$/>.
! Examples: C<1.0>, C<0.10.4>, C<23.0.1>.  Arbitrary version number
! formats can be done by use the C<-noversion-check> option.
  
  =head1 OPTIONS
***************
*** 833,836 ****
--- 846,853 ----
  Name of project to release.  This is a required option.
  
+ =item C<-notest>
+ 
+ Skip performing a test build.
+ 
  =item C<-notlatest>
  
***************
*** 923,931 ****
  
      # Pathname to CVS respository: Overridden by -cvsroot option
!     # or CVSROOT envariable.
      CVS_ROOT		=> '/home/cvs/root',
  
      # Name of directory under a project's directory containing releases of
!     # the project
      DIST_DIRNAME	=> 'tar',
  
--- 940,949 ----
  
      # Pathname to CVS respository: Overridden by -cvsroot option
!     # or CVSROOT envariable.  The value can be any legal cvs root
!     # specification, including external repositories like ":ext:..."
      CVS_ROOT		=> '/home/cvs/root',
  
      # Name of directory under a project's directory containing releases of
!     # the project.
      DIST_DIRNAME	=> 'tar',
  
***************
*** 933,943 ****
      MAIL_PRG		=> '/usr/lib/sendmail -t',
  
!     # make program: Overridden by -makeprg option or MAKE envariable.
      MAKE_PRG		=> 'gmake',
  
!     # make target name to invoke.
      MK_TARGET_RELEASE 	=> 'release',
  
!     # Program search path to use when performing release.
      PATH		=> join(':',
  				'/usr/local/bin',
--- 951,962 ----
      MAIL_PRG		=> '/usr/lib/sendmail -t',
  
!     # Make program: Overridden by -makeprg option or MAKE envariable.
      MAKE_PRG		=> 'gmake',
  
!     # Make target name to invoke to create a release.
      MK_TARGET_RELEASE 	=> 'release',
  
!     # Program search path to use when performing release.  This
!     # should contain the absolute minimum required to build a project.
      PATH		=> join(':',
  				'/usr/local/bin',
***************
*** 953,957 ****
  
      # Remote shell program (for multi-architecture releases): Overridden
!     # by RSHELL envariable.
      RSH_PRG		=> 'rsh',
  
--- 972,976 ----
  
      # Remote shell program (for multi-architecture releases): Overridden
!     # by RSHELL envariable.  Use ssh if security is a concern.
      RSH_PRG		=> 'rsh',
  
***************
*** 1067,1070 ****
--- 1086,1090 ----
  the project root.  Any filename that ends in the following
  extensions, C<.tar>, C<.tar.gz>, C<.tar.bz2>, C<.tar.Z>, C<.zip>,
+ C<.dep>, C<.rpm>,
  will be copied into C</home/projects/release/I<E<lt>projectE<gt>>/tar>.
  The C<dist> directory will then be removed once the files are
***************
*** 1086,1089 ****
--- 1106,1118 ----
  override release is to be done for the specified version, the backup
  directory must be manually removed.
+ 
+ =item *
+ 
+ If ssh is the prefered, or required, mode for communicating with a
+ remote repository, performing automated snapshots can be a problem
+ since a password is required, unless you decide to use passwordless
+ key authentication.  An option is to utilize ssh-agent(1).  B<release>
+ preserves ssh-agent related environment variables when creating the
+ clean environment.
  
  =back

---------------------------------------------------------------------
To sign-off this list, send email to majordomo(_at_)mhonarc(_dot_)org with the
message text UNSUBSCRIBE MHONARC-DEV