You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This can lead to build failures from a seemingly innocuous cargo update:
error[E0308]: mismatched types
--> ffi\src\external_net.rs:44:24
|
44 | sockaddr_out.write(sockaddr.as_storage());
| ----- ^^^^^^^^^^^^^^^^^^^^^ expected `SOCKADDR_STORAGE`, found a different `SOCKADDR_STORAGE`
| |
| arguments to this method are incorrect
|
= note: `SOCKADDR_STORAGE` and `SOCKADDR_STORAGE` have similar names, but are actually distinct types
note: `SOCKADDR_STORAGE` is defined in crate `windows_sys`
--> C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\windows-sys-0.52.0\src\Windows\Win32\Networking\WinSock\mod.rs:5109:1
|
5109 | pub struct SOCKADDR_STORAGE {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `SOCKADDR_STORAGE` is defined in crate `windows_sys`
--> C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\windows-sys-0.48.0\src\Windows\Win32\Networking\WinSock\mod.rs:6988:1
|
6988 | pub struct SOCKADDR_STORAGE {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: method defined here
--> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9\library\core\src\ptr\mut_ptr.rs:1586:25
0.5.6 should have been released as 0.6.0.
Resolution
If this reexport is semver-exempt, it needs to be clarified in the documentation. Users need to be advised to pin the socket2 version.
If this reexport is not semver-exempt, the windows-sys dependency should be marked with a warning in Cargo.toml not to bump it in a patch release.
We've already worked around the breakage, so I don't really care what happens to the released version.
The text was updated successfully, but these errors were encountered:
socket2 0.5.5
depends onwindows-sys 0.48
socket2 0.5.6, 0.5.7
depend onwindows-sys 0.52
This is a breaking change because
windows_sys::Win32::Networking::WinSock::SOCKADDR_STORAGE
is reexported as thesockaddr_storage
type, making it a part of the public API: https://github.com/rust-lang/socket2/blob/master/src/sys/windows.rs#L63This can lead to build failures from a seemingly innocuous
cargo update
:0.5.6
should have been released as0.6.0
.Resolution
socket2
version.windows-sys
dependency should be marked with a warning inCargo.toml
not to bump it in a patch release.We've already worked around the breakage, so I don't really care what happens to the released version.
The text was updated successfully, but these errors were encountered: