v0.6.0

The foundation stopped moving long enough to be checked

There we go. The once "Road to v0.6.0" article is now the review of what changed since 0.5.0.

The headline is not a new command. This time the core was consolidated, and the longer story is in We'll see where it goes, but Sh:erpa is evolving.

0.6.0 — the core

  • One dispatcher. src/router.sh holds the only command table and src/main.sh is the only entry point. Every command is a cmd_* function, so an unknown command is an error instead of a silent no-op.
  • Overridable paths. SHERPA_DOT_DIR, SHERPA_CUSTOM_DIR and SHERPA_EDITOR mean a dev checkout or a sandbox never touches the installed tree. src/Make.sh is self-locating and builds from the tree it lives in.
  • The manifest is a contract. sherpa: 1 schema version, package: and interface: blocks, interface.examples executed by sherpa test, and sherpa list --json as the machine-readable inventory.
  • Readable builds. Minification is opt-in with --minify instead of being the default.
  • Portability. sed_inplace, [[:space:]], and no GNU-only sed -i or find -printf.
  • Smaller things. The dashboard caches its daily update check instead of hitting the network on every invocation, ensure_scd() bootstraps the custom dir on a fresh install, use2path reads build.entry and warns on duplicate function definitions, and the duplicate rmBox that shadowed box.sh is gone.
  • docs/DESIGN.md now says what the project is, what it deliberately is not, and the rules that keep the codebase honest.

0.5.x

0.5.1

Custom primaryColor per project or for all local Boxes!

  • To set the titles color for all local BashBoxes, the value of primaryColor in SCD/Sherpa.yaml must be set as one of the following: Black, Red, Green, Yellow, Blue, Magenta, Cyan or White.
  • For a specific color per project as Blue, create a mainColor variable, before loading "std/fmt"
mainColor="Blue"
use "std/fmt"
  • If any of those are set or the color have a typo in it, the primaryColor will fallback to Green.

0.5.2 Env helper

For some reason, the env.yaml helper was no more here, so I added it back. It's a convenient way to extract varibles from the $SCD/env.yaml file.

$SCD/env.yaml
SOME_KEY: fake5dsijfujp5key

then...

SOME_KEY=$(env "SOME_KEY")

This will look for a SOME_KEY variable in the $SCD/env.yaml file and assign it to the variable SOME_KEY.

0.5.3 Dashboard message if Updates available

A message will be shown on the Dashboard, If a new version of Sh:erpa was pushed to Github. That way, the bash hikers can check the Changelogs before getting the shiny new thing with sherpa self-update.

0.5.5 Docs Generation Revisited

Yes, I jumped over a patch number, but at that point it doesn't matter :)

Docs are now generated exclusivelly with shdoc for consistency and ease of documentation/adoption.

The Main documentation bloc for a BashBox is expected to be in the src/_global.sh file, and the basic example was addes to the template.

The sherpa doc command was also modified to support subfolders inside src/.

Some binStarter template fixes

As the documentation page header is generated from src/_global.sh, the duplicated # @file myScript line was removed from src/_options.sh.

Then, the src/_lib.sh file needs to end with an empty line, in order to prevent code collision during the minification happening at build time.

...not much, but needed to be done.