From 917c94fd65b189fe8771095c454100225f9d615d Mon Sep 17 00:00:00 2001 From: xavierk Date: Tue, 29 Sep 2026 03:51:35 +0530 Subject: [PATCH] chore: prepare v0.6.0 release --- .gitea/workflows/release.yml | 4 +++- CHANGELOG.md | 13 +++++++++++++ README.md | 2 +- docs/spec/release-packaging.md | 4 ++-- pyproject.toml | 2 +- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 4bf2746..2cd8b1d 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -327,9 +327,11 @@ jobs: # Add XBPS artifacts if they exist XBPS_FILE="fenris-${VERSION}_1.x86_64.xbps" if [ -f "${XBPS_FILE}" ]; then - ARTIFACTS+=("${XBPS_FILE}") if [ -f "${XBPS_FILE}.sig2" ]; then + ARTIFACTS+=("${XBPS_FILE}") ARTIFACTS+=("${XBPS_FILE}.sig2") + else + echo "::warning::Unsigned XBPS artifact omitted from release assets" fi fi for FILE in "${ARTIFACTS[@]}"; do diff --git a/CHANGELOG.md b/CHANGELOG.md index aa1754e..7a1b17c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,19 @@ backfill releases from before this changelog. ## [Unreleased] +## [0.6.0] - 2026-09-29 + +### Added + +- Preserve local-day read and write evidence separately, including ambiguous midnight-spanning volume as shared evidence instead of assigning it to either day. +- Keep valid observations pending when publication fails, and recover them without exposing partial history or counting activity twice. +- Preserve live-point inspection and historical activity selection through graph refresh. + +### Changed + +- Prune old detail only after durable summaries and required boundary evidence are published. +- Require a complete local day to fit within one monitoring period before it can open the endurance outlook. + ## [0.5.0] - 2026-09-19 ### Changed diff --git a/README.md b/README.md index 26b7d27..381bb4f 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ The Gitea instance Debian registry signs metadata with its own key. Verify the instance key fingerprint (TOFU hardening): ```text -Fingerprint: +Fingerprint: F937E81D2FB0736B15BC611884BEBD586DFAC010 ``` Add the instance key and repository: diff --git a/docs/spec/release-packaging.md b/docs/spec/release-packaging.md index d57fac0..6289287 100644 --- a/docs/spec/release-packaging.md +++ b/docs/spec/release-packaging.md @@ -53,9 +53,9 @@ - **A Release is:** a version tag, its packages in the channel, a Gitea release entry with notes, and a clearsigned SHA256SUMS — all together. **Bare tags are forbidden** (tag without packages + release entry is not a Release). - **Cadence: on-demand.** Tag when user-visible changes or fixes accumulate; no calendar, no empty releases, no frequency SLA, no RC ceremony — fixes ship as a revision bump of the current version. - **Versioning: plain semver.** Major = breaking CLI/config/unit change; store schema changes ride the natural bump (the forward-only refusal handles old-reader/new-store). -- **Promotion flow:** tag → `make release` (automated: `make package` → RPM signing via nfpm → SHA256SUMS generation → clearsign → prints registry PUTs + Gitea release steps). The ceremony is documented in `docs/install/signing-key-ceremony.md`. +- **Promotion flow:** bump `pyproject.toml` and the matching dated `CHANGELOG.md` section, then push tag `v`. The repository-scoped Gitea Actions workflow builds and validates the deb, rpm, checksums, and release entry. XBPS publication remains a manual dispatch option after host acceptance. `make release` remains the local package/sign/checksum fallback. The ceremony is documented in `docs/install/signing-key-ceremony.md`. - **Rollback:** installing an older package over a newer store is **unsupported** — the store's forward-only version refusal fails it by design. Documented rollback = restore the observation-store snapshot, then install the old Release. No automatic downgrade machinery exists or will be built. -- **CI:** no runners are registered on the instance today ([Actions runner research](https://git.bongbetic.com/xavierk/Fenris/issues/37)), so the manual flow above is primary. A dormant `.gitea/workflows/release.yml` (`on: push: tags: ['v*']`, single job, host-mode runner) is committed alongside; if it fires, it replicates `make release`. Cheapest future upgrade: one `act_runner` static binary in host-label mode on the existing Gitea host. +- **CI:** a repository-scoped self-hosted runner is registered and online (checked 2026-09-29). `.gitea/workflows/release.yml` is the tag-triggered release path; maintainers must confirm runner availability and required Gitea secrets before tagging. The workflow publishes deb/rpm packages and release assets; Void publication is withheld unless the signed XBPS host-release step is explicitly requested. ## 6. Package layout and ownership diff --git a/pyproject.toml b/pyproject.toml index 7d50257..fc99b32 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "fenris" -version = "0.5.0" +version = "0.6.0" description = "NVMe wear monitor with persistent TUI" requires-python = ">=3.10" license = {file = "LICENSE"}