Skip to content

Conversation

@LeiWang1999
Copy link
Member

@LeiWang1999 LeiWang1999 commented Oct 30, 2025

the last version compatible with Python 3.8.

Summary by CodeRabbit

  • Chores

    • Version bumped to 0.1.6.post2
    • Updated ignore rules to cover additional distribution directories
  • Documentation

    • Added release note for v0.1.6.post2, marked as final Python 3.8–compatible release
  • Packaging

    • Restricted third-party packaging to an explicit allowlist
    • Added multi-architecture distribution support and per-arch artifacts
    • Improved distribution scripts and cleanup to remove legacy raw artifacts

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 30, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

Adds multi-architecture build/distribute support and Buildx/binfmt orchestration, tightens packaging include lists, bumps release to 0.1.6.post2 with README note, updates .gitignore, and adjusts distribution cleanup and manylinux Dockerfile for arch/ENV handling.

Changes

Cohort / File(s) Summary
Release metadata
VERSION, README.md
Bump version 0.1.6.post10.1.6.post2; add README "Latest News" bullet noting last Python 3.8-compatible release.
Ignore rules
.gitignore
Add dist*/ pattern to ignore directories whose names start with dist.
Multi-arch Docker orchestration scripts
maint/scripts/docker_local_distribute.sh, maint/scripts/docker_pypi_distribute.sh
Add #!/usr/bin/env bash + set -euxo pipefail; detect host arch and map to TARGETARCH; implement docker buildx/binfmt multi-arch workflow for amd64/arm64 with per-arch builds, per-arch runs, and arch-specific dist renaming; fallback to single-arch build/run when buildx unavailable; add unsupported-arch error path.
Manylinux Dockerfile
maint/scripts/pypi.manylinux.Dockerfile
Add ARG TARGETARCH; adjust arm64 builder steps (uv install path); expose CUDA-related PATH/LD_LIBRARY_PATH in final stage; set WORKDIR and virtualenv PATH/VIRTUAL_ENV handling.
Distribution cleanup script
maint/scripts/pypi_distribution.sh
Extend cleanup to remove both dist and raw_dist (rm -rf dist raw_dist).
Packaging include whitelist
pyproject.toml
Replace broad 3rdparty/** include with explicit allowlist mappings for TVM, CUTLASS, and Composable Kernel under tilelang/3rdparty for wheel/sdist packaging.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    participant Host as Maint script (host)
    participant Buildx as Docker buildx
    participant Daemon as Docker daemon
    participant Img as Per-arch image
    participant Container as Container run
    participant FS as Host FS

    Host->>Buildx: check buildx availability
    alt buildx available
        Host->>Daemon: enable binfmt & ensure builder "multi"
        Host->>Daemon: build image for each ARCH (TARGETARCH)
        Daemon-->>Img: tilelang-builder-ARCH (loaded)
        Host->>Img: docker run --platform ARCH -> execute distribution script
        Img->>Container: start and run local_distribution.sh
        Container->>FS: write `dist` → rename to `dist-ARCH` (arch-specific)
    else buildx not available
        Host->>Daemon: build single image for host TARGETARCH
        Daemon-->>Img: tilelang-builder-TARGETARCH
        Host->>Img: docker run -> execute distribution script
        Container->>FS: write `dist` → rename to `dist-TARGETARCH`
    end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

  • Pay special attention to:
    • maint/scripts/docker_local_distribute.sh and maint/scripts/docker_pypi_distribute.sh — buildx/binfmt flows, platform flags, artifact renaming, builder lifecycle and error handling.
    • maint/scripts/pypi.manylinux.Dockerfile — correct use of ARG TARGETARCH, arm64-install paths, and CUDA/venv env exposure.
    • pyproject.toml — ensure allowlist entries exactly match intended files.
    • .gitignore — confirm dist*/ doesn't hide needed artifacts.
    • maint/scripts/pypi_distribution.sh — verify removing raw_dist is safe.

Possibly related PRs

Poem

🐰 I hopped through scripts with curious paws,

Built for many arches without a pause,
A version bumped and README bright,
Dist folders split by arch overnight,
Nose twitch — the builder works just right! 🎋

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The pull request title "[Release] Bump version to v0.1.6.post2" is directly and clearly related to the changeset. The VERSION file summary confirms a version bump from 0.1.6.post1 to 0.1.6.post2, and the README addition announces this release as the last version compatible with Python 3.8. While the changeset also includes substantial infrastructure improvements (multi-architecture Docker support, packaging refinements, etc.), these are supporting changes for the coordinated release action. The title accurately captures the primary coordinating change—bumping the version to v0.1.6.post2—which is specific, concise, and meaningful in the context of a release PR.

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0828c83 and 520bd9a.

