github iterative/dvc 3.63.0

2 days ago

What's Changed

Behavioral Changes (CLI)

  • In dvc status --cloud, target now supports specifying path to a dataset. Previously, specifying a directory as the target caused DVC to search for .dvc and dvc.yaml files inside it, from which the datasets specified in those files were then checked for cloud/remote status, rather than considering the directory itself as a dataset.
    While this is technically a breaking change, we consider the previous behavior a bug and inconsistent with other DVC commands, including plain dvc status. To restore the previous behavior, add the --recursive option.

    Fixes #9336.

🚀 New Features and Enhancements

  • add --remote option to dvc data status --not-in-remote for checking files against a specified remote (instead of a default one) by @skshetry in #10843

     # Check against the 'my-s3' remote instead of the default
     $ dvc data status --not-in-remote --remote my-s3
  • exp show accepts multiple --keep and --drop arguments in #10857

     $ dvc exp show --keep 'featurize' --keep 'avg_prec' --drop '.*train' --drop '.*split'
  • dvc init supports initializing DVC repository in an arbitrary directory in #10861

     $ dvc init /path/to/dvc/repo/that/I/want/to/initialize
  • checkout and pull reports granular summary of changes in #10842

    Before, DVC would report statistics only about datasets affected during checkout phase.

     $ dvc pull dataset/train/4
     A       dataset/
     1 file added and 5843 files fetched

    Now, it will report granular number of files affected by the operation.

     $ dvc pull dataset/train/4
     A       dataset/
     5842 files added and 5843 files fetched
  • data status now detects file moves/renames by default in #10846

     $ dvc move foo bar
     $ dvc data status
     DVC committed changes:
       (git commit the corresponding dvc files to update the repo)
             renamed: foo -> bar
  • dvcignore: share implementation between check-ignore and internal API used by DVC, improve support for unignores (eg: !data/** rules) in #10856 (Fixes #10722 and #10122)

  • support completing remote name in zsh/bash in #10858

     $ dvc push --remote <TAB>
     local my-s3

⚡ Optimizations

  • load only a stage/.dvc file if the target is an address to that particular stage in #10838 (Fixes #8768)
  • batch dump stages in commit, do not re-read on save from the workspace in #10839 (Fixes #10629)

🐛 Bug Fixes

  • do not show missing cache entries on dvc diff result in #10845 (Fixes #7661)
  • handle missing DVC repo at Git HEAD in dvc data status in #10862
  • show entry in "Not in cache" if dir entry is missing in dvc diff in #10844 (Fixes #7661)
  • fix dvc.yaml filepath in error message when reading from git revisions in #10847

🔨 Maintenance

  • fix some, suppress some issues from ty check in #10841

Full Changelog: 3.62.0...3.63.0

Don't miss a new dvc release

NewReleases is sending notifications on new releases.