Skip to content

chore: remove the Raspberry Pi image - #1393

Merged
frahlg merged 1 commit into
masterfrom
chore/remove-pi-image
Sep 24, 2026
Merged

frahlg merged 1 commit into
masterfrom
chore/remove-pi-image

Conversation

@frahlg

@frahlg frahlg commented Sep 24, 2026 •

Copy link
Copy Markdown
Member

Why

The owner decided FTW should not have its own Raspberry Pi image. A Pi is a host like any other: Raspberry Pi OS Lite 64-bit with the installer, or FTW in Docker. The monthly image still installed Docker 2.x with the sidecar, so new Pi users kept arriving on the old line.

What

  • Deletes deploy/pi-gen/, deploy/imager/os_list.json, .github/workflows/rpi-image-build.yml and docs/rpi-image.md, plus the .gitignore entries for pi-gen.
  • release-assets.yml is the exceptional old 2.x stable path. It no longer mirrors the Imager os_list.json onto a release. scripts/check-stable-release.py stops requiring that asset, and scripts/test-exact-image-promotion.sh follows: no Imager assertions, and five release-token uses instead of six.
  • ADR 0007 now says there is no image:
    • decision 6 says so directly;
    • decision 5 leaves host updates with the owner;
    • decision 14 and the evidence list drop the image.
  • The roadmap, README, docs/operations.md, docs/self-update.md and the setup-guide index lose their links to the image guide. The setup guides themselves stay: they prepare a stock Raspberry Pi OS card with Raspberry Pi Imager.
  • Comments in Dockerfile and docker-compose.yml no longer point at pi-gen.
  • Nothing in Core or the web UI depends on the image's first-boot, Wi-Fi onboarding or port-redirect helpers. A grep finds no references.

Also

  • The README install section now says the owner installs FTW themselves and chooses native or Docker, and links to docs/native-beta.md. The stale v0.131.0-beta.1 command from master is replaced by an exact-tag install.
  • After this merges, the published rpi-installer release is deleted (owner decision). It holds the 2.x image and the Imager os_list.json that docs/rpi-image.md pointed Imager at. Cards already flashed keep Docker 2.x until the guided migration.

Evidence

  • bash scripts/test-exact-image-promotion.sh passes, and passes on master before the change.
  • make release-workflow-test compose-migration-test container-boundary-test passes.
  • bash .github/scripts/test-change-classifier.sh passes.
  • release-assets.yml parses as YAML.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MuerPFZFG88kgu8sWVHeq7

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-24T12:57:43.625523Z f571c25 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f571c2566d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

name: verify complete draft assets
runs-on: ubuntu-latest
needs: [meta, binaries, imager-metadata]
needs: [meta, binaries]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Clean up legacy os_list on resumed drafts

When this workflow resumes a draft created by the previous workflow, that draft can already contain os_list.json because the old imager-metadata job uploaded it before assets-ready. The new workflow leaves that asset in place, while check-stable-release.py now requires exactly nine assets and rejects os_list.json as unexpected, so any interrupted stable publication that reached the metadata upload can no longer be resumed using the required master workflow. Delete the legacy asset during resume or explicitly accept it for existing drafts.

AGENTS.md reference: AGENTS.md:L238-L242

Useful? React with 👍 / 👎.

Comment thread docs/roadmap.md
| External automation and agent access | Give authorized clients structured analysis data, schedule/goal changes and proposed-plan submission. Temporary external control expires; durable goals persist. Support local access and secure cloud MCP access. | Paired Core/client contract tests cover permissions, expiry, replay, rejection, revocation and reconnect. An agent can trace a request through to measured outcome. Prove local fallback when the caller disappears. Reuse the session/relay where suitable and verify that relay and escrow remain blind. Cloud MCP is a target, not a claim of a shipped endpoint. |
| Less configuration, reliable operation | Every normal setting serves a user need. Keep expert controls discoverable. Installation, updates, backup and recovery remain part of the finished experience. | Audit settings and feature use before removal. Test migration of stored choices so hidden settings cannot keep directing behaviour. Verify restart, upgrade and restore on a target box and review affected UI flows. |
| Updates the owner runs | The owner operates the host; FTW supplies the steps. `ftw update` runs unattended, falls back on its own when a new release does not stay up, and makes a verified full backup before a change to stored data. The same steps are API calls, so owners and their agents can wrap them. On native, the web UI shows the version and the release notice only. The installer, the Pi image and the Docker migration produce one native layout. | The evidence list in [ADR 0007](adr/0007-self-updating-binary.md#evidence-required-before-rollout), on the home box and one other site: update and rollback timings, a crash during and just after the trial, a slow first start, a state-schema change and its way back, an unattended run, disk use after ten updates, a freshly flashed Pi image, and a Docker 2.x or 3.x box moved to native with a tested return to its old installation. |
| Updates the owner runs | The owner operates the host; FTW supplies the steps. `ftw update` runs unattended, falls back on its own when a new release does not stay up, and makes a verified full backup before a change to stored data. The same steps are API calls, so owners and their agents can wrap them. On native, the web UI shows the version and the release notice only. The installer and the Docker migration produce one native layout. | The evidence list in [ADR 0007](adr/0007-self-updating-binary.md#evidence-required-before-rollout), on the home box and one other site: update and rollback timings, a crash during and just after the trial, a slow first start, a state-schema change and its way back, an unattended run, disk use after ten updates, a freshly flashed Pi image, and a Docker 2.x or 3.x box moved to native with a tested return to its old installation. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Remove the retired Pi image from roadmap evidence

This row now says only the installer and Docker migration produce the native layout, but its acceptance evidence still requires testing “a freshly flashed Pi image.” Since this commit deletes the image builder and Imager listing, that evidence can no longer be produced and the maintained roadmap contradicts the new product direction; replace it with evidence from a freshly prepared Raspberry Pi OS host using the installer.

AGENTS.md reference: AGENTS.md:L133-L135

Useful? React with 👍 / 👎.

FTW no longer builds its own Raspberry Pi image. A Pi runs Raspberry Pi
OS Lite 64-bit with the installer, or FTW in Docker, like any other host.

Removes deploy/pi-gen, the Imager listing template, the monthly image
workflow and its guide. The old 2.x stable workflow no longer mirrors
Imager metadata onto a release, and its asset guard and tests follow.
ADR 0007 decision 6 now says there is no image. Cards flashed from the
old image keep Docker 2.x until the guided migration.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MuerPFZFG88kgu8sWVHeq7
@frahlg
frahlg force-pushed the chore/remove-pi-image branch from f571c25 to a727bf2 Compare September 24, 2026 13:03
@frahlg
frahlg merged commit 2ed228a into master Sep 24, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant