You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by km...@apache.org on 2017/04/22 17:42:58 UTC

svn commit: r1792309 - in /spamassassin/branches/3.4: build/README lib/Mail/SpamAssassin.pm

Author: kmcgrail
Date: Sat Apr 22 17:42:58 2017
New Revision: 1792309

URL: http://svn.apache.org/viewvc?rev=1792309&view=rev
Log:
preparing to release 3.4.2 pre3

Modified:
    spamassassin/branches/3.4/build/README
    spamassassin/branches/3.4/lib/Mail/SpamAssassin.pm

Modified: spamassassin/branches/3.4/build/README
URL: http://svn.apache.org/viewvc/spamassassin/branches/3.4/build/README?rev=1792309&r1=1792308&r2=1792309&view=diff
==============================================================================
--- spamassassin/branches/3.4/build/README (original)
+++ spamassassin/branches/3.4/build/README Sat Apr 22 17:42:58 2017
@@ -22,15 +22,257 @@ SPAMASSASSIN DEVELOPMENT SNAPSHOT PROCED
 
     PATH=$HOME/sabuildtools/bin:$PATH
 
-- run "./build/PATH=$HOME/sabuildtools/bin:$PATH
+- run "./build/update_devel" to build the tar.gz files.
+
+- next run "./build/update_devel_rules" to build the rules tarball,
+  or run "./build/repackage_latest_update_rules" to repackage the
+  latest file on updates.spamassassin.org.
+
+- by default, they're written to ~/public_html/devel/ . 
+  Copy them to wherever you want, yourself.
+
+- KAM has included all of these on one of his devel systems with perl
+  5.8.6 (the earliest supported version of Perl as of 4/28/2015).  One
+  note is that you need webmake 2.4 from
+    http://webmake.taint.org/devel/HTML-WebMake-2.4.tar.gz
+  
+  Also, a copy is mirrored at www.pccc.com/downloads/SpamAssassin
+
+
+SPAMASSASSIN RELEASE PROCEDURE
+==============================
+
+- First off, checkout the branch or trunk you wish to build.
+
+# log in to spamassassin.zones.apache.org for some preliminary tool
+#  checks.
+#
+#    ssh spamassassin.zones.apache.org
+#
+#- ensure the required code and data is available for the build scripts:
+#  see above.
+#
+#- ensure your PATH is correct:
+#
+#    PATH=$HOME/sabuildtools/bin:$PATH
+
+- ensure ExtUtils::MakeMaker is version 6.46 or later, to create
+  a detailed-enough META.yml (TODO: this should not be required.)
+
+    perl -MExtUtils::MakeMaker -e 'print $ExtUtils::MakeMaker::VERSION'
+
+- Run "svn status" to ensure you're building/releasing from a pristine
+  checkout:
+
+    cd [checkedoutdir]
+    svn status
+
+  The output should be blanke or look like this:
+
+  ?      rules/SIQ.pm
+  ?      rules/sandbox-hstern.pm
+  ?      rules/sandbox-felicity.pm
+
+  (ie., no "M" or "C" files; any files marked "M" have been locally
+  modified, and should be "svn revert"ed before you continue.)
+
+- Consider updating the TLD list in 20_aux_tlds.cf.  As of 4/6/2015,
+  this is not automated but bug 7165 is open for this purpose.
+
+- edit lib/Mail/SpamAssassin.pm and comment the $IS_DEVEL_BUILD
+  line.   Ensure the correct version number is present in $VERSION
+  and @EXTRA_VERSION.
+
+  Prereleases: formatted like this: "pre4" -- in $EXTRA_VERSION, and
+  $IS_DEVEL_BUILD is left as 1 instead of commented. When referred to in
+  full, it's "3.1.0-pre4".
+
+  Release candidates: formatted like this: "rc2" -- in $EXTRA_VERSION, and
+  $IS_DEVEL_BUILD is commented. When referred to in full, it's "3.1.0-rc2".
+
+  Full releases: comment out @EXTRA_VERSION
+
+#  [NOTE: when editing files in these instructions, you may have to
+#  use another checkout somewhere else, check in the changes there,
+#  then 'svn update' in the release account -- since I think it
+#  builds from a read-only checkout.]
+
+- Ensure the new version number takes hold:
+
+    make clean ; perl Makefile.PL < /dev/null ; make
+    ./spamassassin -L -t < sample-nonspam.txt | grep X-Spam-
+
+  Verify that the X-Spam-* headers use the correct version string,
+  without an SVN revision number (those are only for dev and pre builds).
+
+  NOTE: If the date is old, don't worry, it will change later with the
+        relbuild checkout.
+
+- create the Changes file.  Do this step on your own checkout, as
+  the release checkout is read-only.   
+
+  MAKE CERTAIN THIS IS RUN IN THE ROOT OF YOUR CHECKOUT!
+
+  There are two options here:
+
+  - For releases on a maintainance branch (e.g. 3.0.1, .2, etc.):
+
+      TZ=UTC svn log --non-interactive --stop-on-copy > Changes
+
+    This will output all of the changes since the .0 release in the
+    current branch (the last copy -- note, if a copy was done
+    afterwards (move between repositories, etc, you'll need to
+    modify that command).
+
+  - For releases on the trunk (e.g. a .0 release):
+
+      TZ=UTC svn log -r HEAD:1567124 --non-interactive > Changes
+
+    r497472 was the release of 3.2.0-pre1; r233108 was the start of 3.2.0,
+    just after the 3.1.0 branch was created; r46030 was the start of the
+    3.1.0 work (created 3.0 branch); replace with the correct rev number
+    for the point you want to start at if different. I used r1149751 to
+    produce the first 3.4.0-pre release, for example.  r1567124 is the
+    3.4.0 release tag revision.  r1676613 is the 3.4.1 release tag
+    revision.
+
+    To find the release tag revision, use the tags website, i.e.: 
+      https://svn.apache.org/repos/asf/spamassassin/tags/
+
+    NOTE: 3.4.1 is currently on trunk and will be branched to 3.4 because 
+    3.4 branch was not used.
+
+- Exclude some automated changes from the logs:
+
+    cat Changes | perl -ne ' BEGIN{$/=("-"x72)."\n"}
+    chomp; @ln=split/^/;
+    next if @ln==3 && $ln[2]=~/^\s*(updated scores for revision.*|promotions validated|auto-generated rules|)\s*$/;
+    print "@ln$/"' > Changes.tmp
+
+- Word wrap the Changes file with something like 
+
+    fold -sw 74 Changes.tmp > Changes && rm -f Changes.tmp
+
+- run "make distcheck" to ensure all files are included in the
+  distribution that should be, and to ensure all files that are listed
+  in the MANIFEST also exist in SVN.
+
+    make distcheck
+
+- run "make disttest" to ensure all default tests pass once the
+  distribution is fully packaged.  (this takes ~7 minutes on my system
+  2017-04-22)
+
+    make disttest < /dev/null
+
+- run the release test suite, which forces all tests to run and also
+  applies an additional, more stringent set of tests.  This may require
+  "sudo" privileges on your test box, and unusual CPAN modules like
+  "Devel::SawAmpersand", so you might have to skip some of this or ignore
+  some spurious failures. For example, I don't have re2c or dcc installed
+  on my devel system so I fail xt/50_dcc & xt/50_sa_compile.
+
+
+  Additionally, this will run tests such as the spamd prefork which will
+  kill all running spamd processes.  This release test suite is intended
+  for a development environment.
+
+    make test TEST_FILES="xt/*.t"
+
+    Note: As of 2014-02-04, all of these tests can pass test 
+          with no tests skipped except dcc.t which doesn't
+          properly test if dcc is not available - Bug 6944.
+
+- Check in the updated Changes file, and SpamAssassin.pm.
+
+    svn commit -m "preparing to release X.Y.Z"
+
+  (If you are privately preparing a security release, and don't wish to
+  perform commits to public SVN repos, you can defer this step until
+  later.)
+
+- SVN tag the release files.  This is done using "svn copy".
+
+  - For a maintainance release (x.y.1, x.y.2):
+
+    vers=3_4_2
+
+    Then run:
+
+    repo=https://svn.apache.org/repos/asf/spamassassin
+    svn delete -m "replaced old tag" $repo/tags/spamassassin_release_$vers
+    svn copy -m "creating tag for release $vers" \
+	$repo/branches/3.4 $repo/tags/spamassassin_release_$vers
+
+
+  - For a maintainance release candidate(x.y.1-rc1), pre-release (x.y.1-preZ) or alpha (x.y.1-alphaZ):
+
+    vers=3_4_2_pre_1
+
+    Then run:
+
+    repo=https://svn.apache.org/repos/asf/spamassassin
+    svn delete -m "replaced old tag" $repo/tags/spamassassin_release_$vers
+    svn copy -m "creating tag for release $vers" \
+        $repo/branches/3.4 $repo/tags/spamassassin_release_$vers
+
+
+  - For a trunk release (x.y.0):
+
+    vers=3_4_0
+
+    repo=https://svn.apache.org/repos/asf/spamassassin
+    svn delete -m "replaced old tag" $repo/tags/spamassassin_release_$vers
+    svn copy -m "creating tag for release $vers" \
+        $repo/trunk $repo/tags/spamassassin_release_$vers
+
+  - For a trunk release candidate (x.y.0-rc1), pre-release (x.y.0-preZ) or alpha (x.y.0-alphaZ):
+
+    vers=3_4_0_rc_2
+
+    Then run:
+
+    repo=https://svn.apache.org/repos/asf/spamassassin
+    svn delete -m "replaced old tag" $repo/tags/spamassassin_release_$vers
+    svn copy -m "creating tag for release $vers" \
+        $repo/trunk $repo/tags/spamassassin_release_$vers
+
+    
+  This will do a completely server-side tagging (which is the same as
+  a branch really) of whatever the latest branch revision to be the new
+  base of the tag release.
+
+  (If you are privately preparing a security release, and don't wish to
+  perform commits to public SVN repos, you can defer this step until
+  later.)
+
+
+- Check out the code from the tag you just made:
+
+    #These should be set from the previous command unless you are on a
+    #  different server
+    #vers=3_4_1
+    #repo=https://svn.apache.org/repos/asf/spamassassin
+    rm -rf ~/relbuild
+    svn co $repo/tags/spamassassin_release_$vers ~/relbuild
+    cd ~/relbuild
+
+  (If you are privately preparing a security release, you will need
+  to ensure that the code in this build directory matches up using
+  some other mechanism, since SVN is public.)
+
+- run "./build/update_stable" to build the tar.gz, tar.bz2 and zip files.
+
     ./build/update_stable
 
   WARNING: this will use the most recently-created "sa-update" tarball for
   the rules tgz, so if changes have been committed to the "rules" dir in
   SVN since then, they will not be released!
 
-  if you get "gpg-agent" errors about not connecting to the PIN entry
-  module, you didn't update your $PATH.
+  OLD: if you get "gpg-agent" errors about not connecting to the PIN entry
+  module, you didn't update your $PATH.  
+  NEW: running gpg-agent with the proper homedir is needed for
+  non-privileged users.
 
 - run "./build/repackage_latest_update_rules" to repackage the
   latest rules file for the purpose of publishing a starter rule file 

Modified: spamassassin/branches/3.4/lib/Mail/SpamAssassin.pm
URL: http://svn.apache.org/viewvc/spamassassin/branches/3.4/lib/Mail/SpamAssassin.pm?rev=1792309&r1=1792308&r2=1792309&view=diff
==============================================================================
--- spamassassin/branches/3.4/lib/Mail/SpamAssassin.pm (original)
+++ spamassassin/branches/3.4/lib/Mail/SpamAssassin.pm Sat Apr 22 17:42:58 2017
@@ -100,7 +100,7 @@ $IS_DEVEL_BUILD = 1;        # change for
 # Used during the prerelease/release-candidate part of the official release
 # process. If you hacked up your SA, you should add a version_tag to your .cf
 # files; this variable should not be modified.
-@EXTRA_VERSION = qw(pre1);
+@EXTRA_VERSION = qw(pre3);
 
 @ISA = qw();