0.19.26
Repos
Previously, dstack always required running the dstack init command before use. This also meant that dstack would always mount the current folder as a repo.
With this update, repo configuration is now explicit and declarative. If you want to use a repo in your run, you must specify it with the new repos property. The dstack init command is now only used to provide custom Git credentials when working with private repos.
For example, imagine you have a cloned Git repo with an examples subdirectory containing a .dstack.yml file:
type: dev-environment
name: vscode
repos:
# Mounts the parent directory of `examples` (must be a Git repo)
# to `/workflow` (the default working directory)
- ..
ide: vscodeWhen you run this configuration, dstack fetches the repo on the instance, applies your local changes, and mounts it—so the container always matches your local repo.
Sometimes you may want to mount a Git repo without cloning it locally. In that case, simply provide a URL in repos:
type: dev-environment
name: vscode
repos:
# Clone the specified repo to `/workflow` (the default working directory)
- https://github.com/dstackai/dstack
ide: vscodeIf the repo is private, dstack will automatically try to use your default Git credentials (from ~/.ssh/config or ~/.config/gh/hosts.yml).
To configure custom Git credentials, use dstack init.
Note
If you previously initialized a repo via dstack init, it will still be mounted. Be sure to migrate to repos, as implicitly configured repos are deprecated and will stop working in future releases.
If you no longer want to use the implicitly configured repo, run dstack init --remove.
Note
Currently, you can configure only one repo per run configuration.
Fleets
Previously, when dstack added new instances to existing fleets, it ignored the fleet configuration and used only the run configuration for which the instance was created. This could result in fleets containing instances that didn’t match their configuration.
This has now been fixed: fleet configurations and run configurations are intersected so that provisioned instances respect both. For example, given a fleet configuration:
type: fleet
name: cloud-fleet
placement: any
nodes: 0..2
backends:
- runpodand a run configuration:
type: dev-environment
ide: vscode
spot_policy: spot
fleets:
- cloud-fleetdstack will provision a RunPod spot instance in cloud-fleet.
This change lets you define main provisioning parameters in fleet configurations, while adjusting them in run configurations as needed.
Note
Currently, the run plan does not take fleet configuration into account when showing offers, since the target fleet may not be known beforehand. We plan to improve this by showing offers for all candidate fleets.
Examples
Wan2.2
We've added a new example demonstrating how to use Wan2.2, the new open-source SOTA text-to-video model, to generate videos.
Internals
Pyright integration
We now use pyright for type checking dstack Python code in CI. If you contribute to dstack, we recommend you configure your IDE to use pyright/pylance with standard type checking mode.
What's changed
- Fix typing issues and add pyright to CI by @r4victor in #3011
- [Internal] Update Ask AI integration ID by @olgenn in #3009
- Make Configurator generic by @r4victor in #3013
- Type check cli.commands by @r4victor in #3014
- [Docs] Improve the docs regarding
dstack initand repos to reflect the recent changes. by @peterschmidt85 in #3015 - Respect fleet spec when provisioning on run apply by @r4victor in #3022
- Consider elastic busy fleets for provisioning by @r4victor in #3024
- Fix duplicate instance_num by @r4victor in #3025
- Add declarative repo configuration by @un-def in #3023
- Allow gpu.name as string in json schema by @r4victor in #3027
- [Bug]: nebius.aio.service_error.RequestError: Request error DEADLINE_EXCEEDED: Deadline Exceeded #2962 by @peterschmidt85 in #3028
- Fix DataCrunchCompute exception when terminating already removed instance by @r4victor in #3032
- [DataCrunch] Ensure dstack is using fixed pricing #3033 by @peterschmidt85 in #3034
- Document
reposby @peterschmidt85 in #3026 - Add Wan2.2 example by @r4victor in #3029
- Automatically remove dangling tasks from shim by @jvstme in #3036
dstack offerfixes by @peterschmidt85 in #3038- Remove dstack init from help by @r4victor in #3039
Full changelog: 0.19.25...0.19.26