ANNOUNCE: SCons 0.12 (build tool in Python) is now available

Steven Knight
Fri, 28 Mar 2003 07:34:16 -0600 (CST)

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.12 of SCons has been released and is available for download
from the SCons web site:

Or through the download link at the SCons project page at SourceForge:

RPM and Debian packages and a Win32 installer are all available, in
addition to the traditional .tar.gz and .zip files.


IMPORTANT:  Release 0.12 contains the following interface changes:
  - SCons now changes to the directory in which an SConscript
    file resides while reading that SConscript file.

  See the release notes for more information about this change.

This release adds the following features:
  - Support has been added for fetching source files from the SCCS, RCS,
    CVS, Perforce and BitKeeper source code management systems.
  - A separate src_dir argument to SConscript() allows explicit
    specification of where source files can be found.
  - Current Builder-based command generators can be replaced by more
    flexible generators based on callable construction variables.
  - The Install() and InstallAs() builders now copy files.  This behavior
    is now configurable via the INSTALL construction variable.
  - SCons now issues a warning if you try to use the reserved variable
  - Builders for Tar and Zip files have been added.
  - SCons now supports an explicit Exit() function for terminating early.
  - The masm tool now supports SharedObject() builds.

This release removes the following deprecated features:
  - Builder objects no longer support a "name" argument.
  - The Environment.Update() method has been removed.

The following fixes have been added:
  - The string value of a File or Dir node now rturns a path
    relative to the calling SConscript file's directory, not the
    top-level directory.
  - Commands that expand the third or later argument from $TARGET,
    $TARGETS, $SOURCE or $SOURCES now calculate signatures properly.
  - Exceptions thrown by Scanners are no longer silently eaten.
  - A built file may no longer be pushed to a CacheDir() with a
    signature of None.
  - Built files are no longer copied to a CacheDir() if they're
    already there.
  - Files copied to a CacheDir() are now written to a temporary file
    and renamed, to avoid corrupt partial copies.
  - The -U option with no Default() targets no longer throws an exception.
  - The -u option, when used from a source directory with no local
    targets, will now build corresponding targets in any associated
  - The WhereIs() function now returns normalized path names.
  - An Aliased source that doesn't exist no longer generates an
    incorrect dependency-cycle error.

Performance has been improved as follows:
  - The internal to_String() function has been sped up.

The documentation has been improved:
  - Clearer explanation has been added of how to export variables to a
    subsidiary SConscript file.
  - Bugs in various Tool examples have been fixed.
  - The man page now correctly describes that the -f option doesn't
    change to the directory in which the SConstruct file lives.


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:

Alternatively, we invite you to subscribe to the low-volume
scons-announce mailing list to receive notification when new versions of
SCons become available:


Special thanks to Charles Crain, Lachlan O'Dea, Jeff Petkau and Anthony
Roach for their contributions to this release.

On behalf of the SCons team,