Skip to content

ci: introduce L-tier scope vocabulary via parser - #4625

Merged
balasaajay merged 3 commits into
NVIDIA:mainfrom
balasaajay:abalasa.add-l-tier
May 6, 2026
Merged

ci: introduce L-tier scope vocabulary via parser#4625
balasaajay merged 3 commits into
NVIDIA:mainfrom
balasaajay:abalasa.add-l-tier

Conversation

@balasaajay

@balasaajay balasaajay commented May 5, 2026

Copy link
Copy Markdown
Contributor

What does this PR do ?

Add LEGACY_SCOPE_ALIASES in recipe_parser.py that maps legacy scope values (mr-github, mr-github-slim, nightly, weekly) to the new L-tier vocabulary (L0/L1/L2/L3). The alias rewrites scope per workload row in flatten_products and injects a default cadence only when the legacy name implied a trigger (nightly -> [nightly], weekly -> [weekly]) and the recipe has no explicit cadence set. Add weekly to ALLOWED_CADENCE_VALUES.

Follow up PR:

Rewrite recipe scope: values to L-tier names as recipes are touched.
[mr]/[mr-github] → [L1],
[*-slim] → [L0],
[nightly] → [L2] + cadence: [nightly],
[weekly] → [L3] + cadence: [weekly].
unit-tests and *-broken stay as-is.

⚠️ For major changes (either in lines of code or in its impact), please make sure to first share a design doc with the team. If you're unsure what's the best way to do so, contact the @mcore-oncall.

Issue tracking

For PRs from open-source community contributors:

  • New features: a linked issue is required. Please open a feature request and reference it here before submitting the PR.
  • Small updates (bug fixes, minor improvements): a linked issue is recommended and will accelerate the PR review process.

Linked issue:

Contribution process

Pre-checks

  • I have added relevant unit tests
  • I have added relevant functional tests
  • I have added proper typing to my code Typing guidelines
  • I have added relevant documentation
  • I have run the autoformatter.sh on my PR

Code review

Feel free to message or comment the @mcore-oncall to help accelerate your merge into main. The less complex your PR is, the faster it will be approved and merged!

All PRs start as draft. If you open a non-draft PR, it will be automatically converted to draft.

Step 1: Mark PR as "Ready for Review"

  1. When your PR is ready, click Ready for Review.
  2. An oncall reviewer is auto-assigned and expert reviewers are notified based on your changes.
    • Some PRs may jump straight to step 2. This is determined by .github/CODEOWNERS.

⚠️ Only mark as ready once merge-conflicts are resolved and the CI is passing.
Final Review might get declined if these requirements are not fulfilled.

Step 2: Final Review

For PRs that change megatron/core, once all expert reviewers have approved, the Final Review label is applied automatically and final reviewers are assigned.

For PRs outside megatron/core, this step is skipped.

Step 3: Approved

Once all required reviewers have approved, the Approved label is applied automatically.

Merge

Any member of mcore-engineers will be able to merge your PR.

For MRs into `dev` branch The proposed review process for `dev` branch is under active discussion.

MRs are mergable after one approval by either eharper@nvidia.com or zijiey@nvidia.com.

Add LEGACY_SCOPE_ALIASES in recipe_parser.py that maps legacy scope values
(mr, mr-slim, mr-github, mr-github-slim, nightly, weekly) to the new L-tier
vocabulary (L0/L1/L2/L3). The alias rewrites `scope` per workload row in
flatten_products and injects a default cadence only when the legacy name
implied a trigger (nightly -> [nightly], weekly -> [weekly]) and the
recipe has no explicit cadence set. Add `weekly` to ALLOWED_CADENCE_VALUES.

Flip in-repo CI call sites to the new tier names so new contributors only
see L0/L1: cicd-main.yml configure step picks L0/L1 instead of
mr-github-slim/mr-github; dev defaults in launch_jet_workload.py and
generate_local_jobs.py default to L1; tools/bisect.{sh,md} reference L1.

unit-tests is intentionally not aliased - .gitlab/stages/02.test.yml
still passes that exact string and the recipes still declare it. The
GitLab FUNCTIONAL_TEST_SCOPE variable is set externally and continues
to send legacy values; the alias resolves them transparently. A comment
in 04.functional-tests.yml documents this.

Recipe YAMLs are not edited; they continue to work via the alias.
@copy-pr-bot

copy-pr-bot Bot commented May 5, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@balasaajay

Copy link
Copy Markdown
Contributor Author

/ok to test 10cad0d

@copy-pr-bot

copy-pr-bot Bot commented May 5, 2026

Copy link
Copy Markdown

/ok to test 10cad0d

@balasaajay, there was an error processing your request: E2

See the following link for more information: https://docs.gha-runners.nvidia.com/cpr/e/2/

@balasaajay

Copy link
Copy Markdown
Contributor Author

/ok to test f596ee9

Change the default scope from 'L1' to 'mr' in generate_local_jobs.py and launch_jet_workload.py to align with the legacy values used in GitLab CI. Update documentation in bisect.md to reflect this change. Adjust comments in recipe_parser.py to clarify the handling of legacy scope values and their mapping to the new L-tier vocabulary.
@balasaajay

Copy link
Copy Markdown
Contributor Author

/ok to test b168601

@ko3n1g ko3n1g left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fantastic contribution!

Comment thread tests/test_utils/python_scripts/recipe_parser.py
@balasaajay

Copy link
Copy Markdown
Contributor Author

/ok to test 7684cf6

@balasaajay
balasaajay marked this pull request as ready for review May 6, 2026 20:45
@balasaajay
balasaajay requested a review from a team as a code owner May 6, 2026 20:45
@balasaajay
balasaajay added this pull request to the merge queue May 6, 2026
@svcnvidia-nemo-ci
svcnvidia-nemo-ci requested a review from a team May 6, 2026 20:45
@svcnvidia-nemo-ci svcnvidia-nemo-ci added the Approved All necessary approvals have been made label May 6, 2026
@svcnvidia-nemo-ci

Copy link
Copy Markdown
Contributor

🔄 Merge queue validation started!

You can track the progress here: https://github.com/NVIDIA/Megatron-LM/actions/runs/25460146025

Merged via the queue into NVIDIA:main with commit 008c3e9 May 6, 2026
190 checks passed
@balasaajay
balasaajay deleted the abalasa.add-l-tier branch May 6, 2026 21:53
balasaajay added a commit to balasaajay/Megatron-LM that referenced this pull request May 20, 2026
yhgalaxy pushed a commit to yhgalaxy/Megatron-LM that referenced this pull request Jun 17, 2026
Signed-off-by: yhgalaxy <yhgalaxy@outlook.com>
yhgalaxy pushed a commit to yhgalaxy/Megatron-LM that referenced this pull request Jun 17, 2026
)

Signed-off-by: yhgalaxy <yhgalaxy@outlook.com>
jon-barker pushed a commit to jon-barker/Megatron-LM that referenced this pull request Jul 10, 2026
Signed-off-by: Jon Barker <jbarker@aws-cmh-slurm-1-vscode-02.cm.cluster>
jon-barker pushed a commit to jon-barker/Megatron-LM that referenced this pull request Jul 10, 2026
)

Signed-off-by: Jon Barker <jbarker@aws-cmh-slurm-1-vscode-02.cm.cluster>
terminator123 pushed a commit to 021ai/Megatron-LM that referenced this pull request Aug 3, 2026
terminator123 pushed a commit to 021ai/Megatron-LM that referenced this pull request Aug 3, 2026
svcnvidia-nemo-ci pushed a commit to dimapihtar/Megatron-LM that referenced this pull request Aug 4, 2026
Signed-off-by: Dmytro Pykhtar <dpykhtar@nvidia.com>
svcnvidia-nemo-ci pushed a commit to dimapihtar/Megatron-LM that referenced this pull request Aug 4, 2026
)

Signed-off-by: Dmytro Pykhtar <dpykhtar@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Approved All necessary approvals have been made complexity: low Run functional tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants