Releases: tiramitree/dcp-invariant
Release list
DCPInvariant v0.4.0
DCPInvariant v0.4.0 adds a registered generation-lineage scenario for stale-writer rejection across committed and published checkpoint generations.
Release evidence:
- Source revision:
7bb325704d196ebbfcbc5a9dd5fab0d5acd76fc4 - Evidence schema: v4
- Registered scenarios: 13
- Evidence result: 13/13 passed
- Feature-branch CI: https://github.com/tiramitree/dcp-invariant/actions/runs/30430625985
- Main-branch CI: https://github.com/tiramitree/dcp-invariant/actions/runs/30430906014
The release contains a source distribution, a universal wheel, a normalized evidence archive, and a checksum manifest. The evidence archive was generated from the exact wheel on a local CPU/Gloo runtime and binds the source revision above.
Scope remains deliberately narrow: fixed single-host fixtures and explicit process-exit recovery windows. This release does not establish distributed consensus, atomic compare-and-swap behavior, network-filesystem correctness, power-loss durability, production deployment, external adoption, or independent external validation.
Original project code is released under Apache-2.0. Third-party software is not redistributed except for required notices and metadata.
DCPInvariant v0.3.0
DCPInvariant v0.3.0 adds one fixed asynchronous-checkpoint snapshot witness
to the existing bounded PyTorch Distributed Checkpoint evidence suite.
The new async_snapshot_resnet18_2r scenario uses two local CPU/Gloo ranks,
torchvision.models.resnet18(weights=None), synthetic input, and a controlled
public StorageWriter gate. It verifies that the checkpoint loaded before
promotion matches the staged pre-mutation state, differs from the post-mutation
state, and remains receipt-bound after promotion.
The schema-v3 evidence archive contains 12 fixed scenarios. Its offline
verifier reports all 12 passed and binds the source revision, PyTorch 2.11,
torchvision 0.26, Pillow 12.3, and NumPy 2.4.6 runtime contract. The attached
SHA256SUMS binds the wheel, source distribution, and evidence archive.
This release is fixture-, version-, topology-, and single-host CPU/Gloo-bound.
It does not establish arbitrary-model snapshot semantics, performance or
speedup, dynamic membership change, more than two processes, multi-node,
GPU/NCCL, FSDP, production reliability, external adoption, independent
review, or recruiting outcomes.
Original DCPInvariant code is released under Apache-2.0. Third-party software
is not redistributed except for license and provenance notices included in
the source distribution.
DCPInvariant v0.2.0
DCPInvariant v0.2.0
This release adds one bounded real torch.distributed.run restart case to the
existing single-host CPU/Gloo checkpoint-invariant suite.
Registered elastic case
- fixed two-worker, 2-to-2 topology with
--max-restarts=1; - numeric loopback rendezvous through
--local-addr=127.0.0.1; - attempt-zero rank 1 writes a private canonical marker and exits with the
registered code 91; - rank 0 observes the marker before the failed attempt is torn down;
- both successful final workers report restart count 1 and maximum restarts 1;
- the restarted group loads the same pre-failure committed generation;
- checkpoint model, optimizer, RNG, cursor, and aggregate state match;
- uninterrupted and resumed next-step state match;
- receipt digests and the canonical generation pointer remain equal; and
- no post-failure promotion is attempted.
The marker records the injected failure and the final reports record the
restart. The outer launcher records only final exit and timeout, so this does
not claim an independently observed attempt-zero child-exit vector.
Exact PyTorch compatibility guard
The package-owned startup guard binds the exact 2,195-byte PyTorch c10d
_create_tcp_store source with SHA-256
488aee8200995402157248d051fc337c9dd02b77dc460ddb9abd2b5bf22bc19f.
It verifies runtime provenance, source digest, module binding, and the immediate
caller before forcing only that guarded module-local TCPStore call to
use_libuv=False. It also fixes
TORCH_DISABLE_SHARE_RDZV_TCP_STORE=1. Workers validate a numeric loopback
address and no-op the startup guard before importing PyTorch.
Bootstrap attestation schema v3 records both the installed distribution
version and runtime version. The only registered pairs are:
- distribution
2.11.0, runtime2.11.0+cpu; and - distribution
2.11.0+cpu, runtime2.11.0+cpu.
The runtime version must also equal the artifact provenance. These pairs do
not prove an operating-system identity, equivalence to an unmodified libuv
path, or compatibility with another PyTorch source or version.
Evidence schema v2
The normalized artifact has eleven scenarios and 26 ordinary files:
provenance, summary, eleven observations, eleven derived results, JUnit, and
an unsigned SHA-256 manifest. It excludes native checkpoint files, raw marker
and bootstrap records, logs, paths, process IDs, ports, rendezvous values, and
environment values.
Schema v2 is not inventory-compatible with v1. The v0.2 verifier accepts v2
only; use the preserved v0.1.0 verifier for v1 evidence.
The Release provides:
dcp_invariant-0.2.0-py3-none-any.whldcp_invariant-0.2.0.tar.gzdcp-invariant-evidence-v0.2.0.tar.gzSHA256SUMS
There is no PyPI publication. PyTorch and NumPy are not redistributed.
Public validation history
The first v0.2 feature run is intentionally retained:
30368196351.
Its six integration jobs exposed that the official CPU wheel can report
distribution metadata 2.11.0+cpu, while the initial guard accepted only
2.11.0; package-boundary and quality jobs passed. The follow-up commit
registered only the two exact version pairs above and added negative coverage.
No public history was rewritten.
The corrected feature run
30371065824,
the main run
30371462187,
and the exact v0.2.0 tag run
30371899609
each completed successfully with 13 of 13 jobs.
Claim boundary
The evidence is limited to the exact public fixture, source revision, pinned
versions, single host, CPU/Gloo, one or two processes, and one fixed injected
failure point. It does not establish arbitrary-model determinism, arbitrary
TorchElastic recovery, elastic membership changes, multi-node behavior,
GPU/NCCL, FSDP, performance, recovery time, scalability, network-filesystem
or object-store durability, power-loss safety, hostile-checkpoint safety,
high availability, production reliability, framework superiority, or
official PyTorch certification.
There are no verified external users, independent reproductions, third-party
reviews, production deployments, adoption signals, or recruiting outcomes.
OpenAI Codex materially assisted implementation, tests, documentation,
privacy gating, and publication; this does not imply human or independent
review.
The publication scan is project-scoped. It does not claim global account or
network erasure. The v0.1.0 Release, the retained failed run, and prior public
history remain unchanged.
DCPInvariant v0.1.0
DCPInvariant v0.1.0 is an owner-operated, fixture-scoped evidence release for
PyTorch Distributed Checkpoint restart invariants.
The attached normalized evidence passes ten fixed single-host CPU/Gloo
scenarios: DDP training restart at 1-to-1, 1-to-2, 2-to-1, and 2-to-2
processes; DTensor global-tensor restore at 1-to-2 and 2-to-1 processes; and
expected rejection of a child exit, missing metadata, missing shard, and
one-byte shard corruption.
Validated runtime:
- CPython 3.12.10
- PyTorch 2.11.0+cpu
- NumPy 2.4.6
- source revision
cad6b94ffe45e5a6821dba6b7a15920d3a40f283
The evidence archive contains normalized observations and no native
checkpoint payload. The wheel can verify that evidence offline without
PyTorch or NumPy installed.
This release does not establish multi-node, GPU/NCCL, FSDP, arbitrary-model,
performance, production-reliability, or hostile-checkpoint claims. It has no
verified external users, independent reproduction, third-party review,
production deployment, or recruiting outcome.