Skip to content

Commit c37621c

Browse files
authored
[Release] Bump version to v0.1.6.post2 (#1160)
* [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
1 parent 79730b1 commit c37621c

File tree

8 files changed

+154
-14
lines changed

8 files changed

+154
-14
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
debug/
2121
build/
2222
*dist/
23+
dist*/
2324
wheelhouse/
2425
__pycache__
2526
nnfusion.tar.gz

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ Tile Language (**tile-lang**) is a concise domain-specific language designed to
1313
<img src=./images/MatmulExample.png />
1414

1515
## Latest News
16+
- 10/30/2025 📦: We have released v0.1.6.post2, which is the last version compatible with Python 3.8.
1617
- 10/07/2025 🍎: Added Apple Metal Device support, check out [Pull Request #799](https://github.com/tile-ai/tilelang/pull/799) for details.
1718
- 09/29/2025 🎉: Thrilled to announce that ​​AscendC​​ and ​Ascend​NPU IR​​ backends targeting Huawei Ascend chips are now supported!
1819
Check out the preview here:

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.1.6.post1
1+
0.1.6.post2
Lines changed: 66 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,70 @@
1-
set -eux
1+
#!/usr/bin/env bash
2+
set -euxo pipefail
23

3-
# Get the CUDA version from the command line
44
IMAGE="tilelang-builder:manylinux"
5-
docker build . -f "$(dirname "${BASH_SOURCE[0]}")/pypi.manylinux.Dockerfile" --tag ${IMAGE}
65

7-
script="sh maint/scripts/local_distribution.sh"
6+
HOST_UNAME=$(uname -m)
7+
case "$HOST_UNAME" in
8+
x86_64) TARGETARCH=amd64 ;;
9+
aarch64|arm64) TARGETARCH=arm64 ;;
10+
*) echo "Unsupported architecture: $HOST_UNAME" >&2; exit 1 ;;
11+
esac
812

9-
docker run --rm -v $(pwd):/tilelang ${IMAGE} /bin/bash -c "$script"
13+
if docker buildx version >/dev/null 2>&1; then
14+
if docker info >/dev/null 2>&1; then
15+
docker run --rm --privileged tonistiigi/binfmt --install amd64,arm64 >/dev/null 2>&1 || true
16+
fi
17+
18+
if ! docker buildx inspect multi >/dev/null 2>&1; then
19+
docker buildx create --name multi --driver docker-container --use >/dev/null 2>&1 || true
20+
else
21+
docker buildx use multi >/dev/null 2>&1 || true
22+
fi
23+
docker buildx inspect --bootstrap >/dev/null 2>&1 || true
24+
25+
for ARCH in amd64 arm64; do
26+
TAG_PLATFORM="linux/${ARCH}"
27+
TAG_IMAGE="${IMAGE}-${ARCH}"
28+
29+
docker buildx build \
30+
--platform "${TAG_PLATFORM}" \
31+
--build-arg TARGETARCH="${ARCH}" \
32+
-f "$(dirname "${BASH_SOURCE[0]}")/pypi.manylinux.Dockerfile" \
33+
-t "${TAG_IMAGE}" \
34+
--load \
35+
.
36+
37+
script="sh maint/scripts/local_distribution.sh"
38+
docker run --rm \
39+
--platform "${TAG_PLATFORM}" \
40+
-v "$(pwd):/tilelang" \
41+
"${TAG_IMAGE}" \
42+
/bin/bash -lc "$script"
43+
44+
if [ -d dist ]; then
45+
mv -f dist "dist-local-${ARCH}"
46+
fi
47+
done
48+
49+
else
50+
echo "docker buildx not found; building only host arch: ${TARGETARCH}" >&2
51+
TAG_IMAGE="${IMAGE}-${TARGETARCH}"
52+
TAG_PLATFORM="linux/${TARGETARCH}"
53+
54+
docker build \
55+
--build-arg TARGETARCH="$TARGETARCH" \
56+
-f "$(dirname "${BASH_SOURCE[0]}")/pypi.manylinux.Dockerfile" \
57+
-t "${TAG_IMAGE}" \
58+
.
59+
60+
script="sh maint/scripts/local_distribution.sh"
61+
docker run --rm \
62+
--platform "${TAG_PLATFORM}" \
63+
-v "$(pwd):/tilelang" \
64+
"${TAG_IMAGE}" \
65+
/bin/bash -lc "$script"
66+
67+
if [ -d dist ]; then
68+
mv -f dist "dist-local-${TARGETARCH}"
69+
fi
70+
fi
Lines changed: 66 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,70 @@
1-
set -eux
1+
#!/usr/bin/env bash
2+
set -euxo pipefail
23

3-
# Get the CUDA version from the command line
44
IMAGE="tilelang-builder:manylinux"
5-
docker build . -f "$(dirname "${BASH_SOURCE[0]}")/pypi.manylinux.Dockerfile" --tag ${IMAGE}
65

7-
script="sh maint/scripts/pypi_distribution.sh"
6+
HOST_UNAME=$(uname -m)
7+
case "$HOST_UNAME" in
8+
x86_64) TARGETARCH=amd64 ;;
9+
aarch64|arm64) TARGETARCH=arm64 ;;
10+
*) echo "Unsupported architecture: $HOST_UNAME" >&2; exit 1 ;;
11+
esac
812

