Skip to content

Commit 5231238

Browse files
committed
Expand JavaFX installer with complete lifecycle and platform options
1 parent 90d603b commit 5231238

1 file changed

Lines changed: 40 additions & 12 deletions

File tree

installer/README.md

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,54 @@ Cross-platform GUI installer for Windows, macOS, and Linux.
44

55
## Installation model
66

7-
The GUI presents the canonical **1, 2, 3** installation stages:
7+
The GUI presents the canonical installation stages:
88

9-
1. **Core** — install the US House runtime.
9+
1. **Core** — install the US House/JWSTF runtime.
1010
2. **Tools** — install software-house tools and conveniences.
11-
3. **Configure** — apply selected configuration and integration options.
11+
3. **Configure** — apply selected configuration and integrations.
12+
4. **Verify** — inspect the resulting installation and produce a report.
1213

13-
The broader evidence lifecycle remains **1 Origin → 2 Custody → 3 Production → 4 Release**. The GUI's numbered installation choices are the actionable installation subset of that lifecycle.
14+
The broader lifecycle is **install → update → verify → remove**, while the evidence lifecycle remains **1 Origin → 2 Custody → 3 Production → 4 Release**.
15+
16+
## GUI options
17+
18+
The installer should expose these options before execution:
19+
20+
- Install / repair
21+
- Update
22+
- Verify
23+
- Remove installed artifacts
24+
- `/user` professional/user-scoped profile
25+
- `/deck` enterprise/machine-wide profile
26+
- Linux / Windows / macOS target
27+
- Distribution-managed or manually managed Tomcat on Linux
28+
- Apache integration where available
29+
- Java 21 prerequisite handling
30+
- JWSTF application, configuration, state, and log paths
31+
- Start/stop service after operation
32+
- Dry-run / review changes
33+
- Export an installation report
34+
35+
The GUI must never silently delete repository source. Removal concerns installed/generated artifacts and uses the platform's normal uninstall mechanism where available.
1436

1537
## Integrations
1638

17-
The UI provides Microsoft and Apple integration choices. Actual privileged changes are intentionally delegated to the platform-specific launchers under `cmd/us-house/windows`, `cmd/us-house/macos`, and the corresponding Linux implementation. This keeps the JavaFX GUI platform-neutral.
39+
The UI provides Microsoft and Apple integration choices. Actual privileged changes are delegated to platform-specific launchers under `cmd/us-house/windows`, `cmd/us-house/macos`, and the corresponding Linux implementation. This keeps the JavaFX GUI platform-neutral.
40+
41+
## Standard paths
42+
43+
The installer reads `config/preferred-install-paths.json`. `/user` and `/deck` are logical deployment profiles; they resolve to native OS locations rather than replacing OS conventions.
44+
45+
For Linux, distribution-managed Tomcat retains its package-managed `/etc/tomcat10` and `/var/lib/tomcat10` layout. A deliberate manual Tomcat installation may use `/opt/tomcat`; these management models must not be mixed.
1846

19-
## Build
47+
## Native packaging
2048

21-
The installer requires a JavaFX-capable JDK/toolchain. The repository currently does not contain a JavaFX build descriptor, so the Java source is the GUI implementation layer; a Maven or Gradle JavaFX packaging project should be added before producing signed native installers.
49+
The repository should build the GUI as a Java application/JAR and use `jpackage` on the target OS for native installation artifacts:
2250

23-
Recommended native targets are:
51+
- **Windows:** `.exe` and/or `.msi`
52+
- **macOS:** `.dmg` and/or `.pkg`
53+
- **Linux:** `.deb` and/or `.rpm`, plus an application image where useful
2454

25-
- Windows: `.msi` or `.exe`
26-
- macOS: `.dmg` or `.pkg`
27-
- Linux: `.deb` and/or `.rpm`
55+
Native installers should be generated on their corresponding operating system, signed where appropriate, checksummed, and published as release artifacts. The repository should not contain fabricated platform binaries.
2856

29-
Native packaging should use platform-appropriate signing and should verify the resulting artifact before release.
57+
The existing source is the GUI implementation layer; a JavaFX Maven or Gradle packaging project should be added/used by the release build before producing native installers.

0 commit comments

Comments
 (0)