Skip to content

Commit 3de51b9

Browse files
committed
chore: release v0.4.0
1 parent a3c11e3 commit 3de51b9

4 files changed

Lines changed: 20 additions & 16 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ All notable changes to StreamHive are documented here. This project follows [Sem
44

55
## [Unreleased]
66

7+
## [0.4.0] — 2026-07-01
8+
79
### Added
810

911
- **`storage`**: SHA-256 content key helpers for content-addressed blob IDs.

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
StreamHive is a **Go library and CLI** for experimenting with distributed, content-addressed storage. It ships a production-minded **TCP transport** (context-aware listen/dial, TLS hooks, framing, metrics, limits), a **length-prefixed wire format** (`SHV1`), a typed **blob replication protocol**, memory and file-backed **blob stores**, and operational endpoints (`/livez`, `/readyz`, `/metrics`, `/metrics/prometheus`).
66

7-
**Semver:** public API versions are tracked in [CHANGELOG.md](CHANGELOG.md) and [internal/version/version.go](internal/version/version.go) (currently **v0.3.0**, pre-1.0).
7+
**Semver:** public API versions are tracked in [CHANGELOG.md](CHANGELOG.md) and [internal/version/version.go](internal/version/version.go) (currently **v0.4.0**, pre-1.0).
88

9-
**Status:** networking, framing, local storage, and static-peer blob replication v0.3 are implemented, with unreleased v0.4 anti-entropy sync in progress. `storage.FileStore` provides durable local blobs for library users and CLI receivers via `-store-dir`. Conflict resolution and global discovery are not implemented. See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).
9+
**Status:** networking, framing, local storage, content-addressed blob keys, static-peer replication, startup anti-entropy sync, durable stores, and Prometheus metrics are implemented. `storage.FileStore` provides durable local blobs for library users and CLI receivers via `-store-dir`. Conflict resolution and global discovery are not implemented. See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).
1010

1111
## Prerequisites
1212

@@ -133,7 +133,7 @@ flowchart TB
133133
- [docs/WORKFLOWS.md](docs/WORKFLOWS.md) — local and CI expectations.
134134
- [docs/GOVERNANCE.md](docs/GOVERNANCE.md) — branch protection and release hygiene.
135135
- [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md) — Docker and Kubernetes sketch.
136-
- [docs/RELEASE.md](docs/RELEASE.md)v0.3.0 release checklist.
136+
- [docs/RELEASE.md](docs/RELEASE.md) — release checklist.
137137

138138
## Contributing
139139

docs/RELEASE.md

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,45 @@
11
# Release Checklist
22

3-
Use this checklist for StreamHive `v0.3.0`, the first release with static blob replication, reconnect/backoff, and file-backed storage.
3+
Use this checklist for StreamHive releases. The current target is `v0.4.0`, the first release with content-addressed CLI puts, startup anti-entropy sync, Prometheus text metrics, and a CI-verified 3-node Compose rehydration demo.
44

55
## Preflight
66

77
```bash
88
go test ./...
99
go test -bench=. -benchmem -run '^$' ./...
1010
P2P_ADDR=127.0.0.1:17070 HEALTH_ADDR=127.0.0.1:18080 make demo-replication
11+
make demo-compose
12+
go run . -version
1113
```
1214

1315
## Version
1416

15-
1. Update [internal/version/version.go](../internal/version/version.go) from `0.2.0` to `0.3.0`.
16-
2. Rename the `[Unreleased]` section in [CHANGELOG.md](../CHANGELOG.md) to `[0.3.0] - YYYY-MM-DD`.
17+
1. Update [internal/version/version.go](../internal/version/version.go) to the release semver.
18+
2. Move completed [CHANGELOG.md](../CHANGELOG.md) entries from `[Unreleased]` into `[MAJOR.MINOR.PATCH] - YYYY-MM-DD`.
1719
3. Commit the version bump:
1820

1921
```bash
2022
git add internal/version/version.go CHANGELOG.md
21-
git commit -m "chore: release v0.3.0"
23+
git commit -m "chore: release v0.4.0"
2224
```
2325

2426
## Tag
2527

2628
```bash
27-
git tag -a v0.3.0 -m "v0.3.0"
29+
git tag -a v0.4.0 -m "v0.4.0"
2830
git push origin main
29-
git push origin v0.3.0
31+
git push origin v0.4.0
3032
```
3133

3234
## Release Notes
3335

3436
Highlight:
3537

36-
- Static `blob.put` replication over SHV1 frames.
37-
- CLI demo path with `-replicate`, `-put-key`, `-put-data`, and `-exit-after-put`.
38-
- Durable receiver storage with `-store-dir`.
39-
- Static peer lists plus reconnect/backoff via `-peers` and `-peer-reconnect`.
40-
- `/metrics` counters for replication and transport behavior.
41-
- `FileStore` behind the `storage.BlobStore` interface.
38+
- SHA-256 content key helpers and `-put-content-key`.
39+
- `blob.has`, `blob.get`, and `blob.missing` anti-entropy messages.
40+
- Startup anti-entropy sync for static `-replicate` peers.
41+
- Durable receiver storage with `-store-dir` and `-list-keys`.
42+
- `/metrics` JSON counters and `/metrics/prometheus` text format.
43+
- 3-node Docker Compose demo with node restart rehydration, verified in CI.
4244

4345
Attach or link the CI SBOM artifact when publishing GitHub release binaries.

internal/version/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
package version
33

44
// Version is the public release version (semver).
5-
const Version = "0.3.0"
5+
const Version = "0.4.0"

0 commit comments

Comments
 (0)