Skip to content

Store HTTP Last-Modified as mtime in .dvc deps#8

Open
ryan-williams wants to merge 3 commits intomainfrom
http-last-modified-mtime
Open

Store HTTP Last-Modified as mtime in .dvc deps#8
ryan-williams wants to merge 3 commits intomainfrom
http-last-modified-mtime

Conversation

@ryan-williams
Copy link
Member

Summary

  • Patch DVC schemas + Meta.to_dict() to serialize HTTP Last-Modified as mtime in .dvc dep entries
  • Uses inode is None heuristic to distinguish HTTP sources (no inode) from local files (always have inode)
  • Pins dvc-data fork with HTTP mtime extraction in Meta.from_info() + ruff/CI fixes
  • Moves completed fix-run-external-deps spec to specs/done/

Test plan

  • Exercise with dvx import-url on an HTTP URL that returns Last-Modified header
  • Verify .dvc file contains mtime field in deps
  • Verify dvx update refreshes mtime
  • Verify local dvc add still works (no spurious mtime in outs)
  • Test in hccs/path with real PDF imports

🤖 Generated with Claude Code

ryan-williams and others added 3 commits March 3, 2026 00:08
Implemented in 052e047 ("Fix `dvx run` circular dependency error +
add `git_deps` support").

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Pin `dvc-data` to runsascoded/dvc-data@`9b27dc6` which captures HTTP
`Last-Modified` headers into `Meta.mtime` via `from_info()`.

Add `_compat.py` to patch DVC at runtime:
- Allow `mtime` in DVC's `.dvc` file schema validation
- Extend `Meta.to_dict()` to serialize `mtime` for HTTP sources
  (distinguished from local fs mtime by absence of `inode`)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant