build(deps): bump ort to 2.0.0-rc.13, centralise the CUDA provider - #177
Merged
Conversation
Supersedes #167. rc.13 moved the execution provider: `ort::execution_providers::CUDAExecutionProvider` is now `ort::ep::CUDA`, with the same `.build()` and `with_execution_providers` around it. A rename, not a behaviour change. It broke two files at once, so the construction now lives in one place (`escapepod-demux/src/ort_ep.rs`) and the next RC rename is a one-line change. `ort` is pre-release and has done this before; it will do it again. Keeping the `=` pin. It is not the fragility, it is the mitigation: without it, Cargo's pre-release matching lets `^2.0.0-rc.12` resolve to rc.13 on any lockfile refresh, so the build would have broken unprompted rather than when someone chose to bump. There is no stable 2.0 to move to — rc.13 is the newest published version. The exposure is real but contained: `ort` is optional and reached only through the `cnn-gpu` / `crf-gpu` features, neither of which is in the default build, so the CPU path (tract) is unaffected. Verified with `--features cnn-gpu,crf-gpu`: check clean, fmt clean, clippy adds no new warnings. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Supersedes #167.
rc.13 moved the execution provider:
ort::execution_providers::CUDAExecutionProvider→ort::ep::CUDA, with the same.build()and the samewith_execution_providersaround it. A rename, not a behaviour change — but it broke two files at once, so the construction now lives in one place (escapepod-demux/src/ort_ep.rs) and the next RC rename is a one-line fix.On the
=pinWorth stating explicitly, because it looks like the fragile part and is actually the opposite.
Keeping
= 2.0.0-rc.13. Without the=, Cargo's pre-release matching lets^2.0.0-rc.12resolve to rc.13 on any lockfile refresh — so this break would have arrived unprompted rather than when someone chose to bump. The pin is what makes it a decision.There is no stable 2.0 to move to. rc.13 is the newest published version of the crate;
orthas been in RC throughout. So a semver range would not buy protection here, it would only remove the one guard we have.The exposure is contained.
ortis optional and reached only through thecnn-gpu/crf-gpufeatures, neither of which is in the defaultclibuild. The CPU inference path is tract and is unaffected, so anortbreak never reaches a default build or a released binary.The residual cost is that every RC bump needs a look. Centralising the provider construction makes that look cheap; the alternative — an unpinned range on a pre-release crate — makes it arrive at random times instead.
Verification
--features cnn-gpu,crf-gpu:cargo checkclean,cargo fmt --checkclean, clippy adds no new warnings.Note
cargo test --workspace --all-featureshas a pre-existing flake unrelated to this change:demux::models::cache_dir_precedencemutates process-global env vars while cargo runs tests in parallel, so it races. It passes serially and on unmodifiedmainin isolation. Fixed separately so this bump stays revertable on its own.🤖 Generated with Claude Code