Files
deusdata--codebase-memory-mcp/scripts/clone-bench-repos.sh
T
wehub-resource-sync 41cb1c0170
OpenSSF Scorecard / scorecard (push) Failing after 0s
DCO / dco (push) Failing after 0s
CodeQL SAST / analyze (push) Failing after 1s
Deploy Pages / deploy (push) Failing after 1s
chore: import upstream snapshot with attribution
2026-07-13 12:28:05 +08:00

111 lines
5.9 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
# Clone benchmark repositories for MCP vs Explorer quality comparison.
# Uses shallow clones (--depth 1) to minimize disk usage.
# Shared repos are cloned once and symlinked for secondary languages.
BENCH_DIR="${1:-/tmp/bench}"
clone() {
local lang="$1" repo="$2" subdir="${3:-}"
local dest="$BENCH_DIR/$lang"
if [ -d "$dest" ]; then
echo "SKIP: $lang (exists)"
return
fi
echo "CLONE: $lang <- $repo"
git clone --depth 1 --quiet "https://github.com/$repo.git" "$dest"
echo " OK: $(du -sh "$dest" | cut -f1)"
}
symlink() {
local lang="$1" source_lang="$2"
local dest="$BENCH_DIR/$lang"
if [ -d "$dest" ] || [ -L "$dest" ]; then
echo "SKIP: $lang (exists)"
return
fi
echo "LINK: $lang -> $source_lang"
ln -s "$BENCH_DIR/$source_lang" "$dest"
}
mkdir -p "$BENCH_DIR"
# Programming languages — Tier 1 (44 languages)
# Target: 100K+ LOC per repo for meaningful performance benchmarks
clone go "kubernetes/kubernetes" # 3.5M LOC, the Go benchmark
clone python "django/django" # 350K+ LOC, web framework
clone javascript "vercel/next.js" # 500K+ LOC, React framework
clone typescript "microsoft/TypeScript" # 1M+ LOC, the TS compiler
clone tsx "shadcn-ui/ui" # 728K LOC (already large)
clone java "elastic/elasticsearch" # 2M+ LOC, search engine
clone kotlin "JetBrains/Exposed" # 977K LOC (already large)
clone scala "apache/spark" # 1M+ LOC, big data
clone rust "meilisearch/meilisearch" # 409K LOC (already large)
clone c "redis/redis" # 546K LOC (already large)
clone cpp "protocolbuffers/protobuf" # 500K+ LOC, real .cpp files
clone csharp "dotnet/runtime" # Massive C# runtime
clone php "koel/koel" # 189K LOC (OK)
clone ruby "rails/rails" # 500K+ LOC, the Ruby framework
clone lua "neovim/neovim" # 500K+ LOC, editor
clone bash "ohmyzsh/ohmyzsh" # 100K+ .sh files
clone zig "tigerbeetle/tigerbeetle" # 224K LOC (already large)
clone haskell "jgm/pandoc" # 433K LOC (already large)
clone ocaml "ocaml/dune" # 345K LOC (already large)
clone elixir "plausible/analytics" # 677K LOC (already large)
clone erlang "emqx/emqx" # 500K+ LOC, MQTT broker
clone objc "realm/realm-cocoa" # 200K+ LOC, database SDK
clone swift "Alamofire/Alamofire" # 370K LOC (already large)
clone dart "felangel/bloc" # 285K LOC (already large)
clone perl "movabletype/movabletype" # 300K+ LOC, CMS
clone groovy "spockframework/spock" # 137K LOC (OK)
clone r "tidyverse/ggplot2" # 150K+ LOC, visualization
clone clojure "clojure/clojure" # 108K LOC (OK)
clone fsharp "dotnet/fsharp" # 500K+ LOC, the F# compiler
clone julia "JuliaLang/julia" # 1M+ LOC, the Julia runtime
clone vimscript "SpaceVim/SpaceVim" # 2.6M LOC (already huge)
clone nix "NixOS/nixpkgs" # 6M LOC (already huge)
clone commonlisp "lem-project/lem" # 1.2M LOC (already large)
clone elm "elm/compiler" # 57K LOC (largest Elm repo available)
clone fortran "cp2k/cp2k" # 5.9M LOC (already huge)
clone cobol "OCamlPro/gnucobol" # 540K LOC (already large)
clone verilog "YosysHQ/yosys" # 517K LOC (already large)
clone emacslisp "emacs-mirror/emacs" # 5.3M LOC (already huge)
clone matlab "acristoffers/tree-sitter-matlab" # 133K LOC (best available)
clone lean "leanprover-community/mathlib4" # 2.3M LOC (already huge)
clone form "vermaseren/form" # 221K LOC (already large)
clone wolfram "WolframResearch/WolframLanguageForJupyter" # 4K LOC (largest public Wolfram repo)
# Helper languages — Tier 2 (22 languages)
clone yaml "kubernetes/examples" # K8s manifests
clone hcl "hashicorp/terraform-provider-aws" # 1M+ LOC, massive HCL
clone scss "twbs/bootstrap" # 120K LOC (OK)
clone dockerfile "docker-library/official-images" # Docker configs
clone cmake "Kitware/CMake" # 1.7M LOC (already huge)
clone protobuf "googleapis/googleapis" # 2.2M LOC (already huge)
clone graphql "graphql/graphql-spec" # 23K LOC (largest pure GraphQL)
clone vue "vuejs/core" # 200K+ LOC, Vue 3 core
clone svelte "sveltejs/svelte" # 267K LOC (already large)
clone meson "mesonbuild/meson" # 237K LOC (already large)
# Shared repos (symlinked — language uses same repo as primary)
symlink html javascript # Express views contain HTML
symlink css tsx # shadcn-ui styles
symlink toml rust # meilisearch Cargo.toml + config
symlink sql java # spring-petclinic SQL schemas
clone cuda "NVIDIA/cuda-samples"
symlink json typescript # trpc JSON configs
symlink xml java # spring-petclinic XML configs
symlink markdown python # httpie docs
symlink makefile c # redis Makefile
clone glsl "repalash/Open-Shaders"
symlink ini python # httpie .cfg/.ini files
symlink magma lean # .m files — disambiguated via content markers
symlink kubernetes yaml # YAML subtype — Deployment/Service manifests
symlink kustomize yaml # YAML subtype — kustomization.yaml
echo ""
echo "=== Clone complete ==="
ls -1 "$BENCH_DIR/" | wc -l | xargs printf "%s repos ready in $BENCH_DIR\n"