Context
v0.2.1 introduced a hard pin in Cargo.toml:
elliptic-curve = "=0.14.0-rc.30"
This pin is necessary because russh 0.60 depends on p256/p384/p521-0.14.0-rc.8, which do NOT implement the MulVartime and MulByGeneratorVartime trait bounds introduced in elliptic-curve-0.14.0-rc.31. Without the pin, cargo install ssh-cli from a fresh environment fails with E0277 compile errors (see release notes for v0.2.1).
When to Remove This Pin
Remove the pin when both conditions are met:
russh releases a new version (likely 0.61+) that depends on p256/p384/p521 >= 0.14.0-rc.31 (or stable 0.14.0), which implement the new trait bounds.
cargo install ssh-cli from a clean environment still passes after removing the pin (validated via the install-simulation CI job).
Verification Steps
- Upgrade
russh version in Cargo.toml.
- Remove line
elliptic-curve = "=0.14.0-rc.30" and its explanatory comments.
- Run
rm Cargo.lock && cargo build --all-features locally to confirm resolver picks up compatible versions.
- Run the
install-simulation job in CI.
- Run
cargo install --path . from scratch.
References
Priority
Low (technical debt). The pin is stable and does not block current users; it just prevents future upgrades from being smooth.
Context
v0.2.1 introduced a hard pin in
Cargo.toml:This pin is necessary because russh 0.60 depends on
p256/p384/p521-0.14.0-rc.8, which do NOT implement theMulVartimeandMulByGeneratorVartimetrait bounds introduced inelliptic-curve-0.14.0-rc.31. Without the pin,cargo install ssh-clifrom a fresh environment fails with E0277 compile errors (see release notes for v0.2.1).When to Remove This Pin
Remove the pin when both conditions are met:
russhreleases a new version (likely 0.61+) that depends onp256/p384/p521 >= 0.14.0-rc.31(or stable 0.14.0), which implement the new trait bounds.cargo install ssh-clifrom a clean environment still passes after removing the pin (validated via theinstall-simulationCI job).Verification Steps
russhversion inCargo.toml.elliptic-curve = "=0.14.0-rc.30"and its explanatory comments.rm Cargo.lock && cargo build --all-featureslocally to confirm resolver picks up compatible versions.install-simulationjob in CI.cargo install --path .from scratch.References
Priority
Low (technical debt). The pin is stable and does not block current users; it just prevents future upgrades from being smooth.