Repository navigation
docs(dev): replace the impossible venv recipe with the verified one - #1282
Merged
Merged
Conversation
6 tasks
Replace the impossible repo-root pip install -e ".[dev]" in docs/development/languages.md with the verified per-package editable install recipe. The repository root pyproject.toml contains only tool configuration for vmaf-fork-tooling and lacks build-system and root project dependencies, causing flat-layout discovery failure. Per-package editable installs are the model across independent distributions, with dev/Containerfile:1037-1047 as the authoritative reference. Pin meson==1.12.0 to prevent breaking ninja regeneration. Add recovery instructions for virtualenvs broken by legacy tracked .venv symlink loops (PR #1280). docs/state.md: no bug row needed (docs-only). docs/rebase-notes.md: no rebase impact: docs/development/ is fork-added.
lusoris
force-pushed
the
docs/venv-recipe
branch
from
September 5, 2026 09:13
3d4655f to
e8507b3
Compare
lusoris
marked this pull request as ready for review
September 5, 2026 09:13
…gate stops matching it scripts/ci/check-no-tracked-venv.sh matches any basename starting with 'venv' (the dot is optional in its pattern); the fragment name venv-recipe-docs.md tripped the required Pre-Commit check on #1282. The gate itself is tightened in a separate PR.
Merged
11 of 14 tasks
lusoris
added a commit
that referenced
this pull request
Sep 5, 2026
…ly start with venv The pattern in scripts/ci/check-no-tracked-venv.sh made the leading dot optional, so changelog.d/fixed/venv-recipe-docs.md on #1282 was reported as a tracked virtualenv and the required Pre-Commit check went red. Real virtualenv shapes (.venv*, venv, .virtualenv, pyvenv.cfg, and any file inside such a directory) stay flagged; a test pins both sides. docs/state.md: T-VENV-GATE-BASENAME-FALSE-POSITIVE-2026-09-05 (Recently closed).
lusoris
added a commit
that referenced
this pull request
Sep 5, 2026
…ly start with venv The pattern in scripts/ci/check-no-tracked-venv.sh made the leading dot optional, so changelog.d/fixed/venv-recipe-docs.md on #1282 was reported as a tracked virtualenv and the required Pre-Commit check went red. Real virtualenv shapes (.venv*, venv, .virtualenv, pyvenv.cfg, and any file inside such a directory) stay flagged; a test pins both sides. docs/state.md: T-VENV-GATE-BASENAME-FALSE-POSITIVE-2026-09-05 (Recently closed).
lusoris
added a commit
that referenced
this pull request
Sep 5, 2026
…ly start with venv The pattern in scripts/ci/check-no-tracked-venv.sh made the leading dot optional, so changelog.d/fixed/venv-recipe-docs.md on #1282 was reported as a tracked virtualenv and the required Pre-Commit check went red. Real virtualenv shapes (.venv*, venv, .virtualenv, pyvenv.cfg, and any file inside such a directory) stay flagged; a test pins both sides. docs/state.md: T-VENV-GATE-BASENAME-FALSE-POSITIVE-2026-09-05 (Recently closed).
lusoris
added a commit
that referenced
this pull request
Sep 5, 2026
…ly start with venv The pattern in scripts/ci/check-no-tracked-venv.sh made the leading dot optional, so changelog.d/fixed/venv-recipe-docs.md on #1282 was reported as a tracked virtualenv and the required Pre-Commit check went red. Real virtualenv shapes (.venv*, venv, .virtualenv, pyvenv.cfg, and any file inside such a directory) stay flagged; a test pins both sides. docs/state.md: T-VENV-GATE-BASENAME-FALSE-POSITIVE-2026-09-05 (Recently closed).
lusoris
added a commit
that referenced
this pull request
Sep 6, 2026
…ly start with venv The pattern in scripts/ci/check-no-tracked-venv.sh made the leading dot optional, so changelog.d/fixed/venv-recipe-docs.md on #1282 was reported as a tracked virtualenv and the required Pre-Commit check went red. Real virtualenv shapes (.venv*, venv, .virtualenv, pyvenv.cfg, and any file inside such a directory) stay flagged; a test pins both sides. docs/state.md: T-VENV-GATE-BASENAME-FALSE-POSITIVE-2026-09-05 (Recently closed).
lusoris
added a commit
that referenced
this pull request
Sep 6, 2026
…ly start with venv (#1309) The pattern in scripts/ci/check-no-tracked-venv.sh made the leading dot optional, so changelog.d/fixed/venv-recipe-docs.md on #1282 was reported as a tracked virtualenv and the required Pre-Commit check went red. Real virtualenv shapes (.venv*, venv, .virtualenv, pyvenv.cfg, and any file inside such a directory) stay flagged; a test pins both sides. docs/state.md: T-VENV-GATE-BASENAME-FALSE-POSITIVE-2026-09-05 (Recently closed). Co-authored-by: Lusoris <lusoris@pm.me>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
docs/development/languages.mdtold developers to runpython3 -m venv .venv && pip install -e ".[dev]"at the repo root. That cannot work: the rootpyproject.tomlhas no[build-system]and no[dev]extra — it is only Black/Ruff/pytest/mypy configuration for a package namedvmaf-fork-tooling— so pip fails withMultiple top-level packages discovered in a flat-layout. Verified by running it in a throw-away venv (probe output in the commit trail).The page now carries the recipe that was actually verified on 2026-09-04 (Python 3.14, golden gate 271 passed / 12 skipped / 0 failed afterwards): per-package editable installs —
python/,mcp-server/vmaf-mcp,tools/vmaf-tune[fast],dev-llm, withai[dev]as the heavy optional — cross-checked against the canonical list indev/Containerfile:1037-1047, and withmesonpinned to1.12.0because every meson build dir hard-codes the absolute path of the meson that configured it. It also gains a short "recovering a destroyed venv" note (symptom, cause, recipe) for anyone hit by the.venvsymlink that #1280 removed.The two other
pip install -e .occurrences underdocs/mcp/arecd mcp-server/vmaf-mcp && pip install -e .— per-package, correct, left alone. Mentions inside Accepted ADRs and research digests are historical records and are not edited.Also in this PR: one stale line in
docs/development/rust.mdFound by the 2026-09-04 gap triage (#1270, verdict STALE, verified against master): the page said a higher-level
vmafxcrate "is planned for a future PR", butbindings/rust/vmafxhas existed since ADR-0929 (PR #859). Same subsystem (docs/development/), one-line correction, so it rides here rather than as its own PR.Type
docs— documentation onlyChecklist
make format && make lintis green locally (markdownlint via pre-commit, no--fix).Bug-status hygiene (ADR-0165)
docs/state.md— no row needed: documentation-only change with no code defect; the incident behind the recovery note is already recorded underT-VENV-SYMLINK-TRACKED-2026-09-04(fix(repo): untrack the .venv symlink that #1231 committed, and gate against it #1280).Netflix golden-data gate (ADR-0024)
assertAlmostEqual(...)score in the Netflix golden Python tests.Deep-dive deliverables (ADR-0108)
AGENTS.mdinvariant note — no rebase-sensitive invariants:docs/development/is fork-added.changelog.d/fixed/venv-recipe-docs.md.docs/development/is fork-added with no upstream counterpart (recorded indocs/rebase-notes.md).Reproducer
🤖 Generated with Claude Code