Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
38e0581
Update package_info.py (#322)
pablo-garay Aug 19, 2025
8196011
Add ray head start timeout (#324)
hemildesai Aug 20, 2025
8199175
Remove ray deprecated dashboard-grpc-port arg (#325)
chtruong814 Aug 21, 2025
f00ef04
Update community-bot to add issues to shared project (#321)
chtruong814 Aug 21, 2025
19f7cab
add a grace for Jobs that may start in Unknown (#291)
prekshivyas Aug 22, 2025
c4c83ab
Add image pull secrets param for lepton (#330)
pablo-garay Aug 26, 2025
087facf
Bump community-bot to 0.54.4 (#332)
chtruong814 Aug 28, 2025
178ab3c
Add broken links check in docs (#333)
chtruong814 Sep 3, 2025
1adb499
Add node reservations for LeptonExecutor (#336)
roclark Sep 10, 2025
2caf5d7
fix nodes -> num_nodes (#338)
romilbhardwaj Sep 12, 2025
c16a572
Add retry_until_up (#340)
romilbhardwaj Sep 12, 2025
afcd979
Support SkyPilot Storage configurations in `file_mounts` for automati…
andylizf Sep 12, 2025
3ec63b9
Backward compatibility for SkyPilot 0.10.3+ (#339)
romilbhardwaj Sep 19, 2025
f5970c5
Update cherry-pick workflow to use version 0.63.0 (#344)
pablo-garay Sep 29, 2025
6bc4319
Create SkypilotJobsExecutor to allow running managed jobs (#343)
rahimftd Sep 30, 2025
f104fe6
Refactor tar packaging logic to work for submodule and extra repo (#347)
titu1994 Oct 3, 2025
0c68809
Documentation Restructurting (#350)
aschilling-nv Oct 7, 2025
a70fa20
remove custom dir (#351)
ko3n1g Oct 8, 2025
b835939
Bumping to 0.5.0 (#352)
aschilling-nv Oct 8, 2025
b63919f
Update release notes header in changelog build (#355)
pablo-garay Oct 9, 2025
7d6a559
add changelog-config (#356)
pablo-garay Oct 9, 2025
de04125
Changelog 0.6.0 (#357)
pablo-garay Oct 9, 2025
39dcff2
spelling (#359)
pablo-garay Oct 9, 2025
927e3df
spelling (#359)
pablo-garay Oct 9, 2025
8ca8f79
fix: exit code docker runs (#365)
ko3n1g Oct 15, 2025
01a9a8b
new changelog-build (#367)
pablo-garay Oct 17, 2025
dc86aea
beep boop: Update changelog (#396) (#397)
chtruong814 Nov 26, 2025
0ba0b24
[🤖]: Howdy folks, let's bump to `Version(__version__).major.Version(…
pablo-garay Dec 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .github/workflows/build-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Copyright (c) 2025, NVIDIA CORPORATION.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: Build docs

on:
pull_request:
types: [opened, synchronize, reopened, labeled, unlabeled]
workflow_call:

jobs:
build-docs:
uses: NVIDIA-NeMo/FW-CI-templates/.github/workflows/_build_docs.yml@v0.57.0
56 changes: 53 additions & 3 deletions .github/workflows/changelog-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ on:
description: Release branch to build changelog on (e.g. `r2.1.0`)
type: string
required: true
changelog-main-content:
description: Custom changelog content to include before detailed changelogs
type: string
required: false
default: ''

jobs:
changelog:
Expand All @@ -33,8 +38,8 @@ jobs:
# fromTag: Auto resolved from historical tag order (previous tag compared to current tag)
# toTag: Current tag reference
configuration: ".github/workflows/config/changelog-config.json"
owner: "NVIDIA"
repo: "NeMo"
owner: ${{ github.repository_owner }}
repo: ${{ github.event.repository.name }}
ignorePreReleases: "false"
failOnError: "false"
fromTag: ${{ inputs.last-release-tag }}
Expand All @@ -44,12 +49,24 @@ jobs:
env:
RELEASE_BRANCH: ${{ inputs.release-branch }}
CHANGELOG: ${{ steps.github_tag.outputs.changelog }}
MAIN_CONTENT: ${{ inputs.changelog-main-content }}
shell: bash -x -e -u -o pipefail {0}
run: |
RELEASE_VERSION=${RELEASE_BRANCH#r}
CHANGELOG=$(echo "$CHANGELOG" | sed '/^[[:blank:]]*#/s/#/###/')

RELEASE_NOTES="## NVIDIA Neural Modules $RELEASE_VERSION
# Build release notes starting with version header
RELEASE_NOTES="## NVIDIA Nemo Run $RELEASE_VERSION"

# Add custom content if provided
if [ -n "$MAIN_CONTENT" ]; then
RELEASE_NOTES="$RELEASE_NOTES

$MAIN_CONTENT"
fi

# Add detailed changelogs section
RELEASE_NOTES="$RELEASE_NOTES

### Detailed Changelogs:

Expand All @@ -62,6 +79,38 @@ jobs:
- name: Inspect new changelog file
run: cat CHANGELOG.md

- name: Create or update label
uses: actions/github-script@v6
with:
script: |
const labelName = '${{ inputs.release-branch }}';
const labelColor = '0366d6'; // Blue color
const labelDescription = `Release ${labelName}`;

try {
// Try to get the label
await github.rest.issues.getLabel({
owner: context.repo.owner,
repo: context.repo.repo,
name: labelName
});
console.log(`Label '${labelName}' already exists`);
} catch (error) {
if (error.status === 404) {
// Label doesn't exist, create it
await github.rest.issues.createLabel({
owner: context.repo.owner,
repo: context.repo.repo,
name: labelName,
color: labelColor,
description: labelDescription
});
console.log(`Created label '${labelName}'`);
} else {
throw error;
}
}

- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
with:
Expand All @@ -71,3 +120,4 @@ jobs:
sign-commits: true
base: main
branch: bot/chore/update-changelog-into-${{ inputs.release-branch }}
labels: ${{ inputs.release-branch }}
2 changes: 1 addition & 1 deletion .github/workflows/cherry-pick-release-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:

jobs:
cherry-pick:
uses: NVIDIA-NeMo/FW-CI-templates/.github/workflows/_cherry_pick.yml@v0.22.7
uses: NVIDIA-NeMo/FW-CI-templates/.github/workflows/_cherry_pick.yml@v0.63.0
secrets:
PAT: ${{ secrets.PAT }}
SLACK_WEBHOOK_ADMIN: ${{ secrets.SLACK_WEBHOOK_ADMIN }}
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/community-bot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ on:

jobs:
community-bot:
uses: NVIDIA-NeMo/FW-CI-templates/.github/workflows/_community_bot.yml@v0.49.1
uses: NVIDIA-NeMo/FW-CI-templates/.github/workflows/_community_bot.yml@v0.54.4
with:
community_project_id: ${{ vars.COMMUNITY_PROJECT_ID }}
secrets:
GH_TOKEN: ${{ secrets.PAT }}
118 changes: 118 additions & 0 deletions .github/workflows/config/changelog-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
{
"categories": [
{
"title": "## Executors\n\n",
"labels": ["executor", "local", "slurm", "dgxcloud", "lepton", "skypilot", "docker"],
"exclude_labels": ["ignore"]
},
{
"title": "\n## Ray Integration\n\n",
"labels": ["ray", "kuberay", "ray-slurm"],
"exclude_labels": ["ignore"]
},
{
"title": "\n## CLI & Configuration\n\n",
"labels": ["cli", "config", "parsing"],
"exclude_labels": ["ignore"]
},
{
"title": "\n## Experiment & Job Management\n\n",
"labels": ["experiment", "job", "task"],
"exclude_labels": ["ignore"]
},
{
"title": "\n## Packaging & Deployment\n\n",
"labels": ["packaging", "deployment"],
"exclude_labels": ["ignore"]
},
{
"title": "\n## Documentation\n\n",
"labels": ["docs", "documentation"],
"exclude_labels": ["ignore"]
},
{
"title": "\n## CI/CD\n\n",
"labels": ["ci", "github-actions", "workflow"],
"exclude_labels": ["ignore"]
},
{
"title": "\n## Bug Fixes\n\n",
"labels": ["bug", "bugfix", "fix"],
"exclude_labels": ["ignore"]
}
],
"ignore_labels": [
"ignore",
"skip-changelog"
],
"sort": "ASC",
"template": "\n${{CHANGELOG}}\n## Others\n\n${{UNCATEGORIZED}}\n",
"pr_template": "- ${{TITLE}} [#${{NUMBER}}](${{URL}})",
"empty_template": "- No changes in this release",
"label_extractor": [
{
"pattern": "(.*executor.*)|(.*local.*)|(.*slurm.*)|(.*dgxcloud.*)|(.*lepton.*)|(.*skypilot.*)|(.*docker.*)",
"target": "executor",
"flags": "gimu",
"on_property": ["title", "body"]
},
{
"pattern": "(.*ray.*)|(.*kuberay.*)",
"target": "ray",
"flags": "gimu",
"on_property": ["title", "body"]
},
{
"pattern": "(.*cli.*)|(.*command.*)|(.*parse.*)|(.*argument.*)",
"target": "cli",
"flags": "gimu",
"on_property": ["title", "body"]
},
{
"pattern": "(.*experiment.*)|(.*job.*)|(.*task.*)",
"target": "experiment",
"flags": "gimu",
"on_property": ["title", "body"]
},
{
"pattern": "(.*packaging.*)|(.*package.*)|(.*deploy.*)|(.*archive.*)|(.*mount.*)",
"target": "packaging",
"flags": "gimu",
"on_property": ["title", "body"]
},
{
"pattern": "(.*doc.*)|(.*readme.*)|(.*guide.*)|(.*tutorial.*)",
"target": "docs",
"flags": "gimu",
"on_property": ["title", "body"]
},
{
"pattern": "(.*\\bci\\b.*)|(.*github.*)|(.*workflow.*)|(.*action.*)",
"target": "ci",
"flags": "gimu",
"on_property": ["title", "body"]
},
{
"pattern": "(.*\\[bug.*)|(.*\\bfix\\b.*)|(.*bugfix.*)|(.*patch.*)",
"target": "bug",
"flags": "gimu",
"on_property": ["title", "body"]
}
],
"duplicate_filter": {
"pattern": ".+",
"on_property": "title",
"method": "match"
},
"transformers": [
],
"max_tags_to_fetch": 100,
"max_pull_requests": 500,
"max_back_track_time_days": 365,
"exclude_merge_branches": [
],
"tag_resolver": {
"method": "semver"
}
}

Loading