summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml4
-rw-r--r--HOWTO/README24
-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--SConstruct14
-rw-r--r--bin/SConsExamples.py4
-rw-r--r--bin/scons-cdist272
-rw-r--r--bin/time-scons.py2
-rw-r--r--bin/update-release-info.py10
-rwxr-xr-xbin/xmlagenda.py6
-rw-r--r--doc/design/native.xml5
-rw-r--r--doc/man/scons.xml22
-rw-r--r--doc/scons.mod3
-rwxr-xr-xruntest.py8
-rw-r--r--src/CHANGES.txt26
-rw-r--r--src/engine/SCons/Errors.py11
-rw-r--r--src/engine/SCons/ErrorsTests.py25
-rw-r--r--src/engine/SCons/Platform/win32.py2
-rw-r--r--src/engine/SCons/Script/Main.py6
-rw-r--r--src/engine/SCons/Subst.py3
-rw-r--r--src/engine/SCons/Taskmaster.py9
-rw-r--r--src/engine/SCons/Tool/JavaCommon.py2
-rw-r--r--src/engine/SCons/Tool/MSCommon/arch.py8
-rw-r--r--src/engine/SCons/Tool/docbook/docs/manual.xml2
-rw-r--r--src/engine/SCons/Tool/jar.py2
-rw-r--r--src/engine/SCons/Tool/msvc.py7
-rw-r--r--src/test_strings.py10
-rw-r--r--test/CPPDEFINES/append.py6
-rw-r--r--test/CPPDEFINES/pkg-config.py4
-rw-r--r--test/D/Issues/2994/Common/D_changed_DFLAGS_not_rebuilding.py4
-rwxr-xr-xtest/D/Support/executablesSearch.py2
-rw-r--r--test/Depends/no-Builder.py2
-rw-r--r--test/Docbook/basedir/htmlchunked/image/manual.xml2
-rw-r--r--test/Docbook/basedir/htmlhelp/image/manual.xml2
-rw-r--r--test/Docbook/basic/epub/image/manual.xml2
-rw-r--r--test/Docbook/basic/html/image/manual.xml2
-rw-r--r--test/Docbook/basic/htmlchunked/image/manual.xml2
-rw-r--r--test/Docbook/basic/htmlhelp/image/manual.xml2
-rw-r--r--test/Docbook/rootname/htmlchunked/image/manual.xml2
-rw-r--r--test/Docbook/rootname/htmlhelp/image/manual.xml2
-rw-r--r--test/ExecuteInvalidateCache.py2
-rw-r--r--test/Fortran/USE-MODULE-CASEINSENS.py2
-rw-r--r--test/Java/JAR.py10
-rw-r--r--test/Java/Java-1.4.py2
-rw-r--r--test/Java/Java-1.5.py2
-rw-r--r--test/Java/Java-1.6.py2
-rw-r--r--test/Java/swig-dependencies.py2
-rw-r--r--test/Libs/SharedLibrary-update-deps.py2
-rw-r--r--test/MSVC/MSVC_BATCH-spaces-targetdir.py11
-rw-r--r--test/MSVC/MSVC_BATCH-spaces-targetdir/SConstruct8
-rw-r--r--test/MSVC/MSVC_BATCH-spaces-targetdir/src/a.c15
-rw-r--r--test/MSVC/MSVC_BATCH-spaces-targetdir/src/b.c5
-rw-r--r--test/MSVC/MSVC_BATCH-spaces-targetdir/src/c.c5
-rw-r--r--test/MSVC/PCH-source.py2
-rw-r--r--test/MSVC/batch.py12
-rw-r--r--test/README4
-rw-r--r--test/SConstruct.py27
-rw-r--r--test/Scanner/Dir.py2
-rw-r--r--test/SideEffect/Issues/3013/files/SConscript5
-rw-r--r--test/SideEffect/Issues/3013/files/SConstruct21
-rw-r--r--test/SideEffect/Issues/3013/files/test.cpp2
-rw-r--r--test/SideEffect/Issues/3013/sideffect_with_variantdir.py49
-rw-r--r--test/Subst/Literal.py54
-rw-r--r--test/VariantDir/include-subdir.py2
-rw-r--r--test/option/tree-lib.py2
-rw-r--r--test/update-release-info/update-release-info.py2
-rw-r--r--testing/buildbot.yml2
-rw-r--r--testing/framework/README.txt (renamed from QMTest/README.txt)0
-rw-r--r--testing/framework/SConscript (renamed from QMTest/SConscript)4
-rw-r--r--testing/framework/TestCmd.py (renamed from QMTest/TestCmd.py)0
-rw-r--r--testing/framework/TestCmdTests.py (renamed from QMTest/TestCmdTests.py)0
-rw-r--r--testing/framework/TestCommon.py (renamed from QMTest/TestCommon.py)0
-rw-r--r--testing/framework/TestCommonTests.py (renamed from QMTest/TestCommonTests.py)0
-rw-r--r--testing/framework/TestRuntest.py (renamed from QMTest/TestRuntest.py)4
-rw-r--r--testing/framework/TestSCons.py (renamed from QMTest/TestSCons.py)33
-rw-r--r--testing/framework/TestSConsMSVS.py (renamed from QMTest/TestSConsMSVS.py)0
-rw-r--r--testing/framework/TestSCons_time.py (renamed from QMTest/TestSCons_time.py)0
-rw-r--r--testing/framework/TestSConsign.py (renamed from QMTest/TestSConsign.py)0
-rw-r--r--testing/framework/test-framework.rst (renamed from QMTest/test-framework.rst)13
-rw-r--r--timings/README.txt4
-rw-r--r--www/bug-submission.html234
-rw-r--r--www/cn-project-pages/Administrivia/snippets/HtmlSnippet1.html1
-rw-r--r--www/cn-project-pages/Administrivia/snippets/description.txt1
-rw-r--r--www/cn-project-pages/Administrivia/snippets/page.xml10
-rw-r--r--www/cn-project-pages/snippets/page.xml16
-rw-r--r--www/cn-project-pages/structure.xml10
-rw-r--r--www/favicon.icobin1406 -> 0 bytes
-rw-r--r--www/feature-request.html99
-rwxr-xr-xwww/gen_sched_table.py51
-rw-r--r--www/index.html288
-rw-r--r--www/patch-submission.html355
-rw-r--r--www/project_highlights.html24
-rw-r--r--www/project_issues.html123
-rw-r--r--www/project_tools.html41
-rw-r--r--www/roadmap.html173
-rw-r--r--www/schedule19
99 files changed, 420 insertions, 2805 deletions
diff --git a/.travis.yml b/.travis.yml
index 9d8b96d..a1f58b0 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,10 @@
dist: trusty
language: python
+addons:
+ apt:
+ update: true
+
install:
- ./.travis/install.sh
diff --git a/HOWTO/README b/HOWTO/README
deleted file mode 100644
index e20df73..0000000
--- a/HOWTO/README
+++ /dev/null
@@ -1,24 +0,0 @@
-__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.
-
diff --git a/HOWTO/change.txt b/HOWTO/change.txt
deleted file mode 100644
index f295003..0000000
--- a/HOWTO/change.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-__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
deleted file mode 100644
index 8aa11ec..0000000
--- a/HOWTO/new-platform.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-__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
deleted file mode 100644
index f859c48..0000000
--- a/HOWTO/new-script.txt
+++ /dev/null
@@ -1,75 +0,0 @@
-__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
deleted file mode 100644
index 4297fe6..0000000
--- a/HOWTO/new-tool.txt
+++ /dev/null
@@ -1,81 +0,0 @@
-__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
deleted file mode 100644
index 5fbbfc7..0000000
--- a/HOWTO/release.txt
+++ /dev/null
@@ -1,656 +0,0 @@
-__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/SConstruct b/SConstruct
index 1a0deb3..fc94abd 100644
--- a/SConstruct
+++ b/SConstruct
@@ -132,7 +132,7 @@ python_ver = sys.version[0:3]
# for the doc toolchain.
#
addpaths = [os.path.abspath(os.path.join(os.getcwd(), 'bin')),
- os.path.abspath(os.path.join(os.getcwd(), 'QMTest'))]
+ os.path.abspath(os.path.join(os.getcwd(), 'testing/framework'))]
for a in addpaths:
if a not in sys.path:
sys.path.append(a)
@@ -634,7 +634,7 @@ for p in [ scons ]:
# Run setup.py in the unpacked subdirectory to "install" everything
# into our build/test subdirectory. The runtest.py script will set
# PYTHONPATH so that the tests only look under build/test-{package},
- # and under QMTest (for the testing modules TestCmd.py, TestSCons.py,
+ # and under testing/framework (for the testing modules TestCmd.py, TestSCons.py,
# etc.). This makes sure that our tests pass with what
# we really packaged, not because of something hanging around in
# the development directory.
@@ -704,7 +704,7 @@ for p in [ scons ]:
# Run setup.py in the unpacked subdirectory to "install" everything
# into our build/test subdirectory. The runtest.py script will set
# PYTHONPATH so that the tests only look under build/test-{package},
- # and under QMTest (for the testing modules TestCmd.py, TestSCons.py,
+ # and under testing/framework (for the testing modules TestCmd.py, TestSCons.py,
# etc.). This makes sure that our tests pass with what
# we really packaged, not because of something hanging around in
# the development directory.
@@ -825,7 +825,7 @@ for p in [ scons ]:
#
Export('build_dir', 'env')
-SConscript('QMTest/SConscript')
+SConscript('testing/SConscript')
#
#
@@ -926,7 +926,7 @@ if sfiles:
# Run setup.py in the unpacked subdirectory to "install" everything
# into our build/test subdirectory. The runtest.py script will set
# PYTHONPATH so that the tests only look under build/test-{package},
- # and under QMTest (for the testing modules TestCmd.py,
+ # and under testing/framework (for the testing modules TestCmd.py,
# TestSCons.py, etc.). This makes sure that our tests pass with
# what we really packaged, not because of something hanging around
# in the development directory.
@@ -980,7 +980,7 @@ if sfiles:
# Run setup.py in the unpacked subdirectory to "install" everything
# into our build/test subdirectory. The runtest.py script will set
# PYTHONPATH so that the tests only look under build/test-{package},
- # and under QMTest (for the testing modules TestCmd.py,
+ # and under testing/framework (for the testing modules TestCmd.py,
# TestSCons.py, etc.). This makes sure that our tests pass with
# what we really packaged, not because of something hanging
# around in the development directory.
@@ -1018,7 +1018,7 @@ if sfiles:
for pf, help_text in packaging_flavors:
Alias(pf, [
os.path.join(build_dir, 'test-'+pf),
- os.path.join(build_dir, 'QMTest'),
+ os.path.join(build_dir, 'testing/framework'),
os.path.join(build_dir, 'runtest.py'),
])
diff --git a/bin/SConsExamples.py b/bin/SConsExamples.py
index a2ed570..7491c58 100644
--- a/bin/SConsExamples.py
+++ b/bin/SConsExamples.py
@@ -416,8 +416,8 @@ def exampleNamesAreUnique(dpath):
#
# ###############################################################
-sys.path.append(os.path.join(os.getcwd(), 'QMTest'))
-sys.path.append(os.path.join(os.getcwd(), 'build', 'QMTest'))
+sys.path.append(os.path.join(os.getcwd(), 'testing/framework'))
+sys.path.append(os.path.join(os.getcwd(), 'build', 'testing/framework'))
scons_py = os.path.join('bootstrap', 'src', 'script', 'scons.py')
if not os.path.exists(scons_py):
diff --git a/bin/scons-cdist b/bin/scons-cdist
deleted file mode 100644
index 58b1bae..0000000
--- a/bin/scons-cdist
+++ /dev/null
@@ -1,272 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2005 The SCons Foundation
-#
-# 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.
-
-PROG=`basename $0`
-NOARGFLAGS="afhlnqrstz"
-ARGFLAGS="p:"
-ALLFLAGS="${NOARGFLAGS}${ARGFLAGS}"
-USAGE="Usage: ${PROG} [-${NOARGFLAGS}] [-p project] change"
-
-HELP="$USAGE
-
- -a Update the latest Aegis baseline (aedist) file.
- -f Force update, skipping up-front sanity check.
- -h Print this help message and exit.
- -l Update the local CVS repository.
- -n Don't execute, just echo commands.
- -p project Set the Aegis project.
- -q Quiet, don't print commands before executing them.
- -r Rsync the Aegis repository to SourceForge.
- -s Update the sourceforge.net CVS repository.
- -t Update the tigris.org CVS repository.
- -z Update the latest .tar.gz and .zip files.
-"
-
-DO=""
-PRINT="echo"
-EXECUTE="eval"
-SANITY_CHECK="yes"
-
-while getopts $ALLFLAGS FLAG; do
- case $FLAG in
- a | l | r | s | t | z )
- DO="${DO}${FLAG}"
- ;;
- f )
- SANITY_CHECK="no"
- ;;
- h )
- echo "${HELP}"
- exit 0
- ;;
- n )
- EXECUTE=":"
- ;;
- p )
- AEGIS_PROJECT="${OPTARG}"
- ;;
- q )
- PRINT=":"
- ;;
- * )
- echo "FLAG = ${FLAG}" >&2
- echo "${USAGE}" >&2
- exit 1
- ;;
- esac
-done
-
-shift `expr ${OPTIND} - 1`
-
-if test "X$1" = "X"; then
- echo "${USAGE}" >&2
- exit 1
-fi
-
-if test "X${AEGIS_PROJECT}" = "X"; then
- echo "$PROG: No AEGIS_PROJECT set." >&2
- echo "${USAGE}" >&2
- exit 1
-fi
-
-if test "X$DO" = "X"; then
- DO="alrstz"
-fi
-
-cmd()
-{
- $PRINT "$*"
- $EXECUTE "$*"
-}
-
-CHANGE=$1
-
-if test "X${SANITY_CHECK}" = "Xyes"; then
- SCM="cvs"
- SCMROOT="/home/scons/CVSROOT/scons"
- DELTA=`aegis -l -ter cd ${CHANGE} | sed -n 's/.*, Delta \([0-9]*\)\./\1/p'`
- if test "x${DELTA}" = "x"; then
- echo "${PROG}: Could not find delta for change ${CHANGE}." >&2
- echo "Has this finished integrating? Change ${CHANGE} not distributed." >&2
- exit 1
- fi
- PREV_DELTA=`expr ${DELTA} - 1`
- COMMAND="scons-scmcheck -D ${PREV_DELTA} -d q -p ${AEGIS_PROJECT} -s ${SCM} ${SCMROOT}"
- $PRINT "${COMMAND}"
- OUTPUT=`${COMMAND}`
- if test "X${OUTPUT}" != "X"; then
- echo "${PROG}: ${SCMROOT} is not up to date:" >&2
- echo "${OUTPUT}" >& 2
- echo "Did you skip any changes? Change ${CHANGE} not distributed." >&2
- exit 1
- fi
-fi
-
-if test X$EXECUTE != "X:" -a "X$SSH_AGENT_PID" = "X"; then
- eval `ssh-agent`
- ssh-add
- trap 'eval `ssh-agent -k`; exit' 0 1 2 3 15
-fi
-
-cd
-
-BASELINE=`aesub -p ${AEGIS_PROJECT} -c ${CHANGE} '${Project trunk_name}'`
-
-TMPBLAE="/tmp/${BASELINE}.ae"
-TMPCAE="/tmp/${AEGIS_PROJECT}.C${CHANGE}.ae"
-
-# Original values for SourceForge.
-#SFLOGIN="stevenknight"
-#SFHOST="scons.sourceforge.net"
-#SFDEST="/home/groups/s/sc/scons/htdocs"
-
-SCONSLOGIN="scons"
-SCONSHOST="manam.pair.com"
-#SCONSDEST="public_html/production"
-SCONSDEST="public_ftp"
-
-#
-# Copy the baseline .ae to the constant location on SourceForge.
-#
-case "${DO}" in
-*a* )
- cmd "aedist -s -bl -p ${AEGIS_PROJECT} > ${TMPBLAE}"
- cmd "scp ${TMPBLAE} ${SCONSLOGIN}@${SCONSHOST}:${SCONSDEST}/${BASELINE}.ae"
- cmd "rm ${TMPBLAE}"
- ;;
-esac
-
-#
-# Copy the latest .tar.gz and .zip files to the constant location on
-# SourceForge.
-#
-case "${DO}" in
-*z* )
- BUILD_DIST=`aegis -p ${AEGIS_PROJECT} -cd -bl`/build/dist
- SCONS_SRC_TAR_GZ=`echo ${AEGIS_PROJECT} | sed 's/scons./scons-src-/'`*.tar.gz
- SCONS_SRC_ZIP=`echo ${AEGIS_PROJECT} | sed 's/scons./scons-src-/'`*.zip
- cmd "scp ${BUILD_DIST}/${SCONS_SRC_TAR_GZ} ${SCONSLOGIN}@${SCONSHOST}:${SCONSDEST}/scons-src-latest.tar.gz"
- cmd "scp ${BUILD_DIST}/${SCONS_SRC_ZIP} ${SCONSLOGIN}@${SCONSHOST}:${SCONSDEST}/scons-src-latest.zip"
-esac
-
-#
-# Sync Aegis tree with SourceForge.
-#
-# Cribbed and modified from Peter Miller's same-named script in
-# /home/groups/a/ae/aegis/aegis at SourceForge.
-#
-# Guide to what this does with rsync:
-#
-# --rsh=ssh use ssh for the transfer
-# -l copy symlinks as symlinks
-# -p preserve permissions
-# -r recursive
-# -t preserve times
-# -z compress data
-# --stats file transfer statistics
-# --exclude exclude files matching the pattern
-# --delete delete files that don't exist locally
-# --delete-excluded delete files that match the --exclude patterns
-# --progress show progress during the transfer
-# -v verbose
-#
-# We no longer use the --stats option.
-#
-case "${DO}" in
-*r* )
- LOCAL=/home/scons/scons
- REMOTE=/home/groups/s/sc/scons/scons
- cmd "/usr/bin/rsync --rsh='ssh -l stevenknight' \
- -l -p -r -t -z \
- --exclude build \
- --exclude '*,D' \
- --exclude '*.pyc' \
- --exclude aegis.log \
- --exclude '.sconsign*' \
- --delete --delete-excluded \
- --progress -v \
- ${LOCAL}/. scons.sourceforge.net:${REMOTE}/."
- ;;
-esac
-
-#
-# Sync the CVS tree with the local repository.
-#
-case "${DO}" in
-*l* )
- (
- export CVSROOT=/home/scons/CVSROOT/scons
- #cmd "ae2cvs -X -aegis -p ${AEGIS_PROJECT} -c ${CHANGE} -u $HOME/SCons/baldmt.com/scons"
- cmd "ae-cvs-ci ${AEGIS_PROJECT} ${CHANGE}"
- )
- ;;
-esac
-
-#
-# Sync the Subversion tree with Tigris.org.
-#
-case "${DO}" in
-*t* )
- (
- SVN=http://scons.tigris.org/svn/scons
- case ${AEGIS_PROJECT} in
- scons.0.96 )
- SVN_URL=${SVN}/branches/core
- ;;
- scons.0.96.513 )
- SVN_URL=${SVN}/branches/sigrefactor
- ;;
- * )
- echo "$PROG: Don't know SVN branch for '${AEGIS_PROJECT}'" >&2
- exit 1
- ;;
- esac
- SVN_CO_FLAGS="--username stevenknight"
- #cmd "ae2cvs -X -aegis -p ${AEGIS_PROJECT} -c ${CHANGE} -u $HOME/SCons/tigris.org/scons"
- cmd "ae-svn-ci ${AEGIS_PROJECT} ${CHANGE} ${SVN_URL} ${SVN_CO_FLAGS}"
- )
- ;;
-esac
-
-#
-# Sync the CVS tree with SourceForge.
-#
-case "${DO}" in
-*s* )
- (
- export CVS_RSH=ssh
- export CVSROOT=:ext:stevenknight@scons.cvs.sourceforge.net:/cvsroot/scons
- #cmd "ae2cvs -X -aegis -p ${AEGIS_PROJECT} -c ${CHANGE} -u $HOME/SCons/sourceforge.net/scons"
- cmd "ae-cvs-ci ${AEGIS_PROJECT} ${CHANGE}"
- )
- ;;
-esac
-
-#
-# Send the change .ae to the scons-aedist mailing list
-#
-# The subject requires editing by hand...
-#
-#aedist -s -p ${AEGIS_PROJECT} ${CHANGE} > ${TMPCAE}
-#aegis -l -p ${AEGIS_PROJECT} -c ${CHANGE} cd |
-# pine -attach_and_delete ${TMPCAE} scons-aedist@lists.sourceforge.net
diff --git a/bin/time-scons.py b/bin/time-scons.py
index b7d8ef1..c5cd0cc 100644
--- a/bin/time-scons.py
+++ b/bin/time-scons.py
@@ -43,7 +43,7 @@ TimeSCons_revision = 4569
# The pieces of the TimeSCons infrastructure that are necessary to
# produce consistent timings, even when the rest of the tree is from
# an earlier revision that doesn't have these pieces.
-TimeSCons_pieces = ['QMTest', 'timings', 'runtest.py']
+TimeSCons_pieces = ['testing/framework', 'timings', 'runtest.py']
class CommandRunner(object):
diff --git a/bin/update-release-info.py b/bin/update-release-info.py
index 81e0df5..5b871cb 100644
--- a/bin/update-release-info.py
+++ b/bin/update-release-info.py
@@ -20,10 +20,10 @@ in various files:
- The RELEASE header line in src/CHANGES.txt and src/Announce.txt.
- The version string at the top of src/RELEASE.txt.
- The version string in the 'default_version' variable in SConstruct
- and QMTest/TestSCons.py.
- - The copyright years in SConstruct and QMTest/TestSCons.py.
+ and testing/framework/TestSCons.py.
+ - The copyright years in SConstruct and testing/framework/TestSCons.py.
- The month and year (used for documentation) in SConstruct.
- - The unsupported and deprecated Python floors in QMTest/TestSCons.py
+ - The unsupported and deprecated Python floors in testing/framework/TestSCons.py
and src/engine/SCons/Script/Main.py
- The version string in the filenames in README.
@@ -315,9 +315,9 @@ for suf in ['tar', 'win32', 'zip', 'rpm', 'exe', 'deb']:
'-%s.%s' % (version_string, suf),
count = 0)
-# Update QMTest/TestSCons.py
+# Update testing/framework/TestSCons.py
-t = UpdateFile(os.path.join('QMTest', 'TestSCons.py'))
+t = UpdateFile(os.path.join('testing','framework', 'TestSCons.py'))
if DEBUG: t.file = '/tmp/TestSCons.py'
t.replace_assign('copyright_years', repr(copyright_years))
t.replace_assign('default_version', repr(version_string))
diff --git a/bin/xmlagenda.py b/bin/xmlagenda.py
index fcfe53e..7091ee5 100755
--- a/bin/xmlagenda.py
+++ b/bin/xmlagenda.py
@@ -1,7 +1,9 @@
#!/usr/bin/env python
-# Query the scons.tigris.org database for the issues of interest.
-# The typical triage query is found on http://www.scons.org/wiki/BugParty
+# Query gihub issue tracker for the issues of interest.
+# The typical triage query is found on
+# https://github.com/scons/scons/wiki/BugParty
+# FIXME: this needs reworking for github, and wiki needs updating
# Download the issues from Issuezilla as XML; this creates a file
# named 'issues.xml'. Run this script in the dir containing
diff --git a/doc/design/native.xml b/doc/design/native.xml
index cd4edaf..0ea4074 100644
--- a/doc/design/native.xml
+++ b/doc/design/native.xml
@@ -64,8 +64,9 @@
<para>
By default, the &SCons; utility searches for a file named
- &SConstruct;, &Sconstruct; or &sconstruct; (in that order) in the
- current directory, and reads its configuration from the first file
+ &SConstruct;, &Sconstruct;, &sconstruct;, &SConstruct.py;, &Sconstruct.py;
+ or &sconstruct.py; (in that order) in the current directory,
+ and reads its configuration from the first file
found. A <option>-f</option> command-line option exists to read a
different file name.
diff --git a/doc/man/scons.xml b/doc/man/scons.xml
index 03a3478..abbed4f 100644
--- a/doc/man/scons.xml
+++ b/doc/man/scons.xml
@@ -105,8 +105,11 @@ rebuild them.</para>
searches for a file named
<emphasis>SConstruct</emphasis>,
<emphasis>Sconstruct</emphasis>,
+<emphasis>sconstruct</emphasis>,
+<emphasis>SConstruct.py</emphasis>
+<emphasis>Sconstruct.py</emphasis>
or
-<emphasis>sconstruct</emphasis>
+<emphasis>sconstruct.py</emphasis>
(in that order) in the current directory and reads its
configuration from the first file found.
An alternate file name may be
@@ -635,8 +638,11 @@ yet have any results in the cache.</para>
before searching for the
<emphasis>SConstruct</emphasis>,
<emphasis>Sconstruct</emphasis>,
+<emphasis>sconstruct</emphasis>,
+<emphasis>SConstruct.py</emphasis>
+<emphasis>Sconstruct.py</emphasis>
or
-<emphasis>sconstruct</emphasis>
+<emphasis>sconstruct.py</emphasis>
file, or doing anything
else. Multiple
<option>-C</option>
@@ -649,8 +655,11 @@ equivalent to
except that it will search for
<emphasis>SConstruct</emphasis>,
<emphasis>Sconstruct</emphasis>,
+<emphasis>sconstruct</emphasis>,
+<emphasis>SConstruct.py</emphasis>
+<emphasis>Sconstruct.py</emphasis>
or
-<emphasis>sconstruct</emphasis>
+<emphasis>sconstruct.py</emphasis>
in the specified directory.)</para>
<!-- .TP -->
@@ -1658,9 +1667,12 @@ scons --tree=all,prune,status target
<listitem>
<para>Walks up the directory structure until an
<emphasis>SConstruct ,</emphasis>
-<emphasis>Sconstruct</emphasis>
+<emphasis>Sconstruct ,</emphasis>
+<emphasis>sconstruct ,</emphasis>
+<emphasis>SConstruct.py</emphasis>
+<emphasis>Sconstruct.py</emphasis>
or
-<emphasis>sconstruct</emphasis>
+<emphasis>sconstruct.py</emphasis>
file is found, and uses that
as the top of the directory tree.
If no targets are specified on the command line,
diff --git a/doc/scons.mod b/doc/scons.mod
index 448a212..974ec02 100644
--- a/doc/scons.mod
+++ b/doc/scons.mod
@@ -137,6 +137,9 @@
<!ENTITY SConstruct "<filename xmlns='http://www.scons.org/dbxsd/v1.0'>SConstruct</filename>">
<!ENTITY Sconstruct "<filename xmlns='http://www.scons.org/dbxsd/v1.0'>Sconstruct</filename>">
<!ENTITY sconstruct "<filename xmlns='http://www.scons.org/dbxsd/v1.0'>sconstruct</filename>">
+<!ENTITY SConstruct.py "<filename xmlns='http://www.scons.org/dbxsd/v1.0'>SConstruct.py</filename>">
+<!ENTITY Sconstruct.py "<filename xmlns='http://www.scons.org/dbxsd/v1.0'>Sconstruct.py</filename>">
+<!ENTITY sconstruct.py "<filename xmlns='http://www.scons.org/dbxsd/v1.0'>sconstruct.py</filename>">
<!ENTITY sconsign "<filename xmlns='http://www.scons.org/dbxsd/v1.0'>.sconsign</filename>">
<!ENTITY src "<filename xmlns='http://www.scons.org/dbxsd/v1.0'>src</filename>">
diff --git a/runtest.py b/runtest.py
index cf8925c..e5c5f2f 100755
--- a/runtest.py
+++ b/runtest.py
@@ -8,9 +8,9 @@
#
# - unit tests - included in *Tests.py files from src/ dir
# - end-to-end tests - these are *.py files in test/ directory that
-# require custom SCons framework from QMTest/
+# require custom SCons framework from testing/
#
-# This script adds src/ and QMTest/ directories to PYTHONPATH,
+# This script adds src/ and testing/ directories to PYTHONPATH,
# performs test discovery and processes them according to options.
#
# With -p (--package) option, script tests specified package from
@@ -625,10 +625,8 @@ old_pythonpath = os.environ.get('PYTHONPATH')
# should be able to go away.
pythonpaths = [ pythonpath_dir ]
-# Add path of the QMTest folder to PYTHONPATH
-# [ ] move used parts from QMTest to testing/framework/
scriptpath = os.path.dirname(os.path.realpath(__file__))
-pythonpaths.append(os.path.join(scriptpath, 'QMTest'))
+
# Add path for testing framework to PYTHONPATH
pythonpaths.append(os.path.join(scriptpath, 'testing', 'framework'))
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index dccf61e..8cd8975 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -7,6 +7,17 @@
RELEASE 3.1.0.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE
+ From Philipp Maierhöfer
+ - Added a __hash__ method to the class Scons.Subst.Literal. Required when substituting Literal
+ objects when SCons runs with Python 3.
+
+ From Richard West:
+ - Add SConstruct.py, Sconstruct.py, sconstruct.py to the search path for the root SConstruct file.
+ Allows easier debugging within Visual Studio
+
+ From Bernard Blackham:
+ - Fixed handling of side-effects in task master (fixes #3013).
+
From Daniel Moody:
- Updated gettext tools to setup default paths for windows with Cygwin/MinGW setups
- Add common location for default paths for cygwin and mingw in Platform modules
@@ -28,6 +39,11 @@ RELEASE 3.1.0.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE
From William Deegan:
- Remove long deprecated SCons.Options code and tests. This removes BoolOption,EnumOption,
ListOption,PackageOption, and PathOption which have been replaced by *Variable() many years ago.
+ - Fix issue # 3106 MSVC if using MSVC_BATCH and target dir had a space would fail due to quirk in
+ MSVC's handling of escaped targetdirs when batch compiling.
+ - Re-Enable parallel SCons (-j) when running via Pypy
+ - Move SCons test framework files to testing/framework and remove all references to QMtest.
+ QMTest has not been used by SCons for some time now.
From Andrew Featherstone
- Removed unused --warn options from the man page and source code.
@@ -50,13 +66,21 @@ RELEASE 3.1.0.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE
From Mats Wichmann:
- Updated manpage scons.xml to fix a nested list problem
- - Updated doc terminionly: use prepend instead of append as appropriate
+ - Updated doc terminiology: use prepend instead of append as appropriate
+ - xml validity fixes from SConstruct.py change
+ - update wiki links to new github location
+ - update bug links to new github location
From Jonathon Reinhart:
- Replace all instances of `int main()` in C code with `int main(void)`.
Specifically, this fixes the test cases use by Configure.CheckCC() which
would fail when using -Wstrict-prototypes.
+ From Fredrik Medley:
+ - Fix exception when printing of EnviromentError messages.
+ Specifically, this fixes error reporting of the race condition when
+ initializing the cache which error previously was hidden.
+
RELEASE 3.0.1 - Mon, 12 Nov 2017 15:31:33 -0700
diff --git a/src/engine/SCons/Errors.py b/src/engine/SCons/Errors.py
index dae20b2..3746d5d 100644
--- a/src/engine/SCons/Errors.py
+++ b/src/engine/SCons/Errors.py
@@ -190,14 +190,13 @@ def convert_to_BuildError(status, exc_info=None):
# error, which might be different from the target being built
# (for example, failure to create the directory in which the
# target file will appear).
- try:
- filename = status.filename
- except AttributeError:
- filename = None
+ filename = getattr(status, 'filename', None)
+ strerror = getattr(status, 'strerror', str(status))
+ errno = getattr(status, 'errno', 2)
buildError = BuildError(
- errstr=status.strerror,
- status=status.errno,
+ errstr=strerror,
+ status=errno,
exitstatus=2,
filename=filename,
exc_info=exc_info)
diff --git a/src/engine/SCons/ErrorsTests.py b/src/engine/SCons/ErrorsTests.py
index c38158d..7819580 100644
--- a/src/engine/SCons/ErrorsTests.py
+++ b/src/engine/SCons/ErrorsTests.py
@@ -23,6 +23,8 @@
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+import errno
+import os
import sys
import unittest
@@ -100,6 +102,29 @@ class ErrorsTestCase(unittest.TestCase):
except SCons.Errors.ExplicitExit as e:
assert e.node == "node"
+ def test_convert_EnvironmentError_to_BuildError(self):
+ """Test the convert_to_BuildError function on EnvironmentError
+ exceptions.
+ """
+ ee = SCons.Errors.EnvironmentError("test env error")
+ be = SCons.Errors.convert_to_BuildError(ee)
+ assert be.errstr == "test env error"
+ assert be.status == 2
+ assert be.exitstatus == 2
+ assert be.filename is None
+
+ def test_convert_OSError_to_BuildError(self):
+ """Test the convert_to_BuildError function on OSError
+ exceptions.
+ """
+ ose = OSError(7, 'test oserror')
+ be = SCons.Errors.convert_to_BuildError(ose)
+ assert be.errstr == 'test oserror'
+ assert be.status == 7
+ assert be.exitstatus == 2
+ assert be.filename is None
+
+
if __name__ == "__main__":
suite = unittest.makeSuite(ErrorsTestCase, 'test_')
TestUnit.run(suite)
diff --git a/src/engine/SCons/Platform/win32.py b/src/engine/SCons/Platform/win32.py
index 0e9e01f..5c877b5 100644
--- a/src/engine/SCons/Platform/win32.py
+++ b/src/engine/SCons/Platform/win32.py
@@ -132,7 +132,7 @@ try:
# Without this, python can randomly crash while using -jN.
# See the python bug at http://bugs.python.org/issue6476
# and SCons issue at
- # http://scons.tigris.org/issues/show_bug.cgi?id=2449
+ # https://github.com/SCons/scons/issues/2449
def spawnve(mode, file, args, env):
spawn_lock.acquire()
try:
diff --git a/src/engine/SCons/Script/Main.py b/src/engine/SCons/Script/Main.py
index c810634..923ef1e 100644
--- a/src/engine/SCons/Script/Main.py
+++ b/src/engine/SCons/Script/Main.py
@@ -48,6 +48,7 @@ import sys
import time
import traceback
import sysconfig
+import platform
import SCons.CacheDir
import SCons.Debug
@@ -622,7 +623,7 @@ def _SConstruct_exists(dirname='', repositories=[], filelist=None):
current directory.
"""
if not filelist:
- filelist = ['SConstruct', 'Sconstruct', 'sconstruct']
+ filelist = ['SConstruct', 'Sconstruct', 'sconstruct', 'SConstruct.py', 'Sconstruct.py', 'sconstruct.py']
for file in filelist:
sfile = os.path.join(dirname, file)
if os.path.isfile(sfile):
@@ -1253,7 +1254,8 @@ def _build_targets(fs, options, targets, target_top):
BuildTask.options = options
- python_has_threads = sysconfig.get_config_var('WITH_THREAD')
+ is_pypy = platform.python_implementation() == 'PyPy'
+ python_has_threads = sysconfig.get_config_var('WITH_THREAD') or is_pypy
# to check if python configured with threads.
global num_jobs
num_jobs = options.num_jobs
diff --git a/src/engine/SCons/Subst.py b/src/engine/SCons/Subst.py
index 68d247f..0b4190b 100644
--- a/src/engine/SCons/Subst.py
+++ b/src/engine/SCons/Subst.py
@@ -86,6 +86,9 @@ class Literal(object):
def __neq__(self, other):
return not self.__eq__(other)
+ def __hash__(self):
+ return hash(self.lstr)
+
class SpecialAttrWrapper(object):
"""This is a wrapper for what we call a 'Node special attribute.'
This is any of the attributes of a Node that we can reference from
diff --git a/src/engine/SCons/Taskmaster.py b/src/engine/SCons/Taskmaster.py
index 17507a6..1522ca2 100644
--- a/src/engine/SCons/Taskmaster.py
+++ b/src/engine/SCons/Taskmaster.py
@@ -470,14 +470,23 @@ class Task(object):
pending_children.discard(t)
for p in t.waiting_parents:
parents[p] = parents.get(p, 0) + 1
+ t.waiting_parents = set()
for t in targets:
if t.side_effects is not None:
for s in t.side_effects:
if s.get_state() == NODE_EXECUTING:
s.set_state(NODE_NO_STATE)
+
+ # The side-effects may have been transferred to
+ # NODE_NO_STATE by executed_with{,out}_callbacks, but was
+ # not taken out of the waiting parents/pending children
+ # data structures. Check for that now.
+ if s.get_state() == NODE_NO_STATE and s.waiting_parents:
+ pending_children.discard(s)
for p in s.waiting_parents:
parents[p] = parents.get(p, 0) + 1
+ s.waiting_parents = set()
for p in s.waiting_s_e:
if p.ref_count == 0:
self.tm.candidates.append(p)
diff --git a/src/engine/SCons/Tool/JavaCommon.py b/src/engine/SCons/Tool/JavaCommon.py
index 8b13f9f..dfb9e33 100644
--- a/src/engine/SCons/Tool/JavaCommon.py
+++ b/src/engine/SCons/Tool/JavaCommon.py
@@ -245,7 +245,7 @@ if java_parsing:
# If that's an inner class which is declared in a method, it
# requires an index prepended to the class-name, e.g.
# 'Foo$1Inner'
- # http://scons.tigris.org/issues/show_bug.cgi?id=2087
+ # https://github.com/SCons/scons/issues/2087
if self.outer_state.localClasses and \
self.outer_state.stackBrackets[-1] > \
self.outer_state.stackBrackets[-2]+1:
diff --git a/src/engine/SCons/Tool/MSCommon/arch.py b/src/engine/SCons/Tool/MSCommon/arch.py
index 9bcc221..ad17959 100644
--- a/src/engine/SCons/Tool/MSCommon/arch.py
+++ b/src/engine/SCons/Tool/MSCommon/arch.py
@@ -37,22 +37,22 @@ class ArchDefinition(object):
self.synonyms = synonyms
SupportedArchitectureList = [
- ArchitectureDefinition(
+ ArchDefinition(
'x86',
['i386', 'i486', 'i586', 'i686'],
),
- ArchitectureDefinition(
+ ArchDefinition(
'x86_64',
['AMD64', 'amd64', 'em64t', 'EM64T', 'x86_64'],
),
- ArchitectureDefinition(
+ ArchDefinition(
'ia64',
['IA64'],
),
- ArchitectureDefinition(
+ ArchDefinition(
'arm',
['ARM'],
),
diff --git a/src/engine/SCons/Tool/docbook/docs/manual.xml b/src/engine/SCons/Tool/docbook/docs/manual.xml
index c129753..64ee925 100644
--- a/src/engine/SCons/Tool/docbook/docs/manual.xml
+++ b/src/engine/SCons/Tool/docbook/docs/manual.xml
@@ -67,7 +67,7 @@ package's <literal>docbook</literal> folder to
<itemizedlist><listitem><para>the SCons User's Guide, chap. 19.7 "Where to put your custom Builders and Tools" and
</para>
</listitem>
-<listitem><para>the SCons Tools Wiki page at <ulink url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.
+<listitem><para>the SCons Tools Wiki page at <ulink url="https://github.com/SCons/scons/wiki/ToolsIndex">http://github.com/SCons/scons/wiki/ToolsIndex</ulink>.
</para>
</listitem>
</itemizedlist>
diff --git a/src/engine/SCons/Tool/jar.py b/src/engine/SCons/Tool/jar.py
index 5e3711a..6e319c1 100644
--- a/src/engine/SCons/Tool/jar.py
+++ b/src/engine/SCons/Tool/jar.py
@@ -140,7 +140,7 @@ def Jar(env, target = None, source = [], *args, **kw):
# source for jar, otherwise turn it into a class file then
# return the source
def file_to_class(s):
- if(str(_my_normcase(s)).endswith(java_suffix)):
+ if _my_normcase(str(s)).endswith(java_suffix):
return env.JavaClassFile(source = s, *args, **kw)
else:
return [env.fs.File(s)]
diff --git a/src/engine/SCons/Tool/msvc.py b/src/engine/SCons/Tool/msvc.py
index e1b0536..1412cf7 100644
--- a/src/engine/SCons/Tool/msvc.py
+++ b/src/engine/SCons/Tool/msvc.py
@@ -112,7 +112,7 @@ def object_emitter(target, source, env, parent_emitter):
#
# See issue #2505 for a discussion of what to do if it turns
# out this assumption causes trouble in the wild:
- # http://scons.tigris.org/issues/show_bug.cgi?id=2505
+ # https://github.com/SCons/scons/issues/2505
if 'PCH' in env:
pch = env['PCH']
if str(target[0]) != SCons.Util.splitext(str(pch))[0] + '.obj':
@@ -195,7 +195,10 @@ def msvc_output_flag(target, source, env, for_signature):
# that the test(s) for this can be run on non-Windows systems
# without having a hard-coded backslash mess up command-line
# argument parsing.
- return '/Fo${TARGET.dir}' + os.sep
+ # Adding double os.sep's as if the TARGET.dir has a space or otherwise
+ # needs to be quoted they are needed per MSVC's odd behavior
+ # See: https://github.com/SCons/scons/issues/3106
+ return '/Fo${TARGET.dir}' + os.sep*2
CAction = SCons.Action.Action("$CCCOM", "$CCCOMSTR",
batch_key=msvc_batch_key,
diff --git a/src/test_strings.py b/src/test_strings.py
index 297d59d..e9f0abf 100644
--- a/src/test_strings.py
+++ b/src/test_strings.py
@@ -208,12 +208,10 @@ check_list = [
'doc/user/SCons-win32-install-4.jpg',
'examples',
'gentoo',
- 'QMTest/classes.qmc',
- 'QMTest/configuration',
- 'QMTest/TestCmd.py',
- 'QMTest/TestCmdTests.py',
- 'QMTest/TestCommon.py',
- 'QMTest/TestCommonTests.py',
+ 'testing/framework/TestCmd.py',
+ 'testing/framework/TestCmdTests.py',
+ 'testing/framework/TestCommon.py',
+ 'testing/framework/TestCommonTests.py',
'src/MANIFEST.in',
'src/setup.cfg',
'src/engine/MANIFEST.in',
diff --git a/test/CPPDEFINES/append.py b/test/CPPDEFINES/append.py
index 7973f22..874fceb 100644
--- a/test/CPPDEFINES/append.py
+++ b/test/CPPDEFINES/append.py
@@ -43,7 +43,7 @@ env_1738_2.Append(CPPDEFINES={'value' : '1'})
print(env_1738_2.subst('$_CPPDEFFLAGS'))
#env_1738_2.Object('test_1738_2', 'main.c')
-# http://scons.tigris.org/issues/show_bug.cgi?id=2300
+# https://github.com/SCons/scons/issues/2300
env_2300_1 = Environment(CPPDEFINES = 'foo', CPPDEFPREFIX='-D')
env_2300_1.Append(CPPDEFINES='bar')
print(env_2300_1.subst('$_CPPDEFFLAGS'))
@@ -52,8 +52,8 @@ env_2300_2 = Environment(CPPDEFINES = ['foo'], CPPDEFPREFIX='-D') # note the lis
env_2300_2.Append(CPPDEFINES='bar')
print(env_2300_2.subst('$_CPPDEFFLAGS'))
-# http://scons.tigris.org/issues/show_bug.cgi?id=1152
-# http://scons.tigris.org/issues/show_bug.cgi?id=2900
+# https://github.com/SCons/scons/issues/1152
+# https://github.com/SCons/scons/issues/2900
# Python3 dicts dont preserve order. Hence we supply subclass of OrderedDict
# whose __str__ and __repr__ act like a normal dict.
from collections import OrderedDict
diff --git a/test/CPPDEFINES/pkg-config.py b/test/CPPDEFINES/pkg-config.py
index 42f38b6..4096934 100644
--- a/test/CPPDEFINES/pkg-config.py
+++ b/test/CPPDEFINES/pkg-config.py
@@ -70,7 +70,7 @@ class OrderedPrintingDict(OrderedDict):
def __semi_deepcopy__(self):
return self.copy()
""" + """
-# http://scons.tigris.org/issues/show_bug.cgi?id=2671
+# https://github.com/SCons/scons/issues/2671
# Passing test cases
env_1 = Environment(CPPDEFINES=[('DEBUG','1'), 'TEST'])
env_1.ParseConfig('PKG_CONFIG_PATH=. %(pkg_config_path)s --cflags bug')
@@ -89,7 +89,7 @@ env_4 = Environment(CPPDEFINES=OrderedPrintingDict([('DEBUG', 1), ('TEST', None)
env_4.MergeFlags('-DSOMETHING -DVARIABLE=2')
print(env_4.subst('$_CPPDEFFLAGS'))
-# http://scons.tigris.org/issues/show_bug.cgi?id=1738
+# https://github.com/SCons/scons/issues/1738
env_1738_1 = Environment(tools=['default'])
env_1738_1.ParseConfig('PKG_CONFIG_PATH=. %(pkg_config_path)s --cflags --libs bug')
env_1738_1.Append(CPPDEFINES={'value' : '1'})
diff --git a/test/D/Issues/2994/Common/D_changed_DFLAGS_not_rebuilding.py b/test/D/Issues/2994/Common/D_changed_DFLAGS_not_rebuilding.py
index 7e69f50..07b1366 100644
--- a/test/D/Issues/2994/Common/D_changed_DFLAGS_not_rebuilding.py
+++ b/test/D/Issues/2994/Common/D_changed_DFLAGS_not_rebuilding.py
@@ -1,6 +1,6 @@
"""
-Test to check for issue reported in tigris bug 2994
-http://scons.tigris.org/issues/show_bug.cgi?id=2994
+Test to check for issue reported in github issue 2994
+https://github.com/SCons/scons/issues/2994
"""
#
diff --git a/test/D/Support/executablesSearch.py b/test/D/Support/executablesSearch.py
index 17d9990..c572f56 100755
--- a/test/D/Support/executablesSearch.py
+++ b/test/D/Support/executablesSearch.py
@@ -51,7 +51,7 @@ def isExecutableOfToolAvailable(test, tool):
if __name__ == '__main__':
import unittest
- sys.path.append(os.path.abspath('../../../QMTest'))
+ sys.path.append(os.path.abspath('../../../testing/framework'))
import TestSCons
diff --git a/test/Depends/no-Builder.py b/test/Depends/no-Builder.py
index 48ab724..f55fcf9 100644
--- a/test/Depends/no-Builder.py
+++ b/test/Depends/no-Builder.py
@@ -40,7 +40,7 @@ file2 = File('file2')
env.Depends(file1, [[file2, 'file3']])
# Verify that a "hidden" file created by another action causes the
# action to run when an explicit Dependency is specified.
-# See http://scons.tigris.org/issues/show_bug.cgi?id=2647
+# https://github.com/SCons/scons/issues/2647
env.Depends('hidden', 'file4.out')
env.Command('file4.out', 'file4.in',
[Copy('$TARGET', '$SOURCE'), Touch('hidden')])
diff --git a/test/Docbook/basedir/htmlchunked/image/manual.xml b/test/Docbook/basedir/htmlchunked/image/manual.xml
index ca12e0e..067c76e 100644
--- a/test/Docbook/basedir/htmlchunked/image/manual.xml
+++ b/test/Docbook/basedir/htmlchunked/image/manual.xml
@@ -72,7 +72,7 @@
<listitem>
<para>the SCons Tools Wiki page at <ulink
- url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.</para>
+ url="https://github.com/SCons/scons/wiki/ToolsIndex">https://github.com/SCons/scons/wiki/ToolsIndex</ulink>.</para>
</listitem>
</itemizedlist>
</section>
diff --git a/test/Docbook/basedir/htmlhelp/image/manual.xml b/test/Docbook/basedir/htmlhelp/image/manual.xml
index ca12e0e..067c76e 100644
--- a/test/Docbook/basedir/htmlhelp/image/manual.xml
+++ b/test/Docbook/basedir/htmlhelp/image/manual.xml
@@ -72,7 +72,7 @@
<listitem>
<para>the SCons Tools Wiki page at <ulink
- url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.</para>
+ url="https://github.com/SCons/scons/wiki/ToolsIndex">https://github.com/SCons/scons/wiki/ToolsIndex</ulink>.</para>
</listitem>
</itemizedlist>
</section>
diff --git a/test/Docbook/basic/epub/image/manual.xml b/test/Docbook/basic/epub/image/manual.xml
index ca12e0e..067c76e 100644
--- a/test/Docbook/basic/epub/image/manual.xml
+++ b/test/Docbook/basic/epub/image/manual.xml
@@ -72,7 +72,7 @@
<listitem>
<para>the SCons Tools Wiki page at <ulink
- url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.</para>
+ url="https://github.com/SCons/scons/wiki/ToolsIndex">https://github.com/SCons/scons/wiki/ToolsIndex</ulink>.</para>
</listitem>
</itemizedlist>
</section>
diff --git a/test/Docbook/basic/html/image/manual.xml b/test/Docbook/basic/html/image/manual.xml
index ca12e0e..067c76e 100644
--- a/test/Docbook/basic/html/image/manual.xml
+++ b/test/Docbook/basic/html/image/manual.xml
@@ -72,7 +72,7 @@
<listitem>
<para>the SCons Tools Wiki page at <ulink
- url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.</para>
+ url="https://github.com/SCons/scons/wiki/ToolsIndex">https://github.com/SCons/scons/wiki/ToolsIndex</ulink>.</para>
</listitem>
</itemizedlist>
</section>
diff --git a/test/Docbook/basic/htmlchunked/image/manual.xml b/test/Docbook/basic/htmlchunked/image/manual.xml
index ca12e0e..067c76e 100644
--- a/test/Docbook/basic/htmlchunked/image/manual.xml
+++ b/test/Docbook/basic/htmlchunked/image/manual.xml
@@ -72,7 +72,7 @@
<listitem>
<para>the SCons Tools Wiki page at <ulink
- url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.</para>
+ url="https://github.com/SCons/scons/wiki/ToolsIndex">https://github.com/SCons/scons/wiki/ToolsIndex</ulink>.</para>
</listitem>
</itemizedlist>
</section>
diff --git a/test/Docbook/basic/htmlhelp/image/manual.xml b/test/Docbook/basic/htmlhelp/image/manual.xml
index ca12e0e..067c76e 100644
--- a/test/Docbook/basic/htmlhelp/image/manual.xml
+++ b/test/Docbook/basic/htmlhelp/image/manual.xml
@@ -72,7 +72,7 @@
<listitem>
<para>the SCons Tools Wiki page at <ulink
- url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.</para>
+ url="https://github.com/SCons/scons/wiki/ToolsIndex">https://github.com/SCons/scons/wiki/ToolsIndex</ulink>.</para>
</listitem>
</itemizedlist>
</section>
diff --git a/test/Docbook/rootname/htmlchunked/image/manual.xml b/test/Docbook/rootname/htmlchunked/image/manual.xml
index ca12e0e..067c76e 100644
--- a/test/Docbook/rootname/htmlchunked/image/manual.xml
+++ b/test/Docbook/rootname/htmlchunked/image/manual.xml
@@ -72,7 +72,7 @@
<listitem>
<para>the SCons Tools Wiki page at <ulink
- url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.</para>
+ url="https://github.com/SCons/scons/wiki/ToolsIndex">https://github.com/SCons/scons/wiki/ToolsIndex</ulink>.</para>
</listitem>
</itemizedlist>
</section>
diff --git a/test/Docbook/rootname/htmlhelp/image/manual.xml b/test/Docbook/rootname/htmlhelp/image/manual.xml
index ca12e0e..067c76e 100644
--- a/test/Docbook/rootname/htmlhelp/image/manual.xml
+++ b/test/Docbook/rootname/htmlhelp/image/manual.xml
@@ -72,7 +72,7 @@
<listitem>
<para>the SCons Tools Wiki page at <ulink
- url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.</para>
+ url="https://github.com/SCons/scons/wiki/ToolsIndex">https://github.com/SCons/scons/wiki/ToolsIndex</ulink>.</para>
</listitem>
</itemizedlist>
</section>
diff --git a/test/ExecuteInvalidateCache.py b/test/ExecuteInvalidateCache.py
index acc7701..f6ed391 100644
--- a/test/ExecuteInvalidateCache.py
+++ b/test/ExecuteInvalidateCache.py
@@ -27,7 +27,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
"""
Test the Execute() functions clears the memoized values of affected target Nodes
when used with Delete(). Derived from
-http://scons.tigris.org/issues/show_bug.cgi?id=1307
+https://github.com/SCons/scons/issues/1307
"""
import TestSCons
diff --git a/test/Fortran/USE-MODULE-CASEINSENS.py b/test/Fortran/USE-MODULE-CASEINSENS.py
index 44c03fe..4dd115b 100644
--- a/test/Fortran/USE-MODULE-CASEINSENS.py
+++ b/test/Fortran/USE-MODULE-CASEINSENS.py
@@ -27,7 +27,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
# This test tests whether a file that defines a module "a" and
# then uses it with a different case ("A") works. Pre-2.0, this
# gave a spurious dependency cycle error.
-# See http://scons.tigris.org/issues/show_bug.cgi?id=2574
+# See https://github.com/SCons/scons/issues/2574
import TestSCons
diff --git a/test/Java/JAR.py b/test/Java/JAR.py
index d62696c..faf01a3 100644
--- a/test/Java/JAR.py
+++ b/test/Java/JAR.py
@@ -52,6 +52,7 @@ sys.exit(0)
""")
test.write('SConstruct', """
+DefaultEnvironment(tools=[])
env = Environment(tools = ['jar'],
JAR = r'%(_python_)s myjar.py')
env.Jar(target = 'test1.jar', source = 'test1.class')
@@ -70,6 +71,7 @@ test.must_match('test1.jar', "test1.class\nline 3\n", mode='r')
if os.path.normcase('.class') == os.path.normcase('.CLASS'):
test.write('SConstruct', """
+DefaultEnvironment(tools=[])
env = Environment(tools = ['jar'],
JAR = r'%(_python_)s myjar.py')
env.Jar(target = 'test2.jar', source = 'test2.CLASS')
@@ -95,6 +97,7 @@ sys.exit(0)
""")
test.write('SConstruct', """
+DefaultEnvironment(tools=[])
env = Environment(tools = ['jar'],
JAR = r'%(_python_)s myjar2.py',
JARFLAGS='cvf')
@@ -126,6 +129,7 @@ where_jar = test.java_where_jar()
test.file_fixture('wrapper_with_args.py')
test.write('SConstruct', """
+DefaultEnvironment(tools=[])
foo = Environment(tools = ['javac', 'jar'],
JAVAC = r'%(where_javac)s',
JAR = r'%(where_jar)s')
@@ -249,6 +253,8 @@ test.subdir('testdir2',
# simple SConstruct which passes the 3 .java as source
# and extracts the jars back to classes
test.write(['testdir2', 'SConstruct'], """
+DefaultEnvironment(tools=[])
+
foo = Environment()
foo.Jar(target = 'foobar', source = [
'com/javasource/JavaFile1.java',
@@ -345,6 +351,8 @@ test.subdir('listOfLists',
# test varient dir and lists of lists
test.write(['listOfLists', 'SConstruct'], """
+DefaultEnvironment(tools=[])
+
foo = Environment()
foo.VariantDir('build', 'src', duplicate=0)
foo.VariantDir('test', '../manifest_dir', duplicate=0)
@@ -435,6 +443,8 @@ test.subdir('testdir3',
# Create the jars then extract them back to check contents
test.write(['testdir3', 'SConstruct'], """
+DefaultEnvironment(tools=[])
+
foo = Environment()
bar = foo.Clone()
foo.Java(target = 'classes', source = 'com/sub/foo')
diff --git a/test/Java/Java-1.4.py b/test/Java/Java-1.4.py
index 4076783..8bbefaf 100644
--- a/test/Java/Java-1.4.py
+++ b/test/Java/Java-1.4.py
@@ -267,7 +267,7 @@ class Foo { }
""")
# Test private inner class instantiation, courtesy Tilo Prutz:
-# http://scons.tigris.org/issues/show_bug.cgi?id=1594
+# https://github.com/SCons/scons/issues/1594
test.write(['src6', 'TestSCons.java'], """\
class test
{
diff --git a/test/Java/Java-1.5.py b/test/Java/Java-1.5.py
index 6659a16..58513e2 100644
--- a/test/Java/Java-1.5.py
+++ b/test/Java/Java-1.5.py
@@ -267,7 +267,7 @@ class Foo { }
""")
# Test private inner class instantiation, courtesy Tilo Prutz:
-# http://scons.tigris.org/issues/show_bug.cgi?id=1594
+# https://github.com/SCons/scons/issues/1594
test.write(['src6', 'TestSCons.java'], """\
class test
{
diff --git a/test/Java/Java-1.6.py b/test/Java/Java-1.6.py
index be46919..04a9155 100644
--- a/test/Java/Java-1.6.py
+++ b/test/Java/Java-1.6.py
@@ -267,7 +267,7 @@ class Foo { }
""")
# Test private inner class instantiation, courtesy Tilo Prutz:
-# http://scons.tigris.org/issues/show_bug.cgi?id=1594
+# https://github.com/SCons/scons/issues/1594
test.write(['src6', 'TestSCons.java'], """\
class test
{
diff --git a/test/Java/swig-dependencies.py b/test/Java/swig-dependencies.py
index c72c44a..bd7a576 100644
--- a/test/Java/swig-dependencies.py
+++ b/test/Java/swig-dependencies.py
@@ -130,7 +130,7 @@ except:
# Bug ticket reported also this seems work fine when running outsite
# the test framework
test.skip_test('Throwing no result for this test because of bug ' +
- 'related here: http://scons.tigris.org/issues/show_bug.cgi?id=2907\n')
+ 'related here: https://github.com/SCons/scons/issues/2907\n')
pass
#test.must_exist(['java', 'classes', 'foopack', 'foopack.class'])
#test.must_exist(['java', 'classes', 'foopack', 'foopackJNI.class'])
diff --git a/test/Libs/SharedLibrary-update-deps.py b/test/Libs/SharedLibrary-update-deps.py
index 076e3ad..3abce83 100644
--- a/test/Libs/SharedLibrary-update-deps.py
+++ b/test/Libs/SharedLibrary-update-deps.py
@@ -26,7 +26,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
"""
Test that SharedLibrary() updates when a different lib is linked, even if it has the same md5.
-This is http://scons.tigris.org/issues/show_bug.cgi?id=2903
+This is https://github.com/SCons/scons/issues/2903
"""
import sys
diff --git a/test/MSVC/MSVC_BATCH-spaces-targetdir.py b/test/MSVC/MSVC_BATCH-spaces-targetdir.py
new file mode 100644
index 0000000..298e10e
--- /dev/null
+++ b/test/MSVC/MSVC_BATCH-spaces-targetdir.py
@@ -0,0 +1,11 @@
+import TestSCons
+
+
+
+test = TestSCons.TestSCons()
+
+test.skip_if_not_msvc()
+
+
+test.dir_fixture('MSVC_BATCH-spaces-targetdir')
+test.run() \ No newline at end of file
diff --git a/test/MSVC/MSVC_BATCH-spaces-targetdir/SConstruct b/test/MSVC/MSVC_BATCH-spaces-targetdir/SConstruct
new file mode 100644
index 0000000..da8002b
--- /dev/null
+++ b/test/MSVC/MSVC_BATCH-spaces-targetdir/SConstruct
@@ -0,0 +1,8 @@
+import os.path
+
+env=Environment(MSVC_BATCH=True)
+
+td='tar ge tdir'
+VariantDir(td,'src')
+env.Program(os.path.join(td,'test_program'),
+ [os.path.join(td,a) for a in ['a.c','b.c','c.c']])
diff --git a/test/MSVC/MSVC_BATCH-spaces-targetdir/src/a.c b/test/MSVC/MSVC_BATCH-spaces-targetdir/src/a.c
new file mode 100644
index 0000000..1741de8
--- /dev/null
+++ b/test/MSVC/MSVC_BATCH-spaces-targetdir/src/a.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+
+extern void myfuncb();
+extern void myfuncc();
+
+
+void myfunca() {
+ printf("myfunca\n");
+}
+
+int main(int argc, char *argv[]) {
+ myfunca();
+ myfuncb();
+ myfuncc();
+} \ No newline at end of file
diff --git a/test/MSVC/MSVC_BATCH-spaces-targetdir/src/b.c b/test/MSVC/MSVC_BATCH-spaces-targetdir/src/b.c
new file mode 100644
index 0000000..e03c5d0
--- /dev/null
+++ b/test/MSVC/MSVC_BATCH-spaces-targetdir/src/b.c
@@ -0,0 +1,5 @@
+#include <stdio.h>
+
+void myfuncb() {
+ printf("myfuncb\n");
+} \ No newline at end of file
diff --git a/test/MSVC/MSVC_BATCH-spaces-targetdir/src/c.c b/test/MSVC/MSVC_BATCH-spaces-targetdir/src/c.c
new file mode 100644
index 0000000..1c262d3
--- /dev/null
+++ b/test/MSVC/MSVC_BATCH-spaces-targetdir/src/c.c
@@ -0,0 +1,5 @@
+#include <stdio.h>
+
+void myfuncc() {
+ printf("myfuncc\n");
+} \ No newline at end of file
diff --git a/test/MSVC/PCH-source.py b/test/MSVC/PCH-source.py
index 6015fec..ccab66d 100644
--- a/test/MSVC/PCH-source.py
+++ b/test/MSVC/PCH-source.py
@@ -28,7 +28,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
Test use of pre-compiled headers when the source .cpp file shows
up in both the env.PCH() and the env.Program() source list.
-Issue 2505: http://scons.tigris.org/issues/show_bug.cgi?id=2505
+Issue 2505: http://github.com/SCons/scons/issues/2505
"""
import TestSCons
diff --git a/test/MSVC/batch.py b/test/MSVC/batch.py
index 8b7945b..0d3063f 100644
--- a/test/MSVC/batch.py
+++ b/test/MSVC/batch.py
@@ -32,6 +32,7 @@ explicit suffix settings so that the test should work when run on any
platform.
"""
+import os
import TestSCons
test = TestSCons.TestSCons()
@@ -72,6 +73,7 @@ for infile in sys.argv[2:]:
""")
test.write('SConstruct', """
+DefaultEnvironment(tools=[])
cccom = r'%(_python_)s fake_cl.py $_MSVC_OUTPUT_FLAG $CHANGED_SOURCES'
linkcom = r'%(_python_)s fake_link.py ${TARGET.windows} $SOURCES'
env = Environment(tools=['msvc', 'mslink'],
@@ -96,8 +98,8 @@ test.run(arguments = 'MSVC_BATCH=1 .')
test.must_match('prog.exe', "prog.c\nf1.c\nf2.c\n", mode='r')
test.must_match('fake_cl.log', """\
-/Fo. prog.c f1.c f2.c
-""", mode='r')
+/Fo.%s prog.c f1.c f2.c
+"""%os.sep, mode='r')
test.up_to_date(options = 'MSVC_BATCH=1', arguments = '.')
@@ -109,9 +111,9 @@ test.run(arguments = 'MSVC_BATCH=1 .')
test.must_match('prog.exe', "prog.c\nf1.c 2\nf2.c\n", mode='r')
test.must_match('fake_cl.log', """\
-/Fo. prog.c f1.c f2.c
-/Fo. f1.c
-""", mode='r')
+/Fo.%s prog.c f1.c f2.c
+/Fo.%s f1.c
+"""%(os.sep, os.sep), mode='r')
test.up_to_date(options = 'MSVC_BATCH=1', arguments = '.')
diff --git a/test/README b/test/README
index 2c8423f..be75398 100644
--- a/test/README
+++ b/test/README
@@ -4,7 +4,7 @@ This directory contains our end-to-end SCons tests.
They are all meant to be run essentially standalone, with the exception
of the TestSCons.py module and the other modules imported by the various
-tests. These modules are in the QMTest/ subdirectory, and PYTHONPATH
+tests. These modules are in the testing/framework/ subdirectory, and PYTHONPATH
needs to be set up correctly so that the test scripts can find them,
and so that the SCons script itself can find the build engine modules.
@@ -56,4 +56,4 @@ semblance of uniformity, here are the naming conventions for tests:
For some more information about running the tests and writing them, please
refer to the documentation for the testing framework. It can be found in
-the 'QMTest' folder, as file 'test-framework.rst'.
+the 'testing/framework' folder, as file 'test-framework.rst'.
diff --git a/test/SConstruct.py b/test/SConstruct.py
index cebdf04..8bc8617 100644
--- a/test/SConstruct.py
+++ b/test/SConstruct.py
@@ -39,6 +39,33 @@ scons: \*\*\* No SConstruct file found.
wpath = test.workpath()
+test.write('sconstruct.py', """
+import os
+print("sconstruct.py "+os.getcwd())
+""")
+
+test.run(arguments = ".",
+ stdout = test.wrap_stdout(read_str = 'sconstruct.py %s\n' % wpath,
+ build_str = "scons: `.' is up to date.\n"))
+
+test.write('Sconstruct.py', """
+import os
+print("sconstruct.py "+os.getcwd())
+""")
+
+test.run(arguments = ".",
+ stdout = test.wrap_stdout(read_str = 'sconstruct.py %s\n' % wpath,
+ build_str = "scons: `.' is up to date.\n"))
+
+test.write('SConstruct.py', """
+import os
+print("SConstruct.py "+os.getcwd())
+""")
+
+test.run(arguments = ".",
+ stdout = test.wrap_stdout(read_str = 'SConstruct.py %s\n' % wpath,
+ build_str = "scons: `.' is up to date.\n"))
+
test.write('sconstruct', """
import os
print("sconstruct "+os.getcwd())
diff --git a/test/Scanner/Dir.py b/test/Scanner/Dir.py
index 86b80e9..fa4f6c9 100644
--- a/test/Scanner/Dir.py
+++ b/test/Scanner/Dir.py
@@ -27,7 +27,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
"""
Verify that a simple scanner that returns Dir nodes works correctly.
-Submitted as http://scons.tigris.org/issues/show_bug.cgi?id=2534
+Submitted as https://github.com/SCons/scons/issues/2534
"""
import TestSCons
diff --git a/test/SideEffect/Issues/3013/files/SConscript b/test/SideEffect/Issues/3013/files/SConscript
new file mode 100644
index 0000000..27da7bb
--- /dev/null
+++ b/test/SideEffect/Issues/3013/files/SConscript
@@ -0,0 +1,5 @@
+Import('env')
+
+primary = env.make_file('output', 'test.cpp')
+this_causes_problems = env.SideEffect('output_side_effect', 'output')
+
diff --git a/test/SideEffect/Issues/3013/files/SConstruct b/test/SideEffect/Issues/3013/files/SConstruct
new file mode 100644
index 0000000..d01a4b7
--- /dev/null
+++ b/test/SideEffect/Issues/3013/files/SConstruct
@@ -0,0 +1,21 @@
+env = Environment()
+
+def make_file(target, source, env):
+ with open(str(target[0]), 'w') as f:
+ f.write('gobldygook')
+ with open(str(target[0]) + '_side_effect', 'w') as side_effect:
+ side_effect.write('anything')
+
+env.Append(
+ BUILDERS={'make_file': Builder(action=Action(make_file))}
+)
+
+env.objdir = 'build'
+
+SConscript(
+ 'SConscript',
+ variant_dir=env.objdir,
+ exports={'env':env},
+ duplicate=0
+)
+
diff --git a/test/SideEffect/Issues/3013/files/test.cpp b/test/SideEffect/Issues/3013/files/test.cpp
new file mode 100644
index 0000000..27424b0
--- /dev/null
+++ b/test/SideEffect/Issues/3013/files/test.cpp
@@ -0,0 +1,2 @@
+void some_function() {}
+
diff --git a/test/SideEffect/Issues/3013/sideffect_with_variantdir.py b/test/SideEffect/Issues/3013/sideffect_with_variantdir.py
new file mode 100644
index 0000000..9ca3eca
--- /dev/null
+++ b/test/SideEffect/Issues/3013/sideffect_with_variantdir.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# 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.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+Test materials for Github Issue 3013 submitted by Stefan Ross:
+https://github.com/SCons/scons/issues/3013
+"""
+
+import TestSCons
+
+test = TestSCons.TestSCons()
+
+test.dir_fixture('files')
+
+test.run(
+ arguments = '-j2'
+)
+
+test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
+
diff --git a/test/Subst/Literal.py b/test/Subst/Literal.py
new file mode 100644
index 0000000..dec243d
--- /dev/null
+++ b/test/Subst/Literal.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# 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.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+Verify that Literal objects expand correctly in ${_concat()}.
+"""
+
+import TestSCons
+
+test = TestSCons.TestSCons()
+
+test.write('SConstruct', """\
+env = Environment(PRE='pre=', MID=Literal('\$$ORIGIN'), SUF='')
+print(env.subst('${_concat(PRE, MID, SUF, __env__)}'))
+""")
+
+test.run()
+
+expect = """\
+pre=\$ORIGIN
+"""
+
+test.run(arguments='-Q -q', stdout=expect)
+
+test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/VariantDir/include-subdir.py b/test/VariantDir/include-subdir.py
index d616bba..fe26c0a 100644
--- a/test/VariantDir/include-subdir.py
+++ b/test/VariantDir/include-subdir.py
@@ -32,7 +32,7 @@ we have to make sure that the file gets copied to the variant dir. (This
was not the case for 0.98.5 and earlier)
Test case supplied by Jared Grubb, based on a minimal example supplied
-by Ali Tofigh, filed as http://scons.tigris.org/issues/show_bug.cgi?id=2121
+by Ali Tofigh, filed as https://github.com/SCons/scons/issues/2121
"""
import TestSCons
diff --git a/test/option/tree-lib.py b/test/option/tree-lib.py
index 2dc5fb0..4725d42 100644
--- a/test/option/tree-lib.py
+++ b/test/option/tree-lib.py
@@ -30,7 +30,7 @@ the dependency on the library. (On earlier versions of the Microsoft
toolchain this wouldn't show up unless the library already existed
on disk.)
-Issue 1363: http://scons.tigris.org/issues/show_bug.cgi?id=1363
+Issue 1363: https://github.com/SCons/scons/issues/1363
"""
import TestSCons
diff --git a/test/update-release-info/update-release-info.py b/test/update-release-info/update-release-info.py
index 970bcce..d0242a8 100644
--- a/test/update-release-info/update-release-info.py
+++ b/test/update-release-info/update-release-info.py
@@ -34,7 +34,7 @@ import TestRuntest
# Needed to ensure we're using the correct year
this_year=time.localtime()[0]
-TestSCons = 'QMTest/TestSCons.py' .split('/')
+TestSCons = 'testing/framework/TestSCons.py' .split('/')
README = 'README.rst' .split('/')
ReleaseConfig = 'ReleaseConfig' .split('/')
SConstruct = 'SConstruct' .split('/')
diff --git a/testing/buildbot.yml b/testing/buildbot.yml
index 81c2143..7e6bb1a 100644
--- a/testing/buildbot.yml
+++ b/testing/buildbot.yml
@@ -9,7 +9,7 @@
# ansible-playbook -i hosts buildbot.yml -e 'botuser=sconsy'
#
# Tested with Ansible 1.5.0, based on
-# http://scons.org/wiki/InstallingBuildbotSlaves
+# https://github.com/SCons/scons/wiki/InstallingBuildbotSlaves
# Send questions to:
#
# anatoly techtonik <techtonik@gmail.com>
diff --git a/QMTest/README.txt b/testing/framework/README.txt
index 7750bc7..7750bc7 100644
--- a/QMTest/README.txt
+++ b/testing/framework/README.txt
diff --git a/QMTest/SConscript b/testing/framework/SConscript
index 1db7301..0d3832e 100644
--- a/QMTest/SConscript
+++ b/testing/framework/SConscript
@@ -50,9 +50,9 @@ def copy(target, source, env):
for file in files:
# Guarantee that real copies of these files always exist in
- # build/QMTest. If there's a symlink there, then this is an Aegis
+ # build/testing/framework. If there's a symlink there, then this is an Aegis
# build and we blow them away now so that they'll get "built" later.
- p = os.path.join(build_dir, 'QMTest', file)
+ p = os.path.join(build_dir, 'testing','framework', file)
if os.path.islink(p):
os.unlink(p)
if not os.path.isabs(p):
diff --git a/QMTest/TestCmd.py b/testing/framework/TestCmd.py
index 0aab9a8..0aab9a8 100644
--- a/QMTest/TestCmd.py
+++ b/testing/framework/TestCmd.py
diff --git a/QMTest/TestCmdTests.py b/testing/framework/TestCmdTests.py
index b9226fd..b9226fd 100644
--- a/QMTest/TestCmdTests.py
+++ b/testing/framework/TestCmdTests.py
diff --git a/QMTest/TestCommon.py b/testing/framework/TestCommon.py
index 47a149b..47a149b 100644
--- a/QMTest/TestCommon.py
+++ b/testing/framework/TestCommon.py
diff --git a/QMTest/TestCommonTests.py b/testing/framework/TestCommonTests.py
index 7949cb8..7949cb8 100644
--- a/QMTest/TestCommonTests.py
+++ b/testing/framework/TestCommonTests.py
diff --git a/QMTest/TestRuntest.py b/testing/framework/TestRuntest.py
index 68563da..7b3bb52 100644
--- a/QMTest/TestRuntest.py
+++ b/testing/framework/TestRuntest.py
@@ -97,7 +97,7 @@ class TestRuntest(TestCommon):
The superclass TestCommon.__init__() will change directory (chdir)
to the workspace directory, so an explicit "chdir = '.'" on all
of the run() method calls is not necessary. This initialization
- also copies the runtest.py and QMTest/ subdirectory tree to the
+ also copies the runtest.py and testing/framework/ subdirectory tree to the
temporary directory, duplicating how this test infrastructure
appears in a normal workspace.
"""
@@ -115,7 +115,7 @@ class TestRuntest(TestCommon):
except KeyError:
things_to_copy = [
'runtest.py',
- 'QMTest',
+ 'testing/framework',
]
else:
del kw['things_to_copy']
diff --git a/QMTest/TestSCons.py b/testing/framework/TestSCons.py
index ef907d8..c32e06a 100644
--- a/QMTest/TestSCons.py
+++ b/testing/framework/TestSCons.py
@@ -42,7 +42,7 @@ python_version_deprecated = (2, 7, 0)
# In the checked-in source, the value of SConsVersion in the following
# line must remain "__ VERSION __" (without the spaces) so the built
-# version in build/QMTest/TestSCons.py contains the actual version
+# version in build/testing/framework/TestSCons.py contains the actual version
# string of the packages that have been built.
SConsVersion = '__VERSION__'
if SConsVersion == '__' + 'VERSION' + '__':
@@ -692,20 +692,29 @@ class TestSCons(TestCommon):
env = SCons.Environment.Environment()
self._java_env[version] = env
-
if version:
- patterns = [
- '/usr/java/jdk%s*/bin' % version,
- '/usr/lib/jvm/*-%s*/bin' % version,
- '/usr/local/j2sdk%s*/bin' % version,
- ]
+ if sys.platform == 'win32':
+ patterns = [
+ 'C:/Program Files*/Java/jdk%s*/bin'%version,
+ ]
+ else:
+ patterns = [
+ '/usr/java/jdk%s*/bin' % version,
+ '/usr/lib/jvm/*-%s*/bin' % version,
+ '/usr/local/j2sdk%s*/bin' % version,
+ ]
java_path = self.paths(patterns) + [env['ENV']['PATH']]
else:
- patterns = [
- '/usr/java/latest/bin',
- '/usr/lib/jvm/*/bin',
- '/usr/local/j2sdk*/bin',
- ]
+ if sys.platform == 'win32':
+ patterns = [
+ 'C:/Program Files*/Java/jdk*/bin',
+ ]
+ else:
+ patterns = [
+ '/usr/java/latest/bin',
+ '/usr/lib/jvm/*/bin',
+ '/usr/local/j2sdk*/bin',
+ ]
java_path = self.paths(patterns) + [env['ENV']['PATH']]
env['ENV']['PATH'] = os.pathsep.join(java_path)
diff --git a/QMTest/TestSConsMSVS.py b/testing/framework/TestSConsMSVS.py
index 1e879d9..1e879d9 100644
--- a/QMTest/TestSConsMSVS.py
+++ b/testing/framework/TestSConsMSVS.py
diff --git a/QMTest/TestSCons_time.py b/testing/framework/TestSCons_time.py
index bc116ec..bc116ec 100644
--- a/QMTest/TestSCons_time.py
+++ b/testing/framework/TestSCons_time.py
diff --git a/QMTest/TestSConsign.py b/testing/framework/TestSConsign.py
index a48b648..a48b648 100644
--- a/QMTest/TestSConsign.py
+++ b/testing/framework/TestSConsign.py
diff --git a/QMTest/test-framework.rst b/testing/framework/test-framework.rst
index 844d99b..7082eb9 100644
--- a/QMTest/test-framework.rst
+++ b/testing/framework/test-framework.rst
@@ -19,7 +19,7 @@ There are three types of SCons tests:
*End-to-End Tests*
End-to-end tests of SCons are all Python scripts (``*.py``) underneath
the ``test/`` subdirectory. They use the test infrastructure modules in the
- ``QMTest`` subdirectory.
+ ``testing/framework`` subdirectory.
*Unit Tests*
Unit tests for individual SCons modules live underneath the
@@ -98,9 +98,6 @@ Running Tests
The standard set of SCons tests are run from the top-level source directory
by the ``runtest.py`` script.
-There is a ``--qmtest`` option that checks whether the ``QMTest`` package
-is installed on your system. If it can be found, then the ``runtest.py`` script
-will use it to carry out the tests.
Help is available through the ``-h`` option:
@@ -346,7 +343,7 @@ SCons, it is ``test/packaging/sandbox-test/sandbox-test.py``.
For even more examples you should check out one of the external Tools, e.g. the
*Qt4* Tool at https://bitbucket.org/dirkbaechle/scons_qt4. Also visit the SCons
-Tools Index at http://www.scons.org/wiki/ToolsIndex for a complete
+Tools Index at https://github.com/SCons/scons/wiki/ToolsIndex for a complete
list of available Tools, though not all may have tests yet.
How to convert old tests
@@ -385,9 +382,9 @@ Finally, you shouldn't forget to clean up and remove the temporary test director
Test Infrastructure
===================
-The test API is in ``QMTest/TestSCons.py``. ``TestSCons`` is a subclass of
+The test API is in ``testing/framework/TestSCons.py``. ``TestSCons`` is a subclass of
``TestCommon``, which is a subclass of ``TestCmd``; all those python files are
-in ``QMTest``. Start in ``QMTest/TestCmd.py`` for the base API definitions,
+in ``testing/framework``. Start in ``testing/framework/TestCmd.py`` for the base API definitions,
like how to create files (``test.write()``) and run commands (``test.run()``).
You want to use ``TestSCons`` for the end-to-end tests in ``test``, but ``TestCmd``
@@ -423,7 +420,7 @@ Here's an easy sample::
if not intelc:
test.skip_test("Could not load 'intelc' Tool; skipping test(s).\n")
-See ``QMTest/TestSCons.py`` for the ``detect_tool`` method. It calls the tool's
+See ``testing/framework/TestSCons.py`` for the ``detect_tool`` method. It calls the tool's
``generate()`` method, and then looks for the given prog (tool name by default) in
``env['ENV']['PATH']``.
diff --git a/timings/README.txt b/timings/README.txt
index 3c0baff..9921208 100644
--- a/timings/README.txt
+++ b/timings/README.txt
@@ -5,8 +5,8 @@ This directory contains timing configurations for SCons.
Each configuration exists in a subdirectory. The controlling script
is named TimeSCons-run.py for the configuration. The TimeSCons-run.py
scripts use TestSCons.TimeSCons, a subclass of TestSCons.TestSCons (both
-defined in ../QMTest/TestSCons.py), to manage execution of the timing
-runs.
+defined in ../testing/framework/TestSCons.py), to manage execution of the
+timing runs.
Unlike the TestSCons.TestSCons base class, the TestSCons.TimeSCons
subclass copies the contents of its containing directory to the temporary
diff --git a/www/bug-submission.html b/www/bug-submission.html
deleted file mode 100644
index abc855b..0000000
--- a/www/bug-submission.html
+++ /dev/null
@@ -1,234 +0,0 @@
-<html>
-<head>
-<title>Bug Submission</title>
-</head>
-<body>
-
-<div id="apphead">
-<h1><small>scons</small><br />Bug Submission</h1>
-
-<p>
-<strong>You must now
-<a href="http://www.tigris.org/servlets/Login">log in</a>
-to a <a href="http://www.tigris.org">tigris.org</a> account
-before submitting a new bug report!</strong>
-</p>
-
-<p>
-Bugs should be reported at the
-<a href="http://scons.tigris.org/issues/enter_bug.cgi?component=scons&subcomponent=scons&issue_type=DEFECT">"Enter Issue" page</a>.
-Please follow the <a href="bug-submission.html#guidelines">submission guidelines</a> below
-to make sure your bug report contains the necessary information.
-A more detailed set of <a href="bug-submission.html#steps">submission steps</a>
-can be found below.
-</p>
-
-<p>
-The above URL is set up for reporting a bug in SCons itself.
-If you are reporting a problem in some other aspect of the SCons Project
-(such as the documentation, or any of the web pages),
-you must change the Subcomponent field of the submission form
-to some other appropriate value.
-</p>
-
-</div>
-
-<div class="h2 app" style="border-left: 0px" id="customcontent">
-
-<h2 id="guidelines">Guidelines for a Useful Bug Report</h2>
-
-<p>
-Your bug will be much more likely to get diagnosed and fixed
-if you supply all the necessary information to make it easy to do so.
-</p>
-
-<ul>
-<li>
-<strong>
-<a href="http://www.tigris.org/servlets/Login">Log in</a>
-to your tigris.org account before submitting a bug report
-</strong>
-<p>
-If you do not already have a tigris.org account,
-register for one at
-<a href="http://www.tigris.org/servlets/Join">http://www.tigris.org/servlets/Join</a>.
-</p>
-<p>
-We no longer accept anonymous bug reports,
-due to spambot abuse of the open-door policy.
-</p>
-</li>
-<li>
-<strong>Specify the version of SCons in which you observed the problem</strong>
-<p>
-This helps avoid wasted time trying to pinpoint the version,
-and also allows us to confirm if a later released version
-has already fixed your problem.
-</p>
-</li>
-<li>
-<strong>Provide SConscript files or other configuration that reproduce the problem</strong>
-<p>
-If you can, simplify the configuration to just the
-minimal subset that demonstrates the problem.
-It's much harder to diagnose a problem
-if the incorrect behavor is due to
-one particular item out of a thousand
-in a large configuration.
-</p>
-<p>
-That said, it's most convenient if you can provide
-an actual configuration (set of SConscript files
-and/or other input files)
-that can be downloaded and run to demonstrate the bug.
-The easiest way is to attach a .tar.gz or .zip file
-to the bug report.
-Note that the tigris.org Issue Tracker
-doesn't let you attach a file like this
-when you initially submit the report.
-You must first create the bug report,
-and then attach a file to it as a separate step.
-See below for the detailed steps.
-</p>
-<p>
-If your problem is evident from a few specific SConscript lines,
-it's perfectly acceptable just to
-paste the lines into the Description field of the bug report.
-</p>
-</li>
-<li>
-<strong>Describe specifically the incorrect behavor you observed</strong>
-<p>
-It's best if you can cut and paste the output from SCons,
-especially any error messages.
-Otherwise,
-Vague descriptions like,
-"SCons errors out," or "Product XYZ doesn't compile"
-are extremely difficult to diagnose,
-because the different installed tools on someone else's system
-may cause SCons to behave differently
-and not demonstrate your bug.
-</p>
-</li>
-<li>
-<strong>Describe what you expected to happen</strong>
-<p>
-This isn't always obvious, especially if the
-bug does not involve an SCons failure or error message.
-Describing the behavior you expected
-helps speed up the diagnosis.
-</p>
-</li>
-</ul>
-
-<h2 id="steps">Steps for Submitting a Bug Report</h2>
-
-<p>
-The following guides you step-by-step through the
-process of submitting a new SCons bug report.
-</p>
-
-<p>
-NOTE: Creating a bug report with an attached file or files
-(such as a .tar.gz or .zip file containing a sample configuration)
-is a two-step process in the tigris.org Issue Tracker.
-You must first create the bug report,
-and then attach the file(s) in a separate step,
-as described below.
-</p>
-
-<ul>
-<li>
-<strong><a href="http://www.tigris.org/servlets/Login">Log in</a> at tigris.org</strong>
-<p>
-If you do not already have a tigris.org account,
-register for one at
-<a href="http://www.tigris.org/servlets/Join">http://www.tigris.org/servlets/Join</a>.
-</p>
-<p>
-We no longer accept anonymous bug reports,
-due to spambot abuse of the open-door policy.
-</p>
-</li>
-<li>
-<strong>Go to the
-<a href="http://scons.tigris.org/issues/enter_bug.cgi?component=scons&subcomponent=scons&issue_type=DEFECT">"Enter issue" page</a>
-</strong>
-<p>
-By default, the "scons" subcomponent is selected;
-if this bug is for a different subcomponent, select that instead.
-</p>
-</li>
-<li>
-<strong>Specify the version of SCons in which you found the bug</strong>
-<p>
-</p>
-</li>
-<li>
-<strong>Specify the Subcomponent (if the bug is not in SCons itself)</strong>
-<p>
-The URL two steps above assumes that you're reporting
-a bug in the behavior of SCons itself.
-If you're reporting a problem in some other aspect of the SCons Project
-(such as the documentation, or the packaging),
-please change the Subcomponent field to reflect that.
-</p>
-</li>
-<li>
-<strong>Specify the Platform and OS</strong>
-<p>
-The Platform field is less important here
-(SCons doesn't have many behavioral difference
-due to different hardware platforms)
-but the OS field is important.
-</p>
-</li>
-<li>
-<strong>Fill in a good Summary line describing the bug</strong>
-<p>
-This line is what shows up in summary reports,
-so it should be descriptive but not too long.
-Avoid overly-general things like "SCons error," etc.
-</p>
-</li>
-<li>
-<strong>Fill in the Description field</strong>
-<p>
-This is where you should go into detail
-about the configuration,
-the exact error you see,
-what you expected to happen, etc.
-When in doubt, include more information rather than less.
-</p>
-</li>
-<li>
-<strong>Press the "Submit issue" to submit your report</strong>
-<p>
-You will now receive a <tt>Posting issue</tt> page
-that gives you the number of the issue you submitted.
-</p>
-</li>
-<li>
-<strong>If you have a .tar.gz, .zip or other file to attach:</strong>
-<ul>
-<li>
-<strong>Click the "Attach a file to this issue" link</strong>
-</li>
-<li>
-<strong>Fill in the "File" field with the path to the file you want to upload</strong>
-(You can also do this through the <tt>Browse...</tt> button.)
-</li>
-<li>
-<strong>Fill in the Description field</strong>
-</li>
-<li>
-<strong>Click the "Submit" button</strong>
-</li>
-</ul>
-</li>
-</ul>
-
-</div>
-
-</body>
-</html>
diff --git a/www/cn-project-pages/Administrivia/snippets/HtmlSnippet1.html b/www/cn-project-pages/Administrivia/snippets/HtmlSnippet1.html
deleted file mode 100644
index a311062..0000000
--- a/www/cn-project-pages/Administrivia/snippets/HtmlSnippet1.html
+++ /dev/null
@@ -1 +0,0 @@
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><ul><li><a title="Messages pending approval" href="/ds/viewPendingApprovalMessages.do">Messages pending approval</a></li><li><a title="Deleted discussions" href="/ds/viewDeletedForums.do">Deleted discussions</a> <br /></li></ul> \ No newline at end of file
diff --git a/www/cn-project-pages/Administrivia/snippets/description.txt b/www/cn-project-pages/Administrivia/snippets/description.txt
deleted file mode 100644
index 08c477b..0000000
--- a/www/cn-project-pages/Administrivia/snippets/description.txt
+++ /dev/null
@@ -1 +0,0 @@
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Administrative information and links \ No newline at end of file
diff --git a/www/cn-project-pages/Administrivia/snippets/page.xml b/www/cn-project-pages/Administrivia/snippets/page.xml
deleted file mode 100644
index 7086b8d..0000000
--- a/www/cn-project-pages/Administrivia/snippets/page.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<page visibility="1">
- <component_list>
- <component visibility="2" type="Html" order="1">
- <title localize="false">Administrative links</title>
- <filename>HtmlSnippet1.html</filename>
- </component>
- </component_list>
-</page>
-
diff --git a/www/cn-project-pages/snippets/page.xml b/www/cn-project-pages/snippets/page.xml
deleted file mode 100644
index 005b144..0000000
--- a/www/cn-project-pages/snippets/page.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<page visibility="1">
- <component_list>
- <component visibility="1" type="ProjectMetadata" order="1">
- <title localize="false" />
- </component>
- <component visibility="1" type="Html" order="2">
- <title localize="false" />
- <filename>index.html</filename>
- </component>
- <component visibility="1" type="Subproject" order="3">
- <title localize="true">Subprojects</title>
- </component>
- </component_list>
-</page>
-
diff --git a/www/cn-project-pages/structure.xml b/www/cn-project-pages/structure.xml
deleted file mode 100644
index 2c1f3bb..0000000
--- a/www/cn-project-pages/structure.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<structure>
- <page>
- <id>g2uyOi</id>
- <name>Administrivia</name>
- <directory>Administrivia</directory>
- <ordinal>1</ordinal>
- </page>
-</structure>
-
diff --git a/www/favicon.ico b/www/favicon.ico
deleted file mode 100644
index 1541e5b..0000000
--- a/www/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/www/feature-request.html b/www/feature-request.html
deleted file mode 100644
index e644a16..0000000
--- a/www/feature-request.html
+++ /dev/null
@@ -1,99 +0,0 @@
-<html>
-<head>
-<title>Feature Requests</title>
-</head>
-<body>
-
-<div id="apphead">
-<h1><small>scons</small><br />Feature Requests</h1>
-</div>
-
-<p>
-<strong>You must now
-<a href="http://www.tigris.org/servlets/Login">log in</a>
-to a <a href="http://www.tigris.org">tigris.org</a> account
-before submitting a feature request!</strong>
-</p>
-
-<p>
-Feature requests should be submitted to the
-<a href="http://scons.tigris.org/issues/enter_bug.cgi?component=scons&subcomponent=scons&issue_type=FEATURE">"Enter Issue" page</a>.
-A more detailed set of <a href="feature-request.html#steps">submission steps</a>
-can be found below.
-</p>
-
-<p>
-The "Enter Issue" links on this page,
-by default, create a <tt>FEATURE</tt> request,
-a request for completely new SCons functionality.
-If your request is for modified behavior
-of an already-existing SCons feature,
-you may wish to change the Issue type
-to an <tt>ENHANCEMENT</tt> request.
-If you're not sure, leave the issue as a <tt>FEATURE</tt> request;
-it can be reclassified in the future, if necessary.
-</div>
-
-<div class="h2 app" style="border-left: 0px" id="customcontent">
-
-<h2 id="steps">Steps for Submitting a Feature Request</h2>
-
-<p>
-The following guides you step-by-step through the
-process of submitting a feature request.
-</p>
-
-<ul>
-<li>
-<strong><a href="http://www.tigris.org/servlets/Login">Log in</a> at tigris.org</strong>
-<p>
-If you do not already have a tigris.org account,
-register for one at
-<a href="http://www.tigris.org/servlets/Join">http://www.tigris.org/servlets/Join</a>.
-</p>
-<p>
-We no longer accept anonymous feature requests,
-due to spambot abuse of the open-door policy.
-</p>
-</li>
-<li>
-<strong>Go to the
-<a href="http://scons.tigris.org/issues/enter_bug.cgi?component=scons&subcomponent=scons&issue_type=FEATURE">"Enter issue" page</a>
-</strong>
-<p>
-By default, the "scons" subcomponent is selected;
-if this bug is for a different subcomponent, select that instead.
-</p>
-</li>
-<li>
-<strong>Fill in a good Summary line describing the feature you're requesting</strong>
-<p>
-This line is what shows up in summary reports,
-so it should be descriptive but not too long.
-</p>
-</li>
-<li>
-<strong>Fill in the Description field</strong>
-<p>
-This is where you should go into detail
-about what you'd like to see SCons do differently.
-When in doubt, include more information rather than less.
-</p>
-</li>
-<li>
-<strong>Press the "Submit issue" to submit your request</strong>
-<p>
-You will now receive a <tt>Posting issue</tt> page
-that gives you the number of the issue you submitted.
-If you want to attach a file to your feature request,
-you can do so by clicking the
-<tt>Attach a file to this issue</tt>
-link and using that page to upload a file.
-</p>
-</li>
-</ul>
-
-</div>
-
-</body>
-</html>
diff --git a/www/gen_sched_table.py b/www/gen_sched_table.py
deleted file mode 100755
index 85b1b81..0000000
--- a/www/gen_sched_table.py
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/env python
-from __future__ import print_function
-
-import sys
-import datetime
-
-months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
- 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
-
-print('<table width="100%">')
-def row(*cells, **kw):
- td = kw.get('tr','td')
- print(' <tr>')
- for cell in cells:
- print(' <%s>%s</%s>' % (td,cell,td))
- print(' </tr>')
-row('Estimated&nbsp;date', 'Type', 'Comments', tr = 'th')
-
-if len(sys.argv) > 1:
- f = open(sys.argv[1])
-else: f = open('schedule')
-now = None
-current = 'UNKNOWN'
-for line in f:
- if line[0] == '#': continue # comment
- if line[0] == '=':
- date,current = line[1:].strip().split(None, 1)
- now = datetime.date(*tuple([int(i) for i in date.split('-')]))
- continue
- if line[0] == '+':
- incr,type,desc = line[1:].strip().split(None,2)
- now = now + datetime.timedelta(int(incr))
- else:
- print('dunna understand code', line[0])
- sys.exit(1)
- #name = current + '.d' + str(now).replace('-','')
- date = '%s-%s-%s' % (now.day,months[now.month-1],now.year)
- if type == 'ck':
- category = 'Ckpt'
- elif type == 'rc':
- category = 'RC'
- else:
- category = current = type
- row(date, category, desc)
-print('</table>')
-
-# Local Variables:
-# tab-width:4
-# indent-tabs-mode:nil
-# End:
-# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/www/index.html b/www/index.html
deleted file mode 100644
index 203435d..0000000
--- a/www/index.html
+++ /dev/null
@@ -1,288 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-
-<div class="h2 app" style="border-left: 0px" id="customcontent">
-
-<h2>What is SCons?</h2>
-
-<p>SCons is a next-generation,
-cross-platform, build tool.
-Think of SCons as an improved
-substitute for the classic
-<tt>Make</tt> utility
-with integrated functionality
-similar to <tt>autoconf</tt>/<tt>automake</tt>
-and compiler caches such as <tt>ccache</tt>.
-</p>
-
-<p>
-Unlike build tools that invent their own mini-language
-or wedge a scripting language onto some other
-configuration file syntax,
-SCons configuration files
-are actually Python scripts.
-The ability to script your build
-gives you a tremendous amount of flexibility
-to solve complicated build problems
-in surprisingly small amounts of maintainable code.
-</p>
-
-<p>
-In short, SCons is an easier, more reliable
-and more flexible way to build software.
-</p>
-
-<!--
-
-<h2><b>Goal</b></h2>
-
-<p>The primary goal of The SCons Project
-is to become the premiere enterprise-quality tool for
-building cross-platform, multi-language software projects
-by offering unparalleled <b>reliability</b> and <b>flexibility</b>
-to software buildmasters and developers.
-</p>
-
-<p>
-Yeah, yeah, every project has similar lofty mom-and-apple-pie goals,
-blah, blah, blah...
-So why is SCons any different?
-Fair question.
-If you go to our public home page at
-<a href="http://www.scons.org/">http://www.scons.org</a>
-you'll get the usual lists of
-supported features and platforms, testimonials, etc.
-But you're presumably at <emphasis>this</emphasis>
-project page because you're interested in digging a little deeper.
-So here are the <emphasis>philosophical viewpoints</emphasis>
-that we think contribute to SCons being
-a really distinctive software build tool:
-</p>
-
-<ul>
-
-<li>
-<strong>Software builds are getting more complicated, not less</strong>
-<p>
-The proliferation of programming languages and technologies
-have led to increasingly difficult demands being
-placed on traditional software build tools Make.
-EVen if you stick to one language--a well-worn
-and mature one like C, for example--the
-differences between the various C tool chains
-and how they behave on various platforms
-make it a real challenge
-to keep your software builds simple and reliable.
-</p>
-<p>
-Consequently, SCons is a build tool
-</p>
-</li>
-
-<li>
-<strong>Effective software building is not a language design issue</strong>
-<p>
-There are a lot of build tools out there,
-and it seems like a new one pops up every week
-as someone gets the urge to fix some particularly
-bad build problem that they're facing.
-Most build tools have, historically,
-invented some special configuration file format
-to express dependencies and actions.
-The problem is that by the time you take care of all
-of the different ways people
-you really want to have the flexibility
-that a scripting language gives:
-loops, conditionals, real data structures, etc.
-(It's interesting to note that the Ant community is
-working hard on adding more scriptability to their
-XML-based Ant files,
-and James Duncan Davidson, Ant's creator,
-is on record as saying that he'd use a scripting
-language if he were doing it over again.)
-</p>
-<p>
-</p>
-<p>
-Note that SCons is not completely pure in this regard.
-</p>
-</li>
-
-<li>
-<strong>You want to encapsulate software build complexity
-so most developers don't even have to think about it</strong>
-<pp>
-XXX
-</pp>
-</li>
-
-<li>
-<strong>Overall, a reliable build that takes a little longer is
-cheaper than a fast build that you can't rely on</strong>
-<p>
-This one is sometimes tough to swallow,
-because we all want the build to be as quick as possible
-when we're in that tight edit-build-debug development cycle.
-The problem is that if you take shortcuts in how your
-build tool manages the dependencies,
-you waste time chasing phantom problems
-that simply go away because you finally give up
-and do a <tt>make clean; make</tt>.
-</p>
-</li>
-
-<li>
-<strong>Building software in multiple side-by-side variants is crucial
-in a multi-platform world</strong>
-<pp>
-XXX
-</pp>
-</li>
-
-</ul>
-
--->
-
-<h2><b>SCons Features</b></h2>
-
-<ul>
-
-<li>
-<strong>Configuration files are Python scripts</strong>
-<p>
-This provides much more flexibility for solving
-difficult build problems
-than traditional build tools.
-</p>
-</li>
-
-<li>
-<strong>Reliable, automatic dependency analysis</strong>
-<p>
-C, C++ and Fortran are scanned for dependencies,
-eliminating the need for a separate <tt>make depend</tt> step
-or a <tt>make clean</tt> to get all of the dependencies.
-Avoids the time waste from debugging phantom problems
-that mysteriously disappear after you
-<tt>make clean; make</tt>.
-Easily extended to scan for other languages or file types.
-</p>
-</li>
-
-<li>
-<strong>Built-in support for multiple languages</strong>
-<p>
-C, C++, D, Java, Fortran, Yacc, Lex, Qt and SWIG.
-Can also build TeX and LaTeX documents.
-Easily extended for other languages or file types.
-</p>
-</li>
-
-<li>
-<strong>Cross-platform</strong>
-<p>
-Known to work on Linux,
-other POSIX systems (AIX, *BSD, HP/UX, IRIX, Solaris),
-Windows (NT, 2000, XP),
-Mac OS X,
-and OS/2.
-</p>
-</li>
-
-<li>
-<strong>Fetch files from SCM systems or central directory trees</strong>
-<p>
-Built-in support for SCCS, RCS, CVS, BitKeeper and Perforce.
-On-disk directory trees can be searched for source files
-or pre-built target files.
-</p>
-</li>
-
-<li>
-<strong>Support for Microsoft Visual Studio .NET and 2005</strong>
-<p>
-Generates <tt>.dsp</tt> and <tt>.dsw</tt> files,
-or <tt>.sln</tt> and <tt>.vcproj</tt> files,
-from the same build configuration used to build on all platforms.
-Allows Windows developers to do all the productive
-point-and-click debugging they're used to
-without having to maintain a separate build configuration
-just for Windows.
-</p>
-</li>
-
-<li>
-<strong>Reliable detection of file changes using MD5 signatures</strong>
-<p>
-Use of traditional file timestamps instead of MD5 can be configured.
-</p>
-</li>
-
-<li>
-<strong>Parallel builds</strong>
-<p>
-Keeps up to N jobs running simultaneously regardless
-of directory hierarchy.
-</p>
-</li>
-
-<li>
-<strong>Global view of dependencies</strong>
-<p>
-Simplifies builds by eliminating multiple passes
-or reording targets to build everything correctly.
-</p>
-</li>
-
-<li>
-<strong>Multi-platform configuration (like <tt>Autoconf</tt>)</strong>
-<p>
-Support for finding <tt>#include</tt> files,
-libraries, functions and <tt>typedef</tt> declarations.
-</p>
-</li>
-
-<li>
-<strong>Shared built-file cache</strong>
-<p>
-Speeds up multiple builds by allowing developers
-to share pre-built targets
-(like <tt>ccache</tt>, but for any type of target file,
-not just C/C++ compilation).
-</p>
-</li>
-
-</ul>
-
-<!--
-
-<h2></h2>
-
-<p>What are the high-level assumptions or ground rules for the project?
-</p>
-
-<p>For example:
-</p>
-
-<ul>
-<li> we will use programming language X on operating system Y for now.
-
-<li>We will, or will not, consider certain functional areas like
-internationalization, high security, concurrency, etc. The list of
-functional areas will depend on what you are trying to do.
-
-<li>Try to keep this part short.
-</ul>
-
--->
-
-<h2>Future</h2>
-
-See the <a href="roadmap.html">Roadmap</a> page.
-
-</div>
-
-</body>
-</html>
diff --git a/www/patch-submission.html b/www/patch-submission.html
deleted file mode 100644
index a2d9b95..0000000
--- a/www/patch-submission.html
+++ /dev/null
@@ -1,355 +0,0 @@
-<html>
-<head>
-<title>Patch Submission</title>
-</head>
-<body>
-
-<div id="apphead">
-<h1><small>scons</small><br />Patch Submission</h1>
-</div>
-
-<p>
-<strong>You must now
-<a href="http://www.tigris.org/servlets/Login">log in</a>
-to a <a href="http://www.tigris.org">tigris.org</a> account
-before submitting a patch!</strong>
-</p>
-
-<p>
-Patches should be submitted to the
-<a href="http://scons.tigris.org/issues/enter_bug.cgi?component=scons&subcomponent=scons&issue_type=PATCH">"Enter Issue" page</a>.
-Please follow the <a href="patch-submission.html#guidelines">submission guidelines</a> below
-to make sure your patch contains the necessary information.
-A more detailed set of <a href="patch-submission.html#steps">submission steps</a>
-can be found below.
-</p>
-
-</div>
-
-<div class="h2 app" style="border-left: 0px" id="customcontent">
-
-<h2 id="guidelines">Guidelines for Patch Submission</h2>
-
-<p>
-To try to maintain and improve the quality of SCons releases,
-we have some pretty high standards for the quality of patches
-that make it into the SCons code base.
-This list of guidelines describes how to make it as
-easy as possible for your patch to be accepted for integration.
-We're still interested in your code
-even if you don't follow all of these guidelines,
-but then your patch will more than likely sit in the queue
-until someone else has time to supply all of the
-necessary missing items.
-</p>
-
-<ul>
-
-<li>
-<strong>
-Please
-<a href="http://www.tigris.org/servlets/Login">log in</a>
-to your tigris.org account before submitting any patch
-</strong>
-<p>
-If you do not already have a tigris.org account,
-register for one at
-<a href="http://www.tigris.org/servlets/Join">http://www.tigris.org/servlets/Join</a>.
-</p>
-<p>
-We no longer accept anonymous patches,
-due to spambot abuse of the open-door policy.
-</p>
-</li>
-
-<li>
-<strong>If your patch is extensive, discuss it first on the
-<a href="mailto:scons-dev@scons.org">scons-dev@scons.org</a>
-mailing list
-</strong>
-<p>
-In fact, for extensive changes, it's a good idea to have this discusssion
-<em>before</em> you invest too much time in coding.
-It's possible that your idea overlaps with something else
-already in the works,
-or that your idea is unlikely to be accepted
-because it would conflict with planned directions for SCons.
-It's much better to find that out,
-or get advice on acceptable design choices.
-before you've spent a lot of time polishing code
-that will be rejected because it doesn't fit
-plans for the architecture.
-</p>
-</li>
-
-<li>
-<strong>It's better to submit multiple patches with separate bits of functionality than a big patch containing lots of changes</strong>
-<p>
-Big, intertwined sets of changes
-increase the chances of unintended side effects
-that could cause the entire patch to be rejected.
-If you submit separate functional changes in separate patches,
-those change that meet all the criteria can
-still be integrated even
-though other pieces might be held up for one reason or another.
-</p>
-</li>
-
-<li>
-<strong>Submit your patch in <tt>diff -u</tt> or <tt>diff -c</tt> format</strong>
-<p>
-In particular, do <em>not</em> submit whole source files,
-or <tt>diff</tt> output without any kind of context information.
-It's much more difficult to integrate whole source files
-or plain <tt>diff</tt> output with other changes to
-the SCons code base,
-especially other changes that might be integrated
-after you've submitted your patch.
-</p>
-</li>
-
-<li>
-<strong>Your patch must include test case(s) before it can be integrated!</strong>
-<p>
-THIS IS THE SINGLE MOST COMMON REASON FOR DELAYS IN INTEGRATING PATCHES
-AND THE SINGLE MOST IMPORTANT THING YOU CAN DO TO INCREASE THE
-CHANCES OF YOUR PATCH BEING INTEGRATED QUICKLY.
-</p>
-<p>
-The SCons development methodology requires
-that each change be accompanied by one or more
-new or modified test cases
-that get added to our extensive regression test suite.
-This is to make sure that the behavior added by your patch
-doesn't get inadvertently broken by other changes in the future.
-Patches that fix bugs should contain at least one test case
-that demonstrates the behavior being fixed by the patch.
-For example, if you're fixing a configuration that causes
-SCons to exit with an error and a stack trace,
-the test case should trigger that stack trace
-when run against the current code.
-Patches that add new features or enhancements
-should contain test cases that use
-the new behavior being added to SCons.
-</p>
-<p>
-You can do any of the following to supply
-test cases with your patch:
-</p>
-<ul>
-<li>
-<strong>Include actual new or modified SCons test scripts in your patch</strong>
-<p>
-This is the best option because it's the easiest to integrate,
-and therefore maximizes the chances of your patch being accepted quickly.
-(Note that, yes, there's a curve to learning how to
-write test scripts in the SCons testing harness.
-We're working on documentation to deal with that.)
-</p>
-</li>
-<li>
-<strong>Include a .tar.gz or .zip file containing test configurations</strong>
-<p>
-If you can't quite figure out how to deal with the SCons test scripts,
-the next best option is to include with your patch an archive file
-containing one or more actual test configurations
-(<tt>SConscript</tt> files, input files, etc.).
-It will be relatively straightforward for someone integrating your patch,
-and who's presumably familiar with the SCons testing harness,
-to turn this into an appropriate test script.
-Be sure to include a description of how to run your recommended test scenario,
-or a script for doing so.
-</p>
-</li>
-<li>
-<strong>Describe how to go about testing the patch</strong>
-<p>
-If you really can't cook up a test configuration to include with the patch,
-the lowest-common-denominator approach is to just describe
-how to go about testing the patch.
-Be as specific as possible,
-even if you think it should be obvious
-how to test the patch.
-It might be clear to you while you're writing the code,
-but it will still take someone else time
-to make sure they understand your intent
-and work out the details of how to set up an appropriate case.
-The point is you're trying to use your existing knowledge
-of the bug being fixed or new feature being added
-to make the process of integrating your patch as
-simple and quick as possible,
-thereby increasing the chance of your patch making it
-into the SCons code base.
-</p>
-</li>
-</ul>
-<p>
-If you don't supply <em>any</em> sort of testing
-information with your patch,
-well, you're still welcome to submit the code.
-Just be aware that the patch will likely stay
-in the queue until someone has time to reverse-engineer
-a test case.
-</p>
-</li>
-
-<li>
-<strong>Your patch should not break any existing tests</strong>
-<p>
-This almost sounds like it should go without saying,
-but the reason we put so much emphasis on test cases
-is so that we can make sure functionality doesn't break.
-Your patch will almost certainly be run through the
-the complete set of checked-in test scripts,
-and if any of them break,
-your patch will either be rejected outright
-or delayed while someone else figures out how to fix it
-(or the tests) so that everything works correctly.
-You should, of course, avoid this by running your patch
-against the regression tests and fixing any problems
-<em>before</em> submitting your patch.
-If you run your patch against against the regression tests
-but can't figure out how to fix all the cases,
-the best bet would be to ask the
-<a href="mailto:scons-dev@scons.org">scons-dev@scons.org</a>
-mailing list.
-</p>
-</li>
-
-<li>
-<strong>Your patch should include documentation changes</strong>
-<p>
-We also insist that changes to the SCons code base
-be accompanied by appropriate changes to the documentation.
-In practice, right now we make sure the man page is up to date,
-and updates to the User's Guide often lag.
-</p>
-<p>
-Similar to the guidelines above for testing,
-if you don't submit changes to the actual man page with your patch,
-it's helpful if you at least provide
-some suggested text describing your change.
-Even if the actual words get rewritten
-(usually to make the style consistent with the rest of the man page),
-taking the time to provide this
-makes the integration easier because
-the person integrating the patch doesn't have
-to reverse-engineer the <em>intent</em>
-of your change to figure out how to describe it.
-</p>
-</li>
-
-</ul>
-
-<h2 id="steps">Steps for Submitting a Patch</h2>
-
-<p>
-The following guides you step-by-step through the
-process of submitting a patch to SCons.
-</p>
-
-<p>
-NOTE: Attaching a file or files
-(such as a .tar.gz or .zip file containing your patch)
-is a two-step process in the tigris.org Issue Tracker.
-You must first create the patch issue in the Tracker,
-and then attach the file(s) in a separate step,
-as described below.
-</p>
-
-<ul>
-
-<li>
-<strong><a href="http://www.tigris.org/servlets/Login">Log in</a> at tigris.org</strong>
-<p>
-If you do not already have a tigris.org account,
-register for one at
-<a href="http://www.tigris.org/servlets/Join">http://www.tigris.org/servlets/Join</a>.
-</p>
-<p>
-We no longer accept anonymous bug reports,
-due to spambot abuse of the open-door policy.
-</p>
-</li>
-
-<li>
-<strong>Go to the
-<a href="http://scons.tigris.org/issues/enter_bug.cgi?component=scons&subcomponent=scons&issue_type=PATCH">"Enter issue" page</a>
-</strong>
-<p>
-By default, the "scons" subcomponent is selected;
-if this bug is for a different subcomponent, select that instead.
-</p>
-</li>
-
-<li>
-<strong>Specify the version of SCons that you used as a baseline</strong>
-<p>
-You can leave this <tt>-unspecified-</tt>,
-in which case the assumption will be that you started with
-the code checked in to our Subversion repository
-at the time you opened the issue.
-</p>
-</li>
-
-<li>
-<strong>Fill in a good Summary line describing the patch</strong>
-<p>
-This line is what shows up in summary reports,
-so it should be descriptive but not too long.
-Avoid overly-general things like "SCons error," etc.
-</p>
-</li>
-
-<li>
-<strong>Fill in the Description field</strong>
-<p>
-This is where you should describe
-the nature of your patch:
-the exact error it fixes,
-the feature that it adds,
-how to go about testing it,
-etc.
-When in doubt, include more information rather than less.
-</p>
-</li>
-
-<li>
-<strong>Press the "Submit issue" to submit your report</strong>
-<p>
-You will now receive a <tt>Posting issue</tt> page
-that gives you the number of the issue you submitted.
-</p>
-</li>
-
-<li>
-<strong>Click the "Attach a file to this issue" link</strong>
-<p>
-</p>
-</li>
-
-<li>
-<strong>Fill in the "File" field with the path to the patch file you want to upload</strong>
-<p>
-(You can also do this through the <tt>Browse...</tt> button.)
-</p>
-</li>
-
-<li>
-<strong>Fill in the Description field</strong>
-<p>
-</p>
-</li>
-
-<li>
-<strong>Click the "Submit" button to attach your patch file</strong>
-<p>
-</p>
-</li>
-
-</ul>
-
-</div>
-
-</body>
-</html>
diff --git a/www/project_highlights.html b/www/project_highlights.html
deleted file mode 100644
index 98f00bc..0000000
--- a/www/project_highlights.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-
-
-<p>
-<strong>09 Sep 2011:</strong>
-Release 2.1.0 is now available at the
-<a href="http://sourceforge.net/project/showfiles.php?group_id=30337">download page</a>.
-</p>
-
-
-<p>
-<strong>15 Aug 2010:</strong>
-Release 2.0.1 is now available at the
-<a href="http://sourceforge.net/projects/scons/files/">download page</a>.
-</p>
-
-
-
-
-</body>
-</html>
diff --git a/www/project_issues.html b/www/project_issues.html
deleted file mode 100644
index dc28ca8..0000000
--- a/www/project_issues.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<div id="apphead">
-<h1><small>scons</small><br /> Issue Tracker
- </h1>
-</div>
-
-
-<div id="projectissues" class="application">
-
-
-<table class="axial">
-
- <tr>
- <th><a href="http://scons.tigris.org/issues/query.cgi">Query database</a></th>
- <td>
- Search for issues and defects here or find a specific issue. Always search first before reporting an issue to avoid duplication.
- <form id="ProjectIssuesForm" method="get" action="http://scons.tigris.org/issues/show_bug.cgi">
- <p>
- <input type="submit" value="Find" /> Issue # <input name="id" size="6" />
-
- </p>
- </form>
- <p>
- Common queries:
- </p>
- <table>
- <tr>
- <td COLSPAN="4"> <a href="http://scons.tigris.org/issues/buglist.cgi?Submit+query=Submit+query&component=scons&issue_status=NEW&issue_status=STARTED&issue_status=REOPENED&issue_status=UNCONFIRMED">All Open Issues</a> </td>
- </tr>
- <tr>
- <td> <ul> <li> Bug Reports: </li> </ul> </td>
- <td> <a href="http://scons.tigris.org/issues/buglist.cgi?Submit+query=Submit+query&issue_type=DEFECT&component=scons">All</a> </td>
- <td> <a href="http://scons.tigris.org/issues/buglist.cgi?Submit+query=Submit+query&issue_type=DEFECT&component=scons&issue_status=NEW&issue_status=STARTED&issue_status=REOPENED&issue_status=UNCONFIRMED">Open</a> </td>
- <td> <a href="http://scons.tigris.org/issues/buglist.cgi?Submit+query=Submit+query&issue_type=DEFECT&component=scons&issue_status=RESOLVED&issue_status=VERIFIED&issue_status=CLOSED">Non-Open</a> </td>
- </tr>
- <tr>
- <td> <ul> <li>Enhancement: </li> </ul> </td>
- <td> <a href="http://scons.tigris.org/issues/buglist.cgi?Submit+query=Submit+query&issue_type=ENHANCEMENT&component=scons">All</a> </td>
- <td> <a href="http://scons.tigris.org/issues/buglist.cgi?Submit+query=Submit+query&issue_type=ENHANCEMENT&component=scons&issue_status=NEW&issue_status=STARTED&issue_status=REOPENED&issue_status=UNCONFIRMED">Open</a> </td>
- <td> <a href="http://scons.tigris.org/issues/buglist.cgi?Submit+query=Submit+query&issue_type=ENHANCEMENT&component=scons&issue_status=RESOLVED&issue_status=VERIFIED&issue_status=CLOSED">Non-Open</a> </td>
- </tr>
- <tr>
- <td> <ul> <li>Feature Requests: </li> </ul> </td>
- <td> <a href="http://scons.tigris.org/issues/buglist.cgi?Submit+query=Submit+query&issue_type=FEATURE&component=scons">All</a> </td>
- <td> <a href="http://scons.tigris.org/issues/buglist.cgi?Submit+query=Submit+query&issue_type=FEATURE&component=scons&issue_status=NEW&issue_status=STARTED&issue_status=REOPENED&issue_status=UNCONFIRMED">Open</a> </td>
- <td> <a href="http://scons.tigris.org/issues/buglist.cgi?Submit+query=Submit+query&issue_type=FEATURE&component=scons&issue_status=RESOLVED&issue_status=VERIFIED&issue_status=CLOSED">Non-Open</a> </td>
- </tr>
- <tr>
- <td> <ul> <li> Patches: </li> </ul> </td>
- <td> <a href="http://scons.tigris.org/issues/buglist.cgi?Submit+query=Submit+query&issue_type=PATCH&component=scons">All</a> </td>
- <td> <a href="http://scons.tigris.org/issues/buglist.cgi?Submit+query=Submit+query&issue_type=PATCH&component=scons&issue_status=NEW&issue_status=STARTED&issue_status=REOPENED&issue_status=UNCONFIRMED">Open</a> </td>
- <td> <a href="http://scons.tigris.org/issues/buglist.cgi?Submit+query=Submit+query&issue_type=PATCH&component=scons&issue_status=RESOLVED&issue_status=VERIFIED&issue_status=CLOSED">Non-Open</a> </td>
- </tr>
- <tr>
- <td> <ul> <li> Tasks: </li> </ul> </td>
- <td> <a href="http://scons.tigris.org/issues/buglist.cgi?Submit+query=Submit+query&issue_type=TASK&component=scons">All</a> </td>
- <td> <a href="http://scons.tigris.org/issues/buglist.cgi?Submit+query=Submit+query&issue_type=TASK&component=scons&issue_status=NEW&issue_status=STARTED&issue_status=REOPENED&issue_status=UNCONFIRMED">Open</a> </td>
- <td> <a href="http://scons.tigris.org/issues/buglist.cgi?Submit+query=Submit+query&issue_type=TASK&component=scons&issue_status=RESOLVED&issue_status=VERIFIED&issue_status=CLOSED">Non-Open</a> </td>
- </tr>
- </table>
- </td>
-</tr>
-
-
- <tr>
- <th>Enter an issue</th>
- <td>
-
- To enter an issue, you must first be a project member and know the component you want to report on.
-
-
-
-<p>
-
-Enter:
-</p>
- <ul>
- <li><a href="http://scons.tigris.org/issues/enter_bug.cgi?issue_type=DEFECT">Defect</a></li>
- <li><a href="http://scons.tigris.org/issues/enter_bug.cgi?issue_type=PATCH">Patch</a></li>
- <li><a href="http://scons.tigris.org/issues/enter_bug.cgi?issue_type=TASK">Task</a></li>
- <li><a href="http://scons.tigris.org/issues/enter_bug.cgi?issue_type=FEATURE">Feature</a></li>
- <li><a href="http://scons.tigris.org/issues/enter_bug.cgi?issue_type=ENHANCEMENT">Enhancement</a></li>
-
-</ul>
- </td>
-</tr>
-
-
-
- <tr>
- <th><a href="http://scons.tigris.org/issues/buglist.cgi?cmdtype=runuserdefault">My issues</a></th>
- <td>
- View both active issues assigned to you and those that you have entered.
- </td>
-</tr>
- <tr>
- <th><a href="http://scons.tigris.org/issues/userprefs.cgi">My preferences</a></th>
-
- <td>
- View and edit your Issue Tracker user settings.
- </td>
-</tr>
-
- <tr>
- <th><a href="http://scons.tigris.org/issues/reports.cgi">Reports</a></th>
- <td>
- Generate and view issue tracking reports.
- </td>
-</tr>
-
-
-
- <tr>
- <th><a href="http://scons.tigris.org/issues/admin.cgi">Configuration options </a>
- </th>
- <td>
- Add, view and edit Issue Tracker configuration parameters, including project member permissions, issue tracking groups, project components and subcomponents, etc.
- </td>
-</tr>
-
-
-
-</table>
-</div>
diff --git a/www/project_tools.html b/www/project_tools.html
deleted file mode 100644
index ee731a4..0000000
--- a/www/project_tools.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!--
-This is a customization of the tigris.org nav bar to try to make
-things a little more navigable. This isn't really approved by
-tigris.org (I copped the basic idea from the Subversion project pages),
-but it works for our purposes.
-
-The main changes are:
-
-* Added links to the scons.org home page and scons.org wiki.
-* Our custom issue tracker page, which contains common queries.
-* Subheadings for reporting a bug / submitting a patch / request a feature.
-* Link to our Roadmap page.
--->
-<li><a href="http://scons.org/">SCons Home Page</a></li>
-<li><a href="http://scons.org/wiki/">SCons Wiki</a></li>
-</dd>
-
-<dd>
-<li><a href="/servlets/ProjectMemberList">Project Membership</a></li>
-<li><a href="/servlets/ProjectNewsList">Announcements</a></li>
-<li><a href="http://scons.org/lists.php">Discussion lists/fora</a></li>
-<!-- <li><a href="/ds/viewForums.do">Discussion lists/fora</a></li> -->
-<li><a href="/servlets/ProjectDocumentList">Documents &amp; files</a></li>
-<li><a href="/source/browse/scons/">Browse source code</a></li>
-<li><a href="/servlets/ReportingHome?scope=Project">Project metrics</a></li>
-</dd>
-
-<dd>
-<li>
-<!-- <a href="/servlets/ProjectIssues">Issue Tracker</a> -->
-<a href="/project_issues.html">Issue Tracker</a>
-<ul>
-<li><a href="/bug-submission.html">Report a Bug</a></li>
-<li><a href="/patch-submission.html">Submit a Patch</a></li>
-<li><a href="/feature-request.html">Request a Feature</a></li>
-</ul>
-</li>
-</dd>
-
-<dd>
-<li><a href="/roadmap.html">Roadmap</a></li>
diff --git a/www/roadmap.html b/www/roadmap.html
deleted file mode 100644
index 333d0fd..0000000
--- a/www/roadmap.html
+++ /dev/null
@@ -1,173 +0,0 @@
-<html>
-<head>
-<title>scons: Release Roadmap</title>
-</head>
-<body>
-
-<div id="apphead">
-<h1><small>Release Roadmap</small></h1>
-</div>
-
-<div class="h2 app" style="border-left: 0px" id="customcontent">
-
-<h2>Current Releases</h2>
-
-<p>
-The current stable release is 2.1.0, released 09 Sep 2011.
-The latest 2.1.x release is 2.1.0, released 09 Sep 2011.
-</p>
-
-<p>
-The latest 1.3.x release is 1.3.1, released 25 July 2010.
-</p>
-
-<h2>Upcoming Releases</h2>
-
-<p>
-Our goal is to meet the dates
-for release candidates and the releases themselves;
-the beta checkpoint dates are our best guess as this was published,
-but they may be adjusted without notice.
-</p>
-
-<!--
-
-DO NOT EDIT THE FOLLOWING TABLE DIRECTLY.
-
-Edit the "schedule" file and replace it with the output from
-running "gen_sched_table.py".
-
--->
-
-<table width="100%">
- <tr>
- <th>Estimated&nbsp;date</th>
- <th>Type</th>
- <th>Comments</th>
- </tr>
- <tr>
- <td>May 2010</td>
- <td>Ckpt</td>
- <td>Beta for 2.0; breaks backward compatibility</td>
- </tr>
- <tr>
- <td>June 2010</td>
- <td>RC</td>
- <td>Release candidate for 2.0.</td>
- </tr>
- <tr>
- <td>June 2010</td>
- <td>2.0</td>
- <td>Public release that breaks backward compatibility and drops deprecated features</td>
- </tr>
- <tr>
- <td>July 2010</td>
- <td>Ckpt</td>
- <td>Beta for testing new features.</td>
- </tr>
- <tr>
- <td>Aug 2010</td>
- <td>Ckpt</td>
- <td>Beta for testing new features.</td>
- </tr>
- <tr>
- <td>Sept 2010</td>
- <td>RC</td>
- <td>Release candidate for 2.1.</td>
- </tr>
- <tr>
- <td>Oct 2010</td>
- <td>2.1</td>
- <td>First minor release of v2</td>
- </tr>
-</table>
-
-<!--
-
-<h2>Upcoming Features</h2>
-
--->
-
-<h2>Release Planning</h2>
-
-<h3>Release numbering</h3>
-
-<p>
-Our release numbers are of the form <i>major</i>.<i>minor</i>.<i>revision</i>.
-</p>
-
-<ul>
-<li>
-<strong>Major release (1.0, 2.0, 3.0, etc.)</strong>
-<p>
-The major number increments when one of two things happens:
-</p>
- <ul>
- <li>The release knowingly breaks backwards compatibility in some way.
- <li>The release knowingly causes a rebuild when you upgrade.
- </ul>
-<p>
-Our goal is that as a user of SCons,
-you should always be able to upgrade to a later
-release of the same major version
-with complete confidence that your build will not break.
-We expect that our major releases will be long-lived platforms
-with many minor releases to add functionality and fix bugs.
-</p>
-</li>
-<li>
-<strong>Minor release (1.1, 1.2, 1.3, etc.)</strong>
-<p>
-Minor numbers increment for releases
-that add new functionality and/or bug fixes
-to an existing major release.
-Any new functionality will never knowingly break backwards compatibility
-with any previous minor releases from the same major release.
-</p>
-</li>
-<li>
-<strong>Bug-fix revisions (1.0.1, 1.1.1, 1.2.1, etc.)</strong>
-<p>
-Revision numbers are appended and/or incremented
-whenever a critical bug fix is necessary
-for a major or minor release.
-Because most new functionality and bug fixes
-will be delivered in minor releases,
-we expect that there will be few of these&mdash;at most
-one per minor release.
-</p>
-</li>
-<li>
-<strong>Release candidates (x.y.z.dyyyymmdd)</strong>
-<p>
-A release candidates is a special form of checkpoint
-(see below)
-that is expected to be the next major or minor release.
-If blocking issues show up in the candidate,
-another candidate will normally be issued
-(potentially delaying the release date),
-otherwise the candidate will be repackaged as the major or minor release.
-</p>
-</li>
-<li>
-<strong>Checkpoints (x.y.z.dyyyymmdd)</strong>
-<p>
-A checkpoint has a 'd<i>yyymmdd</i>' suffix
-and is made every couple of weeks between major or minor releases.
-It is intended for beta testing new features
-and for ensuring that bug fixes work as intended.
-Although existing features from the previous release will not change,
-compatibility of features under test is not guaranteed between checkpoints
-(<i>i.e.</i>, the implementation of the feature may change).
-Checkpoints are intended not only to allow for wider testing,
-but also to make new features available to users
-(who may urgently need one of them)
-in advance of them being published in the next major or minor release.
-</p>
-</li>
-</ul>
-
-</div>
-
-</body>
-</html>
diff --git a/www/schedule b/www/schedule
deleted file mode 100644
index 4b1e9eb..0000000
--- a/www/schedule
+++ /dev/null
@@ -1,19 +0,0 @@
-#=2008-09-13 1.0.1
-#=2008-10-01 Release candidate for 1.1.
-#=2008-10-10 1.1.0
-=2008-12-01 1.1.0
-+4 rc Release candidate for 1.2. (released 7-Dec)
-+7 1.2 Second minor release of 1.0. (released 21-Dec)
-+17 ck Beta for testing new features.
-+14 ck Beta for testing new features.
-+7 rc Release candidate for 1.3.
-+7 1.3 Third minor release of 1.0.
-+7 ck Beta for 2.0; breaks backward compatibility
-#+7 ck Beta for 2.0.
-+7 rc Release candidate for 2.0.
-+7 rc Release candidate for 2.0, if needed.
-+7 2.0 Public release that breaks backward compatibility and drops deprecated features
-+21 ck Beta for testing new features.
-+21 ck Beta for testing new features.
-+21 rc Release candidate for 2.1.
-+7 2.1 First minor release of 2.0