Qgoda Version 0.9.3 Released

Qgoda version 0.9.3 is now available for download either as a regular
Perl install, a docker image or from
github. It is mostly a
consolidation release but also features some important changes.

New Configuration Variable Names

The most important changes from a user perspective have been made to the
configuration. All underscores (_) in variable names are now replaced
by hyphens (-), for example exclude_watch has now become
exclude-watch.

Configuration Validation With JSON Schema

The configuration file _config.yaml is now validated against a
JSON schema as a safe-guard against invalid
configurations. On the other hand, the configuration is now more flexible
because you can often simplify the configuration and Qgoda will repair
it for you. For example the values of the Qgoda helpers are actually
arrays but you can still write this:

helpers:
build: gulp

The string gulp will now be automatically coerced into an array:

helpers:
build:
- gulp

This is a general pattern. You can use it wherever an array is required, when
you have just one value. The same goes for defaults:

The two versions for en and de are equivalent. You can always check your
results with qgoda config.

By the way, you can inspect the JSON schema with the new command qgoda
schema.

Embedded JavaScript Engine

The JSON schema validation is done with Ajv, the
same library that for example webpack is
using. But Ajv is written in JavaScript and there is no alternative
implementation in Perl available.

In order to use it, the Duktape JavaScript engine
was embedded into Qgoda via
JavaScript::Duktape::XS.
You can even access this engine with the new command qgoda javascript
or its alias qgoda js. Try qgoda javascript --help if you are curious.