9-
docker run --rm -v $(pwd):/tilelang -w /tilelang ${IMAGE} /bin/bash -c "$script"
13+
if docker buildx version >/dev/null 2>&1; then
14+
if docker info >/dev/null 2>&1; then
15+
docker run --rm --privileged tonistiigi/binfmt --install amd64,arm64 >/dev/null 2>&1 || true
16+
fi
17+
18+
if ! docker buildx inspect multi >/dev/null 2>&1; then
19+
docker buildx create --name multi --driver docker-container --use >/dev/null 2>&1 || true
20+
else
21+
docker buildx use multi >/dev/null 2>&1 || true
22+
fi
23+
docker buildx inspect --bootstrap >/dev/null 2>&1 || true
24+
25+
for ARCH in amd64 arm64; do
26+
TAG_PLATFORM="linux/${ARCH}"
27+
TAG_IMAGE="${IMAGE}-${ARCH}"
28+
29+
docker buildx build \
30+
--platform "${TAG_PLATFORM}" \
31+
--build-arg TARGETARCH="${ARCH}" \
32+
-f "$(dirname "${BASH_SOURCE[0]}")/pypi.manylinux.Dockerfile" \
33+
-t "${TAG_IMAGE}" \
34+
--load \
35+
.
36+
37+
script="sh maint/scripts/pypi_distribution.sh"
38+
docker run --rm \
39+
--platform "${TAG_PLATFORM}" \
40+
-v "$(pwd):/tilelang" \
41+
"${TAG_IMAGE}" \
42+
/bin/bash -lc "$script"
43+
44+
if [ -d dist ]; then
45+
mv -f dist "dist-pypi-${ARCH}"
46+
fi
47+
done
48+
49+
else
50+
echo "docker buildx not found; building only host arch: ${TARGETARCH}" >&2
51+
TAG_IMAGE="${IMAGE}-${TARGETARCH}"
52+
TAG_PLATFORM="linux/${TARGETARCH}"
53+
54+
docker build \
55+
--build-arg TARGETARCH="$TARGETARCH" \
56+
-f "$(dirname "${BASH_SOURCE[0]}")/pypi.manylinux.Dockerfile" \
57+
-t "${TAG_IMAGE}" \
58+
.
59+
60+
script="sh maint/scripts/pypi_distribution.sh"
61+
docker run --rm \
62+
--platform "${TAG_PLATFORM}" \
63+
-v "$(pwd):/tilelang" \
64+
"${TAG_IMAGE}" \
65+
/bin/bash -lc "$script"
66+
67+
if [ -d dist ]; then
68+
mv -f dist "dist-pypi-${TARGETARCH}"
69+
fi
70+
fi

maint/scripts/pypi.manylinux.Dockerfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
ARG TARGETARCH
12
FROM pytorch/manylinux2_28-builder:cuda12.1 AS builder_amd64
23
ENV CUDA_VERSION=12.1 \
34
AUDITWHEEL_PLAT=manylinux_2_28_x86_64
@@ -6,12 +7,17 @@ RUN pip3 install uv
67
FROM pytorch/manylinuxaarch64-builder:cuda12.8 AS builder_arm64
78
ENV CUDA_VERSION=12.8 \
89
AUDITWHEEL_PLAT=manylinux_2_28_aarch64
10+
RUN /opt/python/cp312-cp312/bin/pip install uv
911

1012
FROM builder_${TARGETARCH}
1113

1214
ENV DEBIAN_FRONTEND=noninteractive \
1315
TZ=Etc/UTC
1416

17+
ENV PATH="/usr/local/cuda/bin:${PATH}"
18+
19+
ENV LD_LIBRARY_PATH="/usr/local/cuda/lib64:${LD_LIBRARY_PATH}"
20+
1521
RUN set -eux; \
1622
uv venv -p 3.12 --seed /venv; \
1723
git config --global --add safe.directory '/tilelang'

maint/scripts/pypi_distribution.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
set -eux
22

3-
rm -rf dist
3+
rm -rf dist raw_dist
44

55
python -mpip install -U pip
66
python -mpip install -U build wheel auditwheel patchelf

pyproject.toml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ classifiers = [
1919
"Programming Language :: Python :: 3.12",
2020
"Intended Audience :: Developers",
2121
"Intended Audience :: Science/Research",
22-
"Scientific/Engineering :: Artificial Intelligence",
22+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
2323
]
2424
dynamic = ["version"]
2525
dependencies = [
@@ -89,7 +89,17 @@ tilelang = "tilelang"
8989
"tilelang/src" = "src"
9090
# NOTE: The mapping below places the contents of '3rdparty' inside 'tilelang/3rdparty' in the wheel.
9191
# This is necessary to find TVM shared libraries at runtime.
92-
"tilelang/3rdparty" = "3rdparty"
92+
# Restrict 3rdparty contents in wheel to the same allowlist as sdist
93+
# TVM
94+
"tilelang/3rdparty/tvm/src" = "3rdparty/tvm/src"
95+
"tilelang/3rdparty/tvm/python" = "3rdparty/tvm/python"
96+
"tilelang/3rdparty/tvm/version.py" = "3rdparty/tvm/version.py"
97+
# CUTLASS
98+
"tilelang/3rdparty/cutlass/include" = "3rdparty/cutlass/include"
99+
"tilelang/3rdparty/cutlass/tools" = "3rdparty/cutlass/tools"
100+
# Composable Kernel
101+
"tilelang/3rdparty/composable_kernel/include" = "3rdparty/composable_kernel/include"
102+
"tilelang/3rdparty/composable_kernel/library" = "3rdparty/composable_kernel/library"
93103

94104
[tool.yapf]
95105
based_on_style = "yapf"

0 commit comments

Comments
 (0)