[{"data":1,"prerenderedAt":353},["ShallowReactive",2],{"doc-\u002Fdocs\u002Fdevelopment":3},{"id":4,"title":5,"body":6,"description":345,"extension":346,"meta":347,"navigation":348,"path":349,"seo":350,"stem":351,"__hash__":352},"content\u002Fdocs\u002Fdevelopment.md","Development",{"type":7,"value":8,"toc":341},"minimark",[9,13,46,107,125,130,152,242,253,257,278,284,302,305,323,337],[10,11,5],"h1",{"id":12},"development",[14,15,16,23,24,28,29,32,33,37,38,41,42,45],"p",{},[17,18,22],"a",{"href":19,"rel":20},"https:\u002F\u002Fmise.jdx.dev\u002F",[21],"nofollow","mise"," provisions the toolchain (",[25,26,27],"code",{},"mise.toml",": Python\n3.12 + uv) and runs every project command (",[25,30,31],{},"mise run \u003Ctask>","). The runtime\ntargets the Linux\u002FCUDA environment documented in the\n",[17,34,36],{"href":35},"inference","inference guide","; the lock is restricted to\n",[25,39,40],{},"sys_platform == 'linux'"," via ",[25,43,44],{},"required-environments",". The quality and\ndocumentation groups can be installed without model dependencies on a Linux\nhost.",[47,48,53],"pre",{"className":49,"code":50,"language":51,"meta":52,"style":52},"language-bash shiki shiki-themes github-light github-dark","mise install\nmise run install\nmise run check\nmise run test\nmise run build\n","bash","",[25,54,55,67,77,87,97],{"__ignoreMap":52},[56,57,60,63],"span",{"class":58,"line":59},"line",1,[56,61,22],{"class":62},"sScJk",[56,64,66],{"class":65},"sZZnC"," install\n",[56,68,70,72,75],{"class":58,"line":69},2,[56,71,22],{"class":62},[56,73,74],{"class":65}," run",[56,76,66],{"class":65},[56,78,80,82,84],{"class":58,"line":79},3,[56,81,22],{"class":62},[56,83,74],{"class":65},[56,85,86],{"class":65}," check\n",[56,88,90,92,94],{"class":58,"line":89},4,[56,91,22],{"class":62},[56,93,74],{"class":65},[56,95,96],{"class":65}," test\n",[56,98,100,102,104],{"class":58,"line":99},5,[56,101,22],{"class":62},[56,103,74],{"class":65},[56,105,106],{"class":65}," build\n",[14,108,109,112,113,116,117,120,121,124],{},[25,110,111],{},"mise run install"," installs the runtime, training, agent and telemetry extras,\nand quality tools. The site lives in ",[25,114,115],{},"site\u002F"," (Nuxt + UnoCSS): ",[25,118,119],{},"mise run site-preview",".\nRun ",[25,122,123],{},"mise tasks"," to see the available commands.",[126,127,129],"h2",{"id":128},"dependencies","Dependencies",[14,131,132,135,136,139,140,143,144,147,148,151],{},[25,133,134],{},"pyproject.toml"," owns the package metadata, dependencies, tool settings, and uv\nconfiguration. ",[25,137,138],{},"uv.lock"," records the resolution for Python 3.12 on Linux,\nincluding the pinned Bub Git revision and the ",[25,141,142],{},"+cu128"," PyTorch artifacts bound\nthrough ",[25,145,146],{},"tool.uv.sources"," and the explicit ",[25,149,150],{},"pytorch-cu128"," index. The published\nexperiment's environment snapshot remains historical evidence, not an\ninstallation input.",[153,154,155,168],"table",{},[156,157,158],"thead",{},[159,160,161,165],"tr",{},[162,163,164],"th",{},"Selection",[162,166,167],{},"Purpose",[169,170,171,180,191,201,211,222,232],"tbody",{},[159,172,173,177],{},[174,175,176],"td",{},"Default dependencies",[174,178,179],{},"Model runtime",[159,181,182,188],{},[174,183,184,187],{},[25,185,186],{},"train"," extra",[174,189,190],{},"Training, evaluation, and the unit tests' data dependencies",[159,192,193,198],{},[174,194,195,187],{},[25,196,197],{},"telemetry",[174,199,200],{},"NVML board metrics via nvidia-ml-py",[159,202,203,208],{},[174,204,205,187],{},[25,206,207],{},"agent",[174,209,210],{},"The pinned Bub SDK integration",[159,212,213,219],{},[174,214,215,218],{},[25,216,217],{},"quality"," group",[174,220,221],{},"Ruff, ty, prek, and pytest",[159,223,224,229],{},[174,225,226,218],{},[25,227,228],{},"docs",[174,230,231],{},"Sphinx, Furo, and MyST",[159,233,234,239],{},[174,235,236,218],{},[25,237,238],{},"plot",[174,240,241],{},"Rendering saved evaluation results",[14,243,244,245,248,249,252],{},"After changing dependencies, run ",[25,246,247],{},"mise run lock",", review the lock diff, and sync\nthe relevant selections with ",[25,250,251],{},"uv sync",". CI refuses a missing or stale\nlock rather than resolving different versions. Avoid replacing a trained run's\nenvironment while it is active.",[126,254,256],{"id":255},"checks-and-builds","Checks and builds",[14,258,259,262,263,266,267,270,271,273,274,277],{},[25,260,261],{},"mise run check"," verifies the lock, repository hygiene, Ruff lint and formatting,\nand ty checks for ",[25,264,265],{},"src"," against the installed dependencies. ",[25,268,269],{},"mise run lint"," runs the\nchecks that only need the ",[25,272,217],{}," group. ",[25,275,276],{},"uv run --group quality prek install","\noptionally installs the same hygiene hooks locally; installing hooks is not\nrequired to run the checks.",[14,279,280,283],{},[25,281,282],{},"mise run test"," runs pytest, including the pinned RLCD loss and\ngradient values, prefix-cache updates and gradients, calibration metrics, and\ndata-split isolation. It does not load\nmodel weights, download data, or prove GPU training\u002Finference acceptance. CI runs\nthese tests with Hugging Face access disabled. GPU acceptance remains a separate\nstep for changes to execution or training.",[14,285,286,287,290,291,294,295,298,299,301],{},"Run an individual file or case with ",[25,288,289],{},"uv run pytest tests\u002Ftest_rlcd.py"," or\n",[25,292,293],{},"uv run pytest -k gradients",". Test discovery is limited to ",[25,296,297],{},"tests\u002F"," in\n",[25,300,134],{},".",[14,303,304],{},"The test job installs the same locked CUDA wheels, checks types, and runs the\ntests on CPU. Quality and website jobs\ndo not install the model runtime.",[14,306,307,310,311,314,315,318,319,301],{},[25,308,309],{},"mise run build"," uses ",[25,312,313],{},"uv_build"," to produce a wheel and source distribution in\n",[25,316,317],{},"dist\u002F",". Local model weights, datasets, caches, and experiment runs are excluded.\nThe CI build does not publish packages. Website validation and deployment use\nthe separate ",[17,320,322],{"href":321},"website","website workflow",[14,324,325,326,331,332,301],{},"The mise tasks and separated quality\u002Ftest jobs adapt the relevant parts of\n",[17,327,330],{"href":328,"rel":329},"https:\u002F\u002Fgithub.com\u002Fbubbuild\u002Fbub\u002Fblob\u002Fmain\u002FMakefile",[21],"Bub's CI layout"," and\n",[17,333,336],{"href":334,"rel":335},"https:\u002F\u002Fgithub.com\u002Fbubbuild\u002Fbub\u002Fblob\u002Fmain\u002F.github\u002Fworkflows\u002Fmain.yml",[21],"CI",[338,339,340],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":52,"searchDepth":69,"depth":79,"links":342},[343,344],{"id":128,"depth":69,"text":129},{"id":255,"depth":69,"text":256},"mise provisions the toolchain (mise.toml: Python\n3.12 + uv) and runs every project command (mise run \u003Ctask>). The runtime\ntargets the Linux\u002FCUDA environment documented in the\ninference guide; the lock is restricted to\nsys_platform == 'linux' via required-environments. The quality and\ndocumentation groups can be installed without model dependencies on a Linux\nhost.","md",{},true,"\u002Fdocs\u002Fdevelopment",{"title":5,"description":345},"docs\u002Fdevelopment","zuEuZ827dms1bqt_aKupA4i5jxJg2VQ2gc44wqRtR9g",1790560641964]