-Things to do to release a new version of SCons:
+__COPYRIGHT__
- Build and test candidate packages
+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.
- test on Linux
+If you need to prepare a specific subrelease (X.Y.Z, such as 0.94.1),
+then see the document HOWTO/subrelease.txt.
- test on Windows NT
+Things to do to release a new X.Y version of SCons:
- 1) tar zxf scons-src-{version}.tar.gz
- cd scons-src-{version}
- python runtest.py -a
+ Prepare the describe-the-release section for the announcements
- 2) tar zxf scons-{version}.tar.gz
- cd scons-{version}
- python setup.py install
- cd scons-src-{version}
- python runtest.py -a -x C:\Python15\scons.bat
+ summarize changes from src/CHANGES.txt
- 3) scons-{verson}.win32.exe
- cd scons-src-{version}
- python runtest.py -a -x C:\Python15\scons.bat
+ template is below, search for "describe-the-release"
- Read through the README and src/README.txt files for any updates
+ send this out for review while you get the rest of the
+ release ready!
- Prepare src/CHANGES.txt
+ Build and test candidate packages
- date -R the latest release
+ test on Linux
- should be current if this has been updated as each
- change went in.
+ test on Windows NT
- Prepare src/RELEASE.txt
+ 1) tar zxf scons-src-{version}.tar.gz
+ cd scons-src-{version}
+ python runtest.py -a
- date -R the latest release
+ 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
- Read through to make sure it's okay and edit appropriately.
+ 3) scons-{verson}.win32.exe
+ cd scons-src-{version}
+ python runtest.py -a -X -x C:\Python20\scons.bat
- Can probably keep most of the existing text
+ 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
- Add any new known problems
+ Check in any changes necessary to make everything work
- Prepare debian/changelog
+ Update the user's guide
- date -R the latest release
+ sh bin/docdiff
+ sh bin/docupdate
+ END THE CURRENT DEVELOPMENT BRANCH
- END THE BRANCH
+ ae_p scons.0
- ae_p scons.0
+ aede {96}
- aede {7}
+ aerpass {96}
- aerpass {7}
+ aeib {96}
- aeib {7}
+ aed
- aeb
+ aeb
- aet
+ aet
- aet -reg
+ aet -reg
- aed
+ aeipass
- aeipass
+ START THE NEW BRANCH FOR RELEASE
- START THE NEW BRANCH
+ aenbr -p scons.0 {97}
- aenbr -p scons.0 {8}
+ aenc -p scons.0.{97}
- aenc -p scons.0.{8}
+ Call it something like,
+ "Initialize the new branch for release."
+ Cause = internal_enhancement.
+ Exempt it from all tests (*_exempt = true).
- Call it something like, "Initialize the new
- branch." Cause = internal_enhancement. Exempt
- it from all tests (*_exempt = true).
+ ae_p scons.0.{97}
- ae_p scons.0.{8}
+ aedb 100
- aedb 100
+ aecd
- aecd
+ # Change the hard-coded package version numbers
+ # in the following files.
+ aecp README
+ vi README
- # Change the hard-coded package version numbers
- # in the following files.
- aecp README SConstruct debian/changelog rpm/scons.spec
+ aecp SConstruct
+ vi SConstruct
- vi README SConstruct debian/changelog rpm/scons.spec
+ aecp QMTest/TestSCons.py
+ vi QMTest/TestSCons.py
- # Optionally, do the same in the following:
- [optional] aecp HOWTO/change.txt
- [optional] aecp HOWTO/release.txt
- [optional] aecp debian/scons.postinst
+ # Read through and update the README files if necessary
+ [optional] aecp README
+ [optional] vi README
- [optional] vi HOWTO/change.txt
- [optional] vi HOWTO/release.txt
- [optional] vi debian/scons.postinst
+ [optional] aecp src/README.txt
+ [optional] vi src/README.txt
- aeb
+ # Prepare src/CHANGES.txt
+ aecp src/CHANGES.txt
+ vi src/CHANGES.txt
- aet -reg
+ date -R the latest release
- aed
+ should be current if this has been updated
+ as each change went in.
- aede
+ # Prepare src/RELEASE.txt
+ aecp src/RELEASE.txt
+ vi src/RELEASE.txt
- etc.
+ date -R the latest release
+ Read through and edit appropriately.
+ Can probably keep most of the existing text
- Read through the FAQ for any updates
+ Add any new known problems
+ # Prepare debian/changelog
+ aecp debian/changelog
+ vi debian/changelog
+ date -R the latest release
- Upload the packages to the SourceForge incoming FTP:
+ # Now build and prepare the release itself.
+ aeb
- ftp upload.sourceforge.net
- anonymous
- <your email>
- cd incoming
- bin
- put scons-0.07-1.noarch.rpm
- put scons-0.07-1.src.rpm
- put scons-0.07.tar.gz
- put scons-0.07.win32.exe
- put scons-0.07.zip
- put scons-src-0.07.tar.gz
- put scons-src-0.07.zip
- put scons_0.07-1_all.deb
+ aed
- Create the new release at the SourceForge project page:
+ aet -reg
- Go to the Admin page
+ aede
- => Edit/Add File Releases
+ etc.
- Package Name: scons
- => Add Release
- New release name: 0.07
+ Read through the FAQ for any updates
- Cut-and-paste or upload the RELEASE.txt file.
- Cut-and-paste or upload the CHANGES.txt file.
- (If you cut-and-paste, check the "Preserve my
- pre-formatted text." box!)
+ Upload the packages to the SourceForge incoming FTP:
- Click "Submit/Refresh" (IMPORTANT!)
+ 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
- Check the SCons files you uploaded
+ Create the new release at the SourceForge project page:
- Click "Add Files and/or Refresh View"
+ Pull down the "Admin" menu and select "File Releases"
- Edit the file info:
+ Package Name: scons
- scons-0.07-1.noarch.rpm Any .rpm
- scons-0.07-1.src.rpm Any Source .rpm
- scons-0.07.tar.gz Any .gz
- scons-0.07.win32.exe i386 .exe (32-bit Windows)
- scons-0.07.zip Any .zip
- scons_0.07-1_all.deb Any .deb
+ => Add Release
- Click "Update/Refresh" for each file; this must be done
- one at a time.
+ New release name: 0.{97}
- => Edit/Add File Releases
+ Upload the RELEASE.txt file.
- Package Name: scons-src
+ Upload the CHANGES.txt file.
- => Add Release
+ Check the "Preserve my pre-formatted text." box (IMPORTANT!)
- New release name: 0.07
+ Click "Submit/Refresh" (IMPORTANT!)
- Cut-and-paste or upload the RELEASE.txt file.
+ Check the SCons files you uploaded
- Cut-and-paste or upload the CHANGES.txt file.
+ Click "Add Files and/or Refresh View"
- (If you cut-and-paste, check the "Preserve my
- pre-formatted text." box!)
+ Edit the file info:
- Click "Submit/Refresh" (IMPORTANT!)
+ 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
- Check the SCons files you uploaded
+ Click "Update/Refresh" for each file; this must be done
+ one at a time.
- Click "Add Files and/or Refresh View"
+ Check "I'm sure." and click "Send Notice" in the Email
+ Release Notice section.
- Edit the file info:
- scons-src-0.07.tar.gz Any .gz
- scons-src-0.07.zip Any .zip
+ Pull down the "Admin" menu and select "File Releases"
- Click "Update/Refresh" for each file; this must be done
- one at a time.
+ Package Name: scons-local
- Test downloading from the SourceForge project page
+ => Add Release
- You may need to wait a good bit; they seem to update
- this on half-hour cycles.
+ New release name: 0.{97}
+ Upload the RELEASE.txt file.
+ Upload the CHANGES.txt file.
- Update the web site:
+ Check the "Preserve my pre-formatted text." box (IMPORTANT!)
- template: new version number
+ Click "Submit/Refresh" (IMPORTANT!)
- src/index.in: announcement on the home page
+ Check the SCons files you uploaded
- src/scons-doc.tar.gz: update
+ Click "Add Files and/or Refresh View"
- src/CHANGES.txt: update
+ Edit the file info:
- Test downloading from the web site download page
+ 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.
- Add news item to the SourceForge project page
+ Pull down the "Admin" menu and select "File Releases"
+ Package Name: scons-src
- In the Bugs Tracker, add a Group for the new release (0.07)
+ => Add Release
+ New release name: 0.{97}
+ Upload the RELEASE.txt file.
- Announce to the following mailing lists (template below):
+ Upload the CHANGES.txt file.
- scons-announce@lists.sourceforge.net
- scons-users@lists.sourceforge.net
- scons-devel@lists.sourceforge.net
+ Check the "Preserve my pre-formatted text." box (IMPORTANT!)
- [right away]
+ Click "Submit/Refresh" (IMPORTANT!)
- python-announce@python.org
+ Check the SCons files you uploaded
- [right away, it's moderated and will take
- some time to get through]
+ Click "Add Files and/or Refresh View"
- linux-announce@news.ornl.gov
+ Edit the file info:
- [right away, it's moderated and will take
- some time to get through]
+ scons-src-0.{97}.tar.gz Any .gz
+ scons-src-0.{97}.zip Any .zip
- [optional] cons-discuss@gnu.org
+ Click "Update/Refresh" for each file; this must be done
+ one at a time.
- [only if it's a really big announcement,
- I said we wouldn't bug this list]
+ Check "I'm sure." and click "Send Notice" in the Email
+ Release Notice section.
- python-list@python.org
- [wait until business hours so the announcement
- hits mailboxes while U.S. workers are active]
+ Hide release 0.{95} at the SourceForge download page:
- Notify www.cmtoday.com/contribute.html
+ Pull down the "Admin" menu and select "File Releases"
- [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.]
+ Package Name: scons
- Notify freshmeat.net
+ => Edit Releases
- [Wait until the morning so the announcement hits the
- main freshmeat.net page while people in the U.S. are
- awake and working]
+ Release Name: 0.{95}
+ => Edit This Release
+ Status: => Hidden
+ Click Submit/Refresh
-=======================
-Template scons-devel announcement:
-SConspirators--
+ Pull down the "Admin" menu and select "File Releases"
-SCons alpha release 0.07 is now available for download.
+ Package Name: scons-local
-IMPORTANT: This release contains the following interface changes:
- - XXX
+ => Edit Releases
-This release adds the following features:
- - XXX
+ Release Name: 0.{95}
-The following fixes have been added:
- - XXX
+ => Edit This Release
-Performance has been improved as follows:
- - XXX
+ Status: => Hidden
-The following changes have been made to the SCons packaging:
- - XXX
+ Click Submit/Refresh
-The documentation has been improved:
- - XXX
-Thanks to XXX, XXX, and XXX for contributing to this release.
+ Pull down the "Admin" menu and select "File Releases"
- --SK
-=======================
-Template scons-users + scons-announce announcement:
+ Package Name: scons-src
-Version 0.07 of SCons has been released and is available for download
-from the SCons web site:
+ => Edit Releases
- http://www.scons.org/
+ Release Name: 0.{95}
-Or through the download link at the SCons project page at SourceForge:
+ => Edit This Release
- http://sourceforge.net/projects/scons/
+ Status: => Hidden
-RPM and Debian packages and a Win32 installer are all available, in
-addition to the traditional .tar.gz and .zip files.
+ 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"
-WHAT'S NEW IN THIS RELEASE?
-IMPORTANT: Version 0.07 contains the following interface changes:
+ 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--
-ACKNOWLEDGEMENTS
+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.
-On behalf of the SCons team,
-
- --SK
+ --SK
=======================
-Template python-announce, linux-announce and python-list announcement:
+Template scons-users + scons-announce announcement:
-Version 0.07 of SCons has been released and is available for download
+Version 0.95 of SCons has been released and is available for download
from the SCons web site:
- http://www.scons.org/
+ http://www.scons.org/
Or through the download link at the SCons project page at SourceForge:
- http://sourceforge.net/projects/scons/
+ 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?
-IMPORTANT: Version 0.07 contains the following interface changes:
- - XXX
+XXX Template describe-the-release section goes here XXX
-This release adds the following features:
- - XXX
-The following fixes have been added:
- - XXX
+ACKNOWLEDGEMENTS
-Performance has been improved as follows:
- - XXX
+Special thanks to XXX, XXX, and XXX for their contributions to this
+release.
-The following changes have been made to the SCons packaging:
- - XXX
+On behalf of the SCons team,
-The documentation has been improved:
- - XXX
+ --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.
-WHAT IS SCONS?
+Version 0.95 of SCons has been released and is available for download
+from the SCons web site:
-SCons is a software construction tool (build tool, or make tool) written
-in Python. Its design is based on the design which won the Software
-Carpentry build tool competition in August 2000 (in turn derived from
-the Perl-based Cons build tool).
+ 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 build problems
+ real scripting language to solve difficult build problems
- a modular architecture allows the SCons Build Engine to be
embedded in other Python software
- - a global view of all dependencies; no multiple passes to get
- everything built
- the ability to scan files for implicit dependencies (#include files);
- - improved parallel build (-j) support
- - use of MD5 signatures to decide if a file has changed
+ - 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 has been created for those interested in
-getting started using SCons. You can subscribe at:
+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
+ 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
+ http://lists.sourceforge.net/lists/listinfo/scons-announce
ACKNOWLEDGEMENTS
On behalf of the SCons team,
- --SK
+ --SK