Contributing to NeMo Retriever Library
External contributions will be welcome soon, and they are greatly appreciated. For repository policy, coding standards, and the contribution process, refer to Contributing to NeMo Retriever on GitHub.
The sections below describe how to configure your machine and Git remotes so you can work on documentation (or code) against NVIDIA/NeMo-Retriever using a fork and a separate publishing clone.
Set up your writing and development environment
SSH authentication (one time for each computer)
-
Create an SSH key on your computer. Follow steps 1–3 in Generating a new SSH key and adding it to the ssh-agent. (You only need the key-generation steps; you can skip configuring ssh-agent if your organization prefers not to use it.)
-
Add the public key to GitHub using Adding a new SSH key to your GitHub account.
Commit signing for GitHub (one time for each computer)
-
Create a GPG key following Generating a new GPG key.
-
Tell Git which key to use:
git config --global user.signingkey YOUR_KEY_ID -
Sign every commit by default (recommended if your org requires signed commits):
git config --global commit.gpgsign true -
Optional — sign a single commit:
git commit -S -m "your message"or
git commit --gpg-sign -m "your message" -
Optional — skip signing for one commit:
git commit --no-gpg-sign -m "Unsigned commit"
Set up your writing and development clone (fork)
You do day-to-day work in a clone of your fork, with upstream pointing at NVIDIA’s repo.
-
Get access to https://github.com/NVIDIA/NeMo-Retriever (and permission to fork it, per your organization).
-
Create a fork
- Open the Fork menu, then choose Create a new fork.
- Accept the default repository name (
NeMo-Retriever) unless your org requires another name. - Deselect “Copy the main branch only” if you need other branches locally; you can recover later with
git fetch upstream --tags(see below). - Click Create fork.
-
Clone the fork onto your machine:
- Pick a parent folder, for example
C:\_work\NeMo-Retriever-forkorC:\_repositories\NeMo-Retriever-fork. -
Open a terminal in that folder, then clone:
git clone git@github.com:<your-github-username>/NeMo-Retriever.git -
Enter the repository directory (default folder name is usually
NeMo-Retriever):cd NeMo-Retriever -
Add NVIDIA’s repo as
upstream:git remote add upstream https://github.com/NVIDIA/NeMo-Retriever.git -
If the fork was created with only the default branch, fetch the rest from upstream when needed:
git fetch upstream --tags
- Pick a parent folder, for example
Confirm remotes:
git remote -v
You should see origin pointing at your fork and upstream at NVIDIA/NeMo-Retriever.
Set up your publishing clone (canonical repo)
Some workflows use a second clone of the official repository (not your fork) for publishing or internal automation.
-
Choose a different directory from your fork clone. On Windows, your team may require this clone inside WSL; follow internal guidance.
-
Clone NVIDIA’s repository:
git clone git@github.com:NVIDIA/NeMo-Retriever.git
After setup you typically have two working copies: one from your fork (with upstream configured) and one straight from NVIDIA/NeMo-Retriever.
Make a documentation change
Target branches
Decide where the change lands:
mainonly- A release branch only (for example
release/25.9.0) - Both
mainand a release branch — commit tomainfirst, then cherry-pick the commits onto the release branch.
Keep your fork and local clone in sync with NVIDIA
From your fork clone, on each branch you care about (example uses main; substitute develop or a release branch as needed):
git checkout main
git fetch upstream
git merge upstream/main
git push origin main
Use a space between the remote name and the branch: git push origin main. (git push origin/main is invalid and Git will report an error.)
Repeat checkout / fetch / merge / push for every branch you maintain (main, develop, release branches, and so on).
Related
- Contributing to NeMo Retriever — authoritative contribution guidelines in the repository