app
adom-desktop-altium-bridge
Public Unreviewedby barrett-land
Adom Desktop bridge for Altium Designer — build and edit file-based symbol/footprint/Integrated libraries with LCSC/JLCPCB part numbers attached, and generate batch outputs (STEP, PDF, Gerber, BOM, CPL) from an OutJob, by driving Altium via DelphiScript.
← Commit history
altium bridge v0.0.40
3 files changed
+8−6
altium-bridge-manifest.json+1−1@@ -1,3 +1,3 @@ { "manifest_version": 1, "name": "altium", "version": "0.0.40", "url": "https://wiki.adom.inc/download/barrett-land/adom-desktop-altium-bridge/0.0.40/altium-bridge-v0.0.40.zip",- "sha256": "ed6378c8a9df9cf197464ca148cc45680e1bf9de05b57c77ec75286fdbeae2a9", "size": 26085, "released_at": "2026-08-05T20:55:02Z" }+ "sha256": "49a6ac3d9ca77f5be2c43a1c1f257a427fd99a8296f93391b8faf105f6042ec1", "size": 26085, "released_at": "2026-08-05T20:55:37Z" }
altium-bridge-v0.0.40.zip⋯ 1 unchanged line ⋯
bridge-src/deploy.sh+7−5@@ -155,17 +155,19 @@ adom-wiki release upload "$REF" "$VER" "$MANIFEST" --platform any --arch any echo "==> verifying the published artifacts resolve" PUB_URL="https://wiki.adom.inc/download/${REF}/${VER}/altium-bridge-manifest.json" curl -fsS "$PUB_URL" > /tmp/altium-manifest-check.json+# Fetch with curl, not urllib: the CDN in front of wiki.adom.inc 403s python-urllib's+# default User-Agent, which looks exactly like a broken upload.+ZIP_URL=$(python3 -c "import json;print(json.load(open('/tmp/altium-manifest-check.json'))['url'])")+curl -fsS "$ZIP_URL" > /tmp/altium-zip-check.zip python3 - "$VER" <<'PY'-import json, sys, urllib.request+import hashlib, json, sys ver = sys.argv[1] d = json.load(open('/tmp/altium-manifest-check.json')) assert d['version'] == ver, f"served manifest is v{d['version']}, expected v{ver}"-with urllib.request.urlopen(d['url']) as r: # follow the manifest's own url- body = r.read()+body = open('/tmp/altium-zip-check.zip', 'rb').read() assert len(body) == d['size'], f"zip is {len(body)} bytes, manifest claims {d['size']}"-import hashlib got = hashlib.sha256(body).hexdigest()-assert got == d['sha256'], f"zip sha {got[:16]} != manifest {d['sha256'][:16]}"+assert got == d['sha256'], f"zip sha {got[:16]} != manifest sha {d['sha256'][:16]}" print(f" manifest v{ver} resolves, and its url serves a {len(body)}-byte zip with a matching sha256") PY