📒 Files selected for processing (3)
  • maint/scripts/docker_local_distribute.sh (1 hunks)
  • maint/scripts/docker_pypi_distribute.sh (1 hunks)
  • pyproject.toml (2 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link

👋 Hi! Thank you for contributing to the TileLang project.

Please remember to run pre-commit run --all-files in the root directory of the project to ensure your changes are properly linted and formatted. This will help ensure your contribution passes the format check.

We appreciate you taking this step! Our team will review your contribution, and we look forward to your awesome work! 🚀

…ulti-architecture support

* Add allowlist for TVM, CUTLASS, and Composable Kernel items in pyproject.toml
* Enhance docker_local_distribute.sh to support cross-architecture builds using docker buildx
* Modify pypi.manylinux.Dockerfile to accept TARGETARCH argument for better architecture handling
…itecture support

* Update .gitignore to include dist directories
* Refactor docker_local_distribute.sh for better cross-architecture handling and error management
* Enhance docker_pypi_distribute.sh to support multi-architecture builds with docker buildx
* Modify pypi_distribution.sh to clean up additional directories
* Update pypi.manylinux.Dockerfile for improved environment configuration and architecture handling
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
pyproject.toml (1)

92-102: Clarify the misleading comment on Line 92 about "same allowlist."

The wheel package mappings are valid—web search confirms all mapped paths exist in their upstream repositories: TVM has src/, python/, and version.py; CUTLASS has include/ and tools/; Composable Kernel has include/ and library/. However, the comment on Line 92 is inaccurate. The wheel scope is intentionally narrower than the sdist, not "the same"—sdist includes all 3rdparty/** (except clang/llvm exclusions), while wheel maps only these three specific subdirectories. This is the correct approach to minimize wheel size, but the comment should reflect that distinction.

Suggested fix: Update Line 92 comment to clarify intent, e.g., "Restrict 3rdparty contents in wheel to essential runtime dependencies (TVM, CUTLASS, Composable Kernel)" or similar.

Wheel builds should succeed once submodules are initialized during the actual build process.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7df95be and 0828c83.

📒 Files selected for processing (1)
  • pyproject.toml (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: Test for Python 3.12 with CUDA-12.8 (on self-hosted-nvidia)
  • GitHub Check: Test for Python 3.12 with ROCm-6.3 (on self-hosted-amd)
  • GitHub Check: Build wheels for Python 3.8 on ubuntu-latest with CUDA-12.1
  • GitHub Check: Build wheels for Python 3.8 on ubuntu-24.04-arm with CUDA-12.8
  • GitHub Check: Build wheels for Python 3.8 on macos-latest with Metal
  • GitHub Check: Build SDist

…pts for clarity

* Add new classifier for Artificial Intelligence in pyproject.toml
* Rename output directories in docker_local_distribute.sh and docker_pypi_distribute.sh for better context
@LeiWang1999 LeiWang1999 merged commit c37621c into tile-ai:main Oct 31, 2025
5 of 7 checks passed
RubiaCx pushed a commit to RubiaCx/tilelang that referenced this pull request Nov 24, 2025
* [Release] Update README and VERSION for v0.1.6.post2 compatibility with Python 3.8

* [Enhancement] Update packaging configuration and Docker scripts for multi-architecture support

* Add allowlist for TVM, CUTLASS, and Composable Kernel items in pyproject.toml
* Enhance docker_local_distribute.sh to support cross-architecture builds using docker buildx
* Modify pypi.manylinux.Dockerfile to accept TARGETARCH argument for better architecture handling

* [Enhancement] Improve Docker scripts and build process for multi-architecture support

* Update .gitignore to include dist directories
* Refactor docker_local_distribute.sh for better cross-architecture handling and error management
* Enhance docker_pypi_distribute.sh to support multi-architecture builds with docker buildx
* Modify pypi_distribution.sh to clean up additional directories
* Update pypi.manylinux.Dockerfile for improved environment configuration and architecture handling

* fix

* Remove outdated classifier for Artificial Intelligence from pyproject.toml

* Update pyproject.toml classifiers and modify Docker distribution scripts for clarity

* Add new classifier for Artificial Intelligence in pyproject.toml
* Rename output directories in docker_local_distribute.sh and docker_pypi_distribute.sh for better context
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant