diff --git a/index.html b/index.html index 49473e7..0c1c64e 100644 --- a/index.html +++ b/index.html @@ -130,7 +130,7 @@
-

Version 5.1.1 — available now

+

Version 5.2.0 — available now

@@ -148,7 +148,7 @@

mac4DSTEM

Download for macOS -

Version 5.1.1 · 17.7 MB · signed and notarized

+

Version 5.2.0 · 17.7 MB · signed and notarized

-

Beside the kits, MacEMUI 0.5.0 holds the apps' shared window, controls and Metal image view. It has no Python reference.

+

Beside the kits, MacEMUI 0.5.1 holds the apps' shared window, controls and Metal image view. It has no Python reference.

"Parity: present of rows" counts the functions of the reference package that the kit has and has tested against it; each kit's docs/parity.md lists every function with its state and tolerance. See benchmarks and releases.

Apps: mac4DSTEM (4D-STEM) and macTEM (TEM images, spectroscopy and diffraction).

diff --git a/suite/releases.html b/suite/releases.html index cf80129..f54e797 100644 --- a/suite/releases.html +++ b/suite/releases.html @@ -40,9 +40,9 @@

Releases

ImagoKit0.9.12026-11-01tagchangelog DiffractoKit0.12.02026-11-01tagchangelog SpectroKit0.13.22026-11-01tagchangelog -CuboKit0.10.02026-11-01tagchangelog +CuboKit0.11.02026-11-05tagchangelog SimulatoKit0.5.02026-10-31tagchangelog -MacEMUI0.5.02026-11-01tagchangelog +MacEMUI0.5.12026-11-05tagchangelog

The apps: mac4DSTEM releases and macTEM releases on GitHub.

diff --git a/tools/check_site.py b/tools/check_site.py index eaddca2..181daf4 100644 --- a/tools/check_site.py +++ b/tools/check_site.py @@ -96,7 +96,12 @@ def check_releases(): for app, rel in APPS.items(): r = latest(app) ver = r["tag_name"].lstrip("v") - dmg = next(a for a in r["assets"] if a["name"] == f"{app}.dmg") + dmg = next((a for a in r["assets"] if a["name"] == f"{app}.dmg"), None) + if dmg is None: + errors.append(f"{rel}: the latest {app} release {r['tag_name']} has no {app}.dmg, so the page's " + f"releases/latest/download/{app}.dmg link is a 404: build it with tools/release.sh " + "on that tag and attach it") + continue size = f"{dmg['size'] / 1e6:.1f} MB" text = (ROOT / rel).read_text() for stated in sorted(set(re.findall(r"Version (\d+\.\d+\.\d+)", text))):