explosion / weasel

🦦 weasel: A small and easy workflow system
MIT License
63 stars 8 forks source link

BUG: Weasel DVC command error "run" #82

Open pcschreiber1 opened 6 months ago

pcschreiber1 commented 6 months ago

Hi, I'm quite new to weasel and ran into this basic problem and haven't been able to figure out a way to solve it.

Expected Behaviour

With running weasel dvc I can automatically create and maintain a dvc.yml from my project.yml.

Current Behaviour

When running weasel dvc I get an error message that "run" is an invalid command choice and no dvc.yml is created.

$ weasel dvc
⚠ No workflow specified for DVC pipeline. Using the first workflow
defined in project.yml: 'all'
ERROR: argument command: invalid choice: 'run' (choose from 'add', 'artifacts', 'cache', 'check-ignore', 'checkout', 'commit', 'completion', 'config', 'daemon', 'dag', 'data',

Steps to reproduce

I ran into this issue with both the templates tagger_parser_ud and textcat_demo as well as the tutorial ner_fashion_brands.

Set-up new project

  1. mkdir new_folder && cd new_folder
  2. python -m venv .venv
  3. source .venv/bin/activate
  4. pip install weasel && pip install dvc
  5. git init && dvc init

Download and set-up template

  1. weasel clone pipelines/tagger_parser_ud
  2. cd tagger_parser_ud
  3. weasel assets

Set-up weasel from project.yml

  1. weasel dvc

Environment

Detailed Description

It seems to me like under the hood a dvc run command is triggered, which causes an issue. It already tried to check the code weasel/cli/dvc.py, but couldn't find a run command there or in utils.

svlandeg commented 4 months ago

Hi! Thanks for the extensive report and way of reproducing. I can reproduce this on my own system as well.

The DVC integration is in a dire need of updating, as this was written before dvc run was deprecated for its 3.0.0 release. Weasel still uses this here.

If I downgrade dvc to version 2.58.2 this error goes away, though I'm running into other issues. We'll have to spend some time looking into this properly.