4cbdb056b6
⑥ 的验收要自己造负载压,环境用 AppWorld:733 个任务与 197M 数据都在本机、docker 镜像已 拉好、而且它自带评测端点做程序化判分——换成让另一个模型判对错,等于往验收里再塞一个非 确定源,验收本身就不可复现了。 **不 import dissect**(§1.2 禁止反向 import),照它那两个文件当协议文档自己写了一份。 副作用是这反而更强:证明一个不认识 dissect 的第三方只用公共 API 就能驱动真实环境。 复刻了 dissect 记下的几个坑:httpx 必须 trust_env=False,否则本机代理会把 127.0.0.1 的 请求也劫走、表现成 502;健康检查失败先抓容器日志再删;关闭失败按端口分开计数,用全局 计数器的话坏容器的失败会被别的容器的成功清零。 放在仓库根的 tools/ 下而不是 tests/ 下:打包只收 src/,所以它不进 wheel 也不进 sdist (实测两个产物里 soak 命中数都是 0);而 §1.9 的四层是按「依赖什么」分的,压测不属于其中 任何一层,塞进 tests/ 要么破坏分层要么和 e2e 共用同一道花钱的闸。Makefile 的检查目标 跟着加上 tools/。 冒烟真跑通:起容器、初始化真题、跨调用保持变量、错误代码返回 traceback 而不抛异常、 评测、无容器残留;另验 2 容器并发的租借与归还。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
29 lines
754 B
Makefile
29 lines
754 B
Makefile
.PHONY: install lint format check test ci
|
|
|
|
ENV := PolyLoop
|
|
|
|
# 命令形状是固定的:PYTHONUNBUFFERED=1 加 conda run --live-stream。conda 和 Python 各缓冲
|
|
# 一层,两层都得拆——只加其中一个,长跑命令仍然全程无输出,直到进程结束才一次性吐出。
|
|
RUN := PYTHONUNBUFFERED=1 conda run --live-stream -n $(ENV)
|
|
|
|
install:
|
|
$(RUN) pip install -e ".[dev]"
|
|
|
|
# lint 带 --fix 会改工作区,check 只读。CI 用 check,人手修用 lint。
|
|
lint:
|
|
$(RUN) ruff check src/ tests/ tools/ --fix
|
|
$(RUN) lint-imports
|
|
|
|
format:
|
|
$(RUN) ruff format src/ tests/ tools/
|
|
|
|
check:
|
|
$(RUN) ruff format --check src/ tests/ tools/
|
|
$(RUN) ruff check src/ tests/ tools/
|
|
$(RUN) lint-imports
|
|
|
|
test:
|
|
$(RUN) pytest
|
|
|
|
ci: check test
|