From 9f0f42c838ee3b3328f4b505cd2e8946e3965f38 Mon Sep 17 00:00:00 2001 From: "spur-release-bot[bot]" <300489632+spur-release-bot[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 12:06:12 +0000 Subject: [PATCH 1/2] chore(main): release 0.4.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 131 ++++++++++++++++++++++++++++++++++ Cargo.toml | 2 +- 3 files changed, 133 insertions(+), 2 deletions(-) create mode 100644 CHANGELOG.md diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 0ee8c01..2537c1f 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.3.0" + ".": "0.4.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..31dd3dd --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,131 @@ +# Changelog + +## [0.4.0](https://github.com/ROCm/spur/compare/v0.3.0...v0.4.0) (2026-07-08) + + +### Features + +* **admission:** token-based dynamic node admission ([#318](https://github.com/ROCm/spur/issues/318)) ([91ade8a](https://github.com/ROCm/spur/commit/91ade8aad42682d30862fd0ae5bb924481fed7db)) +* **e2e:** migrate K8s E2E to pytest and bundle CI test assets ([#247](https://github.com/ROCm/spur/issues/247)) ([9dc99b9](https://github.com/ROCm/spur/commit/9dc99b93df5eb03e30caf990583a5eb49797a99d)) +* **e2e:** migrate native-host E2E tests from Rust to Python/pytest ([#238](https://github.com/ROCm/spur/issues/238)) ([a9ef480](https://github.com/ROCm/spur/commit/a9ef480c6f1203538b5ac71123e37f0a185d2dd5)) +* **hooks:** implement Slurm-compatible prolog/epilog hook framework ([#219](https://github.com/ROCm/spur/issues/219)) ([84b7e78](https://github.com/ROCm/spur/commit/84b7e782acbcc2e9389062b9d0ff2a4c329d12fb)) +* **metrics:** add controller RPC handler statistics ([#350](https://github.com/ROCm/spur/issues/350)) ([4f080f7](https://github.com/ROCm/spur/commit/4f080f7d21e5944894039ab88faea80d341feb84)) +* **metrics:** add node metrics collection and /metrics/nodes export ([#237](https://github.com/ROCm/spur/issues/237)) ([7b74464](https://github.com/ROCm/spur/commit/7b744649ae5af9462ef3c34d2edf632646a82111)) +* **metrics:** export job OpenMetrics from spurctld on :6822 ([#217](https://github.com/ROCm/spur/issues/217)) ([6f939d7](https://github.com/ROCm/spur/commit/6f939d722bd04a98f8c02c49869db0b5e6468d44)) +* node labels and dual-path partition matching ([#276](https://github.com/ROCm/spur/issues/276)) ([7448e0e](https://github.com/ROCm/spur/commit/7448e0e988da4ffb2e8504b5be7feae8b1839a3d)) +* **reservations:** persist CRUD via raft WAL and enforce scheduling parity ([#385](https://github.com/ROCm/spur/issues/385)) ([285a098](https://github.com/ROCm/spur/commit/285a0981e3b7f935226d9655428c6229538ec218)) +* **scheduler:** implement event-driven scheduler wake ([#293](https://github.com/ROCm/spur/issues/293)) ([1358222](https://github.com/ROCm/spur/commit/1358222940c9df1a61bbc7453293453607ba0a7b)) +* **spur-cli:** add -w/--nodelist and -x/--exclude to srun and salloc ([#380](https://github.com/ROCm/spur/issues/380)) ([ac0e4c9](https://github.com/ROCm/spur/commit/ac0e4c93c5e1f61132da81c65cf92271cdca107e)) +* **spur-cli:** add sbatch --wrap for inline command submission ([#381](https://github.com/ROCm/spur/issues/381)) ([8d65736](https://github.com/ROCm/spur/commit/8d657363770bbe479f08c3cdd0525696b49de0b5)) +* **spur-client:** add client-side controller failover with endpoint rotation ([#384](https://github.com/ROCm/spur/issues/384)) ([2f3b9df](https://github.com/ROCm/spur/commit/2f3b9df84c973d68517fdb5da07115c488c42079)) +* **spur-cli:** read SBATCH_* env vars as sbatch flag defaults ([#374](https://github.com/ROCm/spur/issues/374)) ([c74166d](https://github.com/ROCm/spur/commit/c74166d32cbeb8100b03b72867c10c5e0bf9ec5f)) +* **spur-core:** add ALL/COUNT and proto-backed JobState and NodeState conversion ([03770de](https://github.com/ROCm/spur/commit/03770de34d0cda0725a702e62e147bd46787c128)) +* **spur-core:** centralize env vars with SpurEnv, add SLURM_* twins ([#311](https://github.com/ROCm/spur/issues/311)) ([64ddf60](https://github.com/ROCm/spur/commit/64ddf60dabd4bfb0b8963e95df43216e38c87694)) +* **spur-devices:** CDI-based vendor-agnostic GPU device management ([#262](https://github.com/ROCm/spur/issues/262)) ([d5c819e](https://github.com/ROCm/spur/commit/d5c819e0973e2a54a886661c41abc780640cbf69)) +* **spur-metrics:** add job metrics collection in spurctld ([40a3deb](https://github.com/ROCm/spur/commit/40a3deb85fbf34c57589e9cd057be87f73d1a0ac)) +* **spur-metrics:** add partition, job and more metrics ([#394](https://github.com/ROCm/spur/issues/394)) ([cf126da](https://github.com/ROCm/spur/commit/cf126da3d9662e2e63c63af06be351325bc51b46)) +* **spur-metrics:** add scheduler cycle and lifecycle statistics ([#359](https://github.com/ROCm/spur/issues/359)) ([a6e7cc0](https://github.com/ROCm/spur/commit/a6e7cc02d5a3d457673aa5f08ab3a02a121739c2)) +* **spur:** add burst-buffer staging subsystem with capacity pool and pending reasons ([#327](https://github.com/ROCm/spur/issues/327)) ([fca5df6](https://github.com/ROCm/spur/commit/fca5df60c6cf2b4859ac26f4a58242bc6ec3ebab)) +* **spur:** add Completing (CG) job state with per-node completion ([#234](https://github.com/ROCm/spur/issues/234)) ([7c0457c](https://github.com/ROCm/spur/commit/7c0457c1dcd02205da34b3d8895bbe7b42c446f6)) +* **spur:** add DEADLINE job state and DeadLine reason for --deadline parity ([#263](https://github.com/ROCm/spur/issues/263)) ([0c585bd](https://github.com/ROCm/spur/commit/0c585bdc92809435de58f1b51468a3bd027c6512)) +* **spur:** add job suspend/resume functionality ([#275](https://github.com/ROCm/spur/issues/275)) ([87977b1](https://github.com/ROCm/spur/commit/87977b10fb736da6a1f807bc2fb4ddd04745742e)) +* **spur:** add OUT_OF_MEMORY job state from cgroup OOM detection ([#310](https://github.com/ROCm/spur/issues/310)) ([9c1e146](https://github.com/ROCm/spur/commit/9c1e1465fb6f1ffab3c2b88acb7a2e1a47478188)) +* **spur:** close exit-code reporting gap — exit:signal, DerivedExitCode, reasons ([#274](https://github.com/ROCm/spur/issues/274)) ([3d89351](https://github.com/ROCm/spur/commit/3d893512318bea70c9db642b9359d079749afc36)) +* **spurctld:** enforce real QoS limits via controller-side QosCache ([#325](https://github.com/ROCm/spur/issues/325)) ([672ad43](https://github.com/ROCm/spur/commit/672ad4340526780f7de08bebcc06933ff700ddcd)) +* **spurctld:** serve REST API directly, remove standalone spurrestd ([#319](https://github.com/ROCm/spur/issues/319)) ([06215d2](https://github.com/ROCm/spur/commit/06215d24d83e28d7dbf54c361f3b610ad5911199)) +* **spurdbd:** persist exit_signal and derived_exit_code for sacct ([#324](https://github.com/ROCm/spur/issues/324)) ([8556358](https://github.com/ROCm/spur/commit/85563588e520525c6758bd046042ad26282bf677)) +* **spurdbd:** wire fairshare integration between accounting and scheduler ([8d1bcce](https://github.com/ROCm/spur/commit/8d1bcce90f4d8c02a69b4241e4f00d46dad173d9)) +* **spur:** emit PartitionConfig/PartitionInactive pending reasons ([#326](https://github.com/ROCm/spur/issues/326)) ([422925d](https://github.com/ROCm/spur/commit/422925db839f61f750a7de77717917f389d4fbe4)) +* **spur:** expand pending-reason vocabulary and surface reservation/license/QoS reasons ([#301](https://github.com/ROCm/spur/issues/301)) ([d5ecb3f](https://github.com/ROCm/spur/commit/d5ecb3fa13fe97afc9e3b8dd2f4f6e3d61fdf514)) +* **spur:** node deregistration, drain, and job eviction ([#354](https://github.com/ROCm/spur/issues/354)) ([8fab7a9](https://github.com/ROCm/spur/commit/8fab7a9ff4333b58c97231e57507084136e5d7ef)) +* use controller computed metrics in sdiag ([#332](https://github.com/ROCm/spur/issues/332)) ([5eac544](https://github.com/ROCm/spur/commit/5eac544540aa7f99e05e642358163092bb5ba45a)) + + +### Bug Fixes + +* **ci:** add node connectivity check and cross-node DNS injection ([61e632e](https://github.com/ROCm/spur/commit/61e632e362ea4ce54ef2feefd9b0163d4289f00e)) +* **ci:** add node connectivity check and cross-node DNS injection ([6e03055](https://github.com/ROCm/spur/commit/6e0305537c87f3a4da3dfbe47c8e3f6175a1ef16)) +* **ci:** add pre-cleanup step to native-host E2E workflow ([#330](https://github.com/ROCm/spur/issues/330)) ([cb65fda](https://github.com/ROCm/spur/commit/cb65fda76b941e117b4558a08e505f10cadc39e9)) +* **ci:** add statuses permission and clean up E2E status reporting ([8b96c89](https://github.com/ROCm/spur/commit/8b96c894f7efe1e69d00161ba0b55c6d2b92b23c)) +* **ci:** add statuses permission and clean up E2E status reporting ([7467851](https://github.com/ROCm/spur/commit/7467851bd51d4cb9611ad33f5a07b2bf9418c556)) +* **ci:** construct image tag directly instead of relying on job outputs ([1f34859](https://github.com/ROCm/spur/commit/1f348598feaaf24d98c2c4cfd01165723af8ed90)) +* **ci:** construct image tag directly instead of relying on job outputs ([5a7d032](https://github.com/ROCm/spur/commit/5a7d032260fdc5615b1dc591d399d266e8fbe4ec)) +* **ci:** harden Trivy scan workflow configuration ([#334](https://github.com/ROCm/spur/issues/334)) ([f51299c](https://github.com/ROCm/spur/commit/f51299c4c6f886aa1b47ba075ffa16325d6fc985)) +* **ci:** kill orphaned spur processes on BM nodes during cleanup ([e23f94f](https://github.com/ROCm/spur/commit/e23f94f264301904945d0f14974f0823db939c2b)) +* **ci:** kill orphaned spur processes on BM nodes during cleanup ([c74ebdf](https://github.com/ROCm/spur/commit/c74ebdfdbef4b8d9b64dd274ddd757a03cd66c79)) +* **ci:** move E2E assets to /tmp to prevent stale file contamination ([#264](https://github.com/ROCm/spur/issues/264)) ([a9ec2ce](https://github.com/ROCm/spur/commit/a9ec2ce7a694697e8da22961f6b1c661bfe48798)) +* **ci:** remove stray `--` from bare-metal test binary invocations ([f879421](https://github.com/ROCm/spur/commit/f87942196d9639c281b8cb0132dbc876f0fb098a)) +* **ci:** remove stray `--` from bare-metal test binary invocations ([7f8dc12](https://github.com/ROCm/spur/commit/7f8dc12dda39771865c4d34d1646d4dca3630e08)) +* **ci:** use recursive glob for Dockerfile pathspecs in license checks ([#249](https://github.com/ROCm/spur/issues/249)) ([5d5bdc6](https://github.com/ROCm/spur/commit/5d5bdc63a11bce180412b7db5d01cde9f30e73cc)) +* **ci:** use venv for Python E2E test deps ([#239](https://github.com/ROCm/spur/issues/239)) ([effe210](https://github.com/ROCm/spur/commit/effe2105cb8436ed024a603d755f1abfb40737b8)) +* **clippy:** replace sort_by with sort_by_key using Reverse ([fff918b](https://github.com/ROCm/spur/commit/fff918bac7f175a6c5fea24b5a2e1a3d63cb5fbe)) +* **deploy:** pin container tests to controller node and poll for remote inference output ([520dcf4](https://github.com/ROCm/spur/commit/520dcf49e96f68c699ed958c0b11c19057806570)) +* **deploy:** pin container tests to mi300 and poll for remote inference output ([1916712](https://github.com/ROCm/spur/commit/1916712534794ddf111adf54cd452c683c4d4fd2)) +* **deploy:** read log files instead of journalctl in cluster_test debug ([0e83613](https://github.com/ROCm/spur/commit/0e83613bba7dce4b2960d0ff8fec6bf60e07b637)) +* **deploy:** resolve releases without the GitHub API in install.sh ([#383](https://github.com/ROCm/spur/issues/383)) ([bc3ac1c](https://github.com/ROCm/spur/commit/bc3ac1c1c876802566a4d7994394f4dc10854dfa)) +* **deploy:** unpin container tests and poll for remote inference output ([ca3b3d5](https://github.com/ROCm/spur/commit/ca3b3d55009585a32b6fa5886216924322100e08)) +* **deploy:** upgrade runtime base to Ubuntu 24.04 and run as non-root ([#331](https://github.com/ROCm/spur/issues/331)) ([b76a80c](https://github.com/ROCm/spur/commit/b76a80c5fa54fae6f03b5d93fdaeae94678a03f7)) +* **deploy:** use correct field name for accounting host in K8s configmap ([d8511a1](https://github.com/ROCm/spur/commit/d8511a1a0b72a6d9c83f6ca7c5936579e44d285d)) +* **e2e:** resolve deploy paths via SPUR_DEPLOY_DIR ([#248](https://github.com/ROCm/spur/issues/248)) ([7a80263](https://github.com/ROCm/spur/commit/7a802632a8d3afab13599c52e57fc2d887364fc6)) +* **ffi:** allow not_unsafe_ptr_arg_deref on C FFI boundary functions ([ab4df8f](https://github.com/ROCm/spur/commit/ab4df8fc288c6deee0666d294718705eeed46f65)) +* **install:** avoid pipefail+SIGPIPE breaking glibc version check ([#266](https://github.com/ROCm/spur/issues/266)) ([beee80b](https://github.com/ROCm/spur/commit/beee80b58f46f60f07600dc1d4944bd677233c8f)) +* resolve dead code and unused import warnings across 9 crates ([#155](https://github.com/ROCm/spur/issues/155)) ([1364191](https://github.com/ROCm/spur/commit/1364191344626b6ce4d1a6591f99b3f62762b289)) +* resolve trivial clippy warnings across workspace ([9e1bc4e](https://github.com/ROCm/spur/commit/9e1bc4e9338554f4413b07f207619bf06e180b57)) +* Resolve working dir against rootfs in non-root container fallback ([fa017a2](https://github.com/ROCm/spur/commit/fa017a2811ba2b36e9303701dee5fbc07d30fdbd)) +* Resolve working dir against rootfs in non-root container fallback ([0f2c447](https://github.com/ROCm/spur/commit/0f2c44750c21b3286b15efaac6f90b45ce454738)) +* **sbatch:** CLI args override #SBATCH directives ([#144](https://github.com/ROCm/spur/issues/144)) ([8c152fa](https://github.com/ROCm/spur/commit/8c152fa6b65f518c116810c04338e34a00e2d82b)) +* **spur-cli:** log gRPC errors in try_stream_output polling loop ([c538602](https://github.com/ROCm/spur/commit/c538602a1adbd3430ff2a0844d1abd294dc26c43)) +* **spur-cli:** parse composite keys in sshare usage display ([71f444c](https://github.com/ROCm/spur/commit/71f444c3a4d678c97e8d2a056b9283a80f9fc83b)) +* **spur-cli:** replace useless vec! with array literals in sinfo tests ([383ae5e](https://github.com/ROCm/spur/commit/383ae5e12e8f34af5e4f122382c66e7b7e09f8df)) +* **spur-cli:** restore SIGPIPE default to prevent broken-pipe panic ([#370](https://github.com/ROCm/spur/issues/370)) ([fdeaf3a](https://github.com/ROCm/spur/commit/fdeaf3acc0a439eb675bbc2e1f3e095ba5554511)), closes [#365](https://github.com/ROCm/spur/issues/365) +* **spur-cli:** use .ok() instead of manual match in sbatch script read ([ce16236](https://github.com/ROCm/spur/commit/ce1623607e575c9651c2e9ef6ff53fafe17f16e6)) +* **spur-cli:** warn once on unrecognized job state in srun polling loops ([1b0aaea](https://github.com/ROCm/spur/commit/1b0aaeaa092ac5cf0e7e87863f385b27cccf19c6)) +* **spur-core:** box JobSpec in WalOperation::JobSubmit to fix large_enum_variant ([c73f67e](https://github.com/ROCm/spur/commit/c73f67e5327879b896934197ce858dde38cede57)) +* **spur-core:** derive Default for NodeSource instead of manual impl ([6adb88e](https://github.com/ROCm/spur/commit/6adb88e217430819e6b3ab33a43cc068d9d2e082)) +* **spur-core:** serialize hook tests to avoid ETXTBSY flakiness ([#265](https://github.com/ROCm/spur/issues/265)) ([c96fa5f](https://github.com/ROCm/spur/commit/c96fa5f479fbcc5c410c29524a81bc0afcca41af)) +* **spur-core:** set priority 0 for jobs submitted with hold flag ([4c6b047](https://github.com/ROCm/spur/commit/4c6b0477b5d97395acdc81d4ddc807d2cb450810)) +* **spur-k8s:** handle 409 AlreadyExists in launch_job as success ([e2c3f80](https://github.com/ROCm/spur/commit/e2c3f805deba19f71e3b5ebe719179da90b32c29)) +* **spur-k8s:** handle 409 AlreadyExists in launch_job as success ([0869c9e](https://github.com/ROCm/spur/commit/0869c9ef7c195c1fa7b733582ff05ad06179fbbd)) +* **spur-k8s:** use shorthand field init for labels in test helper ([762a3db](https://github.com/ROCm/spur/commit/762a3db7a51c7ba4ca30d9878b35056213944d50)) +* **spur-metrics:** use workspace publishable setting for the crate ([#216](https://github.com/ROCm/spur/issues/216)) ([0cd4a07](https://github.com/ROCm/spur/commit/0cd4a078fc28a7d3902d6763aa80eb5941a07e9d)) +* **spur-net:** collapse consecutive str::replace calls in sanitize_name ([9077939](https://github.com/ROCm/spur/commit/9077939de3f806c748cb694e0088e76d02d96512)) +* **spur-net:** replace is_some + unwrap with reference pattern matching in netrc parser ([db233d3](https://github.com/ROCm/spur/commit/db233d300b88ba0934431b3b07065f6e70bac68d)) +* **spur-sched:** iterate over map values directly in het group pre-check ([9164d2c](https://github.com/ROCm/spur/commit/9164d2c2fa8c50988921eb37f8330de20ffc1463)) +* **spur-tests:** remove unused imports and variables ([548d706](https://github.com/ROCm/spur/commit/548d706562e4e9dcc020a7d2149fdd27499ac34b)) +* **spur-tests:** remove unused imports and variables ([374344a](https://github.com/ROCm/spur/commit/374344a26e06f4b4a1cf5138ed1e1d60cb59590f)) +* **spur-tests:** replace useless vec! with array literals in test code ([d7db28a](https://github.com/ROCm/spur/commit/d7db28a842d1bea7dda106abebebf0771f386201)) +* **spur-update:** simplify boolean expression in semver test ([d9feef3](https://github.com/ROCm/spur/commit/d9feef3a5e52d0b4b3356e72be2db69679764bae)) +* **spurctld:** exclusive jobs allocate full node resources ([#150](https://github.com/ROCm/spur/issues/150)) ([e38005e](https://github.com/ROCm/spur/commit/e38005eadec14129bb65e0928dd380bb9424b9aa)) +* **spurctld:** free node resources on dispatch-failure requeue ([#137](https://github.com/ROCm/spur/issues/137)) ([41ffc57](https://github.com/ROCm/spur/commit/41ffc57a50e8b96f47fec053df1c64b2ef639c55)) +* **spurctld:** honor node filters and match Slurm pending reasons ([#402](https://github.com/ROCm/spur/issues/402)) ([100e23b](https://github.com/ROCm/spur/commit/100e23b5a1eb742ed6c3a56be3601db5c511998f)) +* **spurctld:** initialize next_job_id from first_job_id on cold start ([#371](https://github.com/ROCm/spur/issues/371)) ([ed610f4](https://github.com/ROCm/spur/commit/ed610f416af8003f71dc7a7c55207af3af23e05e)) +* **spurctld:** make preemption terminate and requeue jobs correctly ([#403](https://github.com/ROCm/spur/issues/403)) ([476b40a](https://github.com/ROCm/spur/commit/476b40ae3bdcf7121372fa518d48b21996b8aff4)) +* **spurctld:** persist last_purged to survive restart after log compaction ([#373](https://github.com/ROCm/spur/issues/373)) ([c2b23e9](https://github.com/ROCm/spur/commit/c2b23e966144a1b6cae612077f370a298ac71973)) +* **spurctld:** remove clone on Copy types in raft vote storage ([fe83d90](https://github.com/ROCm/spur/commit/fe83d9089c9d7329d3f7a5ec77728f476bace5aa)) +* **spurctld:** remove dead code and wire leader-forwarding fallback ([#156](https://github.com/ROCm/spur/issues/156)) ([c220cd8](https://github.com/ROCm/spur/commit/c220cd883c5cdbe917239e12f2797ec9758c53f0)) +* **spurctld:** replace redundant pattern matching with is_err() ([e8c7921](https://github.com/ROCm/spur/commit/e8c79213f597efead1de93116c27c20e8f6d270e)) +* **spurd:** Added controller info in log message ([#328](https://github.com/ROCm/spur/issues/328)) ([727af25](https://github.com/ROCm/spur/commit/727af25a34418d9e305e509f70f7c5a606a483c4)) +* **spurdbd:** cast SUM aggregates to BIGINT in get_usage query ([9546ec3](https://github.com/ROCm/spur/commit/9546ec30785b39f581eabe548cfac62bb794617b)) +* **spurdbd:** normalize fairshare weights and harden refresh loop ([91753d1](https://github.com/ROCm/spur/commit/91753d11212fdc3fed1813972447e1a25ba904d0)) +* **spurd:** improve container init error reporting ([ca1d0ad](https://github.com/ROCm/spur/commit/ca1d0ad3c7e9c44cf0df8eda7c9ca897923cd8e1)) +* **spurd:** improve container init error reporting ([d3cff08](https://github.com/ROCm/spur/commit/d3cff08fbd9ba773ee0115bfb2ea090072a7fe32)) +* **spurd:** non-root container uses container's dynamic loader ([#151](https://github.com/ROCm/spur/issues/151)) ([e2f9beb](https://github.com/ROCm/spur/commit/e2f9beb54f0963a3b0d47eed4b4a678a4b703c07)) +* **spurd:** prevent resource leak on force-kill cancel path ([46af47e](https://github.com/ROCm/spur/commit/46af47e138227c38f15ce68743847b5247c651a1)) +* **spurd:** prevent resource leak on force-kill cancel path ([2099ea5](https://github.com/ROCm/spur/commit/2099ea5820ebcccd116a5a769e4c7e142839cb32)) +* **spurd:** remove dead code and wire cgroup cleanup ([b96af21](https://github.com/ROCm/spur/commit/b96af2129cf5fb82cabeeb5894c40870247b5ba1)) +* **spurd:** remove dead code and wire cgroup cleanup ([178046e](https://github.com/ROCm/spur/commit/178046eaf9b83cf8937439a82e759a01c0359163)) +* **spurd:** resolve stdout/stderr paths after work_dir fallback ([#342](https://github.com/ROCm/spur/issues/342)) ([84ae6c1](https://github.com/ROCm/spur/commit/84ae6c150db54bbc91b13292a0990be78bfe1cd0)) +* **spurd:** search job user's personal image store during resolution ([#138](https://github.com/ROCm/spur/issues/138)) ([75f4b53](https://github.com/ROCm/spur/commit/75f4b5353f8912ae1cfb39cc94b36ee8d11b8eb0)) +* **spurd:** shell-escape argv when building job script ([#360](https://github.com/ROCm/spur/issues/360)) ([d78b1bb](https://github.com/ROCm/spur/commit/d78b1bb80a3041a2fa18cdccd4f97c6b75b639c4)) +* **spurd:** use touch for file bind mounts and auto-mount DNS files i… ([#142](https://github.com/ROCm/spur/issues/142)) ([c2ce3ef](https://github.com/ROCm/spur/commit/c2ce3ef09029c841bae5f2888a62ea278b461042)) +* **spur:** resolve dependency-engine gaps against array parents ([#271](https://github.com/ROCm/spur/issues/271)) ([f65a029](https://github.com/ROCm/spur/commit/f65a02939710df571a1a880ff7777af8f6e41967)) +* **spur:** resolve semantic merge conflict between [#262](https://github.com/ROCm/spur/issues/262) and [#263](https://github.com/ROCm/spur/issues/263) ([#272](https://github.com/ROCm/spur/issues/272)) ([5781872](https://github.com/ROCm/spur/commit/5781872920935f38b9b9c9734bbaefb29d9a6fb3)) +* **srun:** step dispatch routes to allocated node, not controller ([#153](https://github.com/ROCm/spur/issues/153)) ([bfa1c07](https://github.com/ROCm/spur/commit/bfa1c07c4b6eb3441c8e6a586f81e92d44a44cc9)) + + +### Performance + +* **deploy:** use cargo-chef to cache dependency builds in Docker ([af96542](https://github.com/ROCm/spur/commit/af9654277b68328beda03649467b3d4ee5849588)) +* **spur-sched:** speed up backfill timeline queries ([#348](https://github.com/ROCm/spur/issues/348)) ([c7f56e4](https://github.com/ROCm/spur/commit/c7f56e45b0cebd8f36f4a0d955188ad00b10a07f)) +* **spur-tests:** skip GPU venv provisioning when pre-existing venv available ([efdeafc](https://github.com/ROCm/spur/commit/efdeafc8db433bfc475c315059596135c2943cc3)) +* **spur-tests:** skip GPU venv provisioning when pre-existing venv available ([0dc1f7a](https://github.com/ROCm/spur/commit/0dc1f7aed6178e57ba4527baa40840825f222018)) diff --git a/Cargo.toml b/Cargo.toml index dfe17af..46788c0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ members = [ ] [workspace.package] -version = "0.3.0" +version = "0.4.0" edition = "2021" license = "Apache-2.0" publish = false From 5d536f148adb467988fc2175656277db5756fe82 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 12:06:28 +0000 Subject: [PATCH 2/2] chore: sync Cargo.lock --- Cargo.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4fdb05f..264dbf1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3453,7 +3453,7 @@ dependencies = [ [[package]] name = "spur-cli" -version = "0.3.0" +version = "0.4.0" dependencies = [ "anyhow", "chrono", @@ -3480,7 +3480,7 @@ dependencies = [ [[package]] name = "spur-client" -version = "0.3.0" +version = "0.4.0" dependencies = [ "tokio", "tokio-stream", @@ -3491,7 +3491,7 @@ dependencies = [ [[package]] name = "spur-core" -version = "0.3.0" +version = "0.4.0" dependencies = [ "anyhow", "chrono", @@ -3517,7 +3517,7 @@ dependencies = [ [[package]] name = "spur-devices" -version = "0.3.0" +version = "0.4.0" dependencies = [ "anyhow", "nix", @@ -3533,7 +3533,7 @@ dependencies = [ [[package]] name = "spur-ffi" -version = "0.3.0" +version = "0.4.0" dependencies = [ "prost-types", "spur-client", @@ -3545,7 +3545,7 @@ dependencies = [ [[package]] name = "spur-k8s" -version = "0.3.0" +version = "0.4.0" dependencies = [ "anyhow", "axum", @@ -3572,7 +3572,7 @@ dependencies = [ [[package]] name = "spur-metrics" -version = "0.3.0" +version = "0.4.0" dependencies = [ "chrono", "prometheus-client", @@ -3581,7 +3581,7 @@ dependencies = [ [[package]] name = "spur-net" -version = "0.3.0" +version = "0.4.0" dependencies = [ "anyhow", "base64", @@ -3599,7 +3599,7 @@ dependencies = [ [[package]] name = "spur-proto" -version = "0.3.0" +version = "0.4.0" dependencies = [ "prost", "prost-types", @@ -3610,7 +3610,7 @@ dependencies = [ [[package]] name = "spur-sched" -version = "0.3.0" +version = "0.4.0" dependencies = [ "chrono", "spur-core", @@ -3619,7 +3619,7 @@ dependencies = [ [[package]] name = "spur-spank" -version = "0.3.0" +version = "0.4.0" dependencies = [ "anyhow", "libloading", @@ -3630,7 +3630,7 @@ dependencies = [ [[package]] name = "spur-tests" -version = "0.3.0" +version = "0.4.0" dependencies = [ "anyhow", "assert_cmd", @@ -3655,7 +3655,7 @@ dependencies = [ [[package]] name = "spur-update" -version = "0.3.0" +version = "0.4.0" dependencies = [ "anyhow", "chrono", @@ -3672,7 +3672,7 @@ dependencies = [ [[package]] name = "spurctld" -version = "0.3.0" +version = "0.4.0" dependencies = [ "anyhow", "axum", @@ -3704,7 +3704,7 @@ dependencies = [ [[package]] name = "spurd" -version = "0.3.0" +version = "0.4.0" dependencies = [ "anyhow", "chrono",