The SCons wiki has moved to https://github.com/SCons/scons/wiki/DeveloperGuide
SCons Developer Guide
This is the SCons Developer Guide. Start here to learn how to contribute to SCons and understand how it works under the hood.
- Getting the source
- Hacking on the source
- Mailing lists (hammering out an idea before jumping in)
- Easy issues to fix from our Tigris bug tracker
- Writing and debugging tests
- Mercurial workflows, explains how to work with Mercurial to submit your patches
- Accepting pull requests, howto for the SCons admin
- SconsBuildRequirements, which packages you need for a full build
- Installation (the way SCons is meant to be found)
- Nodes (Dir, File, Value, ...)
- Determining configuration
- Environments and what they encapsulate
- Building blocks for scripting (Commands, Actions, Builders, Emitters, ...)
- Parsing the SConscripts
- Node management (building the DAG)
- Running the DAG
- Scanning for implicit dependencies
- Dealing with signatures
- Statistics (for debugging and performance measurement)
- Overview of Modules and Classes
- Improvement ideas
- The man page, especially the Extending SCons section.
- Be sure to check out the developer guidelines
- LatexSupport (and TeX)
- VisualizeDependencies - display of large source graphs (DOT format) with yEd
- WhySconsIsNotSlow - runtime and speedup analysis
This is a work in progress.
Items to add:
- More information on .sconsign file.