treeverse / treeverse/dvc

Exp run --dry: command fails with missing files from the dependencies

Open
#10,135 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
15.9k
Forks
1.3k
PR merge metrics
No merged PRs in 30d

Description

Description

I'm using dvc with hydra and I would like to check whether my experiment run will reuse caches of some stages outputs.
The dvc exp run --dry command fails when some of the dependencies are missing. dvc status could do the job, but the problem with it is that it cannot emulate dvc exp run -n exp3 -S parameters.parameter_name=123.
I can use hydra to compose params.yaml, but it requires some additional manual work.
May be it's worth to allow dvc status to accept -S overrides for hydra and to compile params.yaml inside dvc status command?

Reproduce
  1. git clone https://github.com/Danila89/dvc_empty.git && cd dvc_empty && git pull --all && git checkout dvc_status_issue && dvc exp run -n something --dry
Expected

Results of dry-run, indicating that I have missing dependencies for all the stages except stage1

Environment information

Output of dvc doctor:

(base) danila.savenkov@RS-UNIT-0099 dvc_empty % dvc doctor
DVC version: 3.30.3 (pip)
-------------------------
Platform: Python 3.10.9 on macOS-13.3.1-arm64-arm-64bit
Subprojects:
        dvc_data = 2.22.3
        dvc_objects = 1.3.0
        dvc_render = 0.5.3
        dvc_task = 0.3.0
        scmrepo = 1.4.1
Supports:
        http (aiohttp = 3.8.4, aiohttp-retry = 2.8.3),
        https (aiohttp = 3.8.4, aiohttp-retry = 2.8.3),
        s3 (s3fs = 2023.5.0, boto3 = 1.26.76)
Config:
        Global: /Users/danila.savenkov/Library/Application Support/dvc
        System: /Library/Application Support/dvc
Cache types: <https://error.dvc.org/no-dvc-cache>
Caches: local
Remotes: None
Workspace directory: apfs on /dev/disk3s3s1
Repo: dvc, git
Repo.site_cache_dir: /Library/Caches/dvc/repo/64bbbded2e55036b006c56ceaefa98e1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failure with the documented dvc exp run -n something --dry command in the linked repository, then compare it with dvc status and the described Hydra -S override case. Trace how dry-run handles missing dependencies and experiment parameter overrides. Done means the dry run reports missing dependencies for the applicable stages instead of failing.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.