Initial scaffold: ArchyHCL, a community hardware compatibility list for Archipelago
Build and validate / build (push) Successful in 1m38s
Build and validate / build (push) Successful in 1m38s
Modeled on three researched precedents (see README): OpenWrt's Table of Hardware for the browsable sortable/filterable table UX, postmarketOS's working/community/testing tiers for the status field (collapsed to working/partial/broken here), and RaspiBlitz's scattered GitHub-issues approach as a negative example to avoid — hence structured YAML report files validated against a JSON Schema instead of free-text issue threads. - data/reports/*.yml + data/schema.json: one file per report, schema requires `issues` whenever status is partial/broken - scripts/build.py: validates every report and builds site/data.json, fails loudly on bad data (same idea as archy's own validate-app-manifest.sh) - site/: plain HTML/CSS/JS, no framework or build step, fetches data.json client-side — search, filter by status/form-factor, sortable columns, click a row for issues/notes detail - .github/ISSUE_TEMPLATE/hardware-report.yml: structured submission path for contributors who don't want to touch git directly - .gitea/workflows/ci.yml: runs the build/validate step on push and PRs Not yet deployed anywhere — see README's Deployment section. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "ArchyHCL hardware report",
|
||||
"description": "One reported install of Archipelago on a physical device. One file per report under data/reports/.",
|
||||
"type": "object",
|
||||
"required": ["device_model", "form_factor", "cpu", "ram_gb", "storage", "wifi_chip", "archy_version", "install_method", "status", "tested_date"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"device_model": {
|
||||
"type": "string",
|
||||
"description": "Manufacturer + model, e.g. \"Lenovo ThinkPad T430\" or \"Raspberry Pi 5 8GB\"."
|
||||
},
|
||||
"form_factor": {
|
||||
"type": "string",
|
||||
"enum": ["laptop", "desktop", "mini-pc", "sbc", "server", "other"]
|
||||
},
|
||||
"cpu": {
|
||||
"type": "string",
|
||||
"description": "e.g. \"Intel Core i5-3320M\", \"Broadcom BCM2712\"."
|
||||
},
|
||||
"ram_gb": {
|
||||
"type": "number",
|
||||
"exclusiveMinimum": 0
|
||||
},
|
||||
"storage": {
|
||||
"type": "object",
|
||||
"required": ["type", "size_gb"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["hdd", "ssd", "nvme", "emmc", "sd"] },
|
||||
"size_gb": { "type": "number", "exclusiveMinimum": 0 }
|
||||
}
|
||||
},
|
||||
"wifi_chip": {
|
||||
"type": "string",
|
||||
"description": "Exact chipset if known, e.g. \"Intel Centrino Advanced-N 6205\". Use \"none\" for wired-only setups."
|
||||
},
|
||||
"ethernet": {
|
||||
"type": "string",
|
||||
"description": "Optional — matters for a node OS more than most HCLs. e.g. \"Intel 82579LM\"."
|
||||
},
|
||||
"archy_version": {
|
||||
"type": "string",
|
||||
"description": "Exact Archipelago version tested, e.g. \"1.8.4-alpha\"."
|
||||
},
|
||||
"install_method": {
|
||||
"type": "string",
|
||||
"enum": ["usb-iso", "netboot", "existing-os-script", "other"]
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"enum": ["working", "partial", "broken"],
|
||||
"description": "working = installs and runs with no known issues. partial = installs and runs but with specific known issues (detail in `issues`). broken = does not install or does not run at all."
|
||||
},
|
||||
"tested_date": {
|
||||
"type": "string",
|
||||
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
|
||||
},
|
||||
"submitted_by": {
|
||||
"type": "string",
|
||||
"description": "Optional attribution — nostr npub, Gitea username, or leave unset for anonymous."
|
||||
},
|
||||
"issues": {
|
||||
"type": "string",
|
||||
"description": "Required detail when status is partial or broken. Free text: what broke, workarounds found."
|
||||
},
|
||||
"notes": {
|
||||
"type": "string",
|
||||
"description": "Anything else useful: BIOS/UEFI settings needed, quirks, links to a fuller writeup."
|
||||
}
|
||||
},
|
||||
"if": {
|
||||
"properties": { "status": { "enum": ["partial", "broken"] } }
|
||||
},
|
||||
"then": {
|
||||
"required": ["issues"]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user