From 7617a49b72f53650bb6a159ef977dec071d02dae Mon Sep 17 00:00:00 2001 From: Steven Knight Date: Wed, 30 Jan 2002 21:42:23 +0000 Subject: Prepare for release 0.04. --- HOWTO/release.txt | 43 ++++++-- LICENSE | 20 ++++ README | 304 ++++++++++++++++++++++++++++++++++++++++++++++----- SConstruct | 4 +- debian/changelog | 2 +- src/CHANGES.txt | 2 +- src/README.txt | 21 +++- src/RELEASE.txt | 8 +- template/Tests.py | 4 +- template/__init__.py | 2 +- template/file.py | 2 +- template/test.py | 4 +- 12 files changed, 357 insertions(+), 59 deletions(-) create mode 100644 LICENSE diff --git a/HOWTO/release.txt b/HOWTO/release.txt index 6a210ba..441e33d 100644 --- a/HOWTO/release.txt +++ b/HOWTO/release.txt @@ -1,4 +1,4 @@ -Things to do to release a version of SCons: +Things to do to release a new version of SCons: Build and test candidate packages @@ -20,7 +20,7 @@ Things to do to release a version of SCons: cd scons-src-{version} python runtest.py -a -x C:\Python15\scons.bat - Read through the README.txt file for any updates + Read through the README and src/README.txt files for any updates Prepare src/CHANGES.txt @@ -33,8 +33,11 @@ Things to do to release a version of SCons: date -R the latest release - Can probably keep a lot of the existing text, read - it through to make sure it's okay and edit appropriately. + Read through to make sure it's okay and edit appropriately. + + Can probably keep most of the existing text + + Add any new known problems Prepare debian/changelog @@ -66,13 +69,13 @@ Things to do to release a version of SCons: aenbr -p scons.0 {5} - aenc -p {scons.0.5} + aenc -p scons.0.{5} Call it something like, "Initialize the new branch." Cause = internal_enhancement. Exempt it from all tests (*_exempt = true). - ae_p scons.0.5 + ae_p scons.0.{5} aedb 100 @@ -85,9 +88,13 @@ Things to do to release a version of SCons: vi Construct debian/changelog rpm/scons.spec # Optionally, do the same in the following: - [optional] aecp HOWTO/change.txt debian/scons.postinst + [optional] aecp HOWTO/change.txt + [optional] aecp HOWTO/release.txt + [optional] aecp debian/scons.postinst - [optional] vi HOWTO/change.txt debian/scons.postinst + [optional] vi HOWTO/change.txt + [optional] vi HOWTO/release.txt + [optional] vi debian/scons.postinst aeb @@ -229,8 +236,8 @@ Template release announcement: -I'm pleased to announce that version 0.XXX of SCons has been released -and is available for download from the SCons web site: +Version 0.XXX of SCons has been released and is available for download +from the SCons web site: http://www.scons.org/ @@ -241,6 +248,19 @@ Or through the download link at the SCons project page at SourceForge: RPM and Debian packages and a Win32 installer are all available, in addition to the traditional .tar.gz files. + +WHAT'S NEW IN THIS RELEASE? + +Version 0.XXX of SCons contains the following important changes: + + - XXX + +For a complete list of changes in version 0.04, see the CHANGES.txt +file in the release itself. + + +WHAT IS SCONS? + SCons is a software construction tool (build tool, 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 @@ -270,6 +290,9 @@ SCons become available: http://lists.sourceforge.net/lists/listinfo/scons-announce + +ACKNOWLEDGEMENTS + Special thanks to XXX for his/her/their contributions to this release. On behalf of the SCons team, diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6b9799c --- /dev/null +++ b/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2001, 2002 Steven Knight + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README b/README index d865b7b..34e27c8 100644 --- a/README +++ b/README @@ -1,31 +1,187 @@ -Welcome to the SCons development tree. Here's a brief guide (not -guaranteed to be up-to-date) to what you'll find herein: +# Copyright (c) 2001, 2002 Steven Knight -admin/ - Documentation of SCons administrative procedures. Maybe - other administrative stuff in the future. + SCons - a software construction tool + +Welcome to the SCons development tree. The purpose of this tree is +not just to hack SCons code, but to package SCons for production +distribution. + +To that extent, the normal development cycle (enforced by Aegis) is not +to test the code directly, but to package SCons, unpack the package, +"install" SCons in a test subdirectory, and then to run the tests +against the unpacked and installed software. This helps eliminate +problems caused by, for example, failure to update the list of files to +be packaged. + +Note that if all you want to do is install and run SCons, it +will probably be easier for you to download and install the +scons-{version}.tar.gz package rather than to work with the packaging +logic in this tree. + + +LATEST VERSION +============== + +Before going further, you can check that this package you have is the +latest version at the SCons download page: + + http://www.scons.org/download.html + + +INSTALLATION +============ + +To install SCons from this package, you must first populate the +build/scons/ directory. (For an easier way to install SCons, without +having to populate this directory, use the scons-{version}.tar.gz +package.) + +If you already have an appropriate version of SCons installed on your +system, populate the build/scons/ directory by running: + + $ scons build/scons + +If you don't have SCons version 0.04 or later already installed on your +system, you can use SCons itself to populate the build/scons/ directory +with a little more work: + + $ SCONS_LIB_DIR=`pwd`/src/engine python src/script/scons.py build/scons + +Either command populates the build/scons/ directory with the necessary +files and directory structure to use the Python-standard setup script as +follows: + + # cd build/scons + # python setup.py install + +This will install the scons script in the default system script +directory (/usr/bin or C:\Python*\Scripts, for example) and the build +engine in an appropriate SCons library directory (/usr/lib/scons or +C:\Python*\SCons, for example). + +You should have system installation privileges (that is, "root" or +"Administrator") when running the setup.py script to install SCons in +the default system directories. + +If you don't have system installation privileges, you can use the +--prefix option to specify an alternate installation location, such as +your home directory: + + $ cd build/scons + $ python setup.py install --prefix=$HOME + +This will install the scons script itself in $HOME/bin and the +associated library in $HOME/lib/scons + + +TESTING +======= + +Tests are run by the runtest.py script in this directory. + +There are two types of tests in this package. Unit tests for individual +SCons modules live underneath the src/engine/ subdirectory and are the +same base name as the module with "Tests.py" appended--for example, +the unit test for the Builder.py module is the BuilderTests.py script. +End-to-end tests of SCons live in the test/ subdirectory. + +You may specifically list one or more tests to be run: + + $ python runtest.py src/engine/SCons/BuilderTests.py + + $ python runtest.py test/option-j.py test/Program.py + +Alternatively, the runtest.py script takes a -a option that searches +the tree for all of the tests and runs them: + + $ python runtest.py -a + +If more than one test is run, the runtest.py script prints a summary +of how many tests passed, failed, or yielded no result, and lists any +unsuccessful tests. + +The above invocations all test directly the files underneath the src/ +subdirectory, and do not require that a build be performed first. The +runtest.py script supports supports additional options to run tests +against unpacked packages in the build/test*/ subdirectories. This is +in the process of being reworked for the next release, however, so for +now, see the comments in the runtest.py script itself if you want to run +tests against a package. + + +BUILDING PACKAGES +================= + +We now use SCons (version 0.04 or later) to build its own packages. +If you already have an appropriate version of SCons installed on your +system, you can build everything by simply running it: + + $ scons + +If you don't have SCons version 0.04 or later already installed on your +system, you can build this version of SCons with itself with a little +more work: + + $ SCONS_LIB_DIR=`pwd`/src/engine python src/script/scons.py + +Depending on the utilities installed on your system, any or all of the +following packages will be built: + + build/dist/scons-0.04-1.noarch.rpm + build/dist/scons-0.04-1.src.rpm + build/dist/scons-0.04.linux-i686.tar.gz + build/dist/scons-0.04.tar.gz + build/dist/scons-0.04.win32.exe + build/dist/scons-doc-0.04.tar.gz + build/dist/scons-src-0.04.tar.gz + build/dist/scons_0.04-1_all.deb + +The SConstruct file is supposed to be smart enough to avoid trying to +build packages for which you don't have the proper utilities installed. +For example, if you don't have Debian packaging tools installed, it +should just not build the .deb package, not fail the build. + +If you receive a build error, please report it to the scons-devel +mailing list. + +Note that in addition to creating the above packages, the default build +will also unpack one or more of the packages for testing. + + +CONTENTS OF THIS PACKAGE +======================== + +Not guaranteed to be up-to-date (but better than nothing): + +bin/ + Miscellaneous utilities used in SCons development. Right now, + there's a copy of the script we use to translate an Aegis change + into a CVS checkin. build/ - This doesn't exist if you're looking at a vanilla source tree. - This is generated as part of our build process, and it's where, - believe it or not, we *build* everything. + This doesn't exist yet if you're looking at a vanilla source + tree. This is generated as part of our build process, and it's + where, believe it or not, we *build* everything. Construct - The "Makefile" for the SCons distribution. Yes, we're using - Cons to build its improved stepchild. (Of course, this will - change to an SConstruct file as soon as we have SCons to the - point where it can handle the functionality we need...) + The old "Makefile" Cons-based for the SCons distribution. This + is obsolete as of version 0.04, but it's being left around for a + little while, just in case... config The Aegis configuration, governing much of how we use Aegis to build, test, control source, etc. debian/ - Files needed to construct a Debian package. The contents of this - directory are dictated by the Debian Policy Manual - (http://www.debian.org/doc/debian-policy). The package will not be - accepted into the Debian distribution unless the contents of this - directory satisfy the relevant Debian policies. + Files needed to construct a Debian package. The contents of this + directory are dictated by the Debian Policy Manual + (http://www.debian.org/doc/debian-policy). The package will not be + accepted into the Debian distribution unless the contents of this + directory satisfy the relevant Debian policies. + +doc/ + SCons documentation. A variety of things here, in various + stages of (in)completeness. etc/ A subdirectory for miscellaneous things that we need. Right @@ -33,27 +189,119 @@ etc/ and which we don't want to force people to have to install on their own just to help out with SCons development. +HOWTO/ + Documentation of SCons administrative procedures (making a + change, releasing a new version). Maybe other administrative + stuff in the future. + +README + What you're looking at right now. + +rpm/ + The .spec file for building our RPM packages. + runtest.py - Script for running our tests. By default, this will run a - test against the code in the local src/ tree, so you don't - have to do a build before testing your changes. Aegis uses - it with an option that requires that you've done a build - (aeb) before running tests. + Script for running our tests. By default, this will run a + test against the code in the local src/ tree, so you don't + have to do a build before testing your changes. Aegis uses + it with an option that requires that you've done a build + (aeb) before running tests. SConstruct - The new "Makefile" for the SCons distribution, as soon as we - have SCons to the point where it can build itself. THIS IS - NOT READY YET. + The "Makefile" for the SCons distribution. src/ - Where the actual source code is kept, of course. + Where the actual source code is kept, of course. template/ Template files, used by Aegis to give you a head start when you - aenf or aent a new file. I haven't been keeping these up to - date... + aenf or aent a new file. test/ End-to-end tests of the SCons utility itself. These are separate from the individual module unit tests, which live side-by-side with the modules under src/. + + +DOCUMENTATION +============= + +See the src/RELEASE.txt file for notes about this specific release, +including known problems. See the src/CHANGES.txt file for a list of +changes since the previous release. + +The doc/man/scons.1 man page is included in this package, and contains a +section of small examples for getting started using SCons. + +Additional documentation for SCons is available at: + + http://www.scons.org/doc.html + + +LICENSING +========= + +SCons is distributed under the MIT license, a full copy of which is +available in the LICENSE.txt file. The MIT license is an approved Open +Source license, which means: + + This software is OSI Certified Open Source Software. OSI + Certified is a certification mark of the Open Source Initiative. + +More information about OSI certifications and Open Source software is +available at: + + http://www.opensource.org/ + + +REPORTING BUGS +============== + +You can report bugs either by following the "Tracker - Bugs" link +on the SCons project page: + + http://sourceforge.net/projects/scons/ + +or by sending mail to the SCons developers mailing list: + + scons-devel@lists.sourceforge.net + + +MAILING LISTS +============= + +A mailing list for developers of SCons is available. You may send +questions or comments to the list at: + + scons-devel@lists.sourceforge.net + +You may request a subscription to the scons-devel mailing list at: + + http://lists.sourceforge.net/lists/listinfo/scons-devel + +Subscription to the list is by approval. In practice, no one is being +refused list membership right now, but we reserve the right to limit +membership in the future and/or weed out lurkers. + + +FOR MORE INFORMATION +==================== + +Check the SCons web site at: + + http://www.scons.org/ + + +AUTHOR INFO +=========== + +Steven Knight +knight at baldmt dot com +http://www.baldmt.com/~knight/ + +With more than a little help from the SCons Development team: + Chad Austin + Charles Crain + Steve Leblanc + Anthony Roach + diff --git a/SConstruct b/SConstruct index edc3023..c07e020 100644 --- a/SConstruct +++ b/SConstruct @@ -1,7 +1,5 @@ # -# SConstruct file to build scons during development. -# -# THIS IS NOT READY YET. DO NOT TRY TO BUILD SCons WITH ITSELF YET. +# SConstruct file to build scons packages during development. # # diff --git a/debian/changelog b/debian/changelog index fb93323..eec9d25 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,7 +2,7 @@ scons (0.04-1) unstable; urgency=low * Fourth Release. - -- Steven Knight Fri, 11 Jan 2002 01:51:19 -0600 + -- Steven Knight Wed, 30 Jan 2002 11:09:42 -0600 scons (0.03-1) unstable; urgency=low diff --git a/src/CHANGES.txt b/src/CHANGES.txt index b0f9fee..c448ce0 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -8,7 +8,7 @@ -RELEASE 0.04 - +RELEASE 0.04 - Wed, 30 Jan 2002 11:09:42 -0600 From Charles Crain: diff --git a/src/README.txt b/src/README.txt index 427faba..27ca337 100644 --- a/src/README.txt +++ b/src/README.txt @@ -35,13 +35,23 @@ script as follows: # python setup.py install -This will install the scons script in the default script directory -(/usr/bin or C:\Python*\Scripts, for example) and the build engine in an -appropriate SCons library directory (/usr/lib/scons or C:\Python*\SCons, -for example). +This will install the scons script in the default system script +directory (/usr/bin or C:\Python*\Scripts, for example) and the build +engine in an appropriate SCons library directory (/usr/lib/scons or +C:\Python*\SCons, for example). You should have system installation privileges (that is, "root" or -"Administrator") when running the setup.py script. +"Administrator") when running the setup.py script to install SCons in +the default system directories. + +If you don't have system installation privileges, you can use the +--prefix option to specify an alternate installation location, such as +your home directory: + + $ python setup.py install --prefix=$HOME + +This will install the scons script itself in $HOME/bin and the +associated library in $HOME/lib/scons DOCUMENTATION @@ -126,5 +136,4 @@ With more than a little help from the SCons Development team: Charles Crain Steve Leblanc Anthony Roach - Steven Shaw diff --git a/src/RELEASE.txt b/src/RELEASE.txt index 1045f1f..467677b 100644 --- a/src/RELEASE.txt +++ b/src/RELEASE.txt @@ -20,9 +20,9 @@ more effectively, please sign up for the scons-users mailing list at: -RELEASE 0.03 - Fri, 11 Jan 2002 01:09:30 -0600 +RELEASE 0.04 - Wed, 30 Jan 2002 11:09:42 -0600 - This is the third alpha release of SCons. Please consult the + This is the fourth alpha release of SCons. Please consult the CHANGES.txt file for a list of specific changes since last release. Owing to an extensive test suite, the SCons team believes that this @@ -39,7 +39,7 @@ RELEASE 0.03 - Fri, 11 Jan 2002 01:09:30 -0600 http://sourceforge.net/tracker/?func=add&group_id=30337&atid=398971 We have a reliable bug-fixing methodology already in place and - expect to respond to problems relatively quickly. + have been responding to problems relatively quickly. - It is possible that interfaces will change in future releases. We will strive to hold this to a minimum, but you may need to modify @@ -58,7 +58,7 @@ RELEASE 0.03 - Fri, 11 Jan 2002 01:09:30 -0600 - There may be performance issues. This release has many performance improvements. If you still find the performance unacceptable, we - would very muchlike to hear from you and learn more about your + would very much like to hear from you and learn more about your configuration so we can optimize the right things. - Error messages don't always exist where they'd be helpful. diff --git a/template/Tests.py b/template/Tests.py index b9d3a8d..ba0a517 100644 --- a/template/Tests.py +++ b/template/Tests.py @@ -8,7 +8,7 @@ # distribute, sublicense, and/or sell copies of the Software, and to # permit persons to whom the Software is furnished to do so, subject to # the following conditions: - +# # The above copyright notice and this permission notice shall be included # in all copies or substantial portions of the Software. # @@ -21,6 +21,6 @@ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # -__revision__ = "${subst '^src/scons/' '' $filename} __REVISION__ __DATE__ __DEVELOPER__" +__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" import unittest diff --git a/template/__init__.py b/template/__init__.py index 55f51af..fffcf57 100644 --- a/template/__init__.py +++ b/template/__init__.py @@ -27,6 +27,6 @@ XXX # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # -__revision__ = "${subst '^src/scons/' '' $filename} __REVISION__ __DATE__ __DEVELOPER__" +__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" __version__ = "__VERSION__" diff --git a/template/file.py b/template/file.py index 1923672..b2be739 100644 --- a/template/file.py +++ b/template/file.py @@ -27,7 +27,7 @@ XXX # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # -__revision__ = "${subst '^src/scons/' '' $filename} __REVISION__ __DATE__ __DEVELOPER__" +__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" diff --git a/template/test.py b/template/test.py index 61854d5..963fba0 100644 --- a/template/test.py +++ b/template/test.py @@ -22,6 +22,6 @@ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # -__revision__ = "$filename __REVISION__ __DATE__ __DEVELOPER__" +__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" -import TestCmd +import TestSCons -- cgit v0.12