chore(licenses): add cut-cross-entropy 25.1.1 license notices - #1243
chore(licenses): add cut-cross-entropy 25.1.1 license notices#1243ironcommit wants to merge 1 commit into
Conversation
d27ef47 to
22b01e4
Compare
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughAdded licensing, provenance, acknowledgment, and license-override records for the transitive ChangesDependency licensing
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
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
📒 Files selected for processing (2)
LICENSES/cut-cross-entropy-25.1.1.txtNOTICE
| 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 |
There was a problem hiding this comment.
🗄️ 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 || trueRepository: 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' NOTICERepository: 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
doneRepository: 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)
PYRepository: 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)
PYRepository: 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
|
Signed-off-by: Ryan S <267728323+ironcommit@users.noreply.github.com>
22b01e4 to
54f7819
Compare
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
LICENSES/cut-cross-entropy-25.1.1.txtcontaining Apple's license text and the upstreamACKNOWLEDGEMENTS.md(PyTorch, Triton, Transformers) that the PyPI wheel omitsNOTICEto document the dependency scope (Linux GPU runtime), source URLs, and point to the new license fileType of Change
Quality Gates
Verification
Signed-off-by:trailerSummary by CodeRabbit
cut-cross-entropycomponent.