SDIP v1.1.1
Superseded by v1.1.2. The wheel published here contains two source comments citing a document that is not part of the distribution. No functional difference; use v1.1.2.
Distribution only. No engine change, and the guarantee is unchanged.
Added
-
Container image on GitHub Container Registry —
ghcr.io/zahidaramai/sdip, multi-arch
(linux/amd64,linux/arm64), non-root. The image carries the pinned decoder, and
sdip doctorverifies those pins inside it: all 2 binding pins match; 145 installed
files verified against RECORD. That is the property that matters — a certificate issued
under one decoder version says nothing about another.Verified end to end in the container before shipping: ingest, then
verifyreturning
G1PASS, all five planesPASS, G4PASS. -
Wheel and sdist attached to every release, so installing needs no registry. The
workflow refuses to upload either if it carries an unpublishable path — the
publication firewall applies to distribution channels, not only to commits.
Not added, deliberately
npm and NuGet. GitHub Packages has no Python registry, and a package in either would
be a shim that still requires a Python 3.12 interpreter and the whole native stack — it
would install cleanly and fail at first use, in an ecosystem that cannot run the
library. That is the exact shape of failure this project exists to prevent.
Fixed
- The publish workflow shipped an artifact check that was never the script that was
tested — the verified version had a suffix guard, the shipped one did not, and it
died opening a non-archive as a tarball. - Building a container from a tag cut before the Dockerfile existed failed with a
message that read like a path bug. The workflow now checks first and says what actually
happened.
Install
docker pull ghcr.io/zahidaramai/sdip:1.1.1
pip install git+https://github.com/zahidaramai/sdip@v1.1.1