Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
d7e100e
[no-relnote] update maintenance branch to release-1.20
cdesiniotis Aug 13, 2026
1f589be
Merge pull request #1983 from cdesiniotis/update-maintenance-branch-1.20
cdesiniotis Aug 13, 2026
b99e6c6
[no-relnote] fix typo in OCI label for base image
cdesiniotis Aug 13, 2026
02ccb62
Merge pull request #1993 from cdesiniotis/fix-typo-in-image-annotation
cdesiniotis Aug 13, 2026
b911681
Remove Go module versions from rendered TPN document
aryangorwade Aug 13, 2026
5a4b627
improve ssh key handling in e2e workflow
luojiyin1987 Dec 19, 2025
ef54448
Merge pull request #1996 from aryangorwade/aryan-remove-go-mod-ver-fr…
tariq1890 Aug 14, 2026
cb5d699
Merge pull request #1552 from luojiyin1987/security/e2e-ssh-key-handling
cdesiniotis Aug 14, 2026
98cf058
Adding missing cdi-hooks in readme
henry118 Aug 14, 2026
3998a9e
fix: match the root at a path component boundary when transforming paths
vyncint Jul 29, 2026
9691915
Try parsing rootfs from container state JSON
henry118 Aug 6, 2026
9b87424
Add unit tests for oci state processing
henry118 Aug 18, 2026
158c6be
build(deps): Bump nvidia/distroless/go in /deployments/container
dependabot[bot] Aug 19, 2026
529561e
modernize code base
henry118 Aug 18, 2026
35e0d88
Ensure backport commits have verified signatures.
henry118 Aug 19, 2026
6876a01
fix: NVIDIA X.Org driver modules mount fixes
ehfd Aug 19, 2026
7a8e25f
fix: Create NVIDIA control device nodes in nvidia-cdi-refresh.service
ehfd Aug 12, 2026
064d6d6
use Masterminds/semver instead of x/mod
tariq1890 Aug 21, 2026
716c8fc
wsl: honor none value for NVIDIA_VISIBLE_DEVICES envvar
henry118 Aug 24, 2026
4c1a5a9
Make update-application-profile hook to ignore read-only fs error
henry118 Aug 26, 2026
458be91
fix: Order container engines after nvidia-cdi-refresh.service
ehfd Aug 22, 2026
ccbb29a
Add governance and code of conduct
JunAr7112 Aug 27, 2026
654c7a6
Update minimum go toolchain to 1.26
henry118 Aug 21, 2026
7f514d0
Fix linting issues after golang update
henry118 Aug 21, 2026
b86cbdb
Bump CI golang version to 1.27
henry118 Aug 21, 2026
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
6 changes: 3 additions & 3 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ updates:

# The release branch(es):
- package-ecosystem: "gomod"
target-branch: release-1.19
target-branch: release-1.20
directories:
- "/"
# We don't update development or test dependencies on release branches
Expand All @@ -82,7 +82,7 @@ updates:
- k8s.io/klog/*

- package-ecosystem: "docker"
target-branch: release-1.19
target-branch: release-1.20
directories:
# CUDA image
- "/deployments/container"
Expand All @@ -102,7 +102,7 @@ updates:
- maintenance

- package-ecosystem: "github-actions"
target-branch: release-1.19
target-branch: release-1.20
directory: "/"
schedule:
interval: "weekly"
Expand Down
37 changes: 36 additions & 1 deletion .github/scripts/backport.js
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,42 @@ for (const targetBranch of branches) {
// Push the backport branch (force to handle updates)
core.info(`Pushing ${backportBranch} to origin`);
execSync(`git push --force-with-lease origin ${backportBranch}`, { stdio: 'inherit' });


// Re-create each new commit through the Git Data API so the resulting chain shows as "Verified"
core.info(`Re-creating commits via the Git Data API to get verified signatures`);
const newCommitShas = execSync(`git log --format=%H ${targetBranch}..${backportBranch}`, { encoding: 'utf-8' })
.trim().split('\n').filter(Boolean).reverse(); // oldest -> newest

const { data: baseRef } = await github.rest.git.getRef({
owner: context.repo.owner,
repo: context.repo.repo,
ref: `heads/${targetBranch}`
});
let parentSha = baseRef.object.sha;

for (const sha of newCommitShas) {
const treeSha = execSync(`git rev-parse ${sha}^{tree}`, { encoding: 'utf-8' }).trim();
const message = execSync(`git log -1 --format=%B ${sha}`, { encoding: 'utf-8' });

const { data: newCommit } = await github.rest.git.createCommit({
owner: context.repo.owner,
repo: context.repo.repo,
message,
tree: treeSha,
parents: [parentSha]
});
parentSha = newCommit.sha;
}

core.info(`Repointing ${backportBranch} at signed commit ${parentSha}`);
await github.rest.git.updateRef({
owner: context.repo.owner,
repo: context.repo.repo,
ref: `heads/${backportBranch}`,
sha: parentSha,
force: true
});

// Check if a PR already exists for this backport branch
const { data: existingPRs } = await github.rest.pulls.list({
owner: context.repo.owner,
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,8 @@ jobs:
E2E_SSH_HOST: ${{ steps.holodeck_public_dns_name.outputs.result }}
run: |
e2e_ssh_key=$(mktemp)
echo "${{ secrets.AWS_SSH_KEY }}" > "$e2e_ssh_key"
trap 'rm -f "$e2e_ssh_key"' EXIT
printf '%s' "${{ secrets.AWS_SSH_KEY }}" > "$e2e_ssh_key"
chmod 600 "$e2e_ssh_key"
export E2E_SSH_KEY="$e2e_ssh_key"

Expand Down
85 changes: 85 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# Contributor Covenant 3.0 Code of Conduct

This Code of Conduct applies to participation in the nvidia-container-toolkit project and community.

## Our Pledge

We pledge to make our community welcoming, safe, and equitable for all.

We are committed to fostering an environment that respects and promotes the dignity, rights, and contributions of all individuals, regardless of characteristics including race, ethnicity, caste, color, age, physical characteristics, neurodiversity, disability, sex or gender, gender identity or expression, sexual orientation, language, philosophy or religion, national or social origin, socio-economic position, level of education, or other status. The same privileges of participation are extended to everyone who participates in good faith and in accordance with this Covenant.

## Encouraged Behaviors

While acknowledging differences in social norms, we all strive to meet our community's expectations for positive behavior. We also understand that our words and actions may be interpreted differently than we intend based on culture, background, or native language.

With these considerations in mind, we agree to behave mindfully toward each other and act in ways that center our shared values, including:

1. Respecting the **purpose of our community**, our activities, and our ways of gathering.
2. Engaging **kindly and honestly** with others.
3. Respecting **different viewpoints** and experiences.
4. **Taking responsibility** for our actions and contributions.
5. Gracefully giving and accepting **constructive feedback**.
6. Committing to **repairing harm** when it occurs.
7. Behaving in other ways that promote and sustain the **well-being of our community**.

## Restricted Behaviors

We agree to restrict the following behaviors in our community. Instances, threats, and promotion of these behaviors are violations of this Code of Conduct.

1. **Harassment.** Violating explicitly expressed boundaries or engaging in unnecessary personal attention after any clear request to stop.
2. **Character attacks.** Making insulting, demeaning, or pejorative comments directed at a community member or group of people.
3. **Stereotyping or discrimination.** Characterizing anyone's personality or behavior on the basis of immutable identities or traits.
4. **Sexualization.** Behaving in a way that would generally be considered inappropriately intimate in the context or purpose of the community.
5. **Violating confidentiality.** Sharing or acting on someone's personal or private information without their permission.
6. **Endangerment.** Causing, encouraging, or threatening violence or other harm toward any person or group.
7. Behaving in other ways that **threaten the well-being** of our community.

### Other Restrictions

1. **Misleading identity.** Impersonating someone else for any reason, or pretending to be someone else to evade enforcement actions.
2. **Failing to credit sources.** Not properly crediting the sources of content you contribute.
3. **Promotional materials.** Sharing marketing or other commercial content in a way that is outside the norms of the community.
4. **Irresponsible communication.** Failing to responsibly present content which includes, links or describes any other restricted behaviors.

## Reporting an Issue

Tensions can occur between community members even when they are trying their best to collaborate. Not every conflict represents a code of conduct violation, and this Code of Conduct reinforces encouraged behaviors and norms that can help avoid conflicts and minimize harm.

When an incident does occur, it is important to report it promptly. To report a possible violation, email [GitHub_Conduct@nvidia.com](mailto:GitHub_Conduct@nvidia.com).

Community Moderators take reports of violations seriously and will make every effort to respond in a timely manner. They will investigate all reports of code of conduct violations, reviewing messages, logs, and recordings, or interviewing witnesses and other participants. Community Moderators will keep investigation and enforcement actions as transparent as possible while prioritizing safety and confidentiality. In order to honor these values, enforcement actions are carried out in private with the involved parties, but communicating to the whole community may be part of a mutually agreed upon resolution.

## Addressing and Repairing Harm

If an investigation by the Community Moderators finds that this Code of Conduct has been violated, the following enforcement ladder may be used to determine how best to repair harm, based on the incident's impact on the individuals involved and the community as a whole. Depending on the severity of a violation, lower rungs on the ladder may be skipped.

1. Warning
1. Event: A violation involving a single incident or series of incidents.
2. Consequence: A private, written warning from the Community Moderators.
3. Repair: Examples of repair include a private written apology, acknowledgement of responsibility, and seeking clarification on expectations.
2. Temporarily Limited Activities
1. Event: A repeated incidence of a violation that previously resulted in a warning, or the first incidence of a more serious violation.
2. Consequence: A private, written warning with a time-limited cooldown period designed to underscore the seriousness of the situation and give the community members involved time to process the incident. The cooldown period may be limited to particular communication channels or interactions with particular community members.
3. Repair: Examples of repair may include making an apology, using the cooldown period to reflect on actions and impact, and being thoughtful about re-entering community spaces after the period is over.
3. Temporary Suspension
1. Event: A pattern of repeated violation which the Community Moderators have tried to address with warnings, or a single serious violation.
2. Consequence: A private written warning with conditions for return from suspension. In general, temporary suspensions give the person being suspended time to reflect upon their behavior and possible corrective actions.
3. Repair: Examples of repair include respecting the spirit of the suspension, meeting the specified conditions for return, and being thoughtful about how to reintegrate with the community when the suspension is lifted.
4. Permanent Ban
1. Event: A pattern of repeated code of conduct violations that other steps on the ladder have failed to resolve, or a violation so serious that the Community Moderators determine there is no way to keep the community safe with this person as a member.
2. Consequence: Access to all community spaces, tools, and communication channels is removed. In general, permanent bans should be rarely used, should have strong reasoning behind them, and should only be resorted to if working through other remedies has failed to change the behavior.
3. Repair: There is no possible repair in cases of this severity.

This enforcement ladder is intended as a guideline. It does not limit the ability of Community Managers to use their discretion and judgment, in keeping with the best interests of our community.

## Scope

This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public or other spaces. Examples of representing our community include using an official email address, posting via an official social media account, or acting as an appointed representative at an online or offline event.

## Attribution

This Code of Conduct is adapted from the Contributor Covenant, version 3.0, permanently available at [https://www.contributor-covenant.org/version/3/0/](https://www.contributor-covenant.org/version/3/0/).

Contributor Covenant is stewarded by the Organization for Ethical Source and licensed under CC BY-SA 4.0. To view a copy of this license, visit [https://creativecommons.org/licenses/by-sa/4.0/](https://creativecommons.org/licenses/by-sa/4.0/).

For answers to common questions about Contributor Covenant, see the [FAQ](https://www.contributor-covenant.org/faq). Translations are provided at the [translations page](https://www.contributor-covenant.org/translations). Additional enforcement and community guideline resources can be found on the [resources page](https://www.contributor-covenant.org/resources). The enforcement ladder was inspired by the work of [Mozilla's code of conduct team](https://github.com/mozilla/inclusion).
2 changes: 2 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
Want to hack on the NVIDIA Container Toolkit Project? Awesome!
We only require you to sign your work, the below section describes this!

All contributions must adhere to the [Code of Conduct](CODE_OF_CONDUCT.md).

## Sign your work

The sign-off is a simple line at the end of the explanation for the patch. Your
Expand Down
78 changes: 78 additions & 0 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Governance for nvidia-container-toolkit

## Scope

This document describes the governance model for the nvidia-container-toolkit project,
including roles, responsibilities, and decision making processes.

## Roles and responsibilities

### Maintainers

Maintainers are the individuals responsible for the long-term health and direction
of the project. They have the final say on key decisions but are expected to
collaborate with the community and seek consensus when possible.

- **Responsibilities**:
- Oversee the technical direction of the project.
- Make final decisions on contributions and community matters.
- Ensure code quality and maintainability.
- Manage project releases and documentation.
- Resolve conflicts and mediate disputes within the community.
- Actively participate in community discussions.

### Contributors

Contributors are individuals who actively participate in the project by submitting
code, bug reports, documentation, or other contributions. Contributors may be
individuals, teams, or organizations.

- **Responsibilities**:
- Follow the project’s guidelines for contributions.
- Engage in discussions and provide feedback on project decisions.
- Respect the project's code of conduct.
- Strive for high-quality contributions that adhere to the project's goals.

### Community

The community consists of all individuals interested in the project, including end users,
contributors, and other stakeholders. The community is encouraged to contribute ideas,
report issues, and engage in discussions.

- **Responsibilities**:
- Provide feedback on project decisions and contribute to discussions.
- Participate in community events and initiatives.
- Respect the project’s code of conduct.

## Decision Making

### Routine Decisions

Routine decisions — bug fixes, minor features, documentation, dependency updates — proceed
via a PR. At least one maintainer approval is required for technical acceptance; a maintainer
then merges after verifying project requirements are met.

### Core Decisions

Core decisions that involve significant changes to the project require a prior proposal before
implementation work begins. A change is significant if it involves:

- Architectural changes
- Major new features or subsystems
- Breaking changes to APIs or behavior
- Changes to the contribution model, release cadence, or this governance document

A proposal is a GitHub issue that explains what is changing, why, what alternatives were
considered, and the impact on existing contributors and users.

Core decisions are made by the maintainers. For contributors who want to propose and contribute
a major change, the process is as follows:

- A proposal for a major change will be submitted as an issue.
- The maintainers will discuss the proposal and seek feedback from the community.
- Once the discussion is concluded, maintainers will make the final decision.

## Changes to Governance

A change to this document follows the process for core decisions defined above. Maintainers make
the final decision on changes to the governance model.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,4 @@ The [user guide](https://docs.nvidia.com/datacenter/cloud-native/container-toolk

* Please let us know by [filing a new issue](https://github.com/NVIDIA/nvidia-container-toolkit/issues/new)
* You can contribute by creating a [pull request](https://github.com/NVIDIA/nvidia-container-toolkit/compare) to our public GitHub repository
* Contributions must adhere to the [Code of Conduct](CODE_OF_CONDUCT.md).
Loading