Top-level Directories
Here is a brief overview of the important files and directories that make up
Onyx.
Files:
- changes.txt - the change log for the process.
Developers add comments near the top of this file (in an automated way)
whenever they check new work into the project.
- SConscript - the top-most of many SCons control files - the purpose of
this top-most one is to point to each directory in the project that has a
SConscript directory. Within each directory, the SConscript
identifies the Python files and other resources needed to build and test the
components of the project in that directory.
- SConstruct - the root configuration file for the SCons build/test
system. This SCons file sets up the environment of SCons tools used to build
the project, then it runs the top-most SConscript file.
Directories:
- op - Some developer tools for building the project and using the
version-control system.
- bin - Some binaries used by Onyx for file reading, and some demo
scripts. The bin directory contains platform-specific subdirectories for
binary executables.
- scons - A complete SCons package; you probably don’t want to change this at
all except by replacing it with a completely new version.
- site-scons - Project-specific tools that extend the build system to support Onyx
- templates - Stubs of various file types to use as starting points when adding
new files to the project
- build - Destination directory for a SCons build. If you run
‘op/scons’, this directory will be created or overwritten. Although there’s a
complete version of the project source in this directory, you almost certainly
don’t want to make modifications here. All builds appear in subdirectories
named for the build platform.
- doc - Static, i.e. non-built, documentation in various forms, also the sources
and machinery that support documentation building. For the built
documentation, which both much easier to browse and more complete, see
“build/<platform>/doc/sphinx/_build/html/index.html’ (XXX need to make this
easier to get to).
- py - Core Python source code for the project and also external Python
modules. The core Python source code is in the onyx subdirectory, see
Onyx Core Packages.
- cpp - C++ source code for the project. This directory also contains the
‘pylib’ subdirectory, where binary library files for each supported platform
are kept. (XXX need a description of how binary library system works,
particularly WRT built binary libraries).
- data - Sample input data used for testing
- projects - Experiments, demos, and other work not part of the project core.
- sandbox - Scratch work area that is still checked in and can be tested. The
things in here tend to be more half-baked than the things in projects.