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 Checkin any changes necessary to make everything work END THE CURRENT DEVELOPMENT BRANCH ae_p scons.0 aede {95} aerpass {95} aeib {95} aeb aet aet -reg aed aeipass START THE NEW BRANCH FOR RELEASE aenbr -p scons.0 {96} aenc -p scons.0.{96} Call it something like, "Initialize the new branch for release." Cause = internal_enhancement. Exempt it from all tests (*_exempt = true). ae_p scons.0.{96} aedb 100 aecd # Change the hard-coded package version numbers # in the following files. aecp README vi README aecp SConstruct vi SConstruct aecp rpm/scons.spec.in vi rpm/scons.spec.in aecp src/setupTests.py vi src/setupTests.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 aet -reg aed aede etc. Read through the FAQ for any updates Upload the packages to the SourceForge incoming FTP: ftp upload.sourceforge.net anonymous cd incoming bin put scons-0.{96}-1.noarch.rpm put scons-0.{96}-1.src.rpm put scons-0.{96}.tar.gz put scons-0.{96}.win32.exe put scons-0.{96}.zip put scons-local-0.{96}.tar.gz put scons-local-0.{96}.zip put scons-src-0.{96}.tar.gz put scons-src-0.{96}.zip put scons_0.{96}-1_all.deb Create the new release at the SourceForge project page: Go to the Admin page => Edit/Add File Releases Package Name: scons => Add Release New release name: 0.{96} 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!) Click "Submit/Refresh" (IMPORTANT!) Check the SCons files you uploaded Click "Add Files and/or Refresh View" Edit the file info: scons-0.{96}-1.noarch.rpm Any .rpm scons-0.{96}-1.src.rpm Any Source .rpm scons-0.{96}.tar.gz Any .gz scons-0.{96}.win32.exe i386 .exe (32-bit Windows) scons-0.{96}.zip Any .zip scons_0.{96}-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. Go to the Admin page => Edit/Add File Releases Package Name: scons-local => Add Release New release name: 0.{96} 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!) Click "Submit/Refresh" (IMPORTANT!) Check the SCons files you uploaded Click "Add Files and/or Refresh View" Edit the file info: scons-local-0.{96}.tar.gz Any .gz scons-local-0.{96}.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. Go to the Admin page => Edit/Add File Releases Package Name: scons-src => Add Release New release name: 0.{96} 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!) Click "Submit/Refresh" (IMPORTANT!) Check the SCons files you uploaded Click "Add Files and/or Refresh View" Edit the file info: scons-src-0.{96}.tar.gz Any .gz scons-src-0.{96}.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.{94} at the SourceForge download page: Go to the Admin page => Edit/Add File Releases Package Name: scons => Edit Releases Release Name: 0.{94} => Edit This Release Status: => Hidden Click Submit/Refresh Go to the Admin page => Edit/Add File Releases Package Name: scons-local => Edit Releases Release Name: 0.{94} => Edit This Release Status: => Hidden Click Submit/Refresh Go to the Admin page => Edit/Add File Releases Package Name: scons-src => Edit Releases Release Name: 0.{94} => Edit This Release Status: => Hidden Click Submit/Refresh In the Bugs Tracker, add a Group for the new release 0.{94} Test downloading from the SourceForge project page You may need to wait a good bit; they seem to update this on half-hour cycles. Update the web site: template: new version number src/index.in: announcement on the home page src/scons-doc.tar.gz: update src/CHANGES.txt: update Test downloading from the web site download page Add news item to the SourceForge project page 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 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