release-create-tracker-issue

작성자: pytorch

릴리스 공지에서 PyTorch 릴리스 트래커 / 체리픽 추적 이슈를 생성하고 (선택적으로 열 수 있습니다).

npx skills add https://github.com/pytorch/test-infra --skill release-create-tracker-issue

Create Release Tracker Issue

Generates the body for a PyTorch release tracker issue (the cherry-pick tracking issue cut alongside a release branch, like https://github.com/pytorch/pytorch/issues/180506) from a release announcement that contains the milestone (key dates) schedule, then opens the issue in pytorch/pytorch.

When to use this skill

Use when the user asks to:

  • Create a release tracker / release tracking issue for a PyTorch release
  • Create the cherry-pick tracking issue for a newly cut release branch
  • Turn a "PyTorch release X.Y key dates" announcement into a tracker issue

Instructions

Step 1: Determine parameters

Collect these parameters. Most can be derived; ask only for what is missing.

ParameterDescriptionExampleHow to obtain
Release announcementURL or pasted text of the "key dates" posthttps://dev-discuss.pytorch.org/t/pytorch-release-2-13-key-dates/3390From the user
Release versionFull version being released2.13.0From the user or announcement title
Branch versionMAJOR.MINOR of the release branch2.13Derived from release version (drop the patch)
Previous minorThe most recent prior minor release2.12Branch minor minus 1 (e.g. 2.13 → 2.12)
Release managersGitHub handles with cherry-pick dispensation@atalman, @malfetDefault @atalman, @malfet unless told otherwise

Step 2: Extract milestone dates from the announcement

If given a URL, fetch it (the dev-discuss forum is not a GitHub URL, so use WebFetch, not gh):

WebFetch(url=<announcement_url>, prompt="Extract the M3 (release branch cut), M4 (release branch finalized / feature classifications), M4.1 (tutorial drafts submission deadline), M5 (external-facing content finalized), and M6 (release day) dates verbatim, preserving any 'week of' prefix.")

If given pasted text, parse the dates directly from it.

Map the announcement milestones to the tracker fields. Keep the date format exactly as written in the announcement (e.g. DD/MM/YY, and keep a week of prefix if present):

Tracker fieldSource milestone
M3_DATEM3 — Release branch cut
M4_DATEM4 — Release branch finalized / feature classifications published
M4_1_DATEM4.1 — Tutorial drafts submission deadline
M5_DATEM5 — External-Facing Content Finalized
M6_DATEM6 — Release Day
PHASE_CUTOFFThe M4 date. If M4 is written as week of 22/6/26, use the bare date 22/6/26 for the phase cutoff.

If a milestone is missing from the announcement, ask the user rather than guessing.

Step 3: Generate the issue body

Fill the template below. Replace every {PLACEHOLDER}:

  • {VERSION} → full release version (e.g. 2.13.0)
  • {BRANCH} → branch version (e.g. 2.13)
  • {PREV_MINOR} → previous minor (e.g. 2.12)
  • {PHASE_CUTOFF}, {M3_DATE}, {M4_DATE}, {M4_1_DATE}, {M5_DATE}, {M6_DATE} → dates from Step 2
  • {RELEASE_MANAGERS} → e.g. @atalman, @malfet
We cut a [release branch](https://github.com/pytorch/pytorch/tree/release/{BRANCH}) for the {VERSION} release.

Our plan from this point is roughly:

* Phase 1 (until {PHASE_CUTOFF}): work on finalizing the release branch
* Phase 2 (after {PHASE_CUTOFF}): perform extended integration/stability/performance testing based on Release Candidate builds.

This issue is for tracking cherry-picks to the release branch.

## Release dates

* M3: Release branch cut ({M3_DATE})
* M4: Release branch finalized, Announce final launch date, Feature classifications published ({M4_DATE}) - Final RC is produced.
* M4.1: Tutorial drafts submission deadline ({M4_1_DATE})
* M5: External-Facing Content Finalized ({M5_DATE})
* M6: Release Day ({M6_DATE})

## Cherry-Pick Criteria

**Phase 1 (until {PHASE_CUTOFF}):**

Only low-risk changes may be cherry-picked from main:

1. Fixes to regressions against the most recent minor release (e.g. {PREV_MINOR}.x for this release; see [module: regression issue list](https://github.com/pytorch/pytorch/issues?q=is%3Aissue+is%3Aopen+label%3A%22module%3A+regression%22+))
2. Critical fixes for: [silent correctness](https://github.com/pytorch/pytorch/issues?q=is%3Aissue+is%3Aopen+label%3A%22topic%3A+correctness+%28silent%29%22), [backwards compatibility](https://github.com/pytorch/pytorch/issues?q=is%3Aissue+is%3Aopen+label%3A%22topic%3A+bc-breaking%22+), [crashes](https://github.com/pytorch/pytorch/issues?q=is%3Aissue+is%3Aopen+label%3A%22topic%3A+crash%22+), [deadlocks](https://github.com/pytorch/pytorch/issues?q=is%3Aissue+is%3Aopen+label%3A%22topic%3A+deadlock%22+), (large) [memory leaks](https://github.com/pytorch/pytorch/issues?q=is%3Aissue+is%3Aopen+label%3A%22topic%3A+memory+usage%22+)
3. Critical fixes to new features introduced in the most recent minor release (e.g. {PREV_MINOR}.x for this release)
4. Test/CI fixes
5. Documentation improvements
6. Compilation fixes or ifdefs required for different versions of the compilers or third-party libraries
7. Release branch specific changes (e.g. change version identifiers)

Any other change requires special dispensation from the release managers (currently {RELEASE_MANAGERS} ). If this applies to your change please write "Special Dispensation" in the "Criteria Category:" template below and explain.

**Phase 2 (after {PHASE_CUTOFF}):**

Note that changes here require us to rebuild a Release Candidate and restart extended testing (likely delaying the release). Therefore, the only accepted changes are **Release-blocking** critical fixes for: [silent correctness](https://github.com/pytorch/pytorch/issues?q=is%3Aissue+is%3Aopen+label%3A%22topic%3A+correctness+%28silent%29%22), [backwards compatibility](https://github.com/pytorch/pytorch/issues?q=is%3Aissue+is%3Aopen+label%3A%22topic%3A+bc-breaking%22+), [crashes](https://github.com/pytorch/pytorch/issues?q=is%3Aissue+is%3Aopen+label%3A%22topic%3A+crash%22+), [deadlocks](https://github.com/pytorch/pytorch/issues?q=is%3Aissue+is%3Aopen+label%3A%22topic%3A+deadlock%22+), (large) [memory leaks](https://github.com/pytorch/pytorch/issues?q=is%3Aissue+is%3Aopen+label%3A%22topic%3A+memory+usage%22+)

Changes will likely require a discussion with the larger release team over VC or Slack.

## Cherry-Pick Process

1. Ensure your PR has landed in master. This does not apply for release-branch specific changes (see Phase 1 criteria).
2. Create (but do not land) a PR against the [release branch](https://github.com/pytorch/pytorch/tree/release/{BRANCH}).
   <details>

    ```bash
    # Find the hash of the commit you want to cherry pick
    # (for example, abcdef12345)
    git log

    git fetch origin release/{BRANCH}
    git checkout release/{BRANCH}
    git cherry-pick -x abcdef12345

    # Submit a PR based against 'release/{BRANCH}' either:
    # via the GitHub UI
    git push my-fork

    # via the GitHub CLI
    gh pr create --base release/{BRANCH}
    ```

    You can also use the `@pytorchbot cherry-pick` command to cherry-pick your PR. To do this, just add a comment in your merged PR. For example:

    ```
    @pytorchbot cherry-pick --onto release/{BRANCH} -c docs
    ```
    (`-c docs` - is the category of your changes - adjust accordingly):

    For more information, see [pytorchbot cherry-pick docs](https://github.com/pytorch/pytorch/wiki/Bot-commands#cherry-pick).

    </details>

3. Make a request below with the following format:

```
Link to landed trunk PR (if applicable):
*

Link to release branch PR:
*

Criteria Category:
*
```

1. Someone from the release team will reply with approved / denied or ask for more information.
2. If approved, someone from the release team will merge your PR once the tests pass. **Do not land the release branch PR yourself.**

**NOTE: Our normal tools (ghstack / ghimport, etc.) do not work on the release branch.**

Please note HUD Link with branch CI status and link to the HUD to be provided here.
[HUD](https://hud.pytorch.org/hud/pytorch/pytorch/release%2F{BRANCH})

cc @seemethere @malfet @pytorch/pytorch-dev-infra

### Versions

{VERSION}

Step 4: Review, then create the issue

  1. Show the rendered body to the user for confirmation. Creating a GitHub issue is an outward-facing action — do not create it until the user approves the content (or has clearly asked you to open it directly).
  2. Create the issue in pytorch/pytorch with the exact title and labels:
    • Title: [v.{VERSION}] Release Tracker (note the v. prefix — e.g. [v.2.13.0] Release Tracker)
    • Labels: release tracker, triaged
gh issue create \
  --repo pytorch/pytorch \
  --title "[v.{VERSION}] Release Tracker" \
  --label "release tracker" \
  --label "triaged" \
  --body-file release_tracker_body.md

If gh is unavailable, POST to https://api.github.com/repos/pytorch/pytorch/issues with {"title": ..., "labels": ["release tracker", "triaged"], "body": ...} using an authenticated token.

  1. Report the new issue URL back to the user.

Example usage

Example — Create the 2.13.0 tracker from the key-dates announcement:

Create a release tracker issue for 2.13.0 from https://dev-discuss.pytorch.org/t/pytorch-release-2-13-key-dates/3390

For that announcement the milestones resolve to:

FieldValue
M3 (branch cut)week of 8/6/26
M4 (finalized)week of 22/6/26
M4.1 (tutorial drafts)30/6/26
M5 (content finalized)1/7/26
M6 (release day)8/7/26
Phase cutoff22/6/26
Previous minor2.12

Producing title [v.2.13.0] Release Tracker with labels release tracker, triaged.

Notes

  • Phase cutoff = the M4 date. Both the "Phase 1 (until …)" / "Phase 2 (after …)" lines and the "Phase 1/2" cherry-pick criteria headers use the bare M4 date (strip a week of prefix for the cutoff, even though the M4 line in the Release dates section keeps it).
  • Preserve the announcement's date format verbatim (DD/MM/YY). Do not reformat or convert dates.
  • The release tracker label must already exist in the repo (it does in pytorch/pytorch). If creating in a repo without it, create the label first or drop it.
  • Keep the trailing cc @seemethere @malfet @pytorch/pytorch-dev-infra line unless the user specifies different reviewers.
  • The release managers handles default to @atalman, @malfet; update only if the user names different managers.

pytorch의 다른 스킬

zephyr
pytorch
임베디드 보드용 Zephyr RTOS 모듈로 ExecuTorch를 빌드하고 구성합니다. ET로 Zephyr 워크스페이스를 설정하거나 보드 지원(오버레이 등)을 추가할 때 사용합니다.
aoti-debug
pytorch
AOTInductor(AOTI) 오류 및 충돌을 디버깅합니다. AOTI 세그폴트, 장치 불일치 오류, 상수 로딩 실패 또는 런타임 오류가 발생할 때 사용하세요.
skill-writer
pytorch
Claude Code를 위한 잘 구조화된 Agent Skill 생성 가이드로, 모범 사례와 검증을 포함합니다. Skill의 전체 수명 주기(범위 설정, 파일 구조, YAML 프론트매터 검증, 콘텐츠 구성, 테스트 절차)를 다룹니다. 엄격한 명명 규칙(소문자, 하이픈, 최대 64자)과 설명 요구 사항(특정 트리거, 파일 유형, "무엇" 및 "언제" 절)을 적용합니다. 읽기 전용 Skill, 스크립트 기반 Skill, 다중 파일 Skill 등 일반적인 패턴에 대한 템플릿을 제공합니다.
triaging-issues
pytorch
GitHub 이슈를 분류하여 온콜 팀에 라우팅하고, 레이블을 적용하며, 질문을 종료합니다. 새로운 PyTorch 이슈를 처리하거나 이슈 분류를 요청받았을 때 사용하세요.
wheel-size-analyzer
pytorch
PyTorch nightly wheel 크기를 GitHub Actions 아티팩트 API를 사용하여 날짜 범위에 걸쳐 분석합니다. 바이너리 크기 변경 추적, wheel 크기 식별에 사용합니다…
release-go-live-binary-build-matrix
pytorch
tools/scripts/generate_binary_build_matrix.py를 PyTorch 릴리스가 라이브될 때 업데이트합니다. CURRENT_STABLE_VERSION을 새로운 안정 버전으로 올리고, 해당…
pr-review
pytorch
PyTorch 풀 리퀘스트의 코드 품질, 테스트 커버리지, 보안 및 하위 호환성을 검토합니다. PR을 검토할 때, 코드 변경 사항을 검토하도록 요청받았을 때 사용합니다.
qualcomm
pytorch
QNN(Qualcomm AI Engine Direct) 백엔드를 빌드, 테스트 또는 개발합니다. backends/qualcomm/에서 작업하거나 QNN을 빌드할 때 사용합니다(계속…).