Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deprecate setup-dvc and make DVC installation an optional part of setup-cml #92

Closed
pmrowla opened this issue Aug 2, 2023 · 3 comments
Closed

Comments

@pmrowla
Copy link

pmrowla commented Aug 2, 2023

Using DVC in CI essentially requires the use of cml ci before you can use any DVC commands. Currently CML and DVC installation are separated into the iterative/setup-cml and iterative/setup-dvc actions, but there's really no way for a user to actually do anything with DVC without the use of both actions together in their workflow (meaning for all practical scenarios setup-dvc depends on setup-cml).

I was looking into making the setup-dvc action just install CML and run cml ci, but this will require adding cml_version, cml_sudo, cml_force inputs to setup-dvc, all of which may conflict with whatever the user set if they also use setup-cml in their workflow. I also considered making setup-dvc a composite action that uses: iterative/setup-cml, but this again has the same problem where the user may want a specific version of CML that ends up being stomped by the setup-dvc installation instead.

Rather than require the current state of

- uses: iterative/setup-cml
- uses: iterative/setup-dvc
- run: |
    cml ci
    # rest of my workflow

it seems to me that we should really have a single action (setup-cml) that has an optional dvc: or dvc_version: input that defaults to false-y (meaning DVC is not installed and cml ci is not run by default). If the option is set to latest or any other valid DVC version, DVC will be installed and cml ci would be run by default as a part of the setup-cml action.

related: iterative/dvc#9612


This is semi related, but I also think cml ci (with no additional arguments) should always be run by default in iterative/setup-cml (regardless of whether or not they are using the proposed dvc_version: input). This would also cover the scenarios where the user installs DVC themselves (either because they need a pip installation to use the python api or because they are using one of the CML runner images that already includes DVC)

@pmrowla
Copy link
Author

pmrowla commented Aug 2, 2023

@iterative/cml I pushed an initial PR for this but it would be good to get input on this from the CML side

cc @dberenbaum

@dberenbaum
Copy link

Related: iterative/scmrepo#262

@pmrowla
Copy link
Author

pmrowla commented Aug 10, 2023

closing in favor of iterative/setup-dvc#55

@pmrowla pmrowla closed this as completed Aug 10, 2023
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 a pull request may close this issue.

2 participants