ROCm/TheRock is production; Retire ROCm/ROCm; TheRock is now ROCm - #6949
ROCm/TheRock is production; Retire ROCm/ROCm; TheRock is now ROCm#6949saadrahim wants to merge 4 commits into
Conversation
❌ PR Check — Action Required
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
🚫 Please fix the failed policies before requesting reviews. The following policy checks failed:
The |
marbre
left a comment
There was a problem hiding this comment.
This is a way larger churn then one initially thinks. We have cross-repository interaction via Quartz, authentication is based on the exact repo name, resources are explicitly registered to or enabled for the repository, not to mention docs. All this can of course be changed but it is not a simple rename in GitHub settings and rather real work which needs to be validated carefully to not break the entire system.
I was hoping that the GitHub redirection keeps everything working. This may be high cost request as you suggest I am wrong. Let's think about it. |
stellaraccident
left a comment
There was a problem hiding this comment.
Thanks. You may proceed to execute this at any time so long as you have @ScottTodd saying it is ok.
| - `ROCm/ROCm` — live repo (formerly TheRock). | ||
| - `ROCm/TheRock` → redirects to new `ROCm/ROCm` (**persists**). | ||
| - `ROCm/ROCm` → `rocm-legacy` redirect — **does not survive**. | ||
| - `rocm-legacy` — reachable only by explicit name; nothing redirects to it. |
There was a problem hiding this comment.
Call it legacy-rocm-build?
| A name *swap* does not preserve both redirects. Renaming current `ROCm/ROCm` → `rocm-legacy` creates a `ROCm/ROCm` → `rocm-legacy` redirect, but then renaming TheRock *into* `ROCm/ROCm` puts a live repo on that path, which overrides (destroys) that redirect. End state: | ||
|
|
||
| - `ROCm/ROCm` — live repo (formerly TheRock). | ||
| - `ROCm/TheRock` → redirects to new `ROCm/ROCm` (**persists**). |
There was a problem hiding this comment.
Let's do this carefully. I'm supportive but the DevOps team will need to do it at their leisure to avoid surprises at critical times. It's one of those things that should be fine but GH changes are test in prod, and need the owners to time it so that they can fix any issues.
ScottTodd
left a comment
There was a problem hiding this comment.
I can see ways we could pull this off, but I'm hesitant given:
- TheRock as a project name has developed a following both within ROCm developers and some sections of the user community
- It's useful to have a name for the build and CI system components that isn't just "ROCm"
- The current https://github.com/ROCm/ROCm hosts policies that apply across the full project and github organization. Do we want to merge those with what exists here?
| This is acceptable: old `ROCm/ROCm` links land on the new active repo. The one casualty is deep-links to legacy *file paths* (e.g. old `CHANGELOG.md`), which will 404 against the new tree — hence migrating legacy content into the new repo and linking `rocm-legacy` explicitly. | ||
|
|
||
| ## Scope | ||
|
|
||
| **In scope:** the two renames; history-preserving migration of README content, `GOVERNANCE.md`, `CONTRIBUTING.md`, and relevant `docs/` into the new `ROCm/ROCm`; reconciling `CHANGELOG.md` into `RELEASES.md`; updating cross-links in other ROCm-org repos; issue-tracker cutover; a "moved" notice on `rocm-legacy`. |
There was a problem hiding this comment.
We currently have an organization-wide pull request template at https://github.com/ROCm/.github/blob/main/.github/pull_request_template.md with this content:
## Submission Checklist
- [ ] Look over the contributing guidelines at https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.That links to https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests, which would be replaced with https://github.com/ROCm/TheRock/blob/main/CONTRIBUTING.md after the repository renames.
I recently made some edits to the contributing guide in TheRock focused contributing to TheRock itself, so we'd want to re-evaluate that if we make this change. In particular:
- The https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md page is written to apply to all projects (that don't have their own local contributing guide).
- We could point to the file in this repository but lead with general guidance and then include TheRock-specific guidance.
- We could add a new common CONTRIBUTING.md in https://github.com/ROCm/.github or other repository (rocm-legacy?) if we want a dedicated location for the "default" contributing guide
- There is currently some stronger language for TheRock itself like "TheRock uses GitHub as the source of truth for all issue tracking, project planning, and code contributions." that while I'd like to apply to all of ROCm, that would be a larger discussion.
I'm also concerned about the "history-preserving migration of README content, GOVERNANCE.md, CONTRIBUTING.md" detail. How would that work? We currently have substantial content and history for README.md and CONTRIBUTING.md in this repository.
| ## Proposed Approach | ||
|
|
||
| 1. **Audit** current `ROCm/ROCm` files; map each to a destination (merge / new / drop). | ||
| 2. **Stage migration in TheRock first, with history** — use `git filter-repo` (or `subtree`) to import the selected docs paths with full commit history so `git log`/`blame` stay intact; reconcile `CHANGELOG.md` into `RELEASES.md`. |
There was a problem hiding this comment.
I don't think we should reconcile https://github.com/ROCm/ROCm/blob/develop/CHANGELOG.md into https://github.com/ROCm/TheRock/blob/main/RELEASES.md as the files have different purposes. We can add a new CHANGELOG.md as needed.
| 6. **Issue cutover** — announce a date; triage/migrate open `rocm-legacy` issues; pin a notice. | ||
| 7. **Communicate** — post plan/timeline in Discussions; 30-day notice before executing. | ||
|
|
||
| ## Risks & Open Questions |
There was a problem hiding this comment.
This is a way larger churn then one initially thinks. We have cross-repository interaction via Quartz, authentication is based on the exact repo name, resources are explicitly registered to or enabled for the repository, not to mention docs. All this can of course be changed but it is not a simple rename in GitHub settings and rather real work which needs to be validated carefully to not break the entire system.
I was hoping that the GitHub redirection keeps everything working. This may be high cost request as you suggest I am wrong. Let's think about it.
Yeah this will be tricky. The GitHub redirect is enough for some items but not all. I'm worried about the authentication for cloud project resources in particular. (That's solvable with a few minute-hours of poking settings in the cloud project(s), but it will be disruptive)
There was a problem hiding this comment.
My request is to do this someday in the next couple of quarters. Ideally during some quiet period. Maybe after the last ROCm release before the holidays.
With a lot of preplanning and testing. The name changes I am suggesting are entirely reversible in case things go wrong.
|
|
||
| **Proposal:** swap the names so the canonical name follows the active repo. | ||
|
|
||
| 1. Rename `ROCm/TheRock` → `ROCm/ROCm`. |
There was a problem hiding this comment.
I think there's still value in the "TheRock" name referring to the build and CI systems. How would we keep that with this repository rename?
A few spots where it is particularly relevant:
- "TheRock CI" in rocm-libraries/rocm-systems/etc. https://github.com/ROCm/rocm-libraries/blob/develop/.github/workflows/therock-ci.yml
- Docs/code/etc. in this repository (https://github.com/ROCm/TheRock/tree/main/docs/development)
- Some code in other repositories uses the name in variables, file names, script conventions, etc.
-DHIPBLASLT_ENABLE_THEROCK: https://github.com/ROCm/rocm-libraries/blob/0e2e6b4e1bcb14cc04306324878374dcb967a8e9/projects/hipblaslt/clients/common/CMakeLists.txt#L24-DTHEROCK_SANITIZER: https://github.com/ROCm/rocm-libraries/blob/0e2e6b4e1bcb14cc04306324878374dcb967a8e9/projects/composablekernel/CMakeLists.txt#L39THEROCK_INSTALL_RPATH_ORIGIN: https://github.com/ROCm/rocm-libraries/blob/0e2e6b4e1bcb14cc04306324878374dcb967a8e9/dnn-providers/hip-kernel-provider/src/CMakeLists.txt#L69-L71
Brainstorming:
- We could keep the name in all the places it currently exists, disambiguate in the repository README
- We could rebrand as "ROCm CI", if that name carries enough meaning
- Move sections of this repository to a
TheRock/therock/the-rocksubfolder
There was a problem hiding this comment.
I think we keep TheRock as a name, similar to Bazel for PyTorch. I know the analogy is a bit of stretch but that's how I think of it.
I don't think we change any env vars or things tied to TheRock. TheRock still exists but refers to our build/CI system. We don't go stripping out every reference to it.
| ## Alternatives Considered | ||
|
|
||
| - **Archive current `ROCm/ROCm`, keep TheRock's name** — leaves the best-known name dead and users still hunting for "TheRock." Rejected. | ||
| - **Deprecation banner only, no rename** — preserves the dual-source and naming ambiguity. Rejected. | ||
| - **Fold TheRock into current `ROCm/ROCm`** — rewrites the active repo's identity and disrupts its issues/discussions/RFC history. Rejected. | ||
| - **True git-history merge into a new repo** — needlessly disruptive; sacrifices the existing `ROCm/ROCm` name value. Rejected. |
There was a problem hiding this comment.
Here's another option: strip https://github.com/ROCm/ROCm down to just organization-wide / product-wide documentation and discussion. Keep https://github.com/ROCm/TheRock focused on the build system. That won't solve the problem of having two places to file issues, but I also sorta want to keep "why is this math library slow" style issues out of TheRock (direct people to rocm-libraries instead?)
There was a problem hiding this comment.
GitHub issues can be move between projects in an organization. I think we can teach the triage team move things that don't belong in ROCm/ROCm or ROCm/TheRock to rocm-libraries.
But I strongly believe that despite the cost of merging, we need only one top level repository for entry point for all.
There was a problem hiding this comment.
Internal users and customers are getting very confused between our two entry points TheRock and ROCm.
Motivation
RFC to discuss future of ROCm/ROCm repository.
Technical Details
Non technical
Test Plan
TBD
Test Result
NA
Submission Checklist