Skip to content

[VOTE] Release Apache TVM v0.25.0.rc1 #19802

Closed

Description

@MasterJH5574

Dear TVM community,

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

This v0.25.0.rc1 candidate supersedes v0.25.0.rc0, incorporating additional commits merged onto the release branch since rc0.

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-rc1/

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

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@

As we are carrying over the votes from the v0.25.0.rc0 voting thread, this vote will remain open for 48 hours.

Activity

  1. tlopex commented on Jun 16, 2026

    @tlopex
    Member

    +1

  2. tqchen commented on Jun 17, 2026

    @tqchen
    Member

    +1

  3. MasterJH5574 commented on Jun 17, 2026

    @MasterJH5574
    ContributorAuthor

    Source build check for v0.25.0.rc1, with tests/scripts/release/test_release_package.sh as shipped in the release candidate:
    https://github.com/apache/tvm/blob/v0.25.0.rc1/tests/scripts/release/test_release_package.sh

    $ bash test_release_package.sh
    
    + version=v0.25.0
    + rc=rc1
    [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.rc1.tar.gz.asc ./apache-tvm-src-v0.25.0.rc1.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.rc1.tar.gz.sha512
    apache-tvm-src-v0.25.0.rc1.tar.gz: OK
    [6/10] Unzip ...
    + tar -zxf apache-tvm-src-v0.25.0.rc1.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 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.

  4. MasterJH5574 commented on Jun 17, 2026

    @MasterJH5574
    ContributorAuthor

    Hello folks, I added a cmake fix into rc1 that only affects wheel packaging build. Since this patch does not affect most of the cases, I retagged v0.25.0.rc1 to move it one commit forward.

  5. mshr-h commented on Jun 17, 2026

    @mshr-h
    Contributor

    +1
    Verified locally on DGX Spark.

  6. MasterJH5574 commented on Jun 17, 2026

    @MasterJH5574
    ContributorAuthor

    Wheel install check for v0.25.0.rc1 — PyPI.

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

    All four platform wheels published for apache-tvm==0.25.0rc1 (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.0rc1
    ...
    Successfully installed apache-tvm-0.25.0rc1 apache-tvm-ffi-0.1.12 ...
    $ python -c "import tvm; print(tvm.__version__)"
    0.25.0rc1

    LGTM — wheel installs with the declared dependencies (apache-tvm-ffi>=0.1.12) 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.0rc1 or using --pre.)

  7. guan404ming commented on Jun 19, 2026

    @guan404ming
    Member

    +1

  8. spectrometerHBH commented on Jun 19, 2026

    @spectrometerHBH
    Contributor

    +1

  9. MasterJH5574 commented on Jun 19, 2026

    @MasterJH5574
    ContributorAuthor

    Thank everyone for voting! The result is posted in #19844.

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