Files
Andrey Talman 64d8a9b961 [CI] Remove the remaining XLA CI plumbing (#202262)
Go through the following checklist
- [x] Passes lint (`spin fixlint`)
- [ ] Added/updated tests
- [ ] Updated documentation (if applicable)
- [ ] Included benchmark results (for PRs impacting perf)

---

## Linked issue or supporting maintainer

Follow-up to #202086.

## BC-breaking?

No. This only touches CI configuration. No workflow builds or tests XLA, and nothing in this repo reads the removed env vars. They were consumed by scripts in the cloned `pytorch/xla` repo, which only the dead `build_xla` and `test_xla` paths (removed in #202086) sourced.

## Summary (human written only)

PyTorch/XLA is deprecated in favor of TorchTPU, and its repo will be archived on 2026-11-15. #202086 removes the dead XLA paths from `.ci/pytorch` and lists what it leaves for follow-ups. This PR removes the CI plumbing in that list, plus the pin and its consumers:

- `XLA_CUDA` and `XLA_CLANG_CACHE_S3_BUCKET_NAME` (and their `docker run -e` passthroughs) from `_linux-build`, `_linux-test`, `_s390x-build`, `_s390x-test` and `_xpu-test`.
- The `update-commit-hash` job in `weekly.yml`, whose only step bumped the xla pin, and `.github/ci_commit_pins/xla.txt`.
- The `OSS CI / pytorchbot / XLA` merge rule and the `xla.txt` pattern in the `Lazy Tensor` rule of `merge_rules.yaml`.
- The XLA block in `scripts/release/apply-release-changes.sh`. Its first `sed` rewrote the only `--quiet` in `.ci/pytorch/common_utils.sh`, which sits in `clone_pytorch_xla`, and its second rewrote the pin file deleted here.

Left alone on purpose:

- `.ci/docker` (the `xla` image branch and two comments): editing it rebuilds every CI image.
- The `xla` merge-rule fixtures in `.github/scripts/test_trymerge.py`: they replay recorded data for PR 105312, so their check names have to stay.
- The `module: xla` label list in `.agents/skills/triaging-issues/labels.json` and the `xla` category in `scripts/release_notes`: both describe labels that still exist on old issues and PRs.

Does not depend on #202086 and can land in either order: no job reaches the XLA functions that would read these variables.

## Test Plan

The edited workflow files and `merge_rules.yaml` parse, `merge_rules.yaml` no longer contains an XLA rule or an `xla.txt` pattern, and the release script passes `bash -n`.

```
python3 -c "import yaml,glob; [yaml.safe_load(open(f)) for f in glob.glob('.github/workflows/*.yml')]"
bash -n scripts/release/apply-release-changes.sh
git grep -nE 'XLA_CUDA|XLA_CLANG_CACHE|ci_commit_pins/xla' -- .github scripts
```

The last command should only match the `test_trymerge.py` fixtures.

## Agent details (if applicable)

Drafted with Claude Code; diff reviewed by hand.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Pull Request resolved: https://github.com/pytorch/pytorch/pull/202262
Approved by: https://github.com/huydhn
2026-10-27 23:54:30 +00:00
..

PyTorch release scripts performing branch cut and applying release only changes

These are a collection of scripts that are to be used for release activities.

NOTE: All scripts should do no actual work unless the DRY_RUN environment variable is set to disabled. The basic idea being that there should be no potential to do anything dangerous unless DRY_RUN is explicitly set to disabled.

Order of Execution

  1. Run cut-release-branch.sh to cut the release branch
  2. Run apply-release-changes.sh to apply release only changes to create a PR with release only changes similar to this PR

Promoting packages

Scripts for Promotion of PyTorch packages are under test-infra repository. Please follow README.md