Prints checklist steps; -VerifyArtifacts uses fill-manifest-sha256.
6.1 KiB
VM dual-ship checklist (printable)
Printable operator sheet for clean-VM A / B / C validation while NSIS remains primary and full MSI is dual-ship only. Narrative runbook: DUAL-SHIP.md. Silent props: SILENT_PROPS.md. Offline runner (prints these steps; optional local MSI/NSIS existence + hash): ../scripts/dual-ship-smoke.ps1.
powershell -NoProfile -ExecutionPolicy Bypass -File platform\windows\scripts\dual-ship-smoke.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File platform\windows\scripts\dual-ship-smoke.ps1 -VerifyArtifacts
HelperVersion: _____________ (expect 0.3.6 unless VERSION= override)
NSIS artifact: VeraePrintStamp-windows-_____-_____-setup.exe
MSI artifact: VeraePrintStamp-windows-_____-_____.msi
Operator / date: _____________ / _____________
Snapshot IDs: A _____________ B _____________ C _____________
Rules
- One channel per VM until Upgrade/ARP coexistence is an explicit test.
- Hold / jobId is not evidence — receipt/CID only on stamp path.
- Do not thin NSIS until DUAL-SHIP.md thin-NSIS exit A–D are all checked.
- VM C stays blocked while printer deferred CAs are commented in
Product-Full.wxs.
Shared pre-checks (every VM)
| # | Step | ☐ |
|---|---|---|
| 0.1 | Fresh Win10/11 x64 snapshot (or sysprep-clean); admin account available | ☐ |
| 0.2 | No prior Verae Print Stamp under Program Files or ARP | ☐ |
| 0.3 | Spooler running (Get-Service Spooler) |
☐ |
| 0.4 | Note HelperVersion on artifact (NSIS version resource / MSI ProductVersion) = tree |
☐ |
| 0.5 | Record SmartScreen / AV prompts (unsigned expected until Authenticode live) | ☐ |
VM A — NSIS primary (baseline)
Install: elevated setup.exe (GUI).
| # | Step | Result / notes | ☐ |
|---|---|---|---|
| A.1 | Run setup.exe elevated; key wizard complete or skip per test plan | ☐ | |
| A.2 | Confirm Program Files\Verae\PrintStamp\bin\verae-print.exe + helper |
☐ | |
| A.3 | Confirm printers (IPP and/or Local Port) present | names: __________ | ☐ |
| A.4 | Confirm scheduled task Verae Print Helper | principal: __________ | ☐ |
| A.5 | Print one-page PDF → stamp path OK (receipt/CID; never jobId-only) | ☐ | |
| A.6 | Start Menu: Setup signing key, Start print helper, Collect diagnostics | ☐ | |
| A.7 | Uninstall via ARP; printers/task removed; reboot optional | ☐ |
VM A sign-off: pass / fail · log path: ___________________________ · initials: _____
VM B — MSI files-only (safe today)
Install: full MSI with printers skipped (CAs still commented — do not expect queues).
msiexec /i VeraePrintStamp-windows-amd64-0.3.6.msi /qn /norestart ^
VERAE_SKIP_KEY_SETUP=1 VERAE_SKIP_PRINTERS=1 VERAE_CHANNEL=zapier
UI install is fine for smoke; /qn proves fleet syntax.
| # | Step | Result / notes | ☐ |
|---|---|---|---|
| B.1 | msiexec as above (or UI); exit code recorded |
code: _____ | ☐ |
| B.2 | Confirm InstallDir: bin\, scripts\ (incl. install-printer.ps1), LICENSE, README |
☐ | |
| B.3 | ARP entry: Publisher Verae; DisplayVersion = HelperVersion | ☐ | |
| B.4 | Start Menu shortcuts resolve to helper / diag | ☐ | |
| B.5 | Optional: elevated manual scripts\install-printer.ps1 -InstallDir "…" (script parity outside CA) |
☐ | |
| B.6 | msiexec /x {ProductCode} /qn — files + Start Menu gone; no orphan HKLM\Software\Verae\PrintStamp |
☐ |
Pass (files-only): clean install/uninstall; version match; no reboot required; props accepted.
Fail: missing StageFull binaries at light time; UpgradeCode collision with tray MSI; unexpected elevation refuse.
VM B sign-off: pass / fail · ProductCode: _____________ · initials: _____
VM C — MSI printer CA (still left / blocked until CAs live)
Prerequisites: uncomment + schedule deferred CAs in Product-Full.wxs (InstallExecuteSequence after InstallFiles); rebuild MSI.
| # | Step | Result / notes | ☐ |
|---|---|---|---|
| C.0 | CAs scheduled; conditions NOT Installed + VERAE_SKIP_PRINTERS<>"1" (install); REMOVE~="ALL" (uninstall) |
☐ | |
| C.1 | Default MSI install (or VERAE_SKIP_PRINTERS=0) elevated |
☐ | |
| C.2 | Program Files layout matches VM A (bin\, scripts\, docs) |
☐ | |
| C.3 | IPP loopback 127.0.0.1:8631 and/or Local Port names match NSIS |
☐ | |
| C.4 | Scheduled task Verae Print Helper (same principal / trigger class as A) | ☐ | |
| C.5 | Start Menu OK; one-page PDF stamp path (receipt/CID evidence) | ☐ | |
| C.6 | VERAE_SKIP_PRINTERS=1 skips CA; default installs printers |
☐ | |
| C.7 | msiexec /x removes printers, task, files, Start Menu; no orphan HKLM |
☐ | |
| C.8 | Repair / same-version upgrade smoke (AllowSameVersionUpgrades) |
☐ |
Do not mark dual-ship complete until VM C matches VM A on a clean image.
VM C sign-off: pass / fail / blocked (CAs commented) · initials: _____
Side-by-side comparison (tick when observed)
| Check | NSIS (A) | MSI files (B) | MSI+CA (C) |
|---|---|---|---|
| Version = HelperVersion | ☐ | ☐ | ☐ |
| Program Files layout | ☐ | ☐ | ☐ |
| Start Menu shortcuts | ☐ | ☐ | ☐ |
| ARP uninstall clean | ☐ | ☐ | ☐ |
| IPP + Local Port printers | ☐ | N/A | ☐ |
| Scheduled task helper | ☐ | N/A | ☐ |
| Key wizard / first-run key | ☐ | skip prop | ☐ |
msiexec /qn |
N/A | ☐ | ☐ |
| Authenticode (signtool) | ☐ still left | ☐ still left | ☐ still left |
After the VMs (do not skip)
| Gate | ☐ |
|---|---|
| Record logs + exit codes in release notes / dual-ship folder | ☐ |
| Authenticode still left → SmartScreen warn is not promote-ready | ☐ |
Update site DOWNLOADS-MANIFEST digests only after upload (0.3.6 rows are TBD until then); hash with fill-manifest-sha256.ps1 (no upload) |
☐ |
| Thin-NSIS only when DUAL-SHIP exit checklist A–D all checked | ☐ |
Overall dual-ship gate: open / closed · notes: _______________________________