Skip to content

Releases: warptools/warpforge

v0.4.0

19 Sep 16:01
Compare
Choose a tag to compare

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

21 Aug 16:09
Compare
Choose a tag to compare

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

05 May 21:32
Compare
Choose a tag to compare
v0.1 Pre-release
Pre-release

Initial versioned release!