mirror of
https://github.com/Mesh-LLM/mesh-llm.git
synced 2026-08-08 22:23:19 -04:00
123 lines
3.4 KiB
Bash
Executable file
123 lines
3.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
OLD_SHA="${1:?old upstream sha required}"
|
|
NEW_SHA="${2:?new upstream sha required}"
|
|
LLAMA_WORKDIR="${3:-${LLAMA_WORKDIR:-$ROOT/.deps/llama.cpp}}"
|
|
|
|
if [[ ! -d "$LLAMA_WORKDIR/.git" ]]; then
|
|
echo "llama checkout not found: $LLAMA_WORKDIR" >&2
|
|
exit 1
|
|
fi
|
|
|
|
git -C "$LLAMA_WORKDIR" fetch origin master --tags >/dev/null 2>&1 || true
|
|
|
|
CHANGED_FILES="$(git -C "$LLAMA_WORKDIR" diff --name-only "$OLD_SHA..$NEW_SHA" || true)"
|
|
|
|
commit_base_url() {
|
|
local remote_url
|
|
remote_url="$(git -C "$LLAMA_WORKDIR" remote get-url origin 2>/dev/null || true)"
|
|
|
|
case "$remote_url" in
|
|
git@github.com:*)
|
|
remote_url="https://github.com/${remote_url#git@github.com:}"
|
|
;;
|
|
https://github.com/*)
|
|
;;
|
|
*)
|
|
echo "https://github.com/ggml-org/llama.cpp/commit"
|
|
return
|
|
;;
|
|
esac
|
|
|
|
remote_url="${remote_url%.git}"
|
|
echo "$remote_url/commit"
|
|
}
|
|
|
|
commit_list() {
|
|
local base_url="$1"
|
|
git -C "$LLAMA_WORKDIR" log --reverse --format='%H%x09%h%x09%s' "$OLD_SHA..$NEW_SHA" |
|
|
while IFS=$'\t' read -r full_sha short_sha subject; do
|
|
printf -- '- [%s](%s/%s) %s\n' "$short_sha" "$base_url" "$full_sha" "$subject"
|
|
done
|
|
}
|
|
|
|
area_count() {
|
|
local pattern="$1"
|
|
awk -v pattern="$pattern" 'NF && $0 ~ pattern { count++ } END { print count + 0 }' <<< "$CHANGED_FILES"
|
|
}
|
|
|
|
runtime_count="$(area_count '^(src/llama|include/llama|src/models/)')"
|
|
gguf_count="$(area_count '(^gguf|gguf|ggml.*gguf|src/llama-model-loader)')"
|
|
metal_count="$(area_count '(^ggml/src/ggml-metal|metal)')"
|
|
cuda_count="$(area_count '(^ggml/src/ggml-cuda|cuda|CUDA)')"
|
|
tokenizer_count="$(area_count '(vocab|token|tokenizer|unicode)')"
|
|
build_count="$(area_count '(^CMakeLists.txt|^cmake/|CMake|Makefile|scripts/)')"
|
|
test_count="$(area_count '(^tests/|^examples/)')"
|
|
upstream_commit_base_url="$(commit_base_url)"
|
|
upstream_commit_list="$(commit_list "$upstream_commit_base_url")"
|
|
if [[ -z "$upstream_commit_list" ]]; then
|
|
upstream_commit_list="_No upstream commits found._"
|
|
fi
|
|
if [[ -n "${SKIPPY_CORRECTNESS_MODEL:-}" ]]; then
|
|
correctness_checked="x"
|
|
else
|
|
correctness_checked=" "
|
|
fi
|
|
case "${SKIPPY_CI_SMOKE:-}" in
|
|
1 | true | TRUE | yes | YES | on | ON)
|
|
smoke_checked="x"
|
|
;;
|
|
*)
|
|
smoke_checked=" "
|
|
;;
|
|
esac
|
|
|
|
cat <<EOF
|
|
## llama.cpp Upstream Pin Update
|
|
|
|
Previous pin: \`$OLD_SHA\`
|
|
New pin: \`$NEW_SHA\`
|
|
|
|
## Upstream Summary
|
|
|
|
Generated from:
|
|
|
|
\`\`\`bash
|
|
git log --oneline $OLD_SHA..$NEW_SHA
|
|
git diff --stat $OLD_SHA..$NEW_SHA
|
|
\`\`\`
|
|
|
|
### Notable Areas
|
|
|
|
- Runtime / inference: $runtime_count changed files
|
|
- GGUF / model loading: $gguf_count changed files
|
|
- Metal backend: $metal_count changed files
|
|
- CUDA backend: $cuda_count changed files
|
|
- Tokenizer / vocab: $tokenizer_count changed files
|
|
- Build / CMake / scripts: $build_count changed files
|
|
- Tests / examples: $test_count changed files
|
|
|
|
## Diffstat
|
|
|
|
\`\`\`text
|
|
$(git -C "$LLAMA_WORKDIR" diff --stat "$OLD_SHA..$NEW_SHA")
|
|
\`\`\`
|
|
|
|
## Upstream Commits
|
|
|
|
$upstream_commit_list
|
|
|
|
## Validation
|
|
|
|
- [x] Applied Mesh-LLM llama.cpp ABI patch stack
|
|
- [x] Built patched llama.cpp stage ABI
|
|
- [x] Built imported skippy Rust crates
|
|
- [x] Ran targeted Rust checks/tests
|
|
- [$smoke_checked] Ran \`scripts/skippy-ci-smoke.sh\`
|
|
- [$correctness_checked] Ran additional \`SKIPPY_CORRECTNESS_MODEL\` checks
|
|
|
|
The skippy CI smoke downloads small dense and recurrent GGUF fixtures and
|
|
checks staged correctness, OpenAI serving, and prompt cache reuse.
|
|
EOF
|