Every artefact this page rests on, graded. Filter by kind. The full ledger,
with one row per claim and the copied quote behind it, ships beside this file as
sources.md.
Postmortem
PyTorch2026-01
Loading a malicious checkpoint with weights_only=True can result in arbitrary code execution
High severity, CVSS 8.8, affecting every release up to 2.9.1. A crafted checkpoint defeats
the allowlisted unpickler through pickle opcode and storage metadata handling.
Carry forwardA hardened parser inside an executable format is defence in depth, never a trust boundary.
github.com/pytorch/pytorch/security/advisories/GHSA-63cw-57p8-fm3p
Postmortem
PyTorch2023-2026
The five published security advisories
GHSA-53q9-r3pm-6pq6 (Critical, 2025-04-17) and GHSA-63cw-57p8-fm3p (2026-01-26) both
concern torch.load; the others cover a flatbuffer parser, a transitive libuv
issue and an Actions expression injection.
Carry forwardWhere a project's advisories cluster tells you which boundary is load bearing.
github.com/pytorch/pytorch/security/advisories
Source
PyTorch2025-08
torch/export/__init__.py at v2.7.0 and v2.8.0
The same parameter, two tags apart: strict: bool = True becomes
strict: bool = False. The docstring states that the permissive default "will
not validate some of the implicit assumptions baked into the graph".
Carry forwardRead defaults at tags, not docs: a default flip is the cheapest place a platform admits a trade-off.
raw.githubusercontent.com/pytorch/pytorch/refs/tags/v2.8.0/torch/export/__init__.py
Source
PyTorch2026-09
torch/jit/__init__.py and torch/jit/_script.py
Four occurrences of ".. deprecated:: 2.5 / TorchScript is deprecated, please use
torch.compile instead", plus "Lite Interpreter is deprecated. Please consider
switching to ExecuTorch."
Carry forwardThe deprecation that matters is the one in the code, because it names the release and ships with the wheel.
raw.githubusercontent.com/pytorch/pytorch/main/torch/jit/_script.py
Source
PyTorch2026-09
torch/_dynamo/graph_break_registry.json
586 entries, each with a break type, a context template, an explanation and hints. The
machine-readable inventory of everything the compiler declines to capture.
Carry forwardA tool that enumerates its own failures is a tool you can budget against in CI.
raw.githubusercontent.com/pytorch/pytorch/main/torch/_dynamo/graph_break_registry.json
ADR
PyTorch2021-2022
RFC-0017, PyTorch Operator Versioning
States the compatibility promises directly, including "we will not break a serialized
torchscript program running in production at Meta" and a one-release OSS deprecation
window.
Carry forwardAn internal compatibility promise written around a format is what keeps that format alive long after it is deprecated.
raw.githubusercontent.com/pytorch/rfcs/master/RFC-0017-PyTorch-Operator-Versioning.md
ADR
PyTorch2023
RFC-0032, A PyTorch and NumPy compatibility layer
Designs a translation layer so Dynamo can trace NumPy calls, and accepts the fallback in
writing: "it's okay to graph break and still call NumPy to execute the function call".
Carry forwardName the escape hatch in the design document; an unnamed fallback becomes an unmeasured one.
raw.githubusercontent.com/pytorch/rfcs/master/RFC-0032-numpy-support-in-dynamo.md
Source
PyTorch2021-2022
RFC-0009 pull request, closed without merging after 18 months
The DataLoader redesign proposal. A reviewer pointed at fsspec, s3fs and gcsfs as the
existing answer. Never merged; the code shipped in a satellite repository regardless and
was removed in December 2024.
Carry forwardAn unmerged design plus shipped code is a governance smell worth checking for in your own platform.
github.com/pytorch/rfcs/pull/15
Source
PyTorch2023-06
Issue #103841, asking for the status of TorchScript, FX and Dynamo
A request for a written short, medium and long-term statement on the capture stack. Closed
as not planned, sixteen months before the deprecation marker appeared in the code.
Carry forwardIf a platform declines to write down its roadmap for a layer you depend on, read the defaults and the registries instead.
github.com/pytorch/pytorch/issues/103841
Source
Hugging Face contributor2025-05
Issue #153599, strict export fails in 2.7 on a model that worked in 2.6
"Unexpected type in sourceless builder transformers.models.bit.configuration_bit.BitConfig",
raised on a config access in forward. Passes with strict=False.
Carry forwardPin the capture tool's version and run export over your own model zoo in CI; coverage is not a stable contract.
github.com/pytorch/pytorch/issues/153599
Source
Project MONAI2025-11
Issue #8632, TorchScript deprecation
States that TorchScript is fully deprecated in 2.9, and that the replacement cannot capture
control flow the same way: only networks without control flow in forward can
currently be exported.
Carry forwardCheck expressive range before accepting a migration path, and price the rewrite.
github.com/Project-MONAI/MONAI/issues/8632
Source
Lightning AI2025-10
Issue #21293, update from TorchScript to torch.export
A training framework working out what to do with LightningModule.to_torchscript:
reimplement, deprecate, or remove and push the work onto users.
Carry forwardEvery wrapper API you expose over a platform primitive is a migration you will own when the primitive is deprecated.
github.com/Lightning-AI/pytorch-lightning/issues/21293
Source
Deep Java Library2024-07
Issue #3348, TorchScript is in maintenance mode
A JVM serving stack whose entire PyTorch integration is TorchScript asking what replaces
it, three months before the deprecation marker landed in the code.
Carry forwardA non-Python consumer has no fallback interpreter, so a capture deprecation is existential rather than annoying.
github.com/deepjavalibrary/djl/issues/3348
Source
PyTorch2025-08
pytorch/serve, archived with a no-patches notice
"This project is no longer actively maintained... there are no planned updates, bug fixes,
new features, or security patches."
Carry forwardAn archive notice that disclaims security patches converts the dependency into a known unpatched component.
github.com/pytorch/serve
Source
PyTorch2025-07
torchtune issue #2883, the future of torchtune
Active development stopped effective immediately on 15 July 2025, after 150 contributors
and 21 recipes, with support limited to critical fixes during 2025.
Carry forwardContributor count does not protect a library whose existence is a strategy line item.
github.com/meta-pytorch/torchtune/issues/2883
Source
Meta2023-2026
Nine dated archive banners
TorchElastic 2023-01-06, Tensor Comprehensions 2023-04-28, Glow 2025-07-01, TorchServe
2025-08-07, functorch 2025-08-21, fairseq 2026-03-20, plus torchtune's wind-down,
torchdata's silence and FairScale's upstreaming note.
Carry forwardArchiving means two opposite things, absorbed or abandoned, and only the surviving tree tells you which.
github.com/facebookresearch/fairseq
Source
PyTorch2026-09
caffe2/CMakeLists.txt on main
2,258 lines, containing add_subdirectory(../aten aten). The directory named
for the framework a 2022 issue proposed to remove is where libtorch is built.
Carry forwardA merge that lands foreign code at the root of your build turns removal into a build-graph project, which never gets scheduled.
raw.githubusercontent.com/pytorch/pytorch/main/caffe2/CMakeLists.txt
Source
vLLM2026-09
vLLM README
"Automatic kernel generation and graph-level transformations using torch.compile." The
serving layer that replaced the first-party server is built on partial capture, not on a
serialised graph.
Carry forwardWhere the ecosystem's servers sit tells you which capture path will still be maintained in five years.
raw.githubusercontent.com/vllm-project/vllm/main/README.md
ADR
PyTorch2026-09
Governance mechanics, in-repo
"Technical governance is strictly separated from business governance", and a company cannot
purchase a board seat to drive direction, only sponsor through the PyTorch Foundation.
Carry forwardRead a platform's governance file before betting on it; who can and cannot buy direction is a risk parameter.
raw.githubusercontent.com/pytorch/pytorch/main/docs/source/community/governance.md
Case study
PyPI2018-2026
torch, torchdata, executorch and torchtune release histories
Every date in this guide is checked against upload timestamps: quarterly minors since 2.0,
torchdata silent since February 2025, ExecuTorch at 1.5.1, torchtune's last wheel in April
2025.
Carry forwardA package index is the cheapest reliable maintenance signal you can automate a check against.
pypi.org/project/torch
Case study
Docker Hub2024-09
pytorch/torchserve image tags
Newest tags are 0.12.0, last updated 30 September 2024, eleven months before the
repository was archived.
Carry forwardImage registries go quiet before repositories do; watch the build clock.
hub.docker.com/r/pytorch/torchserve/tags
Case study
Maven Central2026-09
The org.pytorch artefact group
pytorch_android and pytorch_android_lite sit beside
executorch-android, executorch-android-qnn and
executorch-android-vulkan: the mobile handover, visible as artefact names.
Carry forwardRegistry naming is an architecture document nobody edits for marketing reasons.
repo1.maven.org/maven2/org/pytorch
Case study
npm, NuGet2018-2026
Two further ecosystems on their own clocks
An executorch npm package at 0.0.7, and TorchSharp on NuGet with 64 versions
from November 2018 to 0.107.0 in May 2026: bindings track libtorch, slowly.
Carry forwardNon-Python bindings lag by quarters, so a capture deprecation reaches them last and hurts them most.
api.nuget.org/v3/registration5-semver1/torchsharp/index.json
Vendor
PyTorch2025-2026
Release notes for 2.6.0 and 2.8.0, and the export user guide
The primary statements of intent: the weights_only flip, the strict default
switch, the ONNX default switch, and the documented difference between partial and full
capture.
Carry forwardRelease notes are the only place a platform states a trade-off in its own words; read the deprecation section first.
github.com/pytorch/pytorch/releases/tag/v2.8.0