Skip to content

chore(licenses): add cut-cross-entropy 25.1.1 license notices - #1243

Open
ironcommit wants to merge 1 commit into
mainfrom
add-cut-cross-entropy-notices/rsadler
Open

chore(licenses): add cut-cross-entropy 25.1.1 license notices#1243
ironcommit wants to merge 1 commit into
mainfrom
add-cut-cross-entropy-notices/rsadler

Conversation

@ironcommit

@ironcommit ironcommit commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds license and attribution notices for the cut-cross-entropy 25.1.1 transitive dependency (via Unsloth) to comply with Apple's upstream license requirements.

Changes

  • Added LICENSES/cut-cross-entropy-25.1.1.txt containing Apple's license text and the upstream ACKNOWLEDGEMENTS.md (PyTorch, Triton, Transformers) that the PyPI wheel omits
  • Updated NOTICE to document the dependency scope (Linux GPU runtime), source URLs, and point to the new license file

Type of Change

  • Contributor tooling or automation

Quality Gates

  • Tests not applicable — justification: license/notice files only, no code changes
  • Documentation not applicable — justification: legal notices, not user-facing docs

Verification

  • Pull request title follows the repository's Conventional Commit format
  • Every commit includes an appropriate Signed-off-by: trailer
  • No secrets, API keys, or credentials are included
  • Tests not applicable (license files only)

Summary by CodeRabbit

  • Documentation
    • Added licensing documentation and acknowledgements for the cut-cross-entropy component.
    • Added a notice describing its inclusion, upstream origins, and associated third-party license terms.
    • Updated license references to point to the included Apple custom license text.

@ironcommit
ironcommit requested review from a team as code owners August 11, 2026 21:46
@github-actions github-actions Bot added the chore label Aug 11, 2026
@ironcommit
ironcommit force-pushed the add-cut-cross-entropy-notices/rsadler branch from d27ef47 to 22b01e4 Compare August 11, 2026 21:47
@ironcommit ironcommit changed the title chore: update license notices chore(licenses): add cut-cross-entropy 25.1.1 license notices Aug 11, 2026
@ironcommit
ironcommit enabled auto-merge August 11, 2026 21:49
@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 0d09eded-105a-4adb-b8d5-8bf36f26c323

📥 Commits

Reviewing files that changed from the base of the PR and between d27ef47 and 54f7819.

📒 Files selected for processing (3)
  • LICENSES/cut-cross-entropy-25.1.1.txt
  • NOTICE
  • tools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/license/overrides.yaml
🚧 Files skipped from review as they are similar to previous changes (2)
  • NOTICE
  • LICENSES/cut-cross-entropy-25.1.1.txt

📝 Walkthrough

Walkthrough

Added licensing, provenance, acknowledgment, and license-override records for the transitive cut-cross-entropy 25.1.1 dependency.

Changes

Dependency licensing

Layer / File(s) Summary
License and notice records
LICENSES/cut-cross-entropy-25.1.1.txt, NOTICE
Added the complete license text, upstream acknowledgments, provenance details, and dependency scope.
License override classification
tools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/license/overrides.yaml
Changed the override from APSL-2.0 to LicenseRef-Apple-Custom and referenced the vendored license records.

Suggested reviewers: anastasia-nesterenko, mckornfield, a2bondar

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the added license notices for cut-cross-entropy 25.1.1.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch add-cut-cross-entropy-notices/rsadler

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@NOTICE`:
- Around line 71-77: Align the cut-cross-entropy metadata across overrides.yaml
and NOTICE: obtain and apply the approved classification instead of APSL-2.0,
add the matching License entry referencing
LICENSES/cut-cross-entropy-25.1.1.txt, and document any verified dual-license
basis.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 4c5b874e-c107-4af9-90a0-389814e6265f

📥 Commits

Reviewing files that changed from the base of the PR and between d5e9e4e and d27ef47.

📒 Files selected for processing (2)
  • LICENSES/cut-cross-entropy-25.1.1.txt
  • NOTICE

Comment thread NOTICE
Comment on lines +71 to +77
cut-cross-entropy 25.1.1
Scope: Transitive Python dependency of Unsloth components distributed in
Linux GPU runtime environments.
Home: https://github.com/unslothai/cut-cross-entropy
Upstream forked from: https://github.com/apple/ml-cross-entropy
License text and acknowledgements:
LICENSES/cut-cross-entropy-25.1.1.txt

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -eu
printf '%s\n' '--- tracked candidates ---'
git ls-files | grep -E '(^|/)(NOTICE|overrides\.yaml|LICENSES/)' | head -200
printf '%s\n' '--- relevant references ---'
rg -n -C 4 'cut-cross-entropy|APSL|License:' NOTICE overrides.yaml LICENSES 2>/dev/null || true

Repository: NVIDIA-NeMo/nemo-platform

Length of output: 5521


🏁 Script executed:

#!/bin/bash
set -eu
printf '%s\n' '--- overrides.yaml relevant section ---'
rg -n -C 12 'cut-cross-entropy|APSL-2\.0' tools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/license/overrides.yaml
printf '%s\n' '--- copied license ---'
cat -n LICENSES/cut-cross-entropy-25.1.1.txt
printf '%s\n' '--- NOTICE surrounding section ---'
sed -n '60,88p' NOTICE

Repository: NVIDIA-NeMo/nemo-platform

Length of output: 26038


🏁 Script executed:

#!/bin/bash
set -eu
printf '%s\n' '--- all package references ---'
rg -n -C 5 'cut[-_]cross[-_]entropy|cut.cross.entropy|APSL-2\.0' . \
  -g '!LICENSES/cut-cross-entropy-25.1.1.txt' \
  -g '!NOTICE' | head -200
printf '%s\n' '--- license override schema and consumers ---'
rg -n -C 8 'overrides\.yaml|license.*override|license_overrides|APSL-2\.0' tools/nemo-platform-sdk-tools/src tools/nemo-platform-sdk-tools 2>/dev/null | head -240
printf '%s\n' '--- upstream license metadata ---'
curl -L --fail --silent --show-error https://raw.githubusercontent.com/unslothai/cut-cross-entropy/main/LICENSE | sed -n '1,80p'
printf '%s\n' '--- upstream package files at v25.1.1 ---'
for f in pyproject.toml setup.py setup.cfg; do
  url="https://raw.githubusercontent.com/unslothai/cut-cross-entropy/v25.1.1/$f"
  if curl -L --fail --silent --show-error "$url" >/tmp/cce-file 2>/dev/null; then
    echo "[$f]"; sed -n '1,140p' /tmp/cce-file
  fi
done

Repository: NVIDIA-NeMo/nemo-platform

Length of output: 36892


🏁 Script executed:

#!/bin/bash
set -eu
python3 - <<'PY'
import json, urllib.request
data = json.load(urllib.request.urlopen(
    "https://pypi.org/pypi/cut-cross-entropy/25.1.1/json"
))
info = data["info"]
print("license_field:", repr(info.get("license")))
print("classifiers:")
for value in info.get("classifiers", []):
    if "License" in value:
        print(value)
print("project_urls:", info.get("project_urls"))
PY
printf '%s\n' '--- wheel metadata ---'
curl -L --fail --silent --show-error \
  https://files.pythonhosted.org/packages/df/5f/62fdb048f84d19e2123b6bbd722fe09c8c79b4964c50094d1e979db808e2/cut_cross_entropy-25.1.1-py3-none-any.whl \
  -o /tmp/cut-cross-entropy-25.1.1.whl
python3 - <<'PY'
import zipfile
p="/tmp/cut-cross-entropy-25.1.1.whl"
with zipfile.ZipFile(p) as z:
    names=[n for n in z.namelist() if n.endswith(".dist-info/METADATA")]
    print("metadata_files:", names)
    text=z.read(names[0]).decode()
    for line in text.splitlines():
        if line.startswith(("License:", "Classifier: License", "Project-URL:")):
            print(line)
PY

Repository: NVIDIA-NeMo/nemo-platform

Length of output: 2449


🏁 Script executed:

#!/bin/bash
set -eu
printf '%s\n' '--- PyPI metadata ---'
curl -k -L --fail --silent --show-error \
  https://pypi.org/pypi/cut-cross-entropy/25.1.1/json |
python3 -c '
import json,sys
info=json.load(sys.stdin)["info"]
print("license_field:", repr(info.get("license")))
for x in info.get("classifiers", []):
    if "License" in x:
        print(x)
for x in info.get("project_urls") or {}.items():
    print("project_url:", x)
'
printf '%s\n' '--- wheel metadata ---'
curl -k -L --fail --silent --show-error \
  https://files.pythonhosted.org/packages/df/5f/62fdb048f84d19e2123b6bbd722fe09c8c79b4964c50094d1e979db808e2/cut_cross_entropy-25.1.1-py3-none-any.whl \
  -o /tmp/cut-cross-entropy-25.1.1.whl
python3 - <<'PY'
import zipfile
with zipfile.ZipFile("/tmp/cut-cross-entropy-25.1.1.whl") as z:
    metadata = next(n for n in z.namelist() if n.endswith(".dist-info/METADATA"))
    print("metadata_file:", metadata)
    for line in z.read(metadata).decode().splitlines():
        if line.startswith(("License:", "Classifier: License", "Project-URL:")):
            print(line)
PY

Repository: NVIDIA-NeMo/nemo-platform

Length of output: 287


Align cut-cross-entropy license metadata.

overrides.yaml classifies cut-cross-entropy as APSL-2.0, but its published license is the custom Apple software license reproduced in LICENSES/cut-cross-entropy-25.1.1.txt. Obtain the approved classification, update the override, and add the corresponding License: entry to NOTICE. Document any verified dual-license basis.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@NOTICE` around lines 71 - 77, Align the cut-cross-entropy metadata across
overrides.yaml and NOTICE: obtain and apply the approved classification instead
of APSL-2.0, add the matching License entry referencing
LICENSES/cut-cross-entropy-25.1.1.txt, and document any verified dual-license
basis.

Source: MCP tools

@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor
Suite Lines Covered Line Rate Branch Rate
Unit Tests 32016/40717 78.6% 63.5%
Integration Tests 18566/38643 48.0% 20.8%

Signed-off-by: Ryan S <267728323+ironcommit@users.noreply.github.com>
@ironcommit
ironcommit force-pushed the add-cut-cross-entropy-notices/rsadler branch from 22b01e4 to 54f7819 Compare August 12, 2026 16:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants