eth-validator-stats (0.3.8-1) unstable; urgency=medium

  * New: every ntfy push now carries a branded app icon. The default
    URL points at assets/notification-icon.png in this repo, served
    via raw.githubusercontent.com. ntfy clients (Android, iOS, web)
    fetch and cache the image, so it's instantly recognizable as a
    push from eth-validator-stats. Configurable via
    `alerts.icon_url` — set to "" to disable, or to your own URL to
    brand pushes differently.

 -- privatejava <privatejava@yahoo.com>  Mon, 25 May 2026 08:44:43 +0000

eth-validator-stats (0.3.7-1) unstable; urgency=medium

  * Fix: `init --system` now writes /etc/<pkg>/config.yml with mode
    0644 instead of 0640. Any user can now run `eth-validator-stats
    status` against a system install without sudo or group
    membership. Validator pubkeys/indices are public on chain, beacon
    URLs are typically local, and the ntfy topic is unguessable but
    low-value — none of it warrants the friction of forcing
    `sudo usermod -aG eth-validator-stats $USER` + relogin. If you do
    put a `beacon_auth_token` for a hosted provider in the file,
    tighten to 0640 manually.
  * Fix: postinst auto-upgrades existing config files that are still
    at the old 0640 default to 0644 on `apt install`. Files at any
    other mode (already 0644, or user-tightened) are left alone.
  * Fix: uninstall no longer prints a stack of `dpkg: warning:
    directory ... not empty so not removed` messages for venv dirs.
    The bundled Python interpreter creates __pycache__/*.pyc at
    runtime that dpkg doesn't own; postrm now `rm -rf /opt/<pkg>` on
    `remove` so dpkg doesn't have to wrestle with leftover dirs.

 -- privatejava <privatejava@yahoo.com>  Mon, 25 May 2026 07:57:49 +0000

eth-validator-stats (0.3.6-1) unstable; urgency=medium

  * Fix: `eth-validator-stats status` (and the other read-only
    subcommands) no longer crash with a PermissionError traceback when
    invoked as a non-root user against an .deb-installed system config.
    Python 3.11+ propagates PermissionError from Path.exists() (rather
    than silently returning False as 3.10 did), so the resolver's
    /etc/<pkg>/config.yml existence check was bailing the whole CLI.
    The CLI now produces a clear actionable message instead:
        config at /etc/.../config.yml is not readable by the current
        user. Re-run with sudo, or add yourself to the
        eth-validator-stats group: sudo usermod -aG eth-validator-stats $USER
  * Packaging: chmod /etc/eth-validator-stats is now 0755 (was 0750)
    so non-group users can at least see the config file exists. The
    config file itself stays 0640 — secrets (beacon_auth_token,
    ntfy_topic) remain group-readable only.

 -- privatejava <privatejava@yahoo.com>  Mon, 25 May 2026 07:49:12 +0000

eth-validator-stats (0.3.5-1) unstable; urgency=medium

  * New: `eth-validator-stats --version` (and `evs --version`) prints
    the installed package version. Reads from importlib.metadata, so
    it reflects the actual installed dist regardless of install
    method (.deb, .rpm, pipx, source).
  * New: `eth-validator-stats init --system` now starts the systemd
    service automatically after writing /etc/<pkg>/config.yml. First-
    time setup after `apt install` is now a single command instead of
    two. Helper is best-effort and non-fatal: silently skips when
    systemctl is unavailable, when the eth-validator-stats.service
    unit isn't installed (e.g. pipx-only), or when start fails (in
    which case it prints a clear pointer at `systemctl start`).
  * Internal: uses `systemctl restart` (not `start`) so re-running
    `init --system --force` after a config edit picks up the new
    config without a separate restart step.
  * Docs: postinst's first-install message simplified to a single
    "Next step: sudo eth-validator-stats init --system". Same for the
    rpm spec %post message and the four README install sections.

 -- privatejava <privatejava@yahoo.com>  Mon, 25 May 2026 07:39:04 +0000

eth-validator-stats (0.3.4-1) unstable; urgency=medium

  * Fix: `eth-validator-stats status` (and `check`, `info`, `simulate`)
    now find `/etc/eth-validator-stats/config.yml` written by
    `init --system` or the .deb post-install. Previously they only
    checked `~/.config/eth-validator-stats/config.yml` and erred out
    on system installs unless the systemd service was used. Resolver
    order is now: $ETH_VALIDATOR_STATS_CONFIG -> /etc -> ~/.config.
  * Fix: postinst no longer prints the alarming `home dir
    /var/lib/eth-validator-stats can't be accessed: No such file or
    directory` warning during first install. Reordered the steps so
    the config and state directories are created before adduser
    references the service user's home.
  * Fix: postrm now removes the eth-validator-stats system group on
    purge (Debian's `deluser --system` only removes the user, not the
    same-named group). Without this, `apt purge && apt install` was
    not a true first-install test.
  * New: short CLI alias `evs` (3 chars). Same binary as
    `eth-validator-stats`, just easier to type.
  * Docs: substantial README polish for onboarding — pick-your-install
    table at the top of the Install section, example `status` output,
    per-install cron path table, simulate-subcommand visibility,
    accurate "what it does NOT do" list, removed stale legacy TOML
    migration section.

 -- privatejava <privatejava@yahoo.com>  Sun, 24 May 2026 20:00:00 +0000

eth-validator-stats (0.3.2-1) unstable; urgency=medium

  * Internal: scripts/bump.sh helper to sync version across pyproject.toml,
    the rpm spec, debian/changelog, README install snippets, and uv.lock,
    and to prepend stub changelog entries for the new release.
  * Internal: CI now runs `bump.sh --verify` on every push (via a dedicated
    version-consistency job) and at release time across all release jobs,
    so version drift across pinned files is caught before a tag is cut.
  * Docs: README install-snippet filenames carried 0.3.0 at the 0.3.1
    release; corrected in a follow-up commit.

 -- privatejava <privatejava@yahoo.com>  Sun, 24 May 2026 19:37:45 +0000

eth-validator-stats (0.3.1-1) unstable; urgency=medium

  * New `eth-validator-stats simulate <event>` subcommand fires a single
    ntfy push using the exact title/body template real alerts produce.
    Useful to verify the notification wire without waiting for a real
    outage. Supports missed-attestation, offline, withdrawal,
    proposing-soon, proposed, missed-proposal, blind, recovered.
  * Packaging hardening so the .deb builds cleanly with debhelper 13:
    skip dh_shlibdeps scanning of the bundled python-build-standalone
    interpreter (its libpython3.so uses $ORIGIN-relative RPATH which
    dpkg-shlibdeps cannot resolve), and rewrite buildroot paths in the
    entire /opt/<pkg> tree.

 -- Workharu <Workharu@users.noreply.github.com>  Sun, 24 May 2026 19:00:00 +0000

eth-validator-stats (0.3.0-1) unstable; urgency=medium

  * Self-contained .deb: bundles python-build-standalone via uv, drops the
    runtime dependency on system python3.11. `apt install` now works on
    Ubuntu 24.04+ without the deadsnakes PPA prerequisite.
  * Adds amd64 + arm64 packages from a CI matrix.
  * New eth-validator-stats install-service / uninstall-service subcommands
    for pipx-installed users.

 -- Workharu <Workharu@users.noreply.github.com>  Sun, 24 May 2026 18:00:00 +0000

eth-validator-stats (0.2.1-1) unstable; urgency=medium

  * Docs-only: correct install instructions in README for Ubuntu 24.04
    (needs deadsnakes PPA) and Fedora; use `apt install ./path.deb`
    instead of `dpkg -i` so dependencies auto-resolve.

 -- Workharu <Workharu@users.noreply.github.com>  Sun, 24 May 2026 16:00:00 +0000

eth-validator-stats (0.2.0-1) unstable; urgency=medium

  * Phase 2 release: PyPI + .deb + .rpm distribution.
  * Adds bundled python3.11 venv at /opt/eth-validator-stats/venv.
  * Adds eth-validator-stats init --system flag for system-service onboarding.

 -- Workharu <Workharu@users.noreply.github.com>  Sun, 24 May 2026 00:00:00 +0000
