This release introduces a way to use container images as library packages, as described in RFC 0003.
It also includes some changes that make
jk commands work more consistently:
- fileysytem writes are sandboxed similarly to filesystem reads PR 346
jk validatenow read and write to the files given as arguments, even if they are given as absolute or parent paths (previously they were subject to the sandboxing, but this doesn't make sense for files that are named on the command line) PR 338
- there are now symbols in
stdout, to be used with
writerespectively PR 339
jk transformnow handle YAML and JSON files containing more than one value PR 334
jk generatewill validate values if you include a validation function in its input, per RFC 0002
Change: After #281,
std.log outputs to stderr, and does not accept formatting options. Use
std.print(value, options?) to print values to stdout. This is not considered a breaking change as std.log behaviour was left (largely) undefined.
0.3.0 changes or remove features that have been deprecated during the
0.2.x cycle. The exhaustive list of deprecated constructs can be found in the documentation.
Feature: Add a new
mergeFull function that is destined to merge the current
merge function of the
@jkcfg/std/merge module in
0.3.0. With this we should have a much better base for array and object merging, including implementing the Kubernetes strategic merges. More details and examples can be found in the API reference.
jk linux binary is now linked statically to reduce its dependency on recent libstdc++.
Documentation: Added a plethora of
Documentation: We now run all examples in CI and check they output the expected result.
FIx: Fix npm module resolution with
jk generate (see: 7444ec5)
Documentation: We now generate a reference API for
@jkcfg/std, albeit still mostly without comments: https://jkcfg.github.io/reference/std/0.2.8/
std.unparse functions to transform a string into a js value and a js value into JSON/YAML/HCL strings, respectively.
Documentation: Added some usage examples, including a somewhat complete micro-service definition
jk has gained a new
generate command. Instead of using
std.write in an imperative fashion, one can now declare the list of configuration files to produce in the default export and leave the generation to
jk. The quick start examples have been ported to
jk run has been extended to support running a script from stdin and from an npm package.
@jkcfg/std/merge as its own module.
Change: The std library has received an overhaul: it's now written in typescript and is composed of several modules. As a consequence a number of previous imports are deprecated.
run has now a
-d option to list the dependencies of a script: files it imports, reads or source for input parameters. This allows external program to watch those dependencies for changes and know when to re-run
jk to generate the corresponding new configuration.