Sigil 0.18.1
Every way into the Sigil CLI now reports failure honestly. Before this release a mistyped command, a script that raised, and a refused operation could all finish with exit status 0 and print nothing, which meant a CI step could report success for work it never did. Existing projects build without changes.
Fixed
sigil <unknown-command>exited 0 and printed nothing. A typo in a CI step reported success indefinitely. It now prints the unknown command on stderr and exits non-zero.- Running a file directly, as
sigil script.sglor through a#!line, swallowed errors: execution stopped at the failing form, nothing was reported, and the exit status was 0. Errors now reach stderr and the exit status reflects them. This is the path a shebang uses, so scripts that appeared to succeed may now correctly fail. sigil env show,sigil store,sigil appandsigil pkgcould print a refusal and then carry on with the refused operation. Four modules calledexitwithout importing it, and on release builds the resulting error was discarded.sigil bundle <missing-file>exited 0 without a diagnostic. It now checks its input before starting.- Unknown subcommands under
sigil channel,sigil registryandsigil projectprinted help and exited 0. Parse errors went to stdout rather than stderr, and a lone-argument was silently dropped instead of being treated as a positional.
Added
- An exit-contract gate covering every entry point into the CLI, 43 checks, each verified in both directions: the check fails when the defect is reintroduced and passes when it is not. The gate runs on release binaries, not only development builds, because several of these defects were visible only in release builds.