Skip to content

[VOTE] Release Apache TVM v0.25.0.rc0 #19702

Closed as not planned
Closed as not planned

Description

@MasterJH5574

Dear TVM community,

This is a call for vote to release Apache TVM version v0.25.0.

Release highlights:

  • Deeper tvm-ffi integration: the arithmetic Analyzer is now a tvm-ffi Object, structural APIs and IRModule JSON serialization are routed directly through tvm-ffi, and related FFI/header cleanups across the codebase.
  • TIRx infrastructure bring-up: initial TIRx infra with op-dispatch / codegen / TVMScript follow-ups and updated scoped ops and CUDA launch bounds.
  • Major Relax TFLite frontend expansion: LSTM / RNN / SVDF, Conv3D and CONV_3D_TRANSPOSE, REDUCE_WINDOW, quantized import via QDQ decomposition, resource variables / static hashtables, embedding-lookup-sparse, segment ops, and StableHLO + control-flow multi-subgraph support.
  • Relax ONNX correctness and ONNX Runtime parity: NaN/Inf handling for Sign / Cast / Clip / Div, RMSNormalization (opset 23), TopK scalar-K, Gather negative indices, ScatterElements reduction, NonMaxSuppression defaults, plus systematic ONNX backend tests.
  • Relax PyTorch fixes: segfault in from_exported_program with index_put_, correction in std/var, multi-axis flip, logical_not, and integer pow decomposition.
  • TIR / codegen: cooperative_tensor builtins with a metal.cooperative_tensor storage scope; CUDA fast-math intrinsic lowering gated behind a target/PassContext option; LLVM transcendental functions (sinh/cosh/atan/asin/acos/erf) routed through libm; Vulkan barrier fix.
  • Arithmetic robustness: memoized IntervalSet variable relaxation to avoid exponential blowup, and a canonical-simplify correctness fix.
  • Runtime / build: device runtime modularized into per-backend DSOs.
  • WebGPU/WASM: OPFS synchronous access handles and committed records, and persistent URL→hash mapping across page loads.
  • Security: fix missing exported flag in AndroidManifest; bound RPC tracker message size.

Link to release candidate:
https://dist.apache.org/repos/dist/dev/tvm/tvm-v0.25.0-rc0/

Link to GitHub pre-release page (full release notes):
https://github.com/apache/tvm/releases/tag/v0.25.0.rc0

Pre-release wheels are also published on PyPI for testing:
pip install --pre apache-tvm==0.25.0rc0

Everyone is welcomed to vote. Please vote by replying to this thread explicitly. According to release procedure, for the dev@ vote, there must be at least 3 binding +1 votes and more +1 votes than -1 votes.

+1 = approve
+0 = no opinion
-1 = disapprove (provide reason)

NOTE: this thread is being mirrored in dev@

This vote will remain open for at least 72 hours.

