feat: 新增 Python 3.14t 自由线程镜像 (#6434)

* fix(resource): select free-threaded extension ABI

* chore(deps): require moviepilot-rust 0.2.9

* perf: add free-threaded runtime comparison

* feat: add free-threaded runtime profile

* chore(deps): require moviepilot-rust 0.3.0

* test: isolate system endpoint import graph

* fix(docker): preserve runtime profile during recovery

* feat(runtime): expose active GIL state

* feat(plugin): log GIL fallback attribution

* test: refresh runtime observability dependency baseline

* fix(plugin): validate the active uv runtime profile

* test(runtime): expand free-threaded benchmark evidence

* docs(runtime): define v3t governance gates

* test(runtime): separate rust benchmark modes

* docs: sync free-threaded architecture baseline

* perf: add PostgreSQL driver comparison

* docs(runtime): record final free-threaded evidence

* fix(runtime): converge dual-profile dependency verification

* fix(runtime): scope Python 3.14 warning filter

* fix(runtime): match actual oss2 syntax warning

* docs(runtime): refresh free-threaded benchmark evidence

* test(architecture): refresh runtime dependency baseline

* ci: skip unused Trivy Java database

* build: exclude local verification artifacts

* docs(runtime): refresh PostgreSQL driver benchmarks

* docs(runtime): record plugin restore acceptance

* docs(runtime): record amd64 candidate acceptance

* ci: pin beta image publisher action

* test(architecture): merge runtime dependency baseline

* feat(runtime): expose Python GIL status

* docs(runtime): document Python runtime status fields
This commit is contained in:
InfinityPacer
2026-08-24 17:48:14 +08:00
committed by GitHub
parent 88dce4ca8e
commit 326b5cf3ad
63 changed files with 5294 additions and 253 deletions
+26
View File
@@ -7,6 +7,7 @@ from app.adapters.system.package import (
PackageInstallRequest,
build_package_install_env,
build_package_install_strategies,
build_project_sync_strategies,
redact_url,
)
@@ -129,6 +130,31 @@ def test_build_strategies_passes_all_manifests_to_one_uv_process(tmp_path):
assert command[second_requirement + 1] == str(legacy)
def test_project_sync_selects_current_runtime_group(tmp_path, monkeypatch):
"""主项目恢复必须显式选择当前解释器对应的互斥运行依赖组。"""
project = tmp_path / "project"
project.mkdir()
pyproject = project / "pyproject.toml"
pyproject.write_text("[project]\nname='moviepilot'\nversion='0'\n", encoding="utf-8")
uv_bin = tmp_path / "venv" / "bin" / "uv"
uv_bin.parent.mkdir(parents=True)
uv_bin.write_text("", encoding="utf-8")
request = PackageInstallRequest(
dependency_files=(pyproject,),
python_bin=tmp_path / "venv" / "bin" / "python",
)
monkeypatch.setattr(
"app.adapters.system.package.runtime_sync_arguments",
lambda: ("--no-default-groups", "--group", "runtime-free-threaded"),
)
command = build_project_sync_strategies(request)[0].command
assert command.count("--group") == 1
assert command[command.index("--group") + 1] == "runtime-free-threaded"
assert "--no-default-groups" in command
def test_redact_url_removes_userinfo():
assert redact_url("https://user:pass@mirror.example/simple") == "https://mirror.example/simple"