Fix null-to-None conversion and skip macOS llama.cpp override

- Handle JSON null values correctly in manifest parsing: convert to
  empty string instead of literal "None" which could be treated as a
  valid value downstream.

- Skip llama_cpp_source manifest override on macOS since
  unslothai/llama.cpp does not publish macOS binaries. macOS must
  always use ggml-org/llama.cpp for prebuilt assets.
This commit is contained in:
Daniel Han 2026-04-03 14:50:08 +00:00
commit 3ccca16aac

View file

@ -52,18 +52,21 @@ try:
m = json.load(sys.stdin)
except Exception:
sys.exit(0)
def s(v, default=''):
'''Convert to string, treating None/null as empty.'''
return str(v) if v is not None else default
a = m.get('announcement') or {}
for k, v in [
('MANIFEST_UNSLOTH_SOURCE', m.get('unsloth_source', '')),
('MANIFEST_UNSLOTH_GITHUB_REF', m.get('unsloth_github_ref', 'main')),
('MANIFEST_LLAMA_CPP_SOURCE', m.get('llama_cpp_source', '')),
('MANIFEST_LLAMA_CPP_TAG', m.get('llama_cpp_tag', '')),
('MANIFEST_CRITICAL_TIME', m.get('CRITICAL_TIME', '') or ''),
('MANIFEST_ANNOUNCEMENT_MESSAGE', a.get('message', '')),
('MANIFEST_ANNOUNCEMENT_BADGE', a.get('badge', '')),
('MANIFEST_ANNOUNCEMENT_URL', a.get('url', '')),
('MANIFEST_UNSLOTH_SOURCE', s(m.get('unsloth_source'))),
('MANIFEST_UNSLOTH_GITHUB_REF', s(m.get('unsloth_github_ref'), 'main')),
('MANIFEST_LLAMA_CPP_SOURCE', s(m.get('llama_cpp_source'))),
('MANIFEST_LLAMA_CPP_TAG', s(m.get('llama_cpp_tag'))),
('MANIFEST_CRITICAL_TIME', s(m.get('CRITICAL_TIME'))),
('MANIFEST_ANNOUNCEMENT_MESSAGE', s(a.get('message'))),
('MANIFEST_ANNOUNCEMENT_BADGE', s(a.get('badge'))),
('MANIFEST_ANNOUNCEMENT_URL', s(a.get('url'))),
]:
print(f'{k}={shlex.quote(str(v))}')
print(f'{k}={shlex.quote(v)}')
" 2>/dev/null)" || true
substep "manifest: source=${MANIFEST_UNSLOTH_SOURCE:-pypi} llama=${MANIFEST_LLAMA_CPP_SOURCE:-default}@${MANIFEST_LLAMA_CPP_TAG:-default}"
}
@ -590,8 +593,9 @@ else
_HELPER_RELEASE_REPO="unslothai/llama.cpp"
fi
# Apply manifest overrides for llama.cpp (only if user hasn't set env vars)
if [ -n "$MANIFEST_LLAMA_CPP_SOURCE" ] && [ -z "${UNSLOTH_LLAMA_PUBLISHED_REPO:-}" ]; then
# Apply manifest overrides for llama.cpp (only if user hasn't set env vars).
# Skip on macOS -- macOS must use ggml-org (unslothai/llama.cpp has no macOS assets).
if [ -n "$MANIFEST_LLAMA_CPP_SOURCE" ] && [ -z "${UNSLOTH_LLAMA_PUBLISHED_REPO:-}" ] && [ "$_HOST_SYSTEM" != "Darwin" ]; then
if [ "$MANIFEST_LLAMA_CPP_SOURCE" = "ggml-org" ]; then
_HELPER_RELEASE_REPO="ggml-org/llama.cpp"
elif [ "$MANIFEST_LLAMA_CPP_SOURCE" = "unslothai" ]; then