Skip to content

chore(fork): prune NVIDIA-only CI and record the upstream base - #2

Open
taufeeque9 wants to merge 2 commits into
farai/mainfrom
tf-at/fork-base-scaffolding
Open

chore(fork): prune NVIDIA-only CI and record the upstream base#2
taufeeque9 wants to merge 2 commits into
farai/mainfrom
tf-at/fork-base-scaffolding

Conversation

@taufeeque9

Copy link
Copy Markdown
Collaborator

Written by Claude (on Taufeeque's behalf).

Sets this repo up as a FAR.AI fork: prunes the upstream CI that cannot run here and rolls out the fork-base manifest and tooling, mirroring nemo-gym#16 (which rolled out the pattern from megatron-bridge-internal#3).

Changes

Area Change
Workflow prune Removes all 34 GitHub workflows (plus workflows/config/): every one is NVIDIA-org automation — gated on github.repository == 'NVIDIA/Megatron-LM', or needing FW-CI-templates, copy-pr-bot, self-hosted runners, or org secrets (PAT, NVIDIA_INFERENCE_*, TWINE_PASSWORD, Slack webhooks). Also CODEOWNERS (names @NVIDIA/* teams that do not exist here) and copy-pr-bot.yaml.
GitLab CI Left in place, deliberately. Megatron-LM's real test CI is GitLab (.gitlab-ci.yml, .gitlab/), which does not run on GitHub — it is inert here, and deleting it would only add conflict surface on every upstream sync. Same for the workflow helpers under .github/actions/ and .github/scripts/.
.fork-base.json New manifest: upstream repo, branch, and base commit (d12f6c8c). Changes only when upstream is merged in.
tools/fork_base.py --write / --check / --print. Dropped in unchanged from the nemo-rl copy.
tools/sync_upstream.sh make sync-upstream — merges newer upstream onto a sync/upstream-<date>-<sha> branch and regenerates the manifest. Unchanged from the other forks.
.github/workflows/fork-base.yml Runs --check on every PR and push to farai/main. Publishes the status context fork-base. Follows nemo-gym's variant: checkout pinned by SHA, no PAT (this repo has no private submodules).
Makefile, README.farai.md make help lists the commands; the README carries the fork workflow and patch list. Upstream ships no Makefile, so this one is fork-only.

Out of scope

No unit-test-suite bring-up (nemo-gym#16's sharded-suite step has no analogue here): Megatron-LM's tests are GPU-bound, so there is nothing runnable on GitHub-hosted runners.

Relationship to #1

#1 (tf-at/moe-lora-stack-on-d12f6c8c) is the pending expert-LoRA GEMM stack + hybrid-recompute guard series and is listed as such in README.farai.md. This PR should merge first; once it does, #1's merge ref carries the manifest and the fork-base check applies to it.

Verification

  • farai/main sits exactly on upstream commit d12f6c8c9aff51e166d872fd70151687a8e3f375 ("Add generic interface for SSM inference (Add generic interface for SSM inference NVIDIA/Megatron-LM#5382)"): git merge-base origin/farai/main upstream/main returns it, and merge-base --all returns exactly one commit.
  • python3 tools/fork_base.py --check passes locally, in both plain and PR (--against origin/farai/main) modes — the latter reports the expected bootstrap note (target has no manifest yet).
  • bash -n tools/sync_upstream.sh passes; fork-base.yml parses as YAML.

🤖 Generated with Claude Code

taufeeque9 and others added 2 commits August 24, 2026 20:41
Every GitHub workflow upstream ships is NVIDIA-org automation: gated on
github.repository == 'NVIDIA/Megatron-LM', or dependent on FW-CI-templates,
copy-pr-bot, self-hosted runners, and org secrets (PAT, NVIDIA_INFERENCE_*,
TWINE_PASSWORD, Slack webhooks). None of it can run on this fork, so all of
.github/workflows/ goes, along with CODEOWNERS (names @NVIDIA/* teams that
do not exist here) and copy-pr-bot.yaml.

The GitLab CI (.gitlab-ci.yml, .gitlab/) is inert on GitHub and stays, as do
the workflow helpers under .github/actions/ and .github/scripts/ — deleting
them would only add conflict surface on upstream syncs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
.fork-base.json records the upstream commit farai/main sits on (d12f6c8,
verified as the unique merge-base with NVIDIA/Megatron-LM main). NeMo-RL
pins this repo as a submodule and reads that record to decide compatibility.

tools/fork_base.py and tools/sync_upstream.sh are dropped in unchanged from
the nemo-rl copy; the fork-base workflow follows nemo-gym's variant (checkout
pinned by SHA, no PAT — this repo has no private submodules). The Makefile is
fork-only: upstream ships none.

Rolled out from AlignmentResearch/nemo-gym#16, which itself rolled out
megatron-bridge-internal#3.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants