Skip to content

Relicense to Apache-2.0 (dual-license; external-contributor files remain MIT) - #408

Draft
Anerudhan wants to merge 1 commit into
NVIDIA:developfrom
Anerudhan:relicense-apache-2.0
Draft

Relicense to Apache-2.0 (dual-license; external-contributor files remain MIT)#408
Anerudhan wants to merge 1 commit into
NVIDIA:developfrom
Anerudhan:relicense-apache-2.0

Conversation

@Anerudhan

@Anerudhan Anerudhan commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator

Summary

Relicenses NVIDIA-authored code in cudnn-frontend from MIT to the Apache License 2.0, using the exact NVIDIA OSS SPDX header (Confluence template). Files that carry non-NVIDIA contributions remain under MIT, so no third party's code is relicensed without consent. Rebased onto current develop (4f75b1f).

Also see #431

License assignment

Every source file carries an SPDX SPDX-License-Identifier: tag.

License Files Which
Apache-2.0 515 Authored solely by NVIDIA
MIT (consent-pending) 67 Contain surviving lines from external contributors in the sign-off list, determined by git blame on develop
MIT (third-party-derived) 29 FlashAttention / QuACK-derived files carrying external authors' copyright

Per-file mapping — including the commit that introduced each file's surviving external line(s) — is in LICENSING.md. Each consent-pending file moves to Apache-2.0 by flipping its one SPDX tag once the contributor consents.

How the split is computed

Blame-based, not touch-based. A file stays MIT only if an external contributor's lines survive in current `develop`. Files an external contributor merely touched but whose lines were fully overwritten by NVIDIA (e.g. `README.md`) go to Apache-2.0.

Licensing files

  • LICENSE.txt — Apache-2.0 (primary) with NVIDIA copyright line
  • LICENSE-MIT.txt — MIT text for the MIT-licensed subset
  • LICENSING.md — dual-license manifest: every MIT file, its external contributor, and the introducing commit
  • THIRD_PARTY_LICENSES.txt — nlohmann/json, FlashAttention, CUTLASS, QuACK, labml.ai, dlpack, pybind11, Catch2
  • NOTICE, pyproject.toml (`license = "Apache-2.0 AND MIT"`), README.md

Verification

  • Every source file has exactly one SPDX tag; none left unlabeled
  • All Python compiles (`py_compile`); `git diff -U0` confirms every source change is comment/header-only — compile-neutral by construction

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 4330baa4-b341-4162-972f-96afcc845de8

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@Anerudhan Anerudhan mentioned this pull request Jul 23, 2026
18 tasks
@Anerudhan
Anerudhan force-pushed the relicense-apache-2.0 branch from 158ed02 to 9f5a3cb Compare July 23, 2026 19:18
@Anerudhan Anerudhan changed the title Relicense from MIT to Apache 2.0 Relicense to Apache-2.0 (dual-license; external-contributor files remain MIT) Jul 23, 2026
…y MIT)

Rebased onto current develop (4f75b1f). Relicenses NVIDIA-authored code from
MIT to Apache-2.0 using the exact NVIDIA OSS SPDX header, while keeping under
MIT every file that carries non-NVIDIA contributions, so no third party's code
is relicensed without consent.

License assignment (per-file SPDX tag on every source file):
- Apache-2.0: 515 files authored solely by NVIDIA (incl. the new Rubin/BF16
  grouped GEMM kernels and gemm_proj_rope_mxfp8 variants).
- MIT (67): files with surviving lines from external contributors in the
  issue NVIDIA#431 sign-off list, determined by git blame on develop.
- MIT (29): FlashAttention/QuACK-derived files carrying external authors'
  copyright; pinned to MIT so the Apache-2.0 root does not absorb them.

New since the previous revision of this PR (develop 3a9ed3f -> 4f75b1f):
- 26 new files headered; 63 modified files re-analyzed.
- Two new external contributors, adding 4 files to the MIT set:
  DrDirk (NVIDIA#423) -> conv_dgrad.h, conv_fprop.h, conv_wgrad.h
  Hongxiao (NVIDIA#410) -> test/python/fe_api/dsa/test_DSA_indexer_top_k.py
  Both must be added to the issue NVIDIA#431 consent list.
- rmhaskar (NVIDIA#432) verified NVIDIA-affiliated; Chase Block now commits from an
  NVIDIA address. Neither adds MIT files.
- PR NVIDIA#434 removed the Jerry Chen personal copyright from bwd_barriers.py;
  6 other DSA files still carry it and remain Category 2.

Licensing files: LICENSE.txt (Apache-2.0), LICENSE-MIT.txt, LICENSING.md
(dual-license manifest with per-file introducing-commit links),
THIRD_PARTY_LICENSES.txt, NOTICE, pyproject ('Apache-2.0 AND MIT'), README.

Every change is comment/header-only; all Python compiles.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Anerudhan
Anerudhan force-pushed the relicense-apache-2.0 branch from 315c3f5 to f7f0907 Compare July 29, 2026 23:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant