Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
643 commits
Select commit Hold shift + click to select a range
f70b5b2
Add in-place update for gateway `domain` (#3997)
jvstme Jul 3, 2026
be48b56
Fix `TestGetRunsTable::test_simple_run` (#3999)
jvstme Jul 3, 2026
973815e
Fix/ebs device resolve retry (#4002)
james-boydell Jul 6, 2026
971b866
Update Cuda runtime from 12.8 to 13.0 in dstack base Docker images (#…
r4victor Jul 6, 2026
0673ace
Fix CloudRift SSH port mapping (#4005)
peterschmidt85 Jul 7, 2026
aba65f2
Kubernetes: set `NVIDIA_VISIBLE_DEVICES=void` for CPU-only pods (#4011)
un-def Jul 8, 2026
3e6ad11
Retry NVIDIA containers without display capability (#4006)
peterschmidt85 Jul 8, 2026
39a62c6
Add Slurm backend (#4009)
un-def Jul 8, 2026
c02f79b
[Landing] Minor update to landing (#4000)
peterschmidt85 Jul 9, 2026
d449eac
Use `yaml.safe_load` everywhere (#4015)
un-def Jul 9, 2026
fa877f4
Slurm: fix memory request (#4016)
un-def Jul 9, 2026
82f9620
Drop cudo backend (#4018)
r4victor Jul 9, 2026
1e9f5f0
Ignore cachetools-related typing error in AWS backend (#4022)
un-def Jul 10, 2026
31c1b5c
Fix `Git.ls_remote()` return type error (#4024)
un-def Jul 13, 2026
22ac385
Pass effective Requirements to Compute's run_job/run_jobs (#4020)
un-def Jul 13, 2026
74b87ed
Kubernetes: Rework offers and resource handling (#4021)
un-def Jul 13, 2026
154d70d
Do not ignore Vast.ai instance termination errors (#4030)
jvstme Jul 14, 2026
0abca9a
Migrate off deprecated Vast.ai `/api/v0/instances` (#4031)
jvstme Jul 14, 2026
5e9e74b
[Feature] Supporting dstack-inside-dstack for runs (#4023)
peterschmidt85 Jul 15, 2026
bae409d
Vast.ai: Support spot instances (#4025)
trashhalo Jul 16, 2026
01becce
Update Vast.ai spot instances support (#4036)
jvstme Jul 16, 2026
5e39db1
Update gateway connection error log level (#4035)
jvstme Jul 16, 2026
314c0fb
Detect Vast.ai interruptions during provisioning (#4037)
jvstme Jul 16, 2026
5b12312
Support server monitoring with OpenTelemetry (#4034)
r4victor Jul 16, 2026
199755b
Update `VastAIAPIClient` (#4038)
jvstme Jul 16, 2026
b2459c7
[Feature] Endpoint presets (#4028)
peterschmidt85 Jul 16, 2026
835e00e
Refactor `get_job_plans()` (#4042)
un-def Jul 17, 2026
23698f1
Set DSTACK_OTEL_METRICS_EXPORTERS=otlp by default (#4041)
r4victor Jul 17, 2026
b7cb7d0
Do not instrument http+unix:// requests (#4044)
r4victor Jul 20, 2026
fa13473
CLI: add `--no-profile` option (#4043)
un-def Jul 20, 2026
5adcec4
Use OTel LoggingHandler from opentelemetry-instrumentation-logging (#…
r4victor Jul 21, 2026
18d089c
Don't request backend offers if `creation_policy: reuse` or `instance…
un-def Jul 21, 2026
72d5b00
CLI: rework `offer` command (#4047)
un-def Jul 21, 2026
fb67a34
Update `gpus/list` API method to match `runs/get_plan` (#4051)
un-def Jul 21, 2026
4da1bf6
Fix `creation_policy: reuse` ignored (#4053)
r4victor Jul 21, 2026
aad9f85
[UI] Change GPU offer resources spec to match `dstack offer` command …
un-def Jul 21, 2026
9c640a8
Forbid updating `failed` gateways in-place (#4055)
jvstme Jul 21, 2026
bf6956e
Enforce /api/runs/list job_submissions_limit on the server side (#4057)
r4victor Jul 22, 2026
ab193be
Delete dull job and instance models created on no capacity retry (#4059)
r4victor Jul 23, 2026
5f6d856
[Feature] Presets (#4058)
peterschmidt85 Jul 23, 2026
cf908ed
Support AWS G7 instances with NVIDIA RTX PRO 4500 (#4063)
jvstme Jul 23, 2026
0c0f265
Reject StaticFiles websocket requests gracefully (#4064)
r4victor Jul 24, 2026
2f9618f
Implement within_fleets filter via entity_fleet_id (#4062)
r4victor Jul 24, 2026
2659863
Use test log storage in `test_updates_running_job` (#4065)
un-def Jul 24, 2026
1a2b5d5
Add `full_offers` option to `Compute.get_offers()` (#4060)
un-def Jul 24, 2026
b5ff898
Add in-place update for gateway `replicas` (#4014)
jvstme Jul 27, 2026
ae34629
Set dstack.user.name attr on OTel traces (#4068)
r4victor Jul 27, 2026
2020a84
Add support for offers with unknown disk size (#4066)
un-def Jul 27, 2026
5ca3730
Add `unallocated_resources` option to `Compute.get_offers()` (#4067)
un-def Jul 27, 2026
58282b1
Add AWS `experimental_instance_types` setting (#4069)
jvstme Jul 27, 2026
ab915ee
Prepare for Pydantic v2 migration (#4072)
r4victor Jul 29, 2026
c580cf0
Support replicated AWS gateways with ACM (#4071)
jvstme Jul 30, 2026
ccef71f
Add pydantic compatibility tests (#4073)
r4victor Jul 30, 2026
c9ebdaa
Show host GPU driver on fleet instances (#4032)
peterschmidt85 Jul 31, 2026
cd8e145
fix: reject ports above TCP range (#4075)
ShiroKSH Aug 3, 2026
d10edfd
Migrate to Pydantic v2 (#4077)
r4victor Aug 3, 2026
481205c
Expand AGENTS.md Coding Style
r4victor Aug 3, 2026
9b5e120
Fix BackendsAPIClient.config_info (#4080)
r4victor Aug 3, 2026
bd4ceca
[chore]: Drop redundant Pydantic variable annotations (#4082)
jvstme Aug 3, 2026
597412a
Add dstack user agent to Nebius SDK (#4084)
complynx Aug 3, 2026
a0a2cfb
Pin rich to non-terminal output in tests (#4081)
r4victor Aug 4, 2026
843fc4a
[Internal] Add just recipes for running Python tests via tox (#4083)
un-def Aug 4, 2026
ded4a88
Speed Python up tests with session-scoped db fixtures (#4088)
r4victor Aug 4, 2026
0d84fe0
Stop preset tests from waiting on the tail poll (#4089)
r4victor Aug 4, 2026
457d107
Regenerate pydantic_compat fixtures (#4090)
un-def Aug 4, 2026
752de28
[CLI] Fix --cpu and --gpu argument parsers (#4092)
un-def Aug 4, 2026
5876c19
Prepare gateway API for state sync mechanism (#4087)
jvstme Aug 4, 2026
edb68c2
Fix extra run/fleet configuration properties not ignored when parsing…
r4victor Aug 5, 2026
6510087
[Breaking]: Drop gateway-based routers (#4097)
jvstme Aug 5, 2026
60ad1ef
Drop support for ResourcesSpec.cpu as Range[int] (#4091)
un-def Aug 5, 2026
a4314ff
Improve `dstack fleet` table readability and ordering (#4093)
peterschmidt85 Aug 5, 2026
855e730
Visualize `dstack metrics` as sparklines (#4086)
peterschmidt85 Aug 5, 2026
5c955f5
Update future release references 0.20.30 -> 0.21.0 (#4100)
jvstme Aug 5, 2026
9562ffb
Improve preset creation harness and CLI output (#4078)
peterschmidt85 Aug 6, 2026
53f4963
Add `for_offers_only` parameter to `/runs/get_plan` API method (#4104)
un-def Aug 6, 2026
85b8e74
Dim the interrupted preset status (#4105)
peterschmidt85 Aug 6, 2026
e9c3f04
Drop pre-0.21 compatibility code (#4103)
r4victor Aug 6, 2026
7aaae67
Add 0.21 section to the upgrade guide (#4106)
r4victor Aug 6, 2026
3fedd27
Forbid creating git tags outside the release process (#4107)
r4victor Aug 6, 2026
ad1378e
Add AWS `p5en.48xlarge` (8:H200 + Sapphire Rapids) (#4110)
jvstme Aug 7, 2026
277c180
Improve provisioning failure message (#4113)
r4victor Aug 7, 2026
8132077
Add Tags to ServiceConfiguration.replicas (#4112)
un-def Aug 7, 2026
5575644
Minor updates to docs and README (#4115)
peterschmidt85 Aug 7, 2026
acb2797
[runner,shim] Rework GPU autodetection (#4116)
un-def Aug 10, 2026
e1c304f
Show every job in `dstack metrics` (#4108)
peterschmidt85 Aug 10, 2026
801bf74
Fix busy_blocks lost decrement on SQLite when jobs of one instance te…
r4victor Aug 10, 2026
4510ca1
Rework GPU vendor/CPU arch and image validation (#4114)
un-def Aug 10, 2026
26247fd
Use tmp dir for SERVER_DIR_PATH in tests (#4121)
r4victor Aug 10, 2026
533e204
Drop deprecated dstack_server_request* Prometheus metrics (#4130)
r4victor Aug 11, 2026
c6f7a18
Add missing foreign key indexes (#4131)
r4victor Aug 11, 2026
0d25f21
Distinguish router and non-router replicas (#4101)
jvstme Aug 11, 2026
95b788b
Support in-place update for gateway `default` (#4128)
jvstme Aug 11, 2026
085a56e
Show failed creations in `dstack preset` (#4109)
peterschmidt85 Aug 12, 2026
4ed4170
Keep `now` on the metrics axis while a job is reporting (#4132)
peterschmidt85 Aug 12, 2026
8fec761
[Presets] Patching framework and `--previous` support (#4118)
peterschmidt85 Aug 12, 2026
43e0bc2
Note the local preset storage in the presets limitations
Aug 12, 2026
56621ac
Simplify certbot error messages (#4133)
jvstme Aug 12, 2026
6b8fffb
Bump testcontainers>=4.15.0 (#4137)
un-def Aug 13, 2026
76d20e2
Ignore google package warning about near-EOL Python version in tests …
un-def Aug 13, 2026
706cac9
[Presets] Benchmark dataset support (#4134)
peterschmidt85 Aug 13, 2026
68dc344
Fix `IndexError` in `dstack apply` (#4141)
jvstme Aug 14, 2026
2b12e65
Gateway state sync mechanism (#4135)
jvstme Aug 14, 2026
e364738
Allow manual gateway scaling (drop feature flag) (#4142)
jvstme Aug 14, 2026
43cae96
Update gpuhunt contributing guide (#4143)
r4victor Aug 14, 2026
df6b54d
Drop pydantic_compat tests (#4144)
r4victor Aug 14, 2026
7767e22
Fix server compatibility with 0.20.[27-29] clients (#4148)
jvstme Aug 14, 2026
779777b
[Presets] Typed models and stored format overhaul (#4150)
peterschmidt85 Aug 15, 2026
d7a1736
Use DO's AI/ML-ready image for AMD GPU droplets (#4151)
peterschmidt85 Aug 15, 2026
bf182dd
Don't process running job if other jobs in replica are not provisione…
un-def Aug 17, 2026
5969f4d
Change CPU arch default value/validation (#4136)
un-def Aug 17, 2026
19527e9
Handle gateway collect stats and other errors (#4153)
r4victor Aug 17, 2026
08414d5
Support Heterogenous Node Groups (#4094)
Bihan Aug 17, 2026
0e828a9
[Presets] CLI refactoring (#4152)
peterschmidt85 Aug 17, 2026
382bc10
Add gateway assignment events (#4155)
jvstme Aug 17, 2026
06676a5
[chore]: Gateway replica naming cleanup (#4156)
jvstme Aug 18, 2026
5fdea61
Update amddevcloud API url (#4158)
r4victor Aug 18, 2026
9804a7c
Document heterogeneous node groups for tasks (#4154)
Bihan Aug 18, 2026
2efd3cc
[Internal] Rework runner/.justfile as a module (#4139)
un-def Aug 18, 2026
775d8f4
Speed up service registration on gateway (#4166)
jvstme Aug 18, 2026
19a442d
[Internal] Preset service serialization format (#4162)
peterschmidt85 Aug 18, 2026
2517069
Bump gpuhunt==0.1.30 (#4159)
r4victor Aug 19, 2026
0dee238
[runner] Remove `BASH_FUNC_*%%` variables (#4168)
un-def Aug 19, 2026
ce2b76a
[Presets] Delete creations that never saved a preset (#4170)
peterschmidt85 Aug 19, 2026
3568e5d
Always show replica IP in `dstack gateway -v` (#4172)
jvstme Aug 19, 2026
0acd80b
Document that idle_duration requires a nodes range (#4173)
r4victor Aug 20, 2026
99fdc7e
Fix Run.logs() returning nothing for a finished run (#4176)
r4victor Aug 20, 2026
aaecf92
Removed `name` from node groups examples; plus few minor edits (#4178)
peterschmidt85 Aug 20, 2026
79fd21d
Don't add duplicate keys while provision SSH instance (#4179)
un-def Aug 20, 2026
95cf18e
[Blog] Presets: a toolkit for agent-based inference optimization (#4171)
peterschmidt85 Aug 20, 2026
fb8282e
[Blog] Tighten the presets post intro (#4180)
peterschmidt85 Aug 20, 2026
ee25bd2
[Blog] Rewrite the presets post's compound learning section (#4181)
peterschmidt85 Aug 20, 2026
1298b42
Make `GatewayReplicaModel.backend_id` required (#4183)
jvstme Aug 20, 2026
d667f12
Rename service replica groups to groups and support IP interpolation …
Bihan Aug 21, 2026
765fb31
Add `GatewayReplicaModel.name` (#4184)
jvstme Aug 21, 2026
511c318
Fix `dstack apply --ssh-identity` (#4191)
un-def Aug 21, 2026
2f024c6
Write preset traces by default and add the dstack-presets skill (#4192)
peterschmidt85 Aug 23, 2026
b8c9ff2
docs: fix two typos (#4195)
vaibhav8a Aug 24, 2026
25c6045
[UI] Move SSH keys into the Settings tab on the user page (#4193)
peterschmidt85 Aug 24, 2026
3a47fab
[Docs] Service groups and Replica IP interpolation (#4185)
Bihan Aug 24, 2026
6d2312e
[shim] Commit task state changes via TaskStorage.Modify() (#4200)
un-def Aug 24, 2026
e44c6e4
[Presets] Support for `dstack preset push` and `dstack preset pull` (…
peterschmidt85 Aug 24, 2026
a39a764
Keep the machine awake during preset creation (#4205)
r4victor Aug 25, 2026
187d436
[shim] Rework Run() into Start() and complete tasks in the background…
un-def Aug 25, 2026
091704e
[shim] Mark authorized_keys entries added by the shim (#4206)
un-def Aug 25, 2026
e29a198
Add Seeweb GPU backend (#4070)
massaindustries Aug 25, 2026
44c1a49
Fix Seeweb test for gpuhunt 0.1.30 (#4207)
peterschmidt85 Aug 25, 2026
f2a5b68
Make a preset workload state the requested dataset (#4201)
peterschmidt85 Aug 25, 2026
db06abf
Fix events client backward compatibility (#4209)
jvstme Aug 25, 2026
28eafd1
Drop AI Assistance Notice requirement (#4213)
r4victor Aug 26, 2026
363ab03
Add gateway replica events (#4212)
jvstme Aug 26, 2026
93d86ad
Add compatibility guidance to `AGENTS.md` (#4210)
jvstme Aug 26, 2026
27d1780
Fix case-sensitive fleet and run spec intersection (#4215)
r4victor Aug 26, 2026
7cc59d5
[shim] Fix flaky Docker tests (#4216)
un-def Aug 26, 2026
ab16524
[shim] Adjust log levels and messages (#4217)
un-def Aug 26, 2026
7820727
[shim] Fix GPU ownership of restored tasks (#4218)
un-def Aug 26, 2026
a70d98b
[shim] Persist task state to clean up tasks after a restart (#4220)
un-def Aug 27, 2026
260060c
Support AWS gateways with ALB without certificate (#4219)
jvstme Aug 27, 2026
d137594
Support in-place update for service `gateway` (#4221)
jvstme Aug 27, 2026
ccf5d81
Allow restarting shim >= 0.21.3 with running tasks (#4224)
un-def Aug 27, 2026
e828c9e
[shim] Keep shim task files out of the container (#4223)
un-def Aug 28, 2026
2714d00
[shim] Don't revoke host SSH access of co-located tasks (#4226)
un-def Aug 31, 2026
80a882e
[chore]: Drop gateway-based routers implementation (#4236)
jvstme Aug 31, 2026
98745d9
Fix adding authorized keys in Kubernetes and Slurm (#4235)
un-def Sep 1, 2026
eb15041
Tune Nginx config on the gateway (#4237)
jvstme Sep 1, 2026
356c59d
Replace the legacy replica groups serializer with a client patch (#4248)
Bihan Sep 2, 2026
ae1c7cc
[Presets] Add PD Disaggregation Support (#4227)
Bihan Sep 2, 2026
8d55d88
Honor sshproxy enforcement in container-based backends (#4244)
un-def Sep 2, 2026
433d353
Drop gateway `update.sh` (#4245)
jvstme Sep 2, 2026
5511ac8
Fix target type filter on Events page (#4253)
hhhhzzzj Sep 2, 2026
32d2add
Drop legacy `dstack-gateway` package (#4252)
jvstme Sep 2, 2026
bb1dc7e
[CLI] Exclude unset service `groups` from requests (#4256)
un-def Sep 3, 2026
6c490d0
UI build flags and landing updates (#4250)
peterschmidt85 Sep 3, 2026
b6d3aea
Separate shim and runner API errors from connection errors (#4251)
un-def Sep 4, 2026
2d87397
Split shim and runner response errors into status and body (#4261)
un-def Sep 4, 2026
508d7a0
Refresh landing page orchestration overview (#4264)
peterschmidt85 Sep 4, 2026
87e2fd6
Let the preset agent use the claude CLI's default model (#4265)
peterschmidt85 Sep 5, 2026
69c6552
Raise instead of returning False from runner_ssh_tunnel (#4262)
un-def Sep 7, 2026
aaeb201
Support internal IP and cluster placement for jarvislabs (#4247)
r4victor Sep 7, 2026
7823319
Align landing orchestration primitives (#4268)
peterschmidt85 Sep 7, 2026
0140d63
[Docs] Fix Dynamo etcd/NATS wait loop under (#4258)
Bihan Sep 8, 2026
b60d98c
Enforce `max_duration` on the server (#4273)
un-def Sep 9, 2026
2c65984
Close the logs-done channels only once (#4275)
un-def Sep 9, 2026
4324221
[runner] Stop reading job output once the command has exited (#4276)
un-def Sep 9, 2026
34d4022
[runner] Mark logs finished only once the executor has finished (#4280)
un-def Sep 9, 2026
f897dd1
Allow configuring `subnetworks` in GCP settings (#4274)
jagretti Sep 10, 2026
aaf7cb4
[runner] Interrupt the job through the terminal, not the shell (#4281)
un-def Sep 10, 2026
f3f77be
[Docs] Amplify the main use-cases for tasks and services (#4260)
peterschmidt85 Sep 10, 2026
c4e869d
Phase out Exports in self-hosted OSS `dstack` (#4282)
jvstme Sep 10, 2026
a41778f
[Presets] Support Codex as an agent provider for creating presets (#4…
peterschmidt85 Sep 10, 2026
1f7b736
Support ALB for GCP gateways (#4279)
jvstme Sep 10, 2026
7389f5e
[UI] Project visibility: minor UX changes (#4284)
peterschmidt85 Sep 10, 2026
a15c156
[runner] Terminate the job's whole session, not just its shell (#4283)
un-def Sep 11, 2026
aa1c153
[runner] Make the executor lifecycle explicit (#4286)
un-def Sep 11, 2026
f231342
Fix gRPC router workers never becoming ready with set (#4270)
Bihan Sep 14, 2026
f0fb87c
Add DB index for instance_health_checks (#4288)
r4victor Sep 14, 2026
99ece47
[Presets] Support public presets (#4287)
peterschmidt85 Sep 14, 2026
979ac05
Collect the last job logs before killing the container (#4289)
un-def Sep 15, 2026
c12a77f
Improve DB connections handling (#4291)
r4victor Sep 15, 2026
c1271af
Prevent resuming saved presets (#4228)
ZenAlexa Sep 15, 2026
d0fad0e
Support Certificate Manager for GCP gateways (#4290)
jvstme Sep 16, 2026
abb8ce8
Increase gateway replica count limit `3` → `9` (#4295)
jvstme Sep 16, 2026
1462fa1
Treat pre-releases as final releases in feature gates (#4296)
un-def Sep 16, 2026
242484b
Fix model endpoint protocol with LB-terminated TLS (#4299)
jvstme Sep 17, 2026
b5610b1
Do not downgrade runner and shim by default (#4297)
un-def Sep 17, 2026
06d8dc4
Discourage automatic PRs by autonomous agents (#4292)
jvstme Sep 17, 2026
c7945c5
Refactor dstack for dstack Factory extension (#4303)
r4victor Sep 21, 2026
3c0d048
[Website] Updated product pages (#4304)
peterschmidt85 Sep 22, 2026
40772a9
Fix GCP `a3-edgegpu-8g` and `a3-highgpu-8g` (#4307)
jvstme Sep 24, 2026
39b28c2
Fix errors in service router worker sync (#4305)
un-def Sep 24, 2026
e3705ce
Clarify Kubernetes volume context selection (#4311)
peterschmidt85 Sep 24, 2026
fdfce0a
[Website] Updated Slurm info on landing (#4312)
peterschmidt85 Sep 24, 2026
7160f6b
Set upper bound of SQLAlchemy version to < 2.1 (#4314)
un-def Sep 25, 2026
229f535
Don't require probes to pass in router worker sync (#4313)
un-def Sep 25, 2026
9204e15
Polish landing pages (#4319)
peterschmidt85 Sep 28, 2026
8d9559a
OCI: resolve availability domains from the configured compartment (#4…
fede-kamel Sep 28, 2026
6e36024
Sync workers with every running router (#4320)
un-def Sep 29, 2026
f3de2e5
Restore model probe for service routers (#4322)
un-def Sep 29, 2026
85886c4
[Presets] Update system_prompt for router usage (#4294)
Bihan Sep 29, 2026
e7eb5f0
Parse Crusoe quota counters returned as strings (#4323)
r4victor Sep 29, 2026
a3496d2
[UI] Fix job metrics tab (#4324)
un-def Sep 29, 2026
deac309
Disable gateway proxy buffering for model services (#4326)
r4victor Sep 30, 2026
878efad
Apply DSTACK_SERVICE_CLIENT_TIMEOUT to gateway nginx and app (#4327)
r4victor Sep 30, 2026
1284826
Add Daytona backend (#4321)
peterschmidt85 Sep 30, 2026
4faf0ba
Pin Nebius spot price at provisioning time (#4328)
jvstme Oct 1, 2026
70c2616
Add OCI `experimental_instance_types` setting (#4329)
jvstme Oct 1, 2026
c2be409
Add Hot Aisle bare metal support (#4325)
peterschmidt85 Oct 1, 2026
e316e08
Correctly support NVIDIA B300 in Vast.ai (#4330)
jvstme Oct 1, 2026
90887d0
Update Azure GRID driver to 580.178.04 (#4332)
peterschmidt85 Oct 2, 2026
0d578c8
[Docs] Update vLLM PD example (#4336)
un-def Oct 5, 2026
46c9e83
Fix pyright with kubernetes 37 (#4347)
r4victor Oct 7, 2026
07174d9
Skip placement groups for AWS Capacity Blocks (#4345)
r4victor Oct 7, 2026
c2850b2
Warn dstack skill about heredocs split across commands items (#4348)
r4victor Oct 7, 2026
9ebdd3f
Bound SSHTunnel control commands with timeouts and BatchMode (#4354)
r4victor Oct 8, 2026
5e56fd6
Fix stgn Dockerfile: copy examples dir for uv.lock dependency
claude Jan 16, 2026
ac8f29e
Fix stgn Dockerfile: add .venv/bin to PATH for dstack command
claude Jan 16, 2026
5ddb26a
Add frontend build stage to stgn Dockerfile for UI support
claude Jan 16, 2026
1cde2f5
chore: add depot.json (depot build project id)
tomheno Jan 16, 2026
ec5de7b
verda: port the fork's SFS volumes, host SSH keys and debug key onto …
tomheno Oct 8, 2026
a00c1e6
shim: port the fork's NFS mount for Verda SFS volumes onto upstream
tomheno Oct 8, 2026
a31d102
server: reuse an existing volume attachment on a reused instance
tomheno Oct 8, 2026
8910240
nebius: accept the gpu-rtx6000-a platform (RTX PRO 6000, uk-south2)
tomheno Oct 8, 2026
58a4f14
test(nebius): pin the spot create request shape (preemptible + pricin…
tomheno Oct 8, 2026
9eb058f
test: cover the fork's Verda SFS, host key, debug key and shim NFS fe…
tomheno Oct 8, 2026
933b852
server: send the shim NFS volume fields only when set
tomheno Oct 8, 2026
7bdc44c
style: ruff format the ported Verda code and its tests
tomheno Oct 8, 2026
cdaa2ec
volumes: add VerdaVolumeConfiguration to the backend-tagged volume union
tomheno Oct 8, 2026
f9c4961
docker(stgn): copy skills/ before uv sync
tomheno Oct 8, 2026
aa99109
nebius: cap spot VMs at the on-demand price of the same type and region
tomheno Oct 8, 2026
62eeb7e
nebius: cap spot just below on-demand, keep offers sorted, retry out-…
tomheno Oct 8, 2026
f6e92dd
Merge the old fork master into the rebased line (strategy ours)
tomheno Oct 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# These are supported funding model platforms

github: [dstackai]
55 changes: 11 additions & 44 deletions .github/workflows/build-artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ jobs:
strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
Expand All @@ -74,7 +74,7 @@ jobs:
- name: Install dependencies
run: uv sync --all-extras
- name: Run pyright
uses: jakebailey/pyright-action@v2
uses: jakebailey/pyright-action@v3
with:
pylance-version: latest-release
- name: Download frontend build
Expand All @@ -100,10 +100,7 @@ jobs:
defaults:
run:
working-directory: runner
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Go
Expand All @@ -126,11 +123,6 @@ jobs:
if [[ "${{ inputs.go-integration-tests }}" == "true" ]]; then
SHORT=""
fi
# Skip failing integration tests on macOS for release builds.
# TODO: https://github.com/dstackai/dstack/issues/3005
if [[ "${{ inputs.staging }}" == "false" && "${{ startsWith(matrix.os, 'macos') }}" == "true" ]]; then
SHORT="-short"
fi
go version
go fmt $(go list ./... | grep -v /vendor/)
go vet $(go list ./... | grep -v /vendor/)
Expand Down Expand Up @@ -171,33 +163,6 @@ jobs:
runner/dstack-shim-${{ matrix.goos }}-${{ matrix.goarch }}
retention-days: 1

gateway-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up uv
uses: astral-sh/setup-uv@v5
with:
python-version: 3.11
- name: Build package
working-directory: gateway
run: |
echo "__version__ = \"${{ inputs.version }}\"" > src/dstack/gateway/version.py
# TODO: depend on a specific dstackai/dstack commit for staging builds?
if [[ "${{ inputs.staging }}" == "false" ]]; then
sed \
-i.old \
"s|@ https://github.com/dstackai/dstack/archive/refs/heads/master.tar.gz|== ${{ inputs.version }}|" \
pyproject.toml
diff pyproject.toml pyproject.toml.old > /dev/null && echo "Could not set version" && exit 1
fi
uv build
- uses: actions/upload-artifact@v4
with:
name: dstack-gateway
path: gateway/dist/dstack_gateway-${{ inputs.version }}-py3-none-any.whl
retention-days: 1

python-build:
needs: [code-lint, frontend-build]
runs-on: ubuntu-latest
Expand All @@ -224,12 +189,14 @@ jobs:
VERSION=${{ inputs.version }}
IS_RELEASE=True
fi
BASE_IMAGE=$(cat src/dstack/version.py | grep "base_image = ")
BASE_IMAGE_UBUNTU_VERSION=$(cat src/dstack/version.py | grep "base_image_ubuntu_version = ")
DOCKER_BASE_IMAGE=$(cat src/dstack/version.py | grep "docker_base_image = ")
DOCKER_BASE_IMAGE_UBUNTU_VERSION=$(cat src/dstack/version.py | grep "docker_base_image_ubuntu_version = ")
VM_BASE_IMAGE=$(cat src/dstack/version.py | grep "vm_base_image = ")
echo "__version__ = \"$VERSION\"" > src/dstack/version.py
echo "__is_release__ = $IS_RELEASE" >> src/dstack/version.py
echo $BASE_IMAGE >> src/dstack/version.py
echo $BASE_IMAGE_UBUNTU_VERSION >> src/dstack/version.py
echo $DOCKER_BASE_IMAGE >> src/dstack/version.py
echo $DOCKER_BASE_IMAGE_UBUNTU_VERSION >> src/dstack/version.py
echo $VM_BASE_IMAGE >> src/dstack/version.py
cp README.md src
uv build
- uses: actions/upload-artifact@v4
Expand All @@ -251,8 +218,8 @@ jobs:
- name: Generate json schema
run: |
mkdir /tmp/json-schemas
uv run python -c "from dstack._internal.core.models.configurations import DstackConfiguration; print(DstackConfiguration.schema_json())" > /tmp/json-schemas/configuration.json
uv run python -c "from dstack._internal.core.models.profiles import ProfilesConfig; print(ProfilesConfig.schema_json())" > /tmp/json-schemas/profiles.json
uv run python -c "from dstack._internal.core.models.configurations import DstackConfiguration; import json; print(json.dumps(DstackConfiguration.model_json_schema()))" > /tmp/json-schemas/configuration.json
uv run python -c "from dstack._internal.core.models.profiles import ProfilesConfig; import json; print(json.dumps(ProfilesConfig.model_json_schema()))" > /tmp/json-schemas/profiles.json
- uses: actions/upload-artifact@v4
with:
name: json-schemas
Expand Down
14 changes: 12 additions & 2 deletions .github/workflows/build-docs.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
name: Build Docs
name: Build Site

# Reusable build of the full site: the React landing (website/) overlaid onto the
# MkDocs docs + blog build, via scripts/docs/build_site.sh. Produces the `site` artifact
# consumed by docs.yaml (deploy) and build.yml (PR build check).

on:
workflow_call:
Expand All @@ -11,15 +15,21 @@ jobs:
- uses: astral-sh/setup-uv@v5
with:
python-version: 3.11
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: website/package-lock.json
- name: Install dstack
run: |
uv sync --extra server
- name: Build
run: |
sudo apt-get update && sudo apt-get install -y libcairo2-dev libfreetype6-dev libffi-dev libjpeg-dev libpng-dev libz-dev
uv run mkdocs build -s
./scripts/docs/build_site.sh
- uses: actions/upload-artifact@v4
with:
name: site
path: site
retention-days: 1
include-hidden-files: true
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
branches:
- "master"
paths-ignore:
- "docs/**"
- "mkdocs/**"
- "mkdocs.yml"
pull_request:
branches:
Expand Down
17 changes: 13 additions & 4 deletions .github/workflows/docker-tt-smi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ on:
description: "TT SMI version"
required: true
default: "3.0.25"
tag_latest:
description: "Update 'latest'"
type: boolean
required: true
default: false

jobs:
build-tt-smi:
Expand Down Expand Up @@ -38,8 +43,12 @@ jobs:
--build-arg IMAGE_NAME=${IMAGE_NAME} \
--build-arg TT_SMI_VERSION=${{ inputs.tt_smi_version }} \
--build-arg BUILD_DATE=$(date --utc --iso-8601=seconds)Z \
--tag ${IMAGE_NAME}:latest
VERSION=$(docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' ${IMAGE_NAME})
docker tag ${IMAGE_NAME}:latest ${IMAGE_NAME}:${VERSION}
--tag ${IMAGE_NAME}:${{ inputs.tt_smi_version }}
VERSION=$(docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' ${IMAGE_NAME}:${{ inputs.tt_smi_version }})
docker tag ${IMAGE_NAME}:${{ inputs.tt_smi_version }} ${IMAGE_NAME}:${VERSION}
docker push ${IMAGE_NAME}:${VERSION}
docker push ${IMAGE_NAME}:latest
- name: Tag and push latest
if: ${{ inputs.tag_latest }}
run: |
docker tag ${{ inputs.image_name }}:${{ inputs.tt_smi_version }} ${{ inputs.image_name }}:latest
docker push ${{ inputs.image_name }}:latest
Loading
Loading