Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: dstackai/dstack
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.19.16
Choose a base ref
...
head repository: dstackai/dstack
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0.19.17
Choose a head ref
  • 13 commits
  • 93 files changed
  • 4 contributors

Commits on Jun 27, 2025

  1. Configuration menu
    Copy the full SHA
    cb9d746 View commit details
    Browse the repository at this point in the history
  2. Add files property to run configurations (#2848)

    Each item in the `files` property maps a local path (a file or a dir)
    to a container path. Each local path is packed into a tar archive and
    uploaded to the server similar to the code repo archive/diff.
    
    On the server, each archive is stored in the DB as `FileArchiveModel`
    linked to the user. Archive blobs are optionally uploaded to
    the storage (again, similar to the code blob).
    
    When the job is submitted to the runner, files (if any) are uploaded
    after `/api/submit` but before `/api/upload_code`.
    
    The runner unpacks archives as follows:
    * If the path already exists, it's removed
    * If any parent dirs of the path are missing, they are created as owned
      by the run user. The owner of the existing dirs is not changed.
    * The owner of the path (and all subpaths in the case of the directory)
      is set to the run user. The permissions from the archive (and thus
      from the user's machine) are preserved.
    
    Part-of: #2738
    un-def authored Jun 27, 2025
    Configuration menu
    Copy the full SHA
    c5dd99d View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2025

  1. Implement project secrets (#2854)

    * Implement secrets management API
    
    * Test secrets management API
    
    * test: add test cases for delete secrets endpoint
    
    * Check secrets exist before deleting
    
    * Add dstack secret CLI command
    
    * Interpolate env with secrets
    
    * Interpolate registry_auth with secrets
    
    * Validate secrets
    
    * Rebase migration
    
    * Document secrets
    r4victor authored Jun 30, 2025
    Configuration menu
    Copy the full SHA
    578e04a View commit details
    Browse the repository at this point in the history
  2. Support fleet configurations for the local backend (#2856)

    Add the local backend to `BACKENDS_WITH_*_SUPPORT`
    so that it can be used in fleet configurations.
    jvstme authored Jun 30, 2025
    Configuration menu
    Copy the full SHA
    2cacada View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7fed232 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e008245 View commit details
    Browse the repository at this point in the history
  5. Rolling deployments for repo updates (#2853)

    - Support rolling deployments for services when
      the run repo is updated: new commits are added,
      the branch is changed, uncommitted files are
      updated, etc. Switching from one repo to another
      is not yet supported.
    
      > **Note**: A side effect of this change is that
      if the run configuration file is stored in the
      same repo that is used for the run, any changes
      to the configuration file will also be
      considered a change to the repo
      (`repo_code_hash`), and hence require a rolling
      deployment for services or a full restart for
      tasks and dev environments. Previously, this was
      not the case, since changes to `repo_code_hash`
      were ignored for existing jobs. This new
      behavior makes it more difficult to avoid
      redeployment when changing some configuration
      properties, namely `priority`,
      `inactivity_duration`, `replicas`, and
      `scaling`. However, we consider this acceptable,
      since changing these properties in-place is an
      advanced use case and can still be achieved by
      moving the configuration file out of the repo.
    
    - Improve run plan output in `dstack apply` when
      attempting an in-place update:
    
      - Show not only the list of changed
        configuration properties, but also other
        changes from the run spec, such as
        repo-related changes.
    
        ```shell
        $ dstack apply -f test-service.dstack.yml
    
        Active run test-service already exists. Detected changes that can be updated in-place:
        - Repo state (branch, commit, or other)
        - Repo files
        - Configuration properties:
          - env
    
        Update the run? [y/n]:
        ```
    
      - Show the list of changes not only when
        in-place update is possible, but also when it
        is not. This will help users understand why a
        run cannot be updated in-place.
    
        ```shell
        $ dstack apply -f test-service.dstack.yml
    
        Active run test-service already exists. Detected changes that cannot be updated in-place:
        - Repo files
        - Configuration properties:
          - gateway
    
        Stop and override the run? [y/n]:
        ```
    
        Currently, all detected changes are listed
        together. An area for future improvement is
        highlighting the changes that prevent an
        in-place update.
    jvstme authored Jun 30, 2025
    Configuration menu
    Copy the full SHA
    ea79096 View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2025

  1. Fix package dependency direction (#2859)

    Move `LOCAL_BACKEND_ENABLED` from
    `dstack._internal.server.settings` to
    `dstack._internal.settings`, so that it can be
    imported to both `dstack._internal.server` and
    `dstack._internal.core`.
    jvstme authored Jul 1, 2025
    Configuration menu
    Copy the full SHA
    b2a28f5 View commit details
    Browse the repository at this point in the history
  2. Rolling deployments for files (#2862)

    Support rolling deployments for services when the
    `files` property is updated or the contents of
    file archives change.
    
    Currently, `dstack` always detects phantom changes
    to file archive contents, since file archives are
    omitted when getting the run plan. Addressing this
    is out of scope for this PR.
    
    This PR does not address compatibility with
    previously submitted jobs that are using files,
    because the files feature has not been released
    yet, so no users have such jobs.
    jvstme authored Jul 1, 2025
    Configuration menu
    Copy the full SHA
    c876047 View commit details
    Browse the repository at this point in the history

Commits on Jul 2, 2025

  1. Support the local backend with the in-server proxy (#2858)

    Fix this error when requesting a service running
    on the local backend and served by the in-server
    proxy:
    
    ```python
      File "/dstack/src/dstack/_internal/proxy/lib/services/service_connection.py", line 82, in open
        await self._tunnel.aopen()
      File "/dstack/src/dstack/_internal/core/services/ssh/tunnel.py", line 204, in aopen
        raise get_ssh_error(stderr)
    dstack._internal.core.errors.SSHError: Connection closed by UNKNOWN port 65535
    ```
    
    If the replica runs on the local backend, connect
    directly to the container, without proxy jumping
    through the shim host. Similar to workarounds in
    `SSHAttach` and `runner_ssh_tunnel`.
    jvstme authored Jul 2, 2025
    Configuration menu
    Copy the full SHA
    a510369 View commit details
    Browse the repository at this point in the history
  2. [Docs] Added Files documentation (#2866)

    * [Docs] Added `Files` to `concepts/dev-environments`, `concepts/tasks.md`, and `concepts/services.md`
    
    * [Docs] Mentioned `.gitignore` and `dstackignore` in `Files` section
    peterschmidt85 authored Jul 2, 2025
    Configuration menu
    Copy the full SHA
    325bf8b View commit details
    Browse the repository at this point in the history
  3. [runner] Fix ~ expansion in files (#2865)

    Use the runner process user (`root` expected) as the job user if
    the `user` directive is not specified in either the image
    or the dstack configuration.
    
    Previously, the repo dir (`/workflow`) was used as a fallback for
    the home dir if the user is not specified.
    
    Fixes: #2864
    un-def authored Jul 2, 2025
    Configuration menu
    Copy the full SHA
    cdff7d1 View commit details
    Browse the repository at this point in the history
  4. Allow in-place update for more run properties (#2867)

    After some testing, allow in-place update for more
    properties that already work out of the box:
    - `configuration_path` for all run types
    - `working_dir` and `docker` for services,
      triggers rolling deployment
    jvstme authored Jul 2, 2025
    Configuration menu
    Copy the full SHA
    669bf16 View commit details
    Browse the repository at this point in the history
Loading