Activity

  1. MasterJH5574 commented on Jun 9, 2026

    @MasterJH5574
    ContributorAuthor

    Verified the v0.25.0.rc0 candidate two ways — (A) building from the signed source release, and (B) installing the published wheel from PyPI. Kept separate since they are different installation paths.

    A. Source build check — tests/scripts/release/test_release_package.sh

    Run with the script as fixed in #19700. Exact script used:
    https://github.com/MasterJH5574/tvm/blob/tvm-dev/2026-06-09-release-check/tests/scripts/release/test_release_package.sh

    $ bash test_release_package.sh
    
    + version=v0.25.0
    + rc=rc0
    [setup] Create an isolated virtualenv ...
    + python3 -m venv .venv
    ...
    IGNORE
    ...
    [1/10] Downloading from apache.org ...
    ...
    IGNORE
    ...
    [2/10] Downloading from github.com ...
    ...
    IGNORE
    ...
    [3/10] Check difference between github.com and apache.org ...
    + diff github/md5sum.txt ./apache/md5sum.txt
    [4/10] Checking asc ...
    + gpg --verify ./apache-tvm-src-v0.25.0.rc0.tar.gz.asc ./apache-tvm-src-v0.25.0.rc0.tar.gz
    gpg:                using RSA key 3EA0F45C3223CF0D81C8F2CCA9F8369106601185
    gpg: Good signature from "Ruihang Lai <ruihangl@apache.org>" [unknown]
    [5/10] Checking sha512 ...
    + sha512sum -c ./apache-tvm-src-v0.25.0.rc0.tar.gz.sha512
    apache-tvm-src-v0.25.0.rc0.tar.gz: OK
    [6/10] Unzip ...
    + tar -zxf apache-tvm-src-v0.25.0.rc0.tar.gz
    [7/10] Checking whether binary in source code ...
    [8/10] Compile and Python Import on Linux ...
    + cmake ..
    + make -j16
    ...
    IGNORE
    ...
    [100%] Built target tvm_objs
    [100%] Linking CXX shared library lib/libtvm_compiler.so
    [100%] Built target tvm_compiler
    [9/10] Install Python runtime dependencies (declared in the source pyproject.toml) ...
    Installing declared runtime deps: apache-tvm-ffi>=0.1.12 ml_dtypes numpy psutil typing_extensions
    Successfully installed apache-tvm-ffi-0.1.12 ...
    [10/10] Import TVM and print path ...
    + python3 -c 'import tvm; print(tvm.__path__)'
    ['.../github/apache-tvm-src-v0.25.0/python/tvm']

    LGTM — md5 (github vs apache.org) identical, GPG signature good (verified against the dev KEYS), sha512 OK, no binaries in source, full compile, and import tvm succeeds.

    B. Wheel install check — PyPI

    All four platform wheels published for apache-tvm==0.25.0rc0 (macOS arm64, Linux x86_64 + aarch64 manylinux_2_28, Windows AMD64). Installed the Linux x86_64 wheel in a clean venv — dependencies (including apache-tvm-ffi) resolve automatically, no source build:

    $ python3 -m venv venv && . venv/bin/activate
    $ pip install apache-tvm==0.25.0rc0
    ...
    Successfully installed apache-tvm-0.25.0rc0 apache-tvm-ffi-0.1.12 ...
    $ python -c "import tvm; print(tvm.__version__)"
    0.25.0rc0

    LGTM — wheel installs with stable dependencies and imports at the expected version. (It is a pre-release, so a bare pip install apache-tvm still resolves the latest stable; testers opt into the RC by pinning ==0.25.0rc0 or using --pre.)

  2. tqchen commented on Jun 9, 2026

    @tqchen
    Member

    +1

  3. tlopex commented on Jun 10, 2026

    @tlopex
    Member

    +1

  4. yongwww commented on Jun 10, 2026

    @yongwww
    Member

    +1

  5. Ubospica commented on Jun 10, 2026

    @Ubospica
    Contributor

    +1

  6. akaashrp commented on Jun 10, 2026

    @akaashrp
    Contributor

    +1

  7. mshr-h commented on Jun 12, 2026

    @mshr-h
    Contributor

    +1

  8. MasterJH5574 commented on Jun 15, 2026

    @MasterJH5574
    ContributorAuthor

    Hi all, I'm cancelling this vote, because since rc0 was cut, several changes landed on main that we'd like in 0.25.0 — most notably the out-of-tree backend autoload (#19727), plus a number of runtime / tvm-ffi refactors and LLVM-version test fixes.

    I'll backported these to the v0.25.0 branch and will prepare an rc1 when it's ready.

    Thanks to everyone who already took time to verify rc0.

  9. MasterJH5574 commented on Jun 16, 2026

    @MasterJH5574
    ContributorAuthor

    Thanks everyone for voting on v0.25.0.rc0! We've cut v0.25.0.rc1, which incorporates a few additional commits merged onto the release branch since rc0. The new vote thread is open at #19802 — the +1 votes here carry over to rc1, but everyone is still welcome to vote on the new thread.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions