Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
61 changes: 61 additions & 0 deletions .claude/skills/contributing/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
name: contributing
description: Contribution conventions for NeMo-RL. Covers PR title format, commit sign-off, and CI triggering. Auto-invoked during code review.
---

# Contributing Conventions

## PR Title Format

PR titles **must** follow the [Conventional Commits](https://www.conventionalcommits.org/) spec. This is enforced by the `semantic-pull-request` CI check.

```
<type>[optional scope]: <description>
```

Allowed types:

| Type | When to use |
|------|-------------|
| `feat` | New feature |
| `fix` | Bug fix |
| `ci` | CI/CD changes |
| `docs` | Documentation only |
| `refactor` | Code restructuring without behaviour change |
| `test` | Adding or fixing tests |
| `chore` | Maintenance (deps, configs, tooling) |
| `perf` | Performance improvement |
| `build` | Build system changes |
| `revert` | Reverts a previous commit |

**Do:**
```
ci: retry apt-get installs to handle mirror sync failures
feat(grpo): add dataclass config defaults infrastructure
fix: preserve RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICES
```

**Don't:**
```
[ci] fix: retry apt-get installs ← area tags are not part of this convention
Update stuff
Fix bug
```

## Commit Sign-off

All commits must be signed off with `-s`:

```bash
git commit -s -m "fix: correct reward normalization"
```

## CI Triggering

After pushing, trigger CI with:

```
/ok to test <full-commit-sha>
```

Use `git rev-parse HEAD` (not the short form) to get the full SHA.
7 changes: 5 additions & 2 deletions .github/actions/test-template/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,11 @@ runs:
shell: bash -x -e -u -o pipefail {0}
if: ${{ contains(inputs.runner, 'gcp') }}
run: |
apt-get update
apt-get install -y uuid-runtime
for i in 1 2 3; do
apt-get update && apt-get install -y uuid-runtime && break
echo "Attempt $i failed, retrying in 10s..."
sleep 10
done

- name: Docker system cleanup
shell: bash
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/cicd-main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -459,10 +459,10 @@ jobs:
needs.lint-check.result == 'success' &&
(needs.pr-branch-up-to-date-check.result == 'success' || needs.pr-branch-up-to-date-check.result == 'skipped') &&
(
needs.pre-flight.outputs.test_level != 'none' &&
needs.sphinx-build.result == 'success' &&
(needs.build-container.result == 'success' || needs.build-container.result == 'skipped') &&
needs.pre-flight.outputs.test_level == 'none' ||
(
needs.sphinx-build.result == 'success' &&
(needs.build-container.result == 'success' || needs.build-container.result == 'skipped') &&
(
(needs.cicd-doc-tests.result == 'success' || needs.cicd-doc-tests.result == 'skipped') &&
(needs.cicd-unit-tests.result == 'skipped' || needs.cicd-unit-tests.result == 'success') &&
Expand Down
Loading