v0.2.0
Warpforge v0.2.0
This release contains many updates and fixes from v0.1. Here are some notable changes.
Capsule Types & Catalog Layout
The API types are now wrapped by various Capsule types. In these "capsule types", we store version hinting information for the type, which should make it easier to evolve them in the future without breaking backwards compatibility.
For example, now files and APIs regarding plots now start with a preamble of:
{"plot.v1": {
// ... rest of document goes here ...
}}
We applied these "capsule" types with version hinting to many API objects, but not all. As a general rule, if an API object exists as a freestanding object that one could expect to link to independently, then it got a capsule; if it's always wrapped in, or accessed directly after, other API objects that already have a capsule... then those types don't need one, because the version agility can be solved already in those wrapper types.
We also changed the way catalogs are projected into the filesystem to prevent naming conflicts, and also to use content-addressable filenames where appropriate.
Note, these changes are breaking for all existing catalogs and modules. (These are the early days! Stabilization is a journey that's still ahead of us; and these changes are part of the bumpy road to get there.)
The Warpsys catalog has been updated to the new catalog layout and API versions that include capsule types.
Broader range of supported hosts, with ca-certificates mount fixes
On some distros (e.g., Arch, NixOS, and likely others), the ca-certificates folder consists of symlinks to the certificates. This broke our mounting of certificates in provisioning task containers since the actual files were not mounted. This has been resolved, and Warpforge works on environments with such symlinks now. See [PR#1] for more details.
CLI Improvements
It is now possible to run a module by directory: warpforge run my-module
. The directory must contain a module.wf
and plot.wf
.
Running the ferk
command with a custom plot is now supported, allowing for interactivity with any plot: warpforge ferk -p my-plot.json
OpenTelemetry
Initial support for profiling with OpenTelemetry has been added. 🎉
Contributors
Thanks to @ericevenchick , @warpfork , @TripleDogDare , @Kirth , and @lukegb for code contributions, packages, discussions, and reviews!