Skip to content
Merged
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
41 changes: 40 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,33 @@

Thank you for your interest in contributing to NVIDIA NemoClaw. This guide covers how to set up your development environment, run tests, and submit changes.

All participants are expected to follow our [Code of Conduct](CODE_OF_CONDUCT.md).

## Types of Contributions

We welcome many types of contributions:

| Contribution type | Description |
|---|---|
| **Bug reports** | Confirmed bugs with reproduction steps — see [Before You Open an Issue](#before-you-open-an-issue) |
| **Documentation fixes** | Typos, clarifications, and missing information in `docs/` |
| **Tests** | New or improved test coverage in `test/` or `nemoclaw/test/` |
| **Feature proposals** | Design-first proposals opened as issues before any implementation |
| **Integrations** | Support for new inference backends, providers, or tools |
| **Examples** | Worked usage examples added under `docs/` |

Security vulnerabilities must follow [SECURITY.md](SECURITY.md) — **not** GitHub issues.

## Where to Start

New contributors should start with issues labeled [`good first issue`](https://github.com/NVIDIA/NemoClaw/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). These are scoped tasks with clear acceptance criteria that do not require deep project knowledge.

Before starting larger work:

- Search open issues and pull requests to avoid duplicates.
- Open an issue to discuss your approach before writing code for significant changes.
- For questions, open a [GitHub Discussion](https://github.com/NVIDIA/NemoClaw/discussions) or comment on a related issue.

## Before You Open an Issue

Open an issue when you encounter one of the following situations.
Expand Down Expand Up @@ -166,7 +193,19 @@ For user-skill definitions, docs-to-skills validation, release-prep regeneration

## Pull Requests

We welcome contributions. Every PR requires maintainer review. To keep the review queue healthy, limit the number of open PRs you have at any time to fewer than 10.
We welcome contributions. Every PR requires maintainer review before merge. To keep the review queue healthy, limit the number of open PRs you have at any time to fewer than 10.

Maintainers review all incoming PRs on a best-effort basis. Straightforward fixes typically receive initial feedback sooner than large or complex changes. If a PR has not received a response after two weeks, a polite comment asking for an update is welcome.

### DCO Sign-Off

This project requires a [Developer Certificate of Origin (DCO)](https://developercertificate.org/) sign-off on every commit. Add the following trailer to each commit message:

```text
Signed-off-by: Your Name <your.email@example.com>
```

Use `git commit -s` to add the sign-off automatically. CI will reject commits that are missing it.

> [!WARNING]
> Accounts that repeatedly exceed this limit or submit automated bulk PRs may have their PRs closed or their access restricted.
Expand Down
7 changes: 5 additions & 2 deletions test/e2e-scenario/framework-tests/e2e-lib-helpers.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -751,13 +751,16 @@ describe("Phase 1.C fixtures", () => {
});

it("older_base_image_should_emit_dockerfile_pointing_at_tagged_base", () => {
const r = runBash(`
const r = runBash(
`
set -euo pipefail
. "${FIXTURES}/older-base-image.sh"
df="$(older_base_image_prepare v0.0.1-test)"
echo "DF=$df"
head -n1 "$df"
`);
`,
{ E2E_DRY_RUN: "1" },
);
expect(r.status, r.stderr).toBe(0);
expect(r.stdout).toMatch(/^FROM .*:v0\.0\.1-test/m);
});
Expand Down
Loading