Releases: warptools/warpforge
v0.4.0
Warpforge v0.4.0
New Stuff
warpforge catalog show
The warpforge catalog show
subcommand has been implemented. This allows you to view the contents of a catalog quickly:
$ warpforge catalog show warpsys.org/busybox
warpsys.org/busybox
└─ warpsys.org/busybox:v1.35.0
├─ warpsys.org/busybox:v1.35.0:src
└─ warpsys.org/busybox:v1.35.0:amd64-static
OpenTelemetry
We've gained OpenTelemetry support recently! Now, it is accessible with CLI flags.
Offline Tests
Tests have been improved significantly to allow for the vast majority of test cases to run without a network connection
This change also removed the old min.warpsys.org
catalog, and changed our default catalog to warpsys.org
.
Most tests now use a static Busybox built by Warpforge, instead of a snapshot of an Alpine Linux system. This brings us closer to a "closed loop" minimal system.
Coming soon: Catalogsite
We're working on a tool to publish Catalog data as nicely navigable HTML. This work is still early, and you'll only see code for it if you go digging as developer -- there's no CLI rigging yet -- but it's underway. We've even started getting some nice HTML and CSS styling showing up in the prototypes :)
Notable Bug Fixes
This release includes an update to the rio
subsystem (which is responsible for most packed filesystem packing/unpacking/transport) to support a wider range of tarballs. In particular, previously rio
would reject unpacking a tarball which contained file paths that would cause implicit directory creation if it then found metadata for that directory stated later in the tarball; now, it accepts such an oddly-formed tarball without comment. (As a notable example of the situation, prior to this change, unpacking recent official Golang release tarballs would fail, because they contain a "VERSION" file before they contain directory metadata for the path that contains it. Now, rio
, and thus warpforge
, accept this.)
Thanks To
@ericevenchick , @warpfork , @TripleDogDare , and @Storken have all made significant contributions to this latest release! This project wouldn't exist without the talents of lots of folks coming together, so thank you all!
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!
v0.1
Initial versioned release!