This repo is for the Smithy application itself. For formulas see smithy_formulas
Software builds are created with a few conventions:
- Everything is organized into architecture or OS directores, e.g. redhat6 or sles11
- Prefixes are defined by their name, version, and build name
- Software is loaded into the shell using modulefiles
- Builds are performed by formulas or build scripts
Examples of many formulas can be found in the smithy_formulas repo.
Lots of information and a tutorial can be found on the manpages:
Smithy is available for download on the releases page. Once downloaded it can be extracted and run from any location. Smithy is written in ruby and provides a built in ruby environment via Traveling-Ruby. You do not need to install ruby to use Smithy. Releases for Mac and Linux are available.
Extract to a directory of your choice and set the
variable in the
environment.sh file. Assuming you extracted Smithy to
/sw/tools/smithy the top of the environment.sh file should look like:
export SMITHY_PREFIX=/sw/tools/smithy export SMITHY_CONFIG=$SMITHY_PREFIX/smithyrc export MANPATH=$SMITHY_PREFIX/lib/app/man:$MANPATH
Once set, source the
Smithy depends on a config file to define it's behavior. Once created you can
point Smithy to it's location by setting the
Here is an example config file in yaml format:
--- software-root: /sw file-group-name: ccsstaff hostname-architectures: titan-ext: xk6 titan-login: xk6 chester-login: xk6 lens: analysis-x64 lens-login: analysis-x64 sith: redhat6 sith-login: redhat6 smoky: smoky smoky-login: smoky web-root: /ccs/proj/ccsstaff/swdesc/data descriptions-root: /sw/descriptions web-architecture-names: xk6: titan analysis-x64: lens smoky: smoky download-cache: /sw/sources formula-directories: - /sw/tools/smithy/formulas global-error-log: /sw/tools/smithy/exceptions.log
Smithy is based on the ideas created in SWTools and uses a BSD license. See LICENSE for the exact text.
N. Jones, M. R. Fahey, "Design, Implementation, and Experiences of Third-Party Software Administration at the ORNL NCCS," Proceedings of the 50th Cray User Group (CUG08), Helsinki, May 2008.
Contributing and Support
The Smithy github repo contains all development files. Please fork and send me a pull request with any additions or changes.
If you encounter any issues please open an issue on github. Or send me an email.