ReleaseRelease

Define workflow in separate YAML files

Previously, you had to define all workflows in the single .dstack/workflows.yaml file. While this worked for simple projects, for larger projects this was rather inconvenient and quickly created a mess.

Now you can define workflow across separate YAML files under the .dstack/workflows folder.


Pass workflows arguments

Sometimes you may want to quickly run a workflow and pass it certain parameters right from the command line.

For example, you want to override some of the hyper parameters, change the batch size, or even pass it a prompt (e.g. if your workflow generates images).

Previously, the dstack run command hasn't allowed you to pass any arguments. You have to change either the code or the YAML file.

Now you can pass arguments to the workflow right from the dstack run command and refer to them from your YAML file via the ${{ run.args }} expression.

Here's an example:

workflows:
  - name: hello-args
    provider: bash
    commands:
      - python args/hello-arg.py ${{ run.args }}

Now you can pass arguments to this workflow the following way:

dstack run hello-arg "Hello, world!"

The only limitation to this feature is that you can use any arguments except those that are reserved for the dstack run command itself.


Repo and user cost allocation tags

Tracking compute costs is important.

Now, dstack uses additional tags on EC2 resources to make tracking costs even easier.

Now, when creating EC2 resources, dstack adds the dstack_repo, dstack_user_name, and dstack_user_email tags (in addition to the previously used dstack_bucket.

If you open AWS Billing | Cost allocation tags, you'll be able to activate these tags as cost allocation tags, and track compute costs per individual dstack repo and user.


Examples

Last but not least, thanks to supporting separate workflow files, we've been able to refactor the dstack-examples repository.

First, we've added there the source code of the Examples. Second, we've updated the source code of the Quickstart: workflows were moved to a separate YAML file, and the source files were moved to a separate folder.

Finally, the documentation was updated to reflect the changes above.


Try it

To install the new version of the CLI, just run this command:

pip install dstack --upgrade

In case you have feedback, if either something doesn't work as expected, or you have a question, please share it in our Slack chat, or report it as a GitHub issue.