summaryrefslogtreecommitdiffstats
path: root/HOWTO
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2015-09-21 17:03:12 (GMT)
committerWilliam Deegan <bill@baddogconsulting.com>2015-09-21 17:03:12 (GMT)
commit0941093e0e5a030faa49968457638a3a6aee7ad8 (patch)
tree6d33513c14eb6eac0531dd050de0ecca4c39bd79 /HOWTO
downloadSCons-2.4.0.zip
SCons-2.4.0.tar.gz
SCons-2.4.0.tar.bz2
release 2.4.02.4.0
Diffstat (limited to 'HOWTO')
-rw-r--r--HOWTO/.aeignore4
-rw-r--r--HOWTO/README29
-rw-r--r--HOWTO/change.txt61
-rw-r--r--HOWTO/new-platform.txt74
-rw-r--r--HOWTO/new-script.txt75
-rw-r--r--HOWTO/new-tool.txt81
-rw-r--r--HOWTO/release.txt656
-rw-r--r--HOWTO/subrelease.txt114
8 files changed, 1094 insertions, 0 deletions
diff --git a/HOWTO/.aeignore b/HOWTO/.aeignore
new file mode 100644
index 0000000..877ac53
--- /dev/null
+++ b/HOWTO/.aeignore
@@ -0,0 +1,4 @@
+*,D
+.*.swp
+.consign
+.sconsign
diff --git a/HOWTO/README b/HOWTO/README
new file mode 100644
index 0000000..951c019
--- /dev/null
+++ b/HOWTO/README
@@ -0,0 +1,29 @@
+__COPYRIGHT__
+
+Here you'll find plain text documentation of how to handle various SCons
+project procedures. Files contained herein:
+
+change.txt
+ How changes are integrated, including generating and
+ distributing aedist change sets, and updating the CVS repository
+ on SourceForge.
+
+new-platform.txt
+ Steps to add a new Platform/*.py file. This is probably out
+ of date.
+
+new-script.txt
+ Steps to add a new script or utility (like scons and sconsign)
+ to what we ship.
+
+new-tool.txt
+ Steps to add a new Tool/*.py file. This is probably out of date.
+
+release.txt
+ Steps to go through when releasing a new version of SCons.
+
+subrelease.txt
+ Steps to go through when releasing a new subsidiary version
+ of SCons--for example, 0.95.1 after we've released 0.95.
+ So far, we've only done this to get some early testing on major
+ refactorings.
diff --git a/HOWTO/change.txt b/HOWTO/change.txt
new file mode 100644
index 0000000..f295003
--- /dev/null
+++ b/HOWTO/change.txt
@@ -0,0 +1,61 @@
+__COPYRIGHT__
+
+Handling a change set:
+
+ -- Start the change:
+
+ aedb {cnum} [if it's initiated locally]
+ aedist -r [if it's a remote submission]
+
+ -- Normal development cycle:
+
+ aeb
+ aet
+ aet -bl
+ aet -reg [optional]
+ aed
+ aede
+
+ -- As the reviewer:
+
+ aerpass {cnum}
+
+ -- As the integrator:
+
+ aeib {cnum}
+ aeb
+ aet
+ aet -bl
+ aet -reg
+ aed
+ aeipass
+
+ -- Distribute the change to scons-aedist:
+
+ aedist -s -p scons.0.96 {cnum} > scons.0.96.C{cnum}.ae
+ pine -attach scons.0.96.C{cnum}.ae scons-aedist@lists.sourceforge.net
+ Subject: scons.0.96 - {SUMMARY}
+ Body: aegis -l -p scons.0.96 -c {cnum} cd
+
+ rm scons.0.96.C{cnum}.ae
+
+ [This will eventually be automated.]
+
+ -- Update the aedist baseline on the web site:
+
+ aedist -s -bl -p scons.0.96 > scons.0.96.ae
+ scp scons.0.96.ae stevenknight@scons.sourceforge.net:/home/groups/s/sc/scons/htdocs/scons.0.96.ae
+ rm scons.0.96.ae
+
+ [This will eventually be automated.]
+
+ -- Distribute the change to CVS:
+
+ export CVS_RSH=ssh
+ ae2cvs -n -aegis -p scons.0.96 -c {cnum} -u ~/SCons/scons
+ ae2cvs -X -aegis -p scons.0.96 -c {cnum} -u ~/SCons/scons
+
+ If you need the "ae2cvs" Perl script, you can find a copy
+ checked in to the bin/subdirectory.
+
+ [This may eventually be automated.]
diff --git a/HOWTO/new-platform.txt b/HOWTO/new-platform.txt
new file mode 100644
index 0000000..8aa11ec
--- /dev/null
+++ b/HOWTO/new-platform.txt
@@ -0,0 +1,74 @@
+__COPYRIGHT__
+
+Adding a new Platform to the SCons distribution:
+
+ -- Add the following files (aenf):
+
+ src/engine/SCons/Platform/xxx.py
+
+ Use one of the other Platform files as a template.
+
+ The tool_list() function should return the list of tools
+ that will be available through the default construction
+ Environment.
+
+ The generate() function should set construction variables:
+
+ ENV
+ OBJPREFIX
+ OBJSUFFIX
+ PROGPREFIX
+ PROGSUFFIX
+ LIBPREFIX
+ LIBSUFFIX
+ SHLIBPREFIX
+ SHLIBSUFFIX
+ LIBPREFIXES
+ LIBSUFFIXES
+
+ -- Modify the following files (aecp):
+
+ doc/man/scons.1
+
+ Add the new platform to the example of the platform
+ keyword when instantiating an Environment.
+
+ Add the list of default tools returned by tool_list()
+ for this platform.
+
+ rpm/scons.spec
+
+ Add to the list at the bottom of the file:
+
+ /usr/lib/scons/SCons/Platform/xxx.py
+ /usr/lib/scons/SCons/Platform/xxx.pyc
+
+ [THIS LIST SHOULD BE GENERATED FROM MANIFEST.in,
+ AND WILL BE SOME DAY.]
+
+ src/CHANGES.txt
+
+ Add mention of the new Platform specification.
+
+ src/engine/MANIFEST.in
+
+ Add to the list:
+
+ SCons/Platform/xxx.py
+
+ src/engine/SCons/Platform/Platform/PlatformTests.py
+
+ Copy and paste one of the other platform tests to verify
+ the ability to initialize an environment through a call
+ to the object returned by Platform('xxx')
+
+ src/engine/SCons/Platform/__init__.py
+
+ Add logic to platform_default() (if necessary) to return
+ the appropriate platform string.
+
+ test/Platform.py
+
+ Add the new platform to the SConstruct and SConscript
+ files. Add the expected output to the "expect"
+ variable.
diff --git a/HOWTO/new-script.txt b/HOWTO/new-script.txt
new file mode 100644
index 0000000..f859c48
--- /dev/null
+++ b/HOWTO/new-script.txt
@@ -0,0 +1,75 @@
+__COPYRIGHT__
+
+Steps for adding a new script/utility to the SCons packages. Assume
+that you're creating a new man page, too. In the template steps
+below, "newscript" is the name of the new script/utility being added.
+
+ New files:
+
+ doc/man/newscript.1
+
+ New man page; use an existing one as a template.
+
+ src/script/newscript.py
+
+ The new script itself.
+
+ test/*.py
+
+ Appropriate tests for the new script.
+
+ Modified files:
+
+ SConstruct
+
+ In the "scons_script" package description:
+
+ Add "newscript" : "newscript.py" to the "filemap"
+ dictionary.
+
+ In the "scons" package description:
+
+ Add "newscript.1" to the "files" list.
+
+ Add "newscript.1" : "../doc/man/newscript.1" to the
+ "filemap" dictionary.
+
+ Add "newscript" to the scripts[] list
+
+ debian/rules
+
+ Add:
+
+ rm -f debian/scons/usr/bin/newscript
+ cp build/scripts/newscript debian/scons/user/bin/newscript
+ sed '1s|.*|#!/usr/bin/python2.1|' build/scripts/newscript > debian/scons/user/bin/newscript
+ chmod +x debian/scons/user/bin/newscript
+
+ rm -f debian/scons/usr/share/man/man1/newscript.1
+ cp newscript.1 debian/scons/user/share/man/man1/
+
+ doc/SConscript
+
+ Add "newscript" to man_page_list[]
+
+ gentoo/scons.ebuild.in
+
+ Add "doman newscript.1"
+
+ rpm/scons.spec.in
+
+ Add "gzip -c newscript.1" > $RPM_BUILD_ROOT/usr/man/man1/newscript.1.gz
+
+ Add "%doc /usr/man/man1/newscript.1.gz"
+
+ src/CHANGES.txt
+
+ Document the addition of the new script.
+
+ src/script/MANIFEST.in
+
+ Add a line: "newscript"
+
+ src/setup.py
+
+ Add "script/newscript" to the 'scripts' list.
diff --git a/HOWTO/new-tool.txt b/HOWTO/new-tool.txt
new file mode 100644
index 0000000..4297fe6
--- /dev/null
+++ b/HOWTO/new-tool.txt
@@ -0,0 +1,81 @@
+__COPYRIGHT__
+
+Adding a new Tool to the SCons distribution:
+
+ -- Add the following files (aenf):
+
+ src/engine/SCons/Tool/xxx.py
+
+ Use one of the other Tool files as a template.
+
+ The tool should set and use construction variables:
+
+ XXX (specific tool)
+ XXXCOM (the command line)
+ XXXFLAGS (flags for the command line)
+
+ -- Modify the following files (aecp):
+
+ doc/man/scons.1
+
+ Add the new tool to the default Platform lists
+ (if appropriate).
+
+ If this creates object files from a new source
+ file type, add the new file suffixes.
+
+ Document the new construction variables.
+
+ rpm/scons.spec
+
+ Add to the list at the bottom of the file:
+
+ /usr/lib/scons/SCons/Tool/xxx.py
+ /usr/lib/scons/SCons/Tool/xxx.pyc
+
+ [THIS LIST SHOULD BE GENERATED FROM MANIFEST.in,
+ AND WILL BE SOME DAY.]
+
+ src/CHANGES.txt
+
+ Add mention of the new Tool specification.
+
+ src/engine/MANIFEST.in
+
+ Add to the list:
+
+ SCons/Tool/xxx.py
+
+ src/engine/SCons/Defaults.py
+
+ If there are any new Actions for the Tool, add them
+ here.
+
+ src/engine/SCons/Platform/*.py
+
+ Add the Tool to the list(s) returned by tool_list().
+
+ -- Add the following tests (aent):
+
+ test/XXX.py
+
+ Use one of the other tests as a template.
+
+ The first part should be a platform-independent test
+ using dummy 'myxxx.py' utilities to test if $XXX is set.
+
+ Remaining parts of the test can check to see if the
+ specific tool is installed on the system, and test
+ actually executing the tool.
+
+ test/XXXFLAGS.py
+
+ Use one of the other tests as a template.
+
+ The first part should be a platform-independent test
+ using dummy 'myxxx.py' utilities to test if $XXXFLAGS is
+ set.
+
+ Optionally, remaining parts of the test can check to see
+ if the specific tool is installed on the system, and
+ test actually executing the tool.
diff --git a/HOWTO/release.txt b/HOWTO/release.txt
new file mode 100644
index 0000000..5fbbfc7
--- /dev/null
+++ b/HOWTO/release.txt
@@ -0,0 +1,656 @@
+__COPYRIGHT__
+
+This document covers how to prepare major releases of SCons--that is,
+releases numbered with X.Y format, such as 0.93, 1.0, etc.
+
+If you need to prepare a specific subrelease (X.Y.Z, such as 0.94.1),
+then see the document HOWTO/subrelease.txt.
+
+Things to do to release a new X.Y version of SCons:
+
+ Prepare the describe-the-release section for the announcements
+
+ summarize changes from src/CHANGES.txt
+
+ template is below, search for "describe-the-release"
+
+ send this out for review while you get the rest of the
+ release ready!
+
+ Build and test candidate packages
+
+ test on Linux
+
+ test on Windows NT
+
+ 1) tar zxf scons-src-{version}.tar.gz
+ cd scons-src-{version}
+ python runtest.py -a
+
+ 2) tar zxf scons-{version}.tar.gz
+ cd scons-{version}
+ python setup.py install
+ cd scons-src-{version}
+ python runtest.py -a -X -x C:\Python20\scons.bat
+
+ 3) scons-{verson}.win32.exe
+ cd scons-src-{version}
+ python runtest.py -a -X -x C:\Python20\scons.bat
+
+ 4) mkdir temporary_directory
+ cd temporary_directory
+ tar zxf scons-local-{version}.tar.gz
+ cd scons-src-{version}
+ python runtest.py -a -x C:\temporary_directory\scons.py
+
+ Check in any changes necessary to make everything work
+
+ Update the user's guide
+
+ sh bin/docdiff
+
+ sh bin/docupdate
+
+ END THE CURRENT DEVELOPMENT BRANCH
+
+ ae_p scons.0
+
+ aede {96}
+
+ aerpass {96}
+
+ aeib {96}
+
+ aed
+
+ aeb
+
+ aet
+
+ aet -reg
+
+ aeipass
+
+ START THE NEW BRANCH FOR RELEASE
+
+ aenbr -p scons.0 {97}
+
+ aenc -p scons.0.{97}
+
+ Call it something like,
+ "Initialize the new branch for release."
+ Cause = internal_enhancement.
+ Exempt it from all tests (*_exempt = true).
+
+ ae_p scons.0.{97}
+
+ aedb 100
+
+ aecd
+
+ # Change the hard-coded package version numbers
+ # in the following files.
+ aecp README
+ vi README
+
+ aecp SConstruct
+ vi SConstruct
+
+ aecp QMTest/TestSCons.py
+ vi QMTest/TestSCons.py
+
+ # Read through and update the README files if necessary
+ [optional] aecp README
+ [optional] vi README
+
+ [optional] aecp src/README.txt
+ [optional] vi src/README.txt
+
+ # Prepare src/CHANGES.txt
+ aecp src/CHANGES.txt
+ vi src/CHANGES.txt
+
+ date -R the latest release
+
+ should be current if this has been updated
+ as each change went in.
+
+ # Prepare src/RELEASE.txt
+ aecp src/RELEASE.txt
+ vi src/RELEASE.txt
+
+ date -R the latest release
+
+ Read through and edit appropriately.
+
+ Can probably keep most of the existing text
+
+ Add any new known problems
+
+ # Prepare debian/changelog
+ aecp debian/changelog
+ vi debian/changelog
+
+ date -R the latest release
+
+ # Now build and prepare the release itself.
+ aeb
+
+ aed
+
+ aet -reg
+
+ aede
+
+ etc.
+
+
+
+ Read through the FAQ for any updates
+
+
+
+ Upload the packages to the SourceForge incoming FTP:
+
+ ftp upload.sourceforge.net
+ anonymous
+ <your email>
+ cd incoming
+ bin
+ put scons-0.{97}-1.noarch.rpm
+ put scons-0.{97}-1.src.rpm
+ put scons-0.{97}.tar.gz
+ put scons-0.{97}.win32.exe
+ put scons-0.{97}.zip
+ put scons-local-0.{97}.tar.gz
+ put scons-local-0.{97}.zip
+ put scons-src-0.{97}.tar.gz
+ put scons-src-0.{97}.zip
+ put scons_0.{97}-1_all.deb
+
+ Create the new release at the SourceForge project page:
+
+ Pull down the "Admin" menu and select "File Releases"
+
+ Package Name: scons
+
+ => Add Release
+
+ New release name: 0.{97}
+
+ Upload the RELEASE.txt file.
+
+ Upload the CHANGES.txt file.
+
+ Check the "Preserve my pre-formatted text." box (IMPORTANT!)
+
+ Click "Submit/Refresh" (IMPORTANT!)
+
+ Check the SCons files you uploaded
+
+ Click "Add Files and/or Refresh View"
+
+ Edit the file info:
+
+ scons-0.{97}-1.noarch.rpm Any .rpm
+ scons-0.{97}-1.src.rpm Any Source .rpm
+ scons-0.{97}.tar.gz Any .gz
+ scons-0.{97}.win32.exe i386 .exe (32-bit Windows)
+ scons-0.{97}.zip Any .zip
+ scons_0.{97}-1_all.deb Any .deb
+
+ Click "Update/Refresh" for each file; this must be done
+ one at a time.
+
+ Check "I'm sure." and click "Send Notice" in the Email
+ Release Notice section.
+
+
+ Pull down the "Admin" menu and select "File Releases"
+
+ Package Name: scons-local
+
+ => Add Release
+
+ New release name: 0.{97}
+
+ Upload the RELEASE.txt file.
+
+ Upload the CHANGES.txt file.
+
+ Check the "Preserve my pre-formatted text." box (IMPORTANT!)
+
+ Click "Submit/Refresh" (IMPORTANT!)
+
+ Check the SCons files you uploaded
+
+ Click "Add Files and/or Refresh View"
+
+ Edit the file info:
+
+ scons-local-0.{97}.tar.gz Any .gz
+ scons-local-0.{97}.zip Any .zip
+
+ Click "Update/Refresh" for each file; this must be done
+ one at a time.
+
+ Check "I'm sure." and click "Send Notice" in the Email
+ Release Notice section.
+
+
+ Pull down the "Admin" menu and select "File Releases"
+
+ Package Name: scons-src
+
+ => Add Release
+
+ New release name: 0.{97}
+
+ Upload the RELEASE.txt file.
+
+ Upload the CHANGES.txt file.
+
+ Check the "Preserve my pre-formatted text." box (IMPORTANT!)
+
+ Click "Submit/Refresh" (IMPORTANT!)
+
+ Check the SCons files you uploaded
+
+ Click "Add Files and/or Refresh View"
+
+ Edit the file info:
+
+ scons-src-0.{97}.tar.gz Any .gz
+ scons-src-0.{97}.zip Any .zip
+
+ Click "Update/Refresh" for each file; this must be done
+ one at a time.
+
+ Check "I'm sure." and click "Send Notice" in the Email
+ Release Notice section.
+
+
+ Hide release 0.{95} at the SourceForge download page:
+
+ Pull down the "Admin" menu and select "File Releases"
+
+ Package Name: scons
+
+ => Edit Releases
+
+ Release Name: 0.{95}
+
+ => Edit This Release
+
+ Status: => Hidden
+
+ Click Submit/Refresh
+
+
+ Pull down the "Admin" menu and select "File Releases"
+
+ Package Name: scons-local
+
+ => Edit Releases
+
+ Release Name: 0.{95}
+
+ => Edit This Release
+
+ Status: => Hidden
+
+ Click Submit/Refresh
+
+
+ Pull down the "Admin" menu and select "File Releases"
+
+ Package Name: scons-src
+
+ => Edit Releases
+
+ Release Name: 0.{95}
+
+ => Edit This Release
+
+ Status: => Hidden
+
+ Click Submit/Refresh
+
+
+
+ Add a new release for 0.{97} in the Issue Tracker at tigris.org:
+
+ Click "Issue Tracker" on the left-hand nav bar
+
+ Click "Configuration options"
+
+ Click "Add/edit components"
+
+ Under "scons"
+ To the right of "Add ..."
+ Click "Version"
+
+ At the bottom of the list click "Add"
+
+ Fill in the "Version:" box with 0.{97}
+
+ Check "Add this version to *all* components."
+
+ Click the "Add" button
+
+
+
+ Update the scons.org web site:
+
+ svn co http://scons.tigris.org/svn/scons/scons.org
+
+ cd scons.org
+
+ CHANGES.txt: copy new version from built source tree
+
+ download.php: new version number
+
+ includes/templates.php:
+ update $latestrelease
+
+ includes/versions.php:
+ update $stablerelease and/or $latestrelease
+ add new version number to $docversions[],
+ IMPORTANT: SHIFT $docversions[] INDEX NUMBERS :-(
+
+ index.php: announcement on the home page
+ remove out-of-date announcements
+
+ news-raw.xhtml: add announcement to list (dup from home page)
+
+ RELEASE.txt: copy new version from built source tree
+
+ mkdir doc/0.{97}
+
+ (cd doc/0.{97} && tar zxf scons-doc-0.{97}.tar.gz)
+
+ svn add doc/0.{97}
+
+ svn commit
+
+ ssh -l scons manam.pair.com
+
+ cd public_html
+
+ mkdir new
+
+ svn co http://scons.tigris.org/svn/scons/scons.org new
+
+ mv production previous && mv new production
+
+ [point your browser to http://www.scons.org/]
+
+
+ Update the project pages at tigris.org:
+
+ svn co http://scons.tigris.org/svn/scons/trunk
+
+ cd trunk
+
+ www/project_highlights.html
+
+ www/roadmap.html
+
+ svn commit
+
+
+
+
+ Test downloading from the SourceForge project page
+
+ You may need to wait a good bit; they seem to update
+ this on half-hour cycles.
+
+
+ Test downloading from the web site download page
+
+
+
+ Add news item to the SourceForge project page
+
+ Pull down "Project => News"
+
+ Click "Submit"
+
+ Fill in the "Subject:" box
+
+ Cut-and-paste the announcement text into the "Details:" box
+
+ Click "submit"
+
+
+
+ Add news item to the tigris.org project page
+
+ Click "Announcements"
+
+ Click "Add new announcement"
+
+ Double-check the date (probably already set)
+
+ Fill in the "Headline" box
+
+ Fill in the "Body" box (probably short)
+
+ Click "Add new announcement"
+
+
+
+ Announce to the following mailing lists (template below):
+
+ scons-announce@lists.sourceforge.net
+ scons-users@lists.sourceforge.net
+ scons-devel@lists.sourceforge.net
+
+ [right away]
+
+ python-announce@python.org
+
+ [right away, it's moderated and will take
+ some time to get through]
+
+ linux-announce@news.ornl.gov
+
+ [right away, it's moderated and will take
+ some time to get through]
+
+ [optional] cons-discuss@gnu.org
+
+ [only if it's a really big announcement,
+ I said we wouldn't bug this list]
+
+ python-list@python.org
+
+ [wait until business hours so the announcement
+ hits mailboxes while U.S. workers are active]
+
+ Notify Gentoo Linux of the update
+
+ For now, we will do this by entering a bug report, and
+ attaching the files in build/gentoo to the report. Go
+ to:
+
+ http://bugs.gentoo.org/
+
+ This requires an account (based on your email address)
+ and a certain amount of Bugzilla-based navigation,
+ but nothing that's too difficult.
+
+ This is just my best stab at a process that will work
+ for Gentoo. This process may change if the Gentoo
+ developers come back and want something submitted in
+ some other form.
+
+ Notify www.cmtoday.com/contribute.html
+
+ [This guy wants an announcement no more frequently than
+ once a month, so save it for a future release if it's
+ been too soon since the previous one.]
+
+ Notify freshmeat.net
+
+ [Wait until the morning so the announcement hits the
+ main freshmeat.net page while people in the U.S. are
+ awake and working]
+
+
+
+ Checkin another change to prepare for development on this branch.
+
+ # Prep the following files to track the changes
+ # made during the next development cycle
+ aecp src/CHANGES.txt src/RELEASE.txt
+ vi src/CHANGES.txt src/RELEASE.txt
+
+ # Optionally, update release numbers in the following:
+ [optional] aecp HOWTO/change.txt
+ [optional] vi HOWTO/change.txt
+
+ [optional] aecp HOWTO/release.txt
+ [optional] vi HOWTO/release.txt
+
+
+
+
+=======================
+Template describe-the-release section:
+
+IMPORTANT: Release 0.95 contains the following interface changes:
+
+ - XXX
+
+ See the release notes for more information about these changes.
+
+This release adds the following features:
+
+ - XXX
+
+This release enhances the following existing features:
+
+ - XXX
+
+The following fixes have been added:
+
+ - XXX
+
+Performance has been improved as follows:
+
+ - XXX
+
+The following changes have been made to the SCons packaging:
+
+ - XXX
+
+The documentation has been improved:
+
+ - XXX
+=======================
+Template scons-devel announcement:
+
+SConspirators--
+
+SCons beta release 0.95 is now available for download.
+
+XXX Template describe-the-release section goes here XXX
+
+Special thanks to XXX, XXX, and XXX for their contributions to this
+release.
+
+ --SK
+=======================
+Template scons-users + scons-announce announcement:
+
+Version 0.95 of SCons has been released and is available for download
+from the SCons web site:
+
+ http://www.scons.org/
+
+Or through the download link at the SCons project page at SourceForge:
+
+ http://sourceforge.net/projects/scons/
+
+RPM and Debian packages and a Win32 installer are all available, in
+addition to the traditional .tar.gz and .zip files.
+
+
+WHAT'S NEW IN THIS RELEASE?
+
+XXX Template describe-the-release section goes here XXX
+
+
+ACKNOWLEDGEMENTS
+
+Special thanks to XXX, XXX, and XXX for their contributions to this
+release.
+
+On behalf of the SCons team,
+
+ --SK
+=======================
+Template python-announce, linux-announce and python-list announcement:
+
+SCons is a software construction tool (build tool, or make tool) written
+in Python. It is based on the design which won the Software Carpentry
+build tool competition in August 2000.
+
+Version 0.95 of SCons has been released and is available for download
+from the SCons web site:
+
+ http://www.scons.org/
+
+Or through the download link at the SCons project page at SourceForge:
+
+ http://sourceforge.net/projects/scons/
+
+RPM and Debian packages and a Win32 installer are all available, in
+addition to the traditional .tar.gz and .zip files.
+
+
+WHAT'S NEW IN THIS RELEASE?
+
+XXX Template describe-the-release section goes here XXX
+
+
+ABOUT SCONS
+
+Distinctive features of SCons include:
+
+ - a global view of all dependencies; no multiple passes to get
+ everything built properly
+ - configuration files are Python scripts, allowing the full use of a
+ real scripting language to solve difficult build problems
+ - a modular architecture allows the SCons Build Engine to be
+ embedded in other Python software
+ - the ability to scan files for implicit dependencies (#include files);
+ - improved parallel build (-j) support that provides consistent
+ build speedup regardless of source tree layout
+ - use of MD5 signatures to decide if a file has really changed; no
+ need to "touch" files to fool make that something is up-to-date
+ - easily extensible through user-defined Builder and Scanner objects
+ - build actions can be Python code, as well as external commands
+
+An scons-users mailing list is available for those interested in getting
+started using SCons. You can subscribe at:
+
+ http://lists.sourceforge.net/lists/listinfo/scons-users
+
+Alternatively, we invite you to subscribe to the low-volume
+scons-announce mailing list to receive notification when new versions of
+SCons become available:
+
+ http://lists.sourceforge.net/lists/listinfo/scons-announce
+
+
+ACKNOWLEDGEMENTS
+
+Special thanks to XXX, XXX, and XXX for their contributions to this
+release.
+
+On behalf of the SCons team,
+
+ --SK
diff --git a/HOWTO/subrelease.txt b/HOWTO/subrelease.txt
new file mode 100644
index 0000000..06b757a
--- /dev/null
+++ b/HOWTO/subrelease.txt
@@ -0,0 +1,114 @@
+__COPYRIGHT__
+
+This document covers how to prepare subreleases of SCons--that is,
+releases numbered with X.Y.Z format, such as 0.94.1, 1.0.1, etc.
+
+If you need to prepare a release (X.Y, such as 0.93, 1.0, etc.), then
+see the document HOWTO/release.txt.
+
+Things to do to release a new X.Y.Z version of SCons:
+
+ BEFORE STARTING THE SUB-BRANCH:
+
+ Update the user's guide on the parent
+
+ sh bin/docdiff
+
+ sh bin/docupdate
+
+ START THE NEW SUB-BRANCH FOR SUBRELEASE
+
+ aenbr -p scons.0.{94} {1}
+
+ aenc -p scons.0.{94}.{1}
+
+ Call it something like,
+ "Prepare a new sub-release for XYZ."
+ Cause = internal_enhancement.
+ Exempt it from all tests (*_exempt = true).
+
+ ae_p scons.0.{94}.{1}
+
+ aedb 100
+
+ aecd
+
+ # Change the hard-coded package version numbers
+ # in the following files.
+ aecp README
+ vi README
+
+ aecp SConstruct
+ vi SConstruct
+
+ aecp QMTest/TestSCons.py
+ vi QMTest/TestSCons.py
+
+ # Read through and update the README files if necessary
+ [optional] aecp README
+ [optional] vi README
+
+ [optional] aecp src/README.txt
+ [optional] vi src/README.txt
+
+ # Prepare src/CHANGES.txt
+ aecp src/CHANGES.txt
+ vi src/CHANGES.txt
+
+ change the release line to reflect
+ the new subrelease
+
+ date -R the new subrelease
+
+ add an explanatory not after the subrelease line:
+
+ NOTE: This is a pre-release of 0.{95}
+ for testing purposes. When 0.{95} is
+ released, all these changes will show
+ up as 0.95 changes.
+
+ # Prepare src/RELEASE.txt
+ aecp src/RELEASE.txt
+ vi src/RELEASE.txt
+
+ date -R the release only if necessary
+
+ Read through and edit appropriately.
+
+ Can probably keep most of the existing text
+
+ Add any new known problems
+
+ # Prepare debian/changelog
+ aecp debian/changelog
+ vi debian/changelog
+
+ add the new subrelease
+
+ date -R the new subrelease
+
+ # Now build and prepare the release itself.
+ aeb
+
+ aet -reg
+
+ aed
+
+ aede
+
+ etc.
+
+
+
+ Make the relevant packages available for by-hand pickup directly
+ off the web site:
+
+ scp scons-0.{94}.{1}.tar.gz stevenknight@scons.sourceforge.net:/home/groups/s/sc/scons/htdocs
+ scp scons-0.{94}.{1}.zip stevenknight@scons.sourceforge.net:/home/groups/s/sc/scons/htdocs
+
+
+ Test downloading from the web site.
+
+
+
+ Announce to scons-dev@scons.org