Development Environment

Information about the MCSH Development Environment

Mandolin Creek Development Environment

The Mandolin Creek Development Environment includes scripts that will be of interest primarily to developers. These tools were developed to assist the package author with source package management, script source code introspection, tool testing and automation, and user interface and experience.

  • i7 - Build helper
    • Environment - Provides custom environment settings for package development (see make env)
    • Configuration - Generates Makefile.i7 from template and package configuration files (*.i7)
  • p7 - Packaging helper
    • Packaging - Generates distribution tarballs (see make dist)
    • Version - Manages package versions
    • Release - Generate final deliverables (documentation, archives, etc.)
    • Publishing - Pushes code to github, uploads deliverables to website, ftp, etc.
    • Installation - Provides automatic deployment of MCSH packages
  • d14 - Documentation helper
    • Dependencies - Generates dependency graph files for all Bash source files
    • Reference - Produces API guide from source file comments
    • Guidebooks - Produces user/programmer guides from package documentation files
  • d12 - Development helper
    • Source code wizards
      • Run tools with implicit filenames (grep, sed, other tools, or custom scripts)
      • Generates source code templates for new tools and libraries  
    • Dependency Visualization
      • Prints list or tree view of MCSH source dependencies
      • Generates (sub)graphs (using graphviz library)
  • mcsh - Mandolin Creek Shell helper 
    • Provides a "top-level" MCSH shell
    • Each tool has its own shell command (try <some_tool> shell) that makes its top-level commands directly available. Normal Bash scripting can be used as well (with some significant caveats at the moment).
    • Allows development of native MCSH scripts (try #!<tool> shell at the top of a script)
  • u2 - Mandolin Creek User Interface helper 
    • Provides a CLI interface for testing MCUI elements
    • Checks MCUI backends using interactive test suite (run u2 check
    • Allows comparisons of API availability and functionality across backends

Most of these tools were created in very early (pre)versions of the MCSH package. They continue to be used and developed on a routine basis, as part of the MCSH development process itself.