summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CHANGES.txt8
-rw-r--r--src/RELEASE.txt15
-rw-r--r--src/engine/SCons/Environment.py5
-rw-r--r--src/engine/SCons/Script/Main.py17
-rw-r--r--src/engine/SCons/Script/SConscript.py5
-rw-r--r--src/engine/SCons/Warnings.py45
6 files changed, 53 insertions, 42 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index 7b5805d..628d012 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -39,9 +39,7 @@ RELEASE 2.0.0.alpha.20100508 - Sat, 08 May 2010 14:29:17 -0700
- Add a '-3' option to runtest to print 3.x incompatibility warnings.
- - Convert most old-style classes into new-style classes.
-
- - Update deprecation warnings; most now become errors.
+ - Convert old-style classes into new-style classes.
From Greg Noel:
@@ -73,6 +71,10 @@ RELEASE 2.0.0.alpha.20100508 - Sat, 08 May 2010 14:29:17 -0700
- Comb out code paths specialized to Pythons older than 2.4.
+ - Update deprecation warnings; most now become mandatory.
+
+ - Start deprecation cycle for BuildDir() and build_dir.
+
RELEASE 1.3.0 - Tue, 23 Mar 2010 21:44:19 -0400
diff --git a/src/RELEASE.txt b/src/RELEASE.txt
index 4a21fa7..bc12077 100644
--- a/src/RELEASE.txt
+++ b/src/RELEASE.txt
@@ -1,11 +1,12 @@
- A new SCons checkpoint release, 2.0.0.alpha.20100508, is now available.
- The primary purpose of this release is to remove support for
- Python versions prior to 2.4 and streamline the SCons code base
- using more modern python idioms.
- The checkpoint is available at the SCons download page:
+ A new SCons checkpoint release, 2.0.0.beta.yyyymmdd, is now available on
+ the SCons download page:
http://www.scons.org/download.php
+ The primary purpose of this release is to remove support for Python
+ versions prior to 2.4 and streamline the SCons code base using more
+ modern python idioms.
+
A SCons "checkpoint release" is intended to provide early access to
new features so they can be tested in the field before being released
for adoption by other software distributions.
@@ -40,6 +41,8 @@
- All features or usages deprecated in 1.3 should have been removed.
Uses of formerly-deprecated features should get an error.
+ - The BuildDir() method and the build_dir option now get warnings.
+
CHANGED/ENHANCED EXISTING FUNCTIONALITY
- Any Command() or env.Command() calls that use the following Action
@@ -84,6 +87,8 @@
DEVELOPMENT
- Code no longer has to be compatible with Python versions back to 1.5.2.
+ Although code is tested with Python 2.3 and is still believed to work,
+ the official new floor is Python 2.4.
Thanks to Greg Noel and Steven Knight for their contributions to this
release.
diff --git a/src/engine/SCons/Environment.py b/src/engine/SCons/Environment.py
index 96f42da..38a712e 100644
--- a/src/engine/SCons/Environment.py
+++ b/src/engine/SCons/Environment.py
@@ -1812,6 +1812,8 @@ class Base(SubstitutionEnvironment):
return tlist
def BuildDir(self, *args, **kw):
+ msg = """BuildDir() and the build_dir keyword have been deprecated;\n\tuse VariantDir() and the variant_dir keyword instead."""
+ SCons.Warnings.warn(SCons.Warnings.DeprecatedBuildDirWarning, msg)
if 'build_dir' in kw:
kw['variant_dir'] = kw['build_dir']
del kw['build_dir']
@@ -2043,6 +2045,9 @@ class Base(SubstitutionEnvironment):
def SourceCode(self, entry, builder):
"""Arrange for a source code builder for (part of) a tree."""
+ #msg = """SourceCode() has been deprecated and there is no replacement.
+#\tIf you need this function, please contact dev@scons.tigris.org."""
+ #SCons.Warnings.warn(SCons.Warnings.DeprecatedBuildDirWarning, msg)
entries = self.arg2nodes(entry, self.fs.Entry)
for entry in entries:
entry.set_src_builder(builder)
diff --git a/src/engine/SCons/Script/Main.py b/src/engine/SCons/Script/Main.py
index d5057e1..0c39340 100644
--- a/src/engine/SCons/Script/Main.py
+++ b/src/engine/SCons/Script/Main.py
@@ -752,21 +752,8 @@ def _main(parser):
# suppress) appropriate warnings about anything that might happen,
# as configured by the user.
- default_warnings = [ SCons.Warnings.CorruptSConsignWarning,
+ default_warnings = [ SCons.Warnings.WarningOnByDefault,
SCons.Warnings.DeprecatedWarning,
- SCons.Warnings.DuplicateEnvironmentWarning,
- SCons.Warnings.FutureReservedVariableWarning,
- SCons.Warnings.LinkWarning,
- SCons.Warnings.MissingSConscriptWarning,
- SCons.Warnings.NoMD5ModuleWarning,
- SCons.Warnings.NoMetaclassSupportWarning,
- SCons.Warnings.NoObjectCountWarning,
- SCons.Warnings.NoParallelSupportWarning,
- SCons.Warnings.MisleadingKeywordsWarning,
- SCons.Warnings.ReservedVariableWarning,
- SCons.Warnings.StackSizeWarning,
- SCons.Warnings.VisualVersionMismatch,
- SCons.Warnings.VisualCMissingWarning,
]
for warning in default_warnings:
@@ -944,7 +931,7 @@ def _main(parser):
# $SCONSFLAGS, or in the SConscript file, then the search through
# the list of deprecated warning classes will find that disabling
# first and not issue the warning.
- SCons.Warnings.enableWarningClass(SCons.Warnings.PythonVersionWarning)
+ #SCons.Warnings.enableWarningClass(SCons.Warnings.PythonVersionWarning)
SCons.Warnings.process_warn_strings(options.warn)
# Now that we've read the SConscript files, we can check for the
diff --git a/src/engine/SCons/Script/SConscript.py b/src/engine/SCons/Script/SConscript.py
index c3433ca..aa555da 100644
--- a/src/engine/SCons/Script/SConscript.py
+++ b/src/engine/SCons/Script/SConscript.py
@@ -378,7 +378,7 @@ class SConsEnvironment(SCons.Environment.Base):
def _get_SConscript_filenames(self, ls, kw):
"""
- Convert the parameters passed to # SConscript() calls into a list
+ Convert the parameters passed to SConscript() calls into a list
of files and export variables. If the parameters are invalid,
throws SCons.Errors.UserError. Returns a tuple (l, e) where l
is a list of SConscript filenames and e is a list of exports.
@@ -523,6 +523,9 @@ class SConsEnvironment(SCons.Environment.Base):
raise SCons.Errors.UserError("Import of non-existent variable '%s'"%x)
def SConscript(self, *ls, **kw):
+ if 'build_dir' in kw:
+ msg = """The build_dir keyword has been deprecated; use the variant_dir keyword instead."""
+ SCons.Warnings.warn(SCons.Warnings.DeprecatedBuildDirWarning, msg)
def subst_element(x, subst=self.subst):
if SCons.Util.is_List(x):
x = list(map(subst, x))
diff --git a/src/engine/SCons/Warnings.py b/src/engine/SCons/Warnings.py
index b17d863..a260c4a 100644
--- a/src/engine/SCons/Warnings.py
+++ b/src/engine/SCons/Warnings.py
@@ -36,6 +36,8 @@ import SCons.Errors
class Warning(SCons.Errors.UserError):
pass
+class WarningOnByDefault(Warning):
+ pass
# NOTE: If you add a new warning class, add it to the man page, too!
@@ -43,51 +45,51 @@ class Warning(SCons.Errors.UserError):
class CacheWriteErrorWarning(Warning):
pass
-class CorruptSConsignWarning(Warning):
+class CorruptSConsignWarning(WarningOnByDefault):
pass
class DependencyWarning(Warning):
pass
-class DuplicateEnvironmentWarning(Warning):
+class DuplicateEnvironmentWarning(WarningOnByDefault):
pass
-class FutureReservedVariableWarning(Warning):
+class FutureReservedVariableWarning(WarningOnByDefault):
pass
-class LinkWarning(Warning):
+class LinkWarning(WarningOnByDefault):
pass
-class MisleadingKeywordsWarning(Warning):
+class MisleadingKeywordsWarning(WarningOnByDefault):
pass
-class MissingSConscriptWarning(Warning):
+class MissingSConscriptWarning(WarningOnByDefault):
pass
-class NoMD5ModuleWarning(Warning):
+class NoMD5ModuleWarning(WarningOnByDefault):
pass
-class NoMetaclassSupportWarning(Warning):
+class NoMetaclassSupportWarning(WarningOnByDefault):
pass
-class NoObjectCountWarning(Warning):
+class NoObjectCountWarning(WarningOnByDefault):
pass
-class NoParallelSupportWarning(Warning):
+class NoParallelSupportWarning(WarningOnByDefault):
pass
-class ReservedVariableWarning(Warning):
+class ReservedVariableWarning(WarningOnByDefault):
pass
-class StackSizeWarning(Warning):
+class StackSizeWarning(WarningOnByDefault):
pass
-class VisualCMissingWarning(Warning):
+class VisualCMissingWarning(WarningOnByDefault):
pass
# Used when MSVC_VERSION and MSVS_VERSION do not point to the
# same version (MSVS_VERSION is deprecated)
-class VisualVersionMismatch(Warning):
+class VisualVersionMismatch(WarningOnByDefault):
pass
class VisualStudioMissingWarning(Warning):
@@ -109,9 +111,19 @@ class MandatoryDeprecatedWarning(DeprecatedWarning):
pass
+# Special case; base always stays DeprecatedWarning
class PythonVersionWarning(DeprecatedWarning):
pass
+class DeprecatedSourceCodeWarning(FutureDeprecatedWarning):
+ pass
+
+class DeprecatedBuildDirWarning(DeprecatedWarning):
+ pass
+
+class TaskmasterNeedsExecuteWarning(DeprecatedWarning):
+ pass
+
class DeprecatedCopyWarning(MandatoryDeprecatedWarning):
pass
@@ -124,9 +136,6 @@ class DeprecatedSourceSignaturesWarning(MandatoryDeprecatedWarning):
class DeprecatedTargetSignaturesWarning(MandatoryDeprecatedWarning):
pass
-class TaskmasterNeedsExecuteWarning(DeprecatedWarning):
- pass
-
class DeprecatedDebugOptionsWarning(MandatoryDeprecatedWarning):
pass
@@ -153,7 +162,7 @@ def suppressWarningClass(clazz):
_enabled.insert(0, (clazz, 0))
def enableWarningClass(clazz):
- """Enable all warnings that are of type clazz or
+ """Enables all warnings that are of type clazz or
derived from clazz."""
_enabled.insert(0, (clazz, 1))