Skip to content

ADR-0029: Relocate resource tree under python/vmaf/

  • Status: Accepted
  • Date: 2026-04-17
  • Deciders: Lusoris, Claude (Anthropic)
  • Tags: workspace, python, docs

Context

ROOT/resource/ (example datasets, param files, model-training params, tutorial images) is consumed exclusively by the Python harness, but sits at the repo root where external consumers see it first. User: "some project rood dirs should be cleaned up/moved as well".

Decision

Move ROOT/resource/ to python/vmaf/resource/. Resolve via a RESOURCE constant in config.py, overridable with VMAF_RESOURCE env var; VmafConfig.resource_path() routes through it.

Alternatives considered

Option Pros Cons Why not chosen
Keep at repo root No code churn Root stays noisy Rejected per the ADR-0029..0034 family
Move to python/vmaf/resource/ (chosen) Co-located with consumer Path updates required Matches ADR-0026 pattern

Rationale (from rationale note on the cleanup family): scratch/data trees consumed exclusively by the Python harness do not belong at the repo root.

Consequences

  • Positive: repo root shrinks; discoverability improves for new contributors.
  • Negative: all VmafConfig.resource_path() callers routed through the new constant.
  • Neutral / follow-ups: env override retained for alternate layouts.

References

  • Source: req (user: "some project rood dirs should be cleaned up/moved as well")
  • Related ADRs: ADR-0026, ADR-0030, ADR-0031, ADR-0032, ADR-0033, ADR-0034