Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 26 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,42 @@ on:
workflow_dispatch:
inputs:
release_tag:
description: "Release tag to create/update on GitHub Releases (e.g. v0.9.3)"
description: "Release tag to create/update on GitHub Releases (e.g. v0.9.4)"
required: false
default: "v0.9.3"
default: "v0.9.4"

permissions:
contents: write
packages: write

jobs:
check-release-tag:
name: Check tag matches version files
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v4

# Tags can't be moved or deleted, and every later job publishes, so stop here on a mismatch.
- name: Compare the release tag with the version files
env:
RELEASE_TAG: ${{ github.event.inputs.release_tag || github.ref_name }}
run: |
cargo_v=$(grep -m1 '^version' control-plane/Cargo.toml | sed 's/.*"\(.*\)".*/\1/')
py_v=$(grep -m1 '^version' client-py/pyproject.toml | sed 's/.*"\(.*\)".*/\1/')
init_v=$(grep -m1 '__version__' client-py/hypercache/__init__.py | sed 's/.*"\(.*\)".*/\1/')
echo "tag=$RELEASE_TAG Cargo.toml=$cargo_v pyproject=$py_v __init__=$init_v"
for version in "$cargo_v" "$py_v" "$init_v"; do
if [ "$RELEASE_TAG" != "v$version" ]; then
echo "::error::Release tag $RELEASE_TAG does not match version $version"
exit 1
fi
done

build-linux-binaries:
name: Build Linux x86_64 Binaries
runs-on: ubuntu-22.04
needs: check-release-tag
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Changelog

## Unreleased
## 0.9.4

Faster loads and stores for objects that don't fill a whole stripe.

### Fixes
- Each object now starts on its own drive, chosen from a hash of its URI. Previously every object
Expand All @@ -11,6 +13,10 @@
objects load at 24884 MB/s (was 20740) and store at 18549 MB/s (was 16129).
- Upgrading needs no migration. Objects already stored keep their placement and stay readable, and
objects stored after the upgrade stay readable if you roll back. Existing objects aren't rebalanced.
- CI: the bare-metal e2e script loaded its client from the checkout, which uid 1000 can't read on a
GitHub runner. It now runs the client from a world-readable work dir.
- Release: `release.yml` now stops before building or publishing if the release tag doesn't match
the version files.

## 0.9.3

Expand Down
2 changes: 1 addition & 1 deletion client-py/hypercache/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,4 @@ def preload(
"HyperCacheDCPStorageReader",
]

__version__ = "0.9.3"
__version__ = "0.9.4"
2 changes: 1 addition & 1 deletion client-py/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "hypercache-io"
version = "0.9.3"
version = "0.9.4"
description = "HyperCache: Host-Local NVMe Caching and Zero-Copy Direct Block DMA / GPUDirect Storage Acceleration for AI Workloads"
readme = "README.md"
license = { text = "Apache-2.0" }
Expand Down
2 changes: 1 addition & 1 deletion control-plane/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion control-plane/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "hypercache-control-plane"
version = "0.9.3"
version = "0.9.4"
edition = "2021"
license = "Apache-2.0"
authors = ["Looe Labs"]
Expand Down
Loading