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
27 changes: 27 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -901,6 +901,8 @@ jobs:
# any other failure (empty/malformed file) aborts the release.
- name: Build release notes body
id: notes
env:
GH_TOKEN: ${{ github.token }}
run: |
set -euo pipefail
body="${RUNNER_TEMP}/RELEASE_BODY.md"
Expand All @@ -922,13 +924,38 @@ jobs:
fi
echo "body_path=${body}" >> "$GITHUB_OUTPUT"

# GitHub's generated PR list compares against the latest release,
# pre-releases included, so a final tag cut after an -rc would list
# only the PRs since the rc. Compare a final tag with the previous
# final release instead; an -rc tag keeps GitHub's own choice. An
# empty value (no earlier final release, or the lookup failed) also
# leaves the choice to GitHub.
#
# "Previous" is by version, not by creation date: a patch on an
# older line (a v0.5.3 shipped after v0.6.0) must not become the
# base for the next v0.6.x. The current tag joins the sorted list
# and the entry just below it is taken, which also holds on a re-run
# after this tag's own release exists.
prev=""
if [[ "${GITHUB_REF_NAME}" != *-* ]]; then
prev=$( { gh release list --repo "${GITHUB_REPOSITORY}" \
--exclude-pre-releases --exclude-drafts --limit 100 \
--json tagName --jq '.[].tagName' || true; } \
| grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' \
| { cat; echo "${GITHUB_REF_NAME}"; } | sort -uV \
| awk -v t="${GITHUB_REF_NAME}" '$0 == t { print p; exit } { p = $0 }' || true)
fi
echo "PR list compares against: ${prev:-GitHub's default}"
echo "previous_tag=${prev}" >> "$GITHUB_OUTPUT"

- name: Create or update GitHub Release
uses: softprops/action-gh-release@v3
with:
# Curated, versioned notes from docs/release-notes/ (prepended);
# GitHub's auto-generated PR list is appended after it.
body_path: ${{ steps.notes.outputs.body_path }}
generate_release_notes: true
previous_tag: ${{ steps.notes.outputs.previous_tag }}
# A tag carrying a pre-release suffix (e.g. v0.1.0-rc1, v0.3.0-pre)
# is marked as a GitHub pre-release so it never shows as "Latest".
prerelease: ${{ contains(github.ref_name, '-') }}
Expand Down
136 changes: 5 additions & 131 deletions CHANGELOG.md

Large diffs are not rendered by default.

38 changes: 19 additions & 19 deletions 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 Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ debug = "line-tables-only"

[workspace.package]
authors = ["Benjamen Keroack <ben@keroack.com>", "20 Gauge Software, Inc.", "The satd developers"]
version = "0.6.0-rc1"
version = "0.6.0"
edition = "2024"
license = "MIT"
repository = "https://github.com/epochbtc/satd"
Expand Down
2 changes: 1 addition & 1 deletion clients/go/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ package satdevents
// released with: the module is tagged clients/go/vX.Y.Z at the node's vX.Y.Z
// commit, even when no Go code changed. TestVersionMatchesWorkspace pins it to
// the workspace Cargo.toml, so a version bump that misses this file fails CI.
const Version = "0.6.0-rc1"
const Version = "0.6.0"

// schemaVersion is the NodeEvent.schema_version this SDK decodes. It mirrors
// SCHEMA_VERSION in the satd node; the two are bumped together.
Expand Down
2 changes: 1 addition & 1 deletion contrib/appliance/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ contrib/appliance/build-in-docker.sh --flavor core --out contrib/appliance/out

# From a published, signed release instead.
contrib/appliance/build-in-docker.sh --flavor desktop \
--satd-source release --satd-version 0.5.2 --out out/
--satd-source release --satd-version 0.6.0 --out out/

# With the tools already on the host.
sudo contrib/appliance/build.sh --flavor core --out out/
Expand Down
6 changes: 3 additions & 3 deletions contrib/warnet/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ Warnet renders only image tags shaped like `X.Y[.Z][-suffix]`. Tag the image
`<satd version>-warnet<N>`:

```sh
docker build --build-arg SATD_IMAGE=ghcr.io/epochbtc/satd:0.5.2 \
-t satd-warnet:0.5.2-warnet0 contrib/warnet
docker build --build-arg SATD_IMAGE=ghcr.io/epochbtc/satd:0.6.0 \
-t satd-warnet:0.6.0-warnet0 contrib/warnet
```

`SATD_IMAGE` defaults to `ghcr.io/epochbtc/satd:latest`. Any satd image
Expand All @@ -47,7 +47,7 @@ works, including one built from this repository with `docker build -t satd:dev .
Load the image into the cluster. With [kind](https://kind.sigs.k8s.io/):

```sh
kind load docker-image satd-warnet:0.5.2-warnet0 --name <cluster>
kind load docker-image satd-warnet:0.6.0-warnet0 --name <cluster>
```

The examples set `pullPolicy: Never`, so a tank whose image is missing fails
Expand Down
2 changes: 1 addition & 1 deletion contrib/warnet/examples/all-satd/node-defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
# missing image fail loudly instead of pulling something else.
image:
repository: satd-warnet
tag: "0.5.2-warnet0"
tag: "0.6.0-warnet0"
pullPolicy: Never
4 changes: 2 additions & 2 deletions contrib/warnet/examples/core-satd/network.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ nodes:
- name: tank-0001
image:
repository: satd-warnet
tag: "0.5.2-warnet0"
tag: "0.6.0-warnet0"
pullPolicy: Never
addnode:
- tank-0002
Expand All @@ -17,7 +17,7 @@ nodes:
- name: tank-0003
image:
repository: satd-warnet
tag: "0.5.2-warnet0"
tag: "0.6.0-warnet0"
pullPolicy: Never
addnode:
- tank-0000
2 changes: 1 addition & 1 deletion docs/manual/src/electrum.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ Override it if you would rather not advertise the token, or need a different one
for another client:

```ini
electrumservername=satd/0.5.2
electrumservername=satd/0.6.0
```

Keep an override from *beginning* with `electrs`. Several clients test that
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# satd 0.6.0

> Pre-release — in progress · [Changelog](../../CHANGELOG.md)
> Released 2026-10-05 · git tag [`v0.6.0`](https://github.com/epochbtc/satd/releases/tag/v0.6.0) · [Changelog](../../CHANGELOG.md)

satd 0.6.0 builds a **solo-mining server** into the node, Stratum V1 and V2
with Job Declaration, so a miner can point its hardware at its own node with
Expand Down
1 change: 1 addition & 0 deletions docs/release-notes/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ The split is deliberate:

| File | Release | Status |
|---|---|---|
| [`0.6.0.md`](0.6.0.md) | 0.6.0 | Released 2026-10-05 |
| [`0.5.2.md`](0.5.2.md) | 0.5.2 | Released 2026-09-11 |
| [`0.5.1.md`](0.5.1.md) | 0.5.1 | Released 2026-09-04 |
| [`0.5.0.md`](0.5.0.md) | 0.5.0 | Released 2026-08-25 |
Expand Down
2 changes: 1 addition & 1 deletion satd-events-client/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ tls = ["dep:tokio-rustls", "tonic/tls", "tonic/tls-webpki-roots"]
[dependencies]
# Cargo uses `path` for the local build and `version` to resolve the published
# dependency; keep this in lockstep with the workspace `version`.
satd-events-proto = { version = "=0.6.0-rc1", path = "../satd-events-proto" }
satd-events-proto = { version = "=0.6.0", path = "../satd-events-proto" }
tonic = { workspace = true }
prost = { workspace = true }
# Only pulled by the `tls` feature, and only to install the `ring` rustls
Expand Down
Loading