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 15:43:11 UTC
svn commit: r1792295 - in /spamassassin/branches/3.4/build: README
update_devel
Author: kmcgrail
Date: Sat Apr 22 15:43:11 2017
New Revision: 1792295
URL: http://svn.apache.org/viewvc?rev=1792295&view=rev
Log:
working through bugs in the release process
Modified:
spamassassin/branches/3.4/build/README
spamassassin/branches/3.4/build/update_devel
Modified: spamassassin/branches/3.4/build/README
URL: http://svn.apache.org/viewvc/spamassassin/branches/3.4/build/README?rev=1792295&r1=1792294&r2=1792295&view=diff
==============================================================================
--- spamassassin/branches/3.4/build/README (original)
+++ spamassassin/branches/3.4/build/README Sat Apr 22 15:43:11 2017
@@ -22,237 +22,7 @@ SPAMASSASSIN DEVELOPMENT SNAPSHOT PROCED
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, 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'
-
-- In your own, writable, checkout (this may be on another host instead
- of spamassassin.zones.apache.org, such as your home machine):
-
- Run "svn status" to ensure you're building/releasing from a pristine
- checkout:
-
- cd [checkedoutdir]
- svn status
-
- The output should 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'll take a minute or two.)
-
- 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 trunk release (x.y.0):
-
- vers=3_4_1
-
- 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_1_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.)
-
-
-- In your checkout on spamassassin.zones.apache.org (may be read-only):
-
- 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 files.
-
- PATH=$HOME/sabuildtools/bin:$PATH
+- run "./build/PATH=$HOME/sabuildtools/bin:$PATH
./build/update_stable
WARNING: this will use the most recently-created "sa-update" tarball for
Modified: spamassassin/branches/3.4/build/update_devel
URL: http://svn.apache.org/viewvc/spamassassin/branches/3.4/build/update_devel?rev=1792295&r1=1792294&r2=1792295&view=diff
==============================================================================
--- spamassassin/branches/3.4/build/update_devel (original)
+++ spamassassin/branches/3.4/build/update_devel Sat Apr 22 15:43:11 2017
@@ -53,8 +53,10 @@ for ext in tar.bz2 tar.gz zip ; do
perl build/sha1sum.pl $DISTVNAME.$ext > $RELDIR/$DISTVNAME.$ext.sha1 || exit $?
rm -f $DISTVNAME.$ext.asc*
+ #Adding information to run gpg-agent so a non-privileged user can sign
+ gpg-agent --homedir $HOME/sabuildtools/sasigningkey --daemon --write-env-file "${HOME}/sabuildtools/sasigningkey/.gpg-agent-info"
if [ -d $HOME/sabuildtools/sasigningkey ]; then
- $HOME/sabuildtools/bin/gpg --homedir $HOME/sabuildtools/sasigningkey -bsa $DISTVNAME.$ext || exit $?
+ gpg --homedir $HOME/sabuildtools/sasigningkey --detach-sign --sign --armor $DISTVNAME.$ext || exit $?
mv $DISTVNAME.$ext.asc $RELDIR/$DISTVNAME.$ext.asc || exit $?
fi