deprecate torch 2.8.0 support#3550
Conversation
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughThis PR removes PyTorch 2.8.0 + CUDA 12.8.1 matrix entries from multiple CI workflow files, updates the minimum supported PyTorch version to 2.9.1 in the README, and modifies Docker base image dependency installation for causal-conv1d and mamba-ssm packages along with flash-attn wheel handling. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~15 minutes Possibly related PRs
Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
📖 Documentation Preview: https://69c443c7836c0e796916f9c5--resonant-treacle-0fd729.netlify.app Deployed on Netlify from commit b95161e |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docker/Dockerfile-uv-base`:
- Line 46: The shell assignment for LINUX_TAG is invalid because it uses spaces
around '='; update the assignment for the LINUX_TAG variable (LINUX_TAG) to a
POSIX-compliant form with no spaces (e.g., LINUX_TAG="manylinux_") so the RUN
step treats it as a variable assignment like the other variables in the file.
- Around line 38-40: The RUN step in docker/Dockerfile-uv-base installs
mamba_ssm and causal_conv1d without pins; update that RUN line to install
reproducible refs (either explicit version pins like mamba_ssm==X.Y.Z and
causal_conv1d==A.B.C or git+https://...@<commit-or-tag> refs) while retaining
the MAMBA_SKIP_CUDA_BUILD and CAUSAL_CONV1D_SKIP_CUDA_BUILD env vars and the uv
pip install invocation; ensure the chosen pins/refs match the versions used in
docker/Dockerfile-base or your pyproject/requirements and include both package
identifiers (mamba_ssm, causal_conv1d) so builds are deterministic.
- Around line 49-54: The WHL_FILE construction in docker/Dockerfile-uv-base uses
manylinux_2_24/2_34 via ARCH_TAG/ LINUX_TAG causing a mismatch with
docker/Dockerfile-base which uses linux_x86_64/linux_aarch64; update
docker/Dockerfile-uv-base so its wheel filename construction (WHL_FILE) uses the
same platform tag format as docker/Dockerfile-base (i.e. use linux_x86_64 or
linux_aarch64) by changing the ARCH_TAG/ LINUX_TAG assignment logic tied to
TARGETARCH or by altering WHL_FILE to reference the same LINUX_TAG values used
in docker/Dockerfile-base; ensure WHL_VERSION remains v0.7.16 and preserve the
rest of the wheel name format.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: e0e331fd-7595-43f5-8a5b-e204d42b958c
📒 Files selected for processing (8)
.github/workflows/base.yml.github/workflows/main.yml.github/workflows/multi-gpu-e2e.yml.github/workflows/nightlies.yml.github/workflows/tests-nightly.yml.github/workflows/tests.ymlREADME.mddocker/Dockerfile-uv-base
💤 Files with no reviewable changes (4)
- .github/workflows/main.yml
- .github/workflows/multi-gpu-e2e.yml
- .github/workflows/nightlies.yml
- .github/workflows/base.yml
| RUN if [ "$TARGETARCH" = "amd64" ]; then \ | ||
| uv pip install --no-build-isolation "causal_conv1d @ git+https://github.com/Dao-AILab/causal-conv1d.git@main"; \ | ||
| uv pip install "mamba_ssm @ git+https://github.com/state-spaces/mamba.git@main"; \ | ||
| MAMBA_SKIP_CUDA_BUILD=TRUE CAUSAL_CONV1D_SKIP_CUDA_BUILD=TRUE uv pip install --no-build-isolation mamba_ssm causal_conv1d; \ | ||
| fi |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# First, locate the Dockerfiles
fd -t f "Dockerfile*" docker/Repository: axolotl-ai-cloud/axolotl
Length of output: 321
🏁 Script executed:
# Read the relevant section of docker/Dockerfile-uv-base
head -60 docker/Dockerfile-uv-base | tail -40Repository: axolotl-ai-cloud/axolotl
Length of output: 1699
🏁 Script executed:
# Check for any constraint files or requirements files in the repo
fd -t f -e "txt" -e "toml" | grep -E "(constraint|requirement|pyproject)" | head -20Repository: axolotl-ai-cloud/axolotl
Length of output: 143
🏁 Script executed:
# Look for any pip constraint files
find . -type f \( -name "*constraint*" -o -name "*requirements*" \) 2>/dev/null | head -20Repository: axolotl-ai-cloud/axolotl
Length of output: 161
🏁 Script executed:
# Check if mamba_ssm and causal_conv1d are in the main requirements files
grep -n "mamba_ssm\|causal_conv1d" requirements.txt requirements-dev.txt pyproject.tomlRepository: axolotl-ai-cloud/axolotl
Length of output: 50
🏁 Script executed:
# Check the full context around the problematic lines in docker/Dockerfile-uv-base
sed -n '1,60p' docker/Dockerfile-uv-baseRepository: axolotl-ai-cloud/axolotl
Length of output: 2151
🏁 Script executed:
# Compare with docker/Dockerfile-base to see if there's a pattern
sed -n '38,60p' docker/Dockerfile-baseRepository: axolotl-ai-cloud/axolotl
Length of output: 1313
🏁 Script executed:
# Check if there's any version pinning strategy documented
cat pyproject.toml | head -50Repository: axolotl-ai-cloud/axolotl
Length of output: 1332
Pin mamba_ssm and causal_conv1d versions in this stage.
Line 39 installs both packages without version constraints—they are not present in requirements.txt, requirements-dev.txt, or pyproject.toml. This makes the base image resolve whatever versions are current at build time, which is risky for CUDA/Torch binary-extension dependencies. The sibling docker/Dockerfile-base uses git refs to achieve reproducibility; apply a similar approach here by either pinning explicit versions or using git references.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docker/Dockerfile-uv-base` around lines 38 - 40, The RUN step in
docker/Dockerfile-uv-base installs mamba_ssm and causal_conv1d without pins;
update that RUN line to install reproducible refs (either explicit version pins
like mamba_ssm==X.Y.Z and causal_conv1d==A.B.C or
git+https://...@<commit-or-tag> refs) while retaining the MAMBA_SKIP_CUDA_BUILD
and CAUSAL_CONV1D_SKIP_CUDA_BUILD env vars and the uv pip install invocation;
ensure the chosen pins/refs match the versions used in docker/Dockerfile-base or
your pyproject/requirements and include both package identifiers (mamba_ssm,
causal_conv1d) so builds are deterministic.
| amd64) ARCH_TAG="2_24_x86_64" ;; \ | ||
| arm64) ARCH_TAG="2_34_aarch64" ;; \ | ||
| *) echo "Unsupported architecture: $TARGETARCH"; exit 1 ;; \ | ||
| esac && \ | ||
| WHL_VERSION="v0.7.16" && \ | ||
| WHL_FILE="flash_attn-2.8.3+cu${CUDA}${TORCH_TAG}-${PYTHON_CP}-${PYTHON_CP}-linux_${ARCH_TAG}.whl" && \ | ||
| WHL_FILE="flash_attn-2.8.3+cu${CUDA}${TORCH_TAG}-${PYTHON_CP}-${PYTHON_CP}-${LINUX_TAG}${ARCH_TAG}.whl" && \ |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
git ls-files | grep -i dockerfileRepository: axolotl-ai-cloud/axolotl
Length of output: 387
🏁 Script executed:
head -80 docker/Dockerfile-uv-base | tail -40Repository: axolotl-ai-cloud/axolotl
Length of output: 1699
🏁 Script executed:
head -80 docker/Dockerfile-base | tail -20Repository: axolotl-ai-cloud/axolotl
Length of output: 1042
🏁 Script executed:
git log --oneline -20 -- docker/Dockerfile-uv-base docker/Dockerfile-base | head -30Repository: axolotl-ai-cloud/axolotl
Length of output: 105
🏁 Script executed:
git log -p --all -- docker/Dockerfile-uv-base | grep -A 20 -B 5 "manylinux_2_24" | head -50Repository: axolotl-ai-cloud/axolotl
Length of output: 50
🏁 Script executed:
grep -n "manylinux\|linux_x86_64\|linux_aarch64" docker/Dockerfile-uv-base docker/Dockerfile-baseRepository: axolotl-ai-cloud/axolotl
Length of output: 130
🏁 Script executed:
# Check if there are any other references to the flash-attn wheel names
rg "flash_attn|flash-attn" docker/ -A 2 -B 2Repository: axolotl-ai-cloud/axolotl
Length of output: 2324
🏁 Script executed:
# Check for any comments or documentation about the difference
rg -i "uv-base|dockerfile" . --type md -A 5 -B 5 | head -100Repository: axolotl-ai-cloud/axolotl
Length of output: 50
Align flash-attn wheel naming between docker/Dockerfile-uv-base and docker/Dockerfile-base.
Both files download from the same v0.7.16 release, but construct different wheel filenames for the same architecture. docker/Dockerfile-uv-base:49-54 uses manylinux_2_24_x86_64 / manylinux_2_34_aarch64, while docker/Dockerfile-base:68-76 uses linux_x86_64 / linux_aarch64. This inconsistency will cause the base images to attempt downloading different wheels, risking divergent installations or failures if one naming pattern is not available in the release.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docker/Dockerfile-uv-base` around lines 49 - 54, The WHL_FILE construction in
docker/Dockerfile-uv-base uses manylinux_2_24/2_34 via ARCH_TAG/ LINUX_TAG
causing a mismatch with docker/Dockerfile-base which uses
linux_x86_64/linux_aarch64; update docker/Dockerfile-uv-base so its wheel
filename construction (WHL_FILE) uses the same platform tag format as
docker/Dockerfile-base (i.e. use linux_x86_64 or linux_aarch64) by changing the
ARCH_TAG/ LINUX_TAG assignment logic tied to TARGETARCH or by altering WHL_FILE
to reference the same LINUX_TAG values used in docker/Dockerfile-base; ensure
WHL_VERSION remains v0.7.16 and preserve the rest of the wheel name format.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Summary by CodeRabbit
Chores
Documentation