Deliver make install #30

Closed
opened 2026-08-31 18:24:37 +00:00 by xavierk · 0 comments
Owner

Parent

Implement the Fenris persistent TUI monitoring redesign

Canonical contracts: fenris-redesign spec · acceptance criteria — criterion IDs cited below live in the register.

What to build

A clean host install. sudo make install builds a wheel from the checkout and installs it with exact lockfile pins into the dedicated venv at /opt/fenris, placing units, helpers, and polkit policy at their fixed locations and recording every placed file in an explicit manifest. It verifies Python ≥ 3.9 and smartctl at install time, failing cleanly otherwise; creates the store directory with root-written group-read permissions (the database file created lazily by the first write); detects legacy history beside the source or at an explicit path and runs the idempotent import, reporting counts, with fenris import <path> remaining available. The installed system is fully dormant: units present but disabled, nothing running, no monitoring period — opt-in is only the sanctioned toggle or the first-run TUI prompt. After install, nothing references the checkout.

Acceptance criteria

  • Wheel built from the checkout, exact lockfile pins installed into the dedicated venv, PATH wrapper for the unprivileged entry point (IN-1, IN-8)
  • Every placed file recorded in an explicit manifest consumed by upgrade and uninstall (IN-2)
  • Install-time gates: Python ≥ 3.9 and smartctl verified, clean failure otherwise; no runtime crash (IN-9, AC-5, TUI-3)
  • Fixed artifact placement only — units, helpers, polkit policy, configuration, store — all manifest-recorded (IN-10)
  • Store directory created with root-written group-read permissions; database created lazily by first write (IN-9, ST-1)
  • Fresh install is dormant: never enables or starts units, no monitoring period; opt-in only via the sanctioned toggle or first-run TUI prompt (IN-3)
  • Install-time legacy import detection and explicit-path import, idempotent, reporting imported counts (IN-4, ST-7)

Blocked by

## Parent [Implement the Fenris persistent TUI monitoring redesign](https://git.bongbetic.com/xavierk/Fenris/issues/20) Canonical contracts: [fenris-redesign spec](https://git.bongbetic.com/xavierk/Fenris/src/branch/main/docs/spec/fenris-redesign.md) · [acceptance criteria](https://git.bongbetic.com/xavierk/Fenris/src/branch/main/docs/spec/acceptance-criteria.md) — criterion IDs cited below live in the register. ## What to build A clean host install. `sudo make install` builds a wheel from the checkout and installs it with exact lockfile pins into the dedicated venv at `/opt/fenris`, placing units, helpers, and polkit policy at their fixed locations and recording every placed file in an explicit manifest. It verifies Python ≥ 3.9 and `smartctl` at install time, failing cleanly otherwise; creates the store directory with root-written group-read permissions (the database file created lazily by the first write); detects legacy history beside the source or at an explicit path and runs the idempotent import, reporting counts, with `fenris import <path>` remaining available. The installed system is fully dormant: units present but disabled, nothing running, no monitoring period — opt-in is only the sanctioned toggle or the first-run TUI prompt. After install, nothing references the checkout. ## Acceptance criteria - [ ] Wheel built from the checkout, exact lockfile pins installed into the dedicated venv, PATH wrapper for the unprivileged entry point (IN-1, IN-8) - [ ] Every placed file recorded in an explicit manifest consumed by upgrade and uninstall (IN-2) - [ ] Install-time gates: Python ≥ 3.9 and smartctl verified, clean failure otherwise; no runtime crash (IN-9, AC-5, TUI-3) - [ ] Fixed artifact placement only — units, helpers, polkit policy, configuration, store — all manifest-recorded (IN-10) - [ ] Store directory created with root-written group-read permissions; database created lazily by first write (IN-9, ST-1) - [ ] Fresh install is dormant: never enables or starts units, no monitoring period; opt-in only via the sanctioned toggle or first-run TUI prompt (IN-3) - [ ] Install-time legacy import detection and explicit-path import, idempotent, reporting imported counts (IN-4, ST-7) ## Blocked by - [Migrate the legacy observation history](https://git.bongbetic.com/xavierk/Fenris/issues/24) - [Build the Panes TUI](https://git.bongbetic.com/xavierk/Fenris/issues/28) - [Ship the fenris-monitor helper, polkit policy, and systemd units](https://git.bongbetic.com/xavierk/Fenris/issues/29)
xavierk changed title from Deliver to Deliver make install 2026-08-31 18:25:08 +00:00
xavierk added the ready-for-agent label 2026-08-31 18:25:32 +00:00
xavierk added this to the Build: Fenris persistent TUI monitoring redesign milestone 2026-08-31 18:25:33 +00:00
xavierk added a new dependency 2026-08-31 18:25:46 +00:00
xavierk added a new dependency 2026-08-31 18:25:47 +00:00
xavierk added a new dependency 2026-08-31 18:25:48 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: xavierk/Fenris#30