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
4 changes: 2 additions & 2 deletions scripts/axebc2_release_state.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from pathlib import Path

APP_TAG = "ghcr.io/willitmod/axebc2-app-umbrel-dev:0.1.12-candidate.3b893173de7b"
APP_DIGEST = "sha256:5defc8ac3c1d6e188959ed5c0642165e66108701c5ce3881e909c0994c8e3189"
APP_TAG = "ghcr.io/willitmod/axebc2-app-umbrel-dev:0.1.13-dev"
APP_DIGEST = "sha256:914cfcb82e0e42d03fb27133861f7ec19cfa88ba26fafac0e73855929982eb2c"
CORE_TAG = "ghcr.io/willitmod/bitcoinii-core:31.1.0-rc.cdf44542dde2"
CORE_DIGEST = "sha256:8875917ece57668fe9925d40a256ce8d429a3071511bb555d4ace1fa4370afc6"

Expand Down
2 changes: 1 addition & 1 deletion scripts/validate-axebc2-core31-dev.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ def require(condition, message):
)

# BETA release; the historical Core 31 baseline evidence below remains 0.1.11-dev.
require('version: "0.1.12-dev"' in manifest, "manifest must be 0.1.12-dev")
require('version: "0.1.13-dev"' in manifest, "manifest must be 0.1.13-dev")
require(evidence.get("app_version") == "0.1.11-dev", "evidence must name the 0.1.11 DEV app version")
require(
evidence.get("app_image")
Expand Down
5 changes: 4 additions & 1 deletion tests/test_axebc2_dev_finalizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,14 @@
import re
from pathlib import Path
import shutil
import sys
import subprocess
import tempfile
import unittest

ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT / "scripts"))
from axebc2_release_state import APP_TAG as CURRENT_APP_TAG, APP_DIGEST as CURRENT_APP_DIGEST
SCRIPT = ROOT / "scripts/finalize-axebc2-0.1.11-dev.sh"
COMPOSE = ROOT / "willitmod-dev-bc2/docker-compose.yml"
APP_DIGEST = "sha256:23a7962e223da5549eba52697c6f4cfa16ab74cba935c68c48148a4c515302b4"
Expand All @@ -28,7 +31,7 @@ def setUp(self):
# before exercising its historical acceptance workflow.
fixture = COMPOSE.read_text(encoding="utf-8")
fixture = fixture.replace(
"ghcr.io/willitmod/axebc2-app-umbrel-dev:0.1.12-candidate.3b893173de7b@sha256:5defc8ac3c1d6e188959ed5c0642165e66108701c5ce3881e909c0994c8e3189",
CURRENT_APP_TAG + "@" + CURRENT_APP_DIGEST,
"ghcr.io/willitmod/axebc2-app-umbrel-dev:0.1.11-candidate.ecf6e2c8cfd0@" + APP_DIGEST,
).replace('APP_CHANNEL: "BETA"', 'APP_CHANNEL: "ALPHA"')
fixture = re.sub(r"(ghcr\.io/willitmod/axebc2-app-umbrel-dev:0\.1\.11-candidate\.ecf6e2c8cfd0@sha256:)[0-9a-f]{64}", r"\1APP_CANDIDATE_DIGEST_REQUIRED", fixture)
Expand Down
83 changes: 83 additions & 0 deletions willitmod-dev-bc2/RELEASE-0.1.13-EVIDENCE.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
{
"image": "ghcr.io/willitmod/axebc2-app-umbrel-dev",
"candidate": "ghcr.io/willitmod/axebc2-app-umbrel-dev:0.1.13-candidate.49471c2152c1",
"digest": "sha256:914cfcb82e0e42d03fb27133861f7ec19cfa88ba26fafac0e73855929982eb2c",
"revision": "49471c2152c156fe4890e81e0f98dcea3d2d5d9a",
"version": "0.1.13",
"platforms": [
"linux/amd64",
"linux/arm64"
],
"provenance": true,
"sbom": true,
"candidate_run": 34026543911,
"promotion_run": 34026658274,
"promotion_result": "success",
"promotion_rebuilt_image": false,
"channel": "dev",
"package_version": "0.1.13-dev",
"application_tests_passed": 50,
"store_tests_passed": 33,
"runtime_checks": {
"tested_at": "2026-09-06T10:09:46.320475+00:00",
"tested_on": "10.10.10.235",
"image": "ghcr.io/willitmod/axebc2-app-umbrel-dev:0.1.13-candidate.49471c2152c1@sha256:914cfcb82e0e42d03fb27133861f7ec19cfa88ba26fafac0e73855929982eb2c",
"observations": [
{
"channel": "BETA",
"display_version": "0.1.13-dev",
"http": 200,
"about": {
"channel": "BETA"
},
"node": {
"chain": "main",
"blocks": 58546,
"headers": 58546,
"verificationprogress": 1.0,
"version": null,
"subversion": "/BitcoinII:31.1.0/",
"cached": false
}
},
{
"channel": "MAIN",
"display_version": "0.1.13",
"http": 200,
"about": {
"channel": "MAIN"
},
"node": {
"chain": "main",
"blocks": 58546,
"headers": 58546,
"verificationprogress": 1.0,
"version": null,
"subversion": "/BitcoinII:31.1.0/",
"cached": false
}
}
],
"scope": "Isolated application with separate test data; existing synchronized node RPC; no production data writes",
"umbrel_lifecycle_tested": false
},
"native_installer_checks": [
{
"channel": "dev",
"installer_exit": 0,
"version": "0.1.13-dev",
"image": "ghcr.io/willitmod/axebc2-app-umbrel-dev:0.1.13-dev@sha256:914cfcb82e0e42d03fb27133861f7ec19cfa88ba26fafac0e73855929982eb2c",
"stage": "BETA"
},
{
"channel": "main",
"installer_exit": 0,
"version": "0.1.13",
"image": "ghcr.io/willitmod/axebc2-app:0.1.13@sha256:914cfcb82e0e42d03fb27133861f7ec19cfa88ba26fafac0e73855929982eb2c",
"stage": "MAIN"
}
],
"native_compose_sha256": "15d5a4b728c5d51dee3ecfc463b638b55bf0e4391b4d6c318275e93b576bc41c",
"umbrel_template_sha256": "dcf98da1dbe619559bae0f8bd88b236111b76046a0504c6ba6333035266e3b26",
"umbrel_lifecycle_tested": false
}
24 changes: 17 additions & 7 deletions willitmod-dev-bc2/UMBREL-COMPATIBILITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ block an upgraded Umbrel installation.

5tratumOS consumes `docker-compose.yml` directly. Its platform integration and
`data/init/init.sh` remain unchanged, including the minimum OS check. The DEV
0.1.12 recipe updates only the application image and release-stage label. The
0.1.13 recipe changes only the application image and release-stage label from
the accepted Core 31 baseline. The
Umbrel template needs no 5tratumOS host file and uses the same pinned app,
Core 31, CKPool, and initialization images.

Expand All @@ -34,18 +35,19 @@ not be embedded in the Compose template: Umbrel's `envsubst` would consume
their local shell variables before container startup.

Runtime validation target: a fresh umbrelOS 1.7.4 amd64 VM. The existing Core 31
acceptance record describes the unchanged 5tratumOS recipe; it is not evidence
acceptance record describes the original 0.1.11 5tratumOS recipe; it is not evidence
that the new Umbrel path has passed runtime testing.

Upstream contract:
https://github.com/getumbrel/umbrel/blob/1.7.4/packages/umbreld/source/modules/apps/legacy-compat/app-script

## Packaging revision 0.1.12
## Initial packaging candidate 0.1.12 (superseded)

The store version advances to 0.1.12 (0.1.12-dev on DEV) so existing Umbrel
installs can receive the recipe correction. MAIN currently retains the 0.1.11 application image. DEV also includes the
0.1.12 BETA UI update: the general release banner is removed, and the release
stage is shown in the existing compact badge. Node and pool images are unchanged.
The initial MAIN packaging candidate used version 0.1.12 with the 0.1.11
application image. DEV published 0.1.12 with the BETA UI update: the general
release banner was removed and the compact badge retained. Release 0.1.13
supersedes both, aligning application and package versions in each channel.
Node and pool images are unchanged.

On 6 September 2026, both candidates passed the native installer and repeated
container initialization on 5tratumOS v0.7.12-dev at 10.10.10.235, using
Expand All @@ -65,3 +67,11 @@ The BETA application candidate is bound in `BETA-RELEASE-EVIDENCE.json`.
Historical Core 31 acceptance remains tied to 0.1.11. Validation permits only
the explicit BETA application-image and stage changes relative to that recipe;
any other change to the native recipe fails the baseline hash check.

## Aligned release 0.1.13

Application and package versions now align: 0.1.13-dev in DEV and 0.1.13 in
MAIN. Both use the same tested application digest with channel-specific image
tags. Core 31, CKPool, the native initializer, and persistent data paths retain
their accepted configuration. Historical 0.1.11/0.1.12 observations above remain
bound to those releases. See RELEASE-0.1.13-EVIDENCE.json for this release.
2 changes: 1 addition & 1 deletion willitmod-dev-bc2/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ services:
fi

app:
image: ghcr.io/willitmod/axebc2-app-umbrel-dev:0.1.12-candidate.3b893173de7b@sha256:5defc8ac3c1d6e188959ed5c0642165e66108701c5ce3881e909c0994c8e3189
image: ghcr.io/willitmod/axebc2-app-umbrel-dev:0.1.13-dev@sha256:914cfcb82e0e42d03fb27133861f7ec19cfa88ba26fafac0e73855929982eb2c
user: "1000:1000"
restart: on-failure
stop_grace_period: 30s
Expand Down
2 changes: 1 addition & 1 deletion willitmod-dev-bc2/docker-compose.yml.template
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ services:
- /bin/sh
- /opt/axebc2/ckpool-entrypoint.sh
app:
image: ghcr.io/willitmod/axebc2-app-umbrel-dev:0.1.12-candidate.3b893173de7b@sha256:5defc8ac3c1d6e188959ed5c0642165e66108701c5ce3881e909c0994c8e3189
image: ghcr.io/willitmod/axebc2-app-umbrel-dev:0.1.13-dev@sha256:914cfcb82e0e42d03fb27133861f7ec19cfa88ba26fafac0e73855929982eb2c
user: 1000:1000
restart: on-failure
stop_grace_period: 30s
Expand Down
13 changes: 7 additions & 6 deletions willitmod-dev-bc2/umbrel-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ manifestVersion: 1
id: willitmod-dev-bc2
category: bitcoin
name: AxeBC2
version: "0.1.12-dev"
version: "0.1.13-dev"
tagline: BC2 node + solo pool
description: >-
BETA RELEASE (DEV CHANNEL)
Expand Down Expand Up @@ -43,12 +43,13 @@ path: ""
defaultUsername: ""
defaultPassword: ""
releaseNotes: >-
Moves the DEV release to BETA and removes the general ALPHA/BETA warning
banner. The release stage remains visible beside the version.
Aligns the application image and store package at version 0.1.13 across
DEV and MAIN. Includes the BETA presentation update and removal of the
general ALPHA/BETA warning banner.
Fixes Umbrel installation by removing its dependency on the 5tratumOS host
build.json file. 5tratumOS keeps its existing startup recipe and OS version
check. The 0.1.12 application update retains Core 31 migration checks,
the payout address, and existing blockchain data.
build.json file. 5tratumOS retains its native startup checks. The update
preserves Core 31 migration checks, payout settings, and existing blockchain
and pool data.

Included fixes from 0.1.11:
Corrects payout-address validation: BitcoinII Core-accepted mainnet addresses
Expand Down
Loading