summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-12 00:47:10 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-12 00:47:10 -0400
commit5857587697d358206775b3dea532b2d47ef51e8c (patch)
tree70099221ba41843f679b305dedb1347181e6c4fd /tools
parentcff1461ef459e98dea063abc72ae0819fea7b5ce (diff)
downloadopen-iov-5857587697d358206775b3dea532b2d47ef51e8c.tar.gz
open-iov-5857587697d358206775b3dea532b2d47ef51e8c.zip
site: repository links use cgit tree URLs; external repo-link audit
- titles.json: map relative doc links to https://git.vgpu.io/open-iov.git/tree/... (the host runs cgit; /blob/ URLs do not exist) - check_site.py: verify every git.vgpu.io URL on every page resolves (HTTP status check, cached, with backoff) - site pages: repository home links point at the .git/ URL - .publish-manifest.json: revised revision records
Diffstat (limited to 'tools')
-rw-r--r--tools/site/check_site.py31
-rw-r--r--tools/site/pages/Community.wiki2
-rw-r--r--tools/site/pages/Documentation.wiki2
-rw-r--r--tools/site/pages/Main-Page.wiki2
-rw-r--r--tools/site/pages/MediaWiki-Sidebar.wiki2
-rw-r--r--tools/site/pages/Open-IOV-About.wiki2
-rw-r--r--tools/site/titles.json2
7 files changed, 37 insertions, 6 deletions
diff --git a/tools/site/check_site.py b/tools/site/check_site.py
index e56d0c0..e79af25 100644
--- a/tools/site/check_site.py
+++ b/tools/site/check_site.py
@@ -72,6 +72,32 @@ def all_titles():
return titles
+def check_external(url_cache, url, problems, title):
+ """HEAD/GET-check a git.vgpu.io URL once; report non-OK statuses."""
+ if url in url_cache:
+ ok, note = url_cache[url]
+ else:
+ ok, note = False, "unchecked"
+ for attempt in range(4):
+ try:
+ req = urllib.request.Request(url, headers=UA, method="GET")
+ with urllib.request.urlopen(req, timeout=60) as r:
+ ok = r.status in (200, 301, 302)
+ note = str(r.status)
+ r.read(1)
+ break
+ except urllib.error.HTTPError as e:
+ ok, note = e.code in (200, 301, 302), str(e.code)
+ if e.code not in (429, 500, 502, 503):
+ break
+ except Exception as e: # noqa: BLE001
+ note = type(e).__name__
+ time.sleep(2 * (attempt + 1))
+ url_cache[url] = (ok, note)
+ if not ok:
+ problems.append(f"repo link {note}: {url}")
+
+
def main():
ap = argparse.ArgumentParser()
ap.add_argument("--pages", nargs="*", default=[])
@@ -79,6 +105,7 @@ def main():
titles = args.pages or all_titles()
existing = {t.lower(): t for t in all_titles()}
+ repo_url_cache = {}
problems = 0
for title in titles:
@@ -117,6 +144,10 @@ def main():
continue
if tgt.lower() not in existing:
issues.append(f"unresolved link [[{tgt}]]")
+ for u in set(re.findall(r"https?://git\.vgpu\.io[^\s\]\}<>\"|]*", c)):
+ u = u.rstrip(".,;:)")
+ check_external(repo_url_cache, u, issues, title)
+ time.sleep(0.2)
if issues:
problems += 1
print(f"BAD {title}")
diff --git a/tools/site/pages/Community.wiki b/tools/site/pages/Community.wiki
index 1516783..0c896c5 100644
--- a/tools/site/pages/Community.wiki
+++ b/tools/site/pages/Community.wiki
@@ -3,7 +3,7 @@
== Community ==
'''Chat:''' [https://discord.gg/Rb9K9DYxKK Open-IOV Discord]
-'''Source code and issues:''' [https://git.vgpu.io/open-iov git.vgpu.io/open-iov]
+'''Source code and issues:''' [https://git.vgpu.io/open-iov.git/ git.vgpu.io/open-iov]
== Contributing ==
The project welcomes contributors of every kind. The most valuable contribution is evidence: a new hardware or software combination tested with the project's methodology, with the captures listed in the repository's debugging document.
diff --git a/tools/site/pages/Documentation.wiki b/tools/site/pages/Documentation.wiki
index 00d40bc..79f2cec 100644
--- a/tools/site/pages/Documentation.wiki
+++ b/tools/site/pages/Documentation.wiki
@@ -1,6 +1,6 @@
{{About message}}
-This is the index of the Open-IOV wiki. If you are new, read '''[[Project Status]]''' first, then '''[[System Overview]]'''. The wiki is a curated public view of the project's maintained documentation; each page names its canonical document in the [https://git.vgpu.io/open-iov repository].
+This is the index of the Open-IOV wiki. If you are new, read '''[[Project Status]]''' first, then '''[[System Overview]]'''. The wiki is a curated public view of the project's maintained documentation; each page names its canonical document in the [https://git.vgpu.io/open-iov.git/ repository].
== Start here ==
* [[Project Status]] — what works today, what is in progress, what is not started
diff --git a/tools/site/pages/Main-Page.wiki b/tools/site/pages/Main-Page.wiki
index fb08f81..9a80009 100644
--- a/tools/site/pages/Main-Page.wiki
+++ b/tools/site/pages/Main-Page.wiki
@@ -62,7 +62,7 @@ The full story, with evidence and the current wall: [[Project Status]] and [[The
* [[FAQ]] · [[Glossary]]
== Community ==
-* Source and issues: [https://git.vgpu.io/open-iov git.vgpu.io/open-iov]
+* Source and issues: [https://git.vgpu.io/open-iov.git/ git.vgpu.io/open-iov]
* Chat: [https://discord.gg/Rb9K9DYxKK Open-IOV Discord]
== About Open-IOV ==
diff --git a/tools/site/pages/MediaWiki-Sidebar.wiki b/tools/site/pages/MediaWiki-Sidebar.wiki
index 499f954..4e6ab70 100644
--- a/tools/site/pages/MediaWiki-Sidebar.wiki
+++ b/tools/site/pages/MediaWiki-Sidebar.wiki
@@ -24,7 +24,7 @@
** Glossary
* Community
** Community
-** https://git.vgpu.io/open-iov|Source repository
+** https://git.vgpu.io/open-iov.git/|Source repository
** https://discord.gg/Rb9K9DYxKK|Discord
* SEARCH
* TOOLBOX
diff --git a/tools/site/pages/Open-IOV-About.wiki b/tools/site/pages/Open-IOV-About.wiki
index 1084ae1..0195c91 100644
--- a/tools/site/pages/Open-IOV-About.wiki
+++ b/tools/site/pages/Open-IOV-About.wiki
@@ -24,6 +24,6 @@ See [[System Overview]] for the architecture and [[Project Status]] for the hone
The project's source code is licensed separately: '''BSD 3-Clause''' for everything reusable (userspace libraries, tools, scripts, configuration) and '''GPL-2.0''' for the kernel modules that must legally link against GPL-only kernel exports (VFIO, mdev, IOMMU); per-file SPDX identifiers govern. NVIDIA's software and firmware are used unmodified and are not redistributed. See the repository's <code>LICENSE</code> and <code>docs/09-reference/legal-and-licensing.md</code> for the full statement.
== Community ==
-* Source and issues: [https://git.vgpu.io/open-iov git.vgpu.io/open-iov]
+* Source and issues: [https://git.vgpu.io/open-iov.git/ git.vgpu.io/open-iov]
* Chat: [https://discord.gg/Rb9K9DYxKK Open-IOV Discord]
* See [[Community]] and [[HAAEEP and Collaboration]].
diff --git a/tools/site/titles.json b/tools/site/titles.json
index cffa52b..b193342 100644
--- a/tools/site/titles.json
+++ b/tools/site/titles.json
@@ -1,5 +1,5 @@
{
- "repo_base": "https://git.vgpu.io/open-iov/blob/master/",
+ "repo_base": "https://git.vgpu.io/open-iov.git/tree/",
"wiki_titles": {
"README.md": "Documentation",
"Address-Reference.md": "Address Reference",