From 09e4d93e3518b46441311783459efe947da540f8 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 17 Jun 2026 21:41:54 +0000 Subject: [PATCH] chore(zapstore): add icon + supported_nips and document publishing relays MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enrich the Zapstore listing with the 512x512 launcher icon and the full supported_nips list (synced with the README checklist). Relays are not a zapstore.yaml field — zsp reads RELAY_URLS (default wss://relay.zapstore.dev) — so document how to publish to additional relays in the yaml and RELEASE_OPS.md. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01VK27apdHs4Yzxa54qx44oJ --- RELEASE_OPS.md | 22 ++++++++-- zapstore.yaml | 108 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+), 4 deletions(-) diff --git a/RELEASE_OPS.md b/RELEASE_OPS.md index 920eaf7d16..b59bbabcc1 100644 --- a/RELEASE_OPS.md +++ b/RELEASE_OPS.md @@ -122,9 +122,10 @@ few days): . ### Zapstore — `zsp publish` with Amethyst's nsec [Zapstore](https://zapstore.dev/) is a Nostr-native app store. The `zsp` CLI reads [`zapstore.yaml`](zapstore.yaml) at the repo root (name, summary, -description, tags, license, screenshots, and the `variants` regexes that match -our `*-fdroid-*.apk` / `*-googleplay-*.apk` GH-release assets), then publishes a -signed software-release event to Nostr relays. +description, tags, license, `icon`, screenshots, `supported_nips`, and the +`variants` regexes that match our `*-fdroid-*.apk` / `*-googleplay-*.apk` +GH-release assets), then publishes a signed software-release event to Nostr +relays. ```bash # from the repo root, after the GH Release assets exist @@ -132,7 +133,20 @@ zsp publish ``` It signs with **Amethyst's nsec** — provide the key the way `zsp` expects -(env var / prompt / its own config), never commit it. +(`SIGN_WITH` env var / prompt / its own config), never commit it. + +**Relays.** `zsp` does *not* take relays from `zapstore.yaml`; it reads the +`RELAY_URLS` env var (comma-separated) and defaults to `wss://relay.zapstore.dev` +when unset. To fan the release event out to more relays for discoverability, +set `RELAY_URLS` for the run: + +```bash +RELAY_URLS="wss://relay.zapstore.dev,wss://relay.damus.io,wss://nos.lol,wss://relay.nostr.band" \ + SIGN_WITH= zsp publish +``` + +Keep `wss://relay.zapstore.dev` in the list — that is the relay the Zapstore app +itself reads from. ### Homebrew + Winget — automatic `bump-homebrew.yml` and `bump-winget.yml` fire on stable tags and open PRs diff --git a/zapstore.yaml b/zapstore.yaml index 0eafcad529..60a7d4b331 100644 --- a/zapstore.yaml +++ b/zapstore.yaml @@ -34,6 +34,10 @@ website: https://amethyst.social/ # ═══════════════════════════════════════════════════════════════════ # MEDIA # ═══════════════════════════════════════════════════════════════════ + +# App icon (local path or URL). 512x512 Play Store launcher icon. +icon: ./amethyst/src/main/ic_launcher-playstore.png + # Screenshots (local paths or URLs) images: - ./docs/screenshots/home.png @@ -41,6 +45,97 @@ images: - ./docs/screenshots/notifications.png - ./docs/screenshots/replies.png +# ═══════════════════════════════════════════════════════════════════ +# NOSTR METADATA +# ═══════════════════════════════════════════════════════════════════ + +# NIPs implemented by the app (shown on the Zapstore listing). Kept in sync +# with the "Supported NIPs" checklist in README.md (only the checked items). +supported_nips: + - "01" # Basic protocol flow + - "02" # Follow List + - "03" # OpenTimestamps Attestations + - "04" # Encrypted Direct Message + - "05" # DNS-based Identifiers + - "06" # Key Derivation from Mnemonic + - "08" # Handling Mentions + - "09" # Event Deletion Request + - "10" # Text Notes and Threads + - "11" # Relay Information Document + - "13" # Proof of Work + - "14" # Subject Tag in Text Events + - "15" # Nostr Marketplace + - "17" # Private Direct Messages + - "18" # Reposts + - "19" # bech32-encoded Entities + - "21" # nostr: URI Scheme + - "22" # Comment + - "23" # Long-form Content + - "24" # Extra Metadata Fields and Tags + - "25" # Reactions + - "26" # Delegated Event Signing + - "27" # Text Note References + - "28" # Public Chat + - "29" # Relay-based Groups + - "30" # Custom Emoji + - "31" # Dealing with Unknown Events + - "32" # Labeling + - "34" # git stuff + - "35" # Torrents + - "36" # Sensitive Content + - "37" # Draft Events + - "38" # User Statuses + - "39" # External Identities in Profiles + - "40" # Expiration Timestamp + - "42" # Authentication of Clients to Relays + - "43" # Relay Access Metadata and Requests + - "44" # Encrypted Payloads / Versioned + - "45" # Counting Results + - "46" # Nostr Remote Signing + - "47" # Nostr Wallet Connect + - "48" # Proxy Tags + - "49" # Private Key Encryption + - "50" # Search Capability + - "51" # Lists + - "52" # Calendar Events + - "53" # Live Activities + - "54" # Wiki + - "55" # Android Signer Application + - "56" # Reporting + - "57" # Lightning Zaps + - "58" # Badges + - "59" # Gift Wrap + - "5A" # Pubkey Static Websites + - "60" # Cashu Wallet + - "61" # Nutzaps + - "62" # Request to Vanish + - "64" # Chess / PGN + - "65" # Relay List Metadata + - "66" # Relay Discovery and Liveness Monitoring + - "68" # Picture-first Feeds + - "69" # Peer-to-peer Order Events + - "70" # Protected Events + - "71" # Video Events + - "72" # Moderated Communities + - "73" # External Content IDs + - "75" # Zap Goals + - "77" # Negentropy Syncing + - "78" # Application-specific Data + - "7D" # Threads + - "84" # Highlights + - "85" # Trusted Assertions + - "86" # Relay Management API + - "87" # Ecash Mint Discoverability + - "88" # Polls + - "89" # Recommended Application Handlers + - "90" # Data Vending Machines + - "92" # Media Attachments + - "94" # File Metadata + - "95" # Binary Blobs (Draft) + - "96" # HTTP File Storage Integration + - "98" # HTTP Auth + - "99" # Classified Listings + # ═══════════════════════════════════════════════════════════════════ # VARIANTS # ═══════════════════════════════════════════════════════════════════ @@ -49,3 +144,16 @@ images: variants: fdroid: ".*-fdroid-.*\\.apk$" google: ".*-googleplay-.*\\.apk$" + +# ═══════════════════════════════════════════════════════════════════ +# PUBLISHING RELAYS +# ═══════════════════════════════════════════════════════════════════ +# Relays are NOT configured in this file. `zsp` reads them from the +# RELAY_URLS environment variable (comma-separated) and falls back to +# wss://relay.zapstore.dev when it is unset. To publish the release event +# to additional relays, set RELAY_URLS before running `zsp publish`, e.g.: +# +# RELAY_URLS="wss://relay.zapstore.dev,wss://relay.damus.io,wss://nos.lol" \ +# SIGN_WITH= zsp publish +# +# See RELEASE_OPS.md for the maintainer publishing checklist.