From 8c3007a45af4d68705dd8cb4e97816a8bb5cc21c Mon Sep 17 00:00:00 2001 From: ibanner56 Date: Tue, 21 Jul 2026 17:03:28 -0700 Subject: [PATCH 1/2] docs: reconcile public docs to v0.1.0-beta.3 + current status MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Establish a single source of truth for the app version and per-platform install/signing status (verified against app/pubspec.yaml, CHANGELOG, and the beta.3 release.yml run), then make every public-facing doc consistent: - Version: current release is v0.1.0-beta.3 (was beta.2 in the site pill). - Signing (verified from the beta.3 release run logs): macOS signed + Developer ID + notarized/stapled; Android signed APK; Windows/Linux unsigned; iOS TestFlight-only (invite). Fixes: - beta-guide: replace the self-contradictory "installation not packaged / run a dev build" + "dialect library & .USR still in progress" bullets (all shipped) with an accurate per-platform signing note; point "How to join" and feedback sections at the now-live Join-the-beta and issue forms. - site/index.html: version pill v0.1.0-beta.2 -> v0.1.0-beta.3 (fallback; app.js already self-aligns from beta.json). - beta-recruitment: drop stale "installers still being packaged / dev build" claims from the templates and honesty note; builds ship for every platform. - ROADMAP §7: GitHub Pages now enabled (manifests hosted + landing page #408); Discussions enabled; beta signup form #413 delivered; beta execution in progress; current release is beta.3 (was beta.1/beta.2). - README: beta/feedback section — all issue forms are live now; add the Join-the-beta form and project landing-page links. Docs only; no app code or configuration changes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- README.md | 11 ++++++---- docs/ROADMAP.md | 16 +++++++------- docs/beta/beta-guide.md | 36 +++++++++++++++----------------- docs/product/beta-recruitment.md | 13 ++++++------ site/index.html | 2 +- 5 files changed, 39 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 9ec7acf1..fae72cb5 100644 --- a/README.md +++ b/README.md @@ -69,11 +69,14 @@ Start with [CONTRIBUTING.md](CONTRIBUTING.md) and the Are you a caller? We're running a beta program and would love your feedback. The [Beta guide](docs/beta/beta-guide.md) explains how to join, what to try, and how to send feedback — all voluntary, all through GitHub, with no telemetry and -nothing collected automatically. File a report from the +nothing collected automatically. Ready to jump in? Use the +[**Join the beta**](https://github.com/ibanner56/CallersCompendium/issues/new?template=beta_signup.yml) +form, browse downloads on the +[project site](https://ibanner56.github.io/CallersCompendium/), or file a report +from the [issue chooser](https://github.com/ibanner56/CallersCompendium/issues/new/choose) — -the **Bug report** and **Feature request** forms are always there, with the -**General feedback** and **Beta check-in** forms joining them as the beta program -rolls out — or start a conversation in +the **Bug report**, **Feature request**, **General feedback**, **Beta check-in**, +and **Import source problem** forms are all live there — or start a conversation in [Discussions](https://github.com/ibanner56/CallersCompendium/discussions). ## Supporting diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 5acf66a1..897226ff 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -578,7 +578,7 @@ taxonomy are unchanged. ## Phase 7 — Release - [ ] 7.1 Packaging/signing for all platforms; update channel - - Architecture — [ADR-002](adr/002-distribution-and-update-channels.md); release runbook — [releasing.md](dev/releasing.md). Box stays open: **Android release APKs are now signed** (upload keystore + four CI secrets configured, validated end-to-end on a release run) and **macOS release builds are now signed with a Developer ID and notarized**, but **Windows and Linux** desktop builds still ship **unsigned** (deferred signing wave) and update-manifest hosting still awaits enabling GitHub Pages. The **first public beta is shipping** — `v0.1.0-beta.1` (desktop + Android) and `v0.1.0-beta.2` are published on the [Releases page](https://github.com/ibanner56/CallersCompendium/releases); beta.2 adds a **signed + notarized macOS** build, an **iOS build delivered to TestFlight testers**, wider imports, program sharing, and a large figure-text display-parity pass (see the CHANGELOG, including the one-time Android reinstall note for the unified application id). + - Architecture — [ADR-002](adr/002-distribution-and-update-channels.md); release runbook — [releasing.md](dev/releasing.md). Box stays open: **Android release APKs are now signed** (upload keystore + four CI secrets configured, validated end-to-end on a release run) and **macOS release builds are now signed with a Developer ID and notarized**, but **Windows and Linux** desktop builds still ship **unsigned** (deferred signing wave). GitHub Pages is now enabled, so the per-channel update manifests are hosted and served (and a public landing page ships from `site/`). The **first public beta is well underway** — `v0.1.0-beta.1` (desktop + Android), `v0.1.0-beta.2`, and the current `v0.1.0-beta.3` are published on the [Releases page](https://github.com/ibanner56/CallersCompendium/releases); each build ships signed + notarized macOS and signed Android artifacts alongside unsigned Windows/Linux, with iPhone/iPad delivered to TestFlight testers (see the CHANGELOG, including the one-time Android reinstall note for the unified application id). - **Delivered** - Reusable CI (`_checks.yml` via `workflow_call`) with a thin `ci.yml` caller (#228). - Release pipeline `release.yml` (#230): a `v*` tag reuses the checks gate, then a build matrix produces a **draft** GitHub Release of **unsigned** desktop artifacts — Linux x64 (AppImage + tar.gz), macOS universal (dmg + zip), Windows x64 (installer + zip) — under deterministic `CallersCompendium---.` names, plus a `SHA256SUMS` manifest, keyless SLSA build-provenance + artifact attestation, and the per-channel `stable.json` / `beta.json` update manifests. Least-privilege (global `contents: read`; only the publish job elevates), canonical-repo + tag guards, SHA-pinned actions. @@ -587,11 +587,11 @@ taxonomy are unchanged. - In-app update client **Stage 1** (A11a, #245): pure-Dart manifest model + schema guard, SemVer compare, channel filter, a dedicated Settings **Updates** section (manual check + beta opt-in + auto-check; the last two default OFF), and a dismissible update banner linking the release page. - **Stage 1.5** assisted download (A11b, #250): desktop-only, user-initiated download → mandatory sha256 verify → OS handoff (mobile stays link-only); fails loudly on every path. - Update-manifest hosting (A11c, #249): the pipeline publishes each channel's manifest to a persistent `gh-pages` branch (cross-channel-preserving; [releasing.md](dev/releasing.md#publishing-the-update-manifest-github-pages)). + - **GitHub Pages enabled + public landing page** (#408): Pages is turned on (Deploy from a branch → `gh-pages` → `/ (root)`), so the hosted update manifests are live and a dependency-free landing page ships from `site/` at https://ibanner56.github.io/CallersCompendium/ (auto-aligning download links from `beta.json`, beta-signup CTA, and user-guide links). - Android release signing **complete**: Gradle `release` `signingConfig` from `key.properties` with a debug fallback in `app/android/app/build.gradle.kts` (#244) + a `release.yml` build+sign+stage universal-APK leg (#251). The upload keystore and all four `ANDROID_*` CI secrets are now configured, and a release run built + signed `CallersCompendium--android-universal.apk` end-to-end (the JDK-21 fix in #265 keeps release lint enabled). Users can sideload the signed APK from GitHub Releases — no Play Store required. - iOS release signing + TestFlight leg **wired** (gated on the Apple API-key secrets, which are configured): a `release.yml` iOS leg (`macos-latest`) archives + signs an App Store `.ipa` using **automatic signing driven by an App Store Connect API key** (App Manager role — **no manual cert or provisioning profile**) and uploads it to **TestFlight** via `xcrun altool --upload-app`. The `CFBundleVersion` is a monotonic `GITHUB_RUN_NUMBER` (TestFlight rejects duplicates; `pubspec.yaml` untouched), and the upload is gated to **real `v*` tags** (a `workflow_dispatch` builds + signs for validation but never uploads). iOS is **store-delivered** — the `.ipa` is not a GitHub Release asset / `SHA256SUMS` / manifest entry. Targets **iPhone + iPad**; first channel is internal TestFlight (no Beta App Review). **Now live:** beta.2 was archived, signed, and uploaded to TestFlight, and invited testers are running the iOS/iPadOS build (bug reports have come in against `0.1.0` on iOS). See [releasing.md](dev/releasing.md#ios-testflight-via-app-store-connect-api). - **macOS Developer ID signing + notarization delivered** (#311, notarization wait bounded in #329): the `release.yml` macOS leg signs the universal build with an Apple Developer ID and notarizes it (gated on the configured Apple secrets), so the macOS `.dmg`/`.zip` now open without the Gatekeeper right-click workaround. Shipped in beta.2. - **Remaining (maintainer — one-time, $0)** - - Enable GitHub Pages (Deploy from a branch → `gh-pages` → `/ (root)`); the in-app update client 404s gracefully until then. - Document Android upload-keystore custody (owner, secure backup, rotation policy) — the key is generated and wired into CI, so this is governance, not a build blocker (see [ADR-002](adr/002-distribution-and-update-channels.md) §6). - **Deferred** (later signing wave — needs paid developer accounts / a decision; see [ADR-002](adr/002-distribution-and-update-channels.md) §6) - Windows Authenticode/Store (MSIX) signing — Windows and Linux desktop currently ship UNSIGNED, so users bypass OS trust prompts manually. (macOS is now signed + notarized and iOS is distributed via TestFlight — see **Delivered** above.) @@ -600,19 +600,19 @@ taxonomy are unchanged. - [ ] 7.2 User documentation - **Delivered** — the [user-guide hub](user/README.md) + [style guide](user/style-guide.md), and the guides: Getting Started, Dialect (flagship), Imports & migration, Backup & portability, Collection & search, Programs & matrix, Perform mode, Accessibility, Settings, FAQ & troubleshooting, and Glossary; plus an offline **in-app User Guide** (#233). (#219/#222/#223/#224/#229/#233/#239/#240/#243) - **Remaining (blocked on other work)** - - Per-platform install page — unblocked now that 7.1 produces download links; still to draft. + - Per-platform install page — the public landing page ([site/](../site/), #408) now surfaces per-platform downloads, and the [Installation guide](user/installation.md) covers first-launch steps; a dedicated install page is optional. - Screenshots pass — needs a runnable branded build. - Beta-program page — tracked under 7.3. - - Optional hosted docs site — needs GitHub Pages enabled (see 7.1). + - Optional hosted docs site — Pages is enabled; rendering the user guides as a browsable site (beyond the landing page) is still optional. - [ ] 7.3 Beta program with real callers; feedback triage - **Delivered** - - Triage label taxonomy (`.github/labels.yml` + `label-sync.yml`) and structured issue forms — general feedback, import-source problem, beta check-in, plus revised bug/feature reports — with a Discussions + private-email contact config (#221). + - Triage label taxonomy (`.github/labels.yml` + `label-sync.yml`) and structured issue forms — general feedback, import-source problem, beta check-in, a **beta signup / "Join the beta"** form (#413), plus revised bug/feature reports — with a Discussions + private-email contact config (#221). - Beta docs: [beta guide](beta/beta-guide.md), [test charter](beta/test-charter.md), [triage rubric](beta/triage-rubric.md) (#227); a [beta-recruitment plan](product/beta-recruitment.md); and CONTRIBUTING/README feedback hooks. + - **GitHub Discussions is enabled** (with categories), so the contact/community links resolve. - **Remaining (maintainer ops)** - - Enable GitHub Discussions + categories (the contact link 404s until then). - Confirm the feedback email/alias (config currently routes to the maintainer's address). - - **Deferred / blocked** - - Beta execution — recruit → run → interview → GA — waits on 7.1 builds, 7.2 Getting Started, and real callers. + - **In progress** + - Beta execution — recruit → run → interview → GA. Underway: signed builds ship for every platform, the Getting Started guide is live, and invited callers are filing beta feedback against `v0.1.0-beta.x`. Remaining is the run → interview → GA arc with more real callers. ## Later milestones diff --git a/docs/beta/beta-guide.md b/docs/beta/beta-guide.md index 114dd54c..b6bbc8be 100644 --- a/docs/beta/beta-guide.md +++ b/docs/beta/beta-guide.md @@ -44,14 +44,12 @@ These parts of the app are built and ready for you to lean on: Being honest about the state of things saves everyone time: -- **Installation is not packaged yet.** Signed, one-click installers for each - platform are the main remaining pre-release work (roadmap **Phase 7.1**). Until - those land, joining the beta means running a development build — see - [How to install](#how-to-install). -- **Some polish is unfinished.** A named-dialect library manager and a couple of - import sources (a hosted Caller's Box snapshot and the Caller's Companion binary - `.USR` migration) are still in progress. Everything else in the list above is - ready to use. +- **Signing is uneven across platforms.** The **macOS** build is signed with an + Apple Developer ID and notarized, and the **Android** APK is signed, so both + open normally. **Windows** and **Linux** builds aren't code-signed yet, so those + operating systems show a one-time caution the first time you open the app — + [How to install](#how-to-install) walks you past it. Code-signing for Windows + and Linux is planned for a later release. - **You may hit bugs.** That is the point — when you do, tell us (see [How to give feedback](#how-to-give-feedback)). @@ -80,10 +78,12 @@ in more depth. 1. Read this guide and skim the [test charter](./test-charter.md) so you know the kinds of things we are hoping you will try. -2. Say hello in +2. Fill out the **[Join the beta](https://github.com/ibanner56/CallersCompendium/issues/new?template=beta_signup.yml)** + form — it asks which platforms you call on, and (for iPhone/iPad) the Apple ID + email for your TestFlight invite. A free GitHub account is all you need. You can + also just say hello in [GitHub Discussions](https://github.com/ibanner56/CallersCompendium/discussions) - — introduce yourself, tell us where you call and on what devices, and we will - help you get set up. A free GitHub account is all you need. + if you would rather start with a conversation. 3. Install the app (below) and start using it for your real dances. You can step back at any time, and you never have to share anything you would @@ -130,14 +130,12 @@ Pick the channel that fits: we can chat before anything becomes a formal request. All of the issue forms live on the -[new-issue chooser](https://github.com/ibanner56/CallersCompendium/issues/new/choose). -The **Bug report** and **Feature request** forms are always available there; the -beta-specific forms above (**General feedback**, **Beta check-in**, and **Import -source problem**) join them as the beta program rolls out. If a form you are -looking for is not on the chooser yet, a **Bug report** or a -[Discussion](https://github.com/ibanner56/CallersCompendium/discussions) always -works in the meantime. Not sure which to pick? Start a Discussion — we will sort it -out together. Once you file something, a maintainer sorts it using the +[new-issue chooser](https://github.com/ibanner56/CallersCompendium/issues/new/choose): +**Bug report**, **Feature request**, **General feedback**, **Beta check-in**, +**Import source problem**, and **Join the beta** are all available there now. Not +sure which to pick? Start a +[Discussion](https://github.com/ibanner56/CallersCompendium/discussions) — we will +sort it out together. Once you file something, a maintainer sorts it using the [triage rubric](./triage-rubric.md), so you can see how reports move from "just arrived" to "fixed." diff --git a/docs/product/beta-recruitment.md b/docs/product/beta-recruitment.md index 89915b51..bb9cd8e4 100644 --- a/docs/product/beta-recruitment.md +++ b/docs/product/beta-recruitment.md @@ -16,7 +16,7 @@ A good beta cohort is small (roughly 10–25 active testers) and varied along th axes that stress the app differently: - **Experience** — from newer callers to veterans with big repertoires. -- **Platforms** — Linux, macOS, Windows, Android, and iOS/iPadOS, so packaging and +- **Platforms** — Linux, macOS, Windows, Android, and iOS/iPadOS, so installs and Perform mode get exercised everywhere. - **Calling context** — regular series callers, weekend/festival callers, and folks who call occasionally, since they build programs and use Perform mode differently. @@ -107,8 +107,8 @@ Fill in the bracketed bits. Keep links intact. Trim to fit each venue's norms. > > What I'm asking: use it for your own dances — ideally call at least one real gig > with it — and tell me how it went. All feedback is voluntary and goes through -> GitHub. Installers are still being packaged, so early testers run a development -> build; I'll happily walk you through it. +> GitHub. Downloadable builds are ready for Linux, macOS, Windows, and Android +> (iPhone/iPad go out through TestFlight); I'll happily walk you through install. > > Interested? Start here: https://github.com/ibanner56/CallersCompendium/blob/main/docs/beta/beta-guide.md > and say hello in Discussions: https://github.com/ibanner56/CallersCompendium/discussions @@ -164,9 +164,8 @@ Fill in the bracketed bits. Keep links intact. Trim to fit each venue's norms. > in. > > Since many of us call the same series, this is a great chance to try it at a real -> [region] dance and tell me what works on your device. Installers are still being -> packaged, so early testers run a development build — I'm glad to help you get set -> up. +> [region] dance and tell me what works on your device. Ready-to-install builds are +> available for every platform — I'm glad to help you get set up. > > Interested? Details are here: > https://github.com/ibanner56/CallersCompendium/blob/main/docs/beta/beta-guide.md @@ -179,7 +178,7 @@ Fill in the bracketed bits. Keep links intact. Trim to fit each venue's norms. Every template says the same true things: the app is free, local-first, and collects nothing; testers keep control of their data; and this is pre-release -software that still needs packaging. We do not oversell. Callers are a +software with rough edges we want reported. We do not oversell. Callers are a tight-knit, generous community — the fastest way to earn their help is to be straight with them. diff --git a/site/index.html b/site/index.html index 92927ed7..1d165db0 100644 --- a/site/index.html +++ b/site/index.html @@ -56,7 +56,7 @@

The caller's notebook, reimagined.

Join the beta program

- v0.1.0-beta.2 + v0.1.0-beta.3 Local-first No telemetry Works fully offline From 8efadba37982fa5530454f5801b2289d031f0b23 Mon Sep 17 00:00:00 2001 From: ibanner56 Date: Tue, 21 Jul 2026 21:45:28 -0700 Subject: [PATCH 2/2] docs: address Copilot review on #453 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - beta-guide: keep Apple ID / TestFlight emails out of the public signup issue — sign up via the form for platforms, send the invite address privately to isaac@banner.is instead. - beta-guide: correct per-platform first-run steps — Android still needs a one-time "install unknown apps" sideload permission, Windows shows SmartScreen, Linux has no signing prompt (just the executable bit); matches docs/user/installation.md. - ROADMAP §7.3: "builds ship for every platform" now retains the signing qualifiers so it no longer contradicts the §7.1 status (Win/Linux unsigned). - CONTRIBUTING.md: the beta-specific forms are all live now (not "as the beta rolls out") and add the Join-the-beta signup. - releasing.md: version-fallback bullet no longer embeds a specific beta version. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- CONTRIBUTING.md | 12 ++++++------ docs/ROADMAP.md | 2 +- docs/beta/beta-guide.md | 23 ++++++++++++++--------- docs/dev/releasing.md | 6 +++--- 4 files changed, 24 insertions(+), 19 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2b8175e1..ea1c112f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -179,12 +179,12 @@ telemetry**, so nothing is ever collected automatically. You decide what to shar the beta is, how to join, and how to send feedback — then skim the [test charter](docs/beta/test-charter.md) for concrete things to try, all centered on calling a real dance from **Perform mode**. -- **Filing something?** The **Bug report** and **Feature request** forms are - always on the - [new-issue chooser](https://github.com/ibanner56/CallersCompendium/issues/new/choose). - As the beta program rolls out, beta-specific forms join them: **General feedback** - for rough edges, **Beta check-in** to report how a session or gig went, and - **Import source problem** when a dance imports wrong. For open-ended ideas, start a +- **Filing something?** The + [new-issue chooser](https://github.com/ibanner56/CallersCompendium/issues/new/choose) + now carries the full set of forms: **Bug report** and **Feature request**, + the beta-specific **General feedback** (rough edges), **Beta check-in** (how a + session or gig went), and **Import source problem** (a dance imported wrong), + plus a **Join the beta** signup. For open-ended ideas, start a [Discussion](https://github.com/ibanner56/CallersCompendium/discussions). - **Curious what happens next?** Maintainers sort every report using the [triage rubric](docs/beta/triage-rubric.md), which maps to the label taxonomy in diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 897226ff..1022910e 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -612,7 +612,7 @@ taxonomy are unchanged. - **Remaining (maintainer ops)** - Confirm the feedback email/alias (config currently routes to the maintainer's address). - **In progress** - - Beta execution — recruit → run → interview → GA. Underway: signed builds ship for every platform, the Getting Started guide is live, and invited callers are filing beta feedback against `v0.1.0-beta.x`. Remaining is the run → interview → GA arc with more real callers. + - Beta execution — recruit → run → interview → GA. Underway: builds ship for every platform (macOS signed + notarized and Android signed; Windows and Linux still unsigned; iPhone/iPad via TestFlight), the Getting Started guide is live, and invited callers are filing beta feedback against `v0.1.0-beta.x`. Remaining is the run → interview → GA arc with more real callers. ## Later milestones diff --git a/docs/beta/beta-guide.md b/docs/beta/beta-guide.md index b6bbc8be..d9c9db7d 100644 --- a/docs/beta/beta-guide.md +++ b/docs/beta/beta-guide.md @@ -44,12 +44,14 @@ These parts of the app are built and ready for you to lean on: Being honest about the state of things saves everyone time: -- **Signing is uneven across platforms.** The **macOS** build is signed with an - Apple Developer ID and notarized, and the **Android** APK is signed, so both - open normally. **Windows** and **Linux** builds aren't code-signed yet, so those - operating systems show a one-time caution the first time you open the app — - [How to install](#how-to-install) walks you past it. Code-signing for Windows - and Linux is planned for a later release. +- **Signing and first-run steps vary by platform.** The **macOS** build is signed + with an Apple Developer ID and notarized, so it opens normally. The **Android** + APK is signed, but because it isn't on the Play Store you'll still grant a + one-time **"install unknown apps"** permission to sideload it. **Windows** isn't + code-signed yet, so **SmartScreen** shows a caution the first time you run it. + **Linux** has no signing prompt at all — you just mark the AppImage as runnable. + [How to install](#how-to-install) walks through each; code-signing for Windows is + planned for a later release. - **You may hit bugs.** That is the point — when you do, tell us (see [How to give feedback](#how-to-give-feedback)). @@ -79,9 +81,12 @@ in more depth. 1. Read this guide and skim the [test charter](./test-charter.md) so you know the kinds of things we are hoping you will try. 2. Fill out the **[Join the beta](https://github.com/ibanner56/CallersCompendium/issues/new?template=beta_signup.yml)** - form — it asks which platforms you call on, and (for iPhone/iPad) the Apple ID - email for your TestFlight invite. A free GitHub account is all you need. You can - also just say hello in + form to tell us which platforms you call on. A free GitHub account is all you + need. **Heads-up: the signup issue is public**, so keep personal contact details + out of it — if you want an iPhone/iPad **TestFlight** invite, email the Apple ID + address it should go to privately to + [isaac@banner.is](mailto:isaac@banner.is) rather than posting it in the issue. + You can also just say hello in [GitHub Discussions](https://github.com/ibanner56/CallersCompendium/discussions) if you would rather start with a conversation. 3. Install the app (below) and start using it for your real dances. diff --git a/docs/dev/releasing.md b/docs/dev/releasing.md index 8b630254..10963e1b 100644 --- a/docs/dev/releasing.md +++ b/docs/dev/releasing.md @@ -359,9 +359,9 @@ refresh anything the release changed: - **Screenshots** — replace or add captures for changed UI (see [`site/README.md`](../../site/README.md#adding-real-screenshots) for the capture procedure). -- **Version fallbacks** — the static `v0.1.0-beta.2` strings in `index.html` are - only shown before the manifest fetch resolves; bump them at a major beta so the - pre-hydration flash matches. +- **Version fallbacks** — the static `v0.1.0-beta.` string in `index.html`'s + version pill is only shown before the manifest fetch resolves; bump it at a major + beta so the pre-hydration flash matches the current release. Commit those edits to `main` in the release prep PR; merging triggers `pages-site.yml` and the page redeploys. To refresh the page **without** a code