philpax opened issue #4936:
Steps to Reproduce
- Update to a Rust nightly after the 27th of July
- Attempt to build
wasmtime-wasi
Expected Results
The build completes successfully.
Actual Results
The build fails as the version of
cap-std
in use uses sealed traits in the Rust stdlib:--> C:\Users\me\.cargo\registry\src\github.com-1ecc6299db9ec823\cap-primitives-0.25.3\src\fs \file_type.rs:134:6 | 134 | impl std::os::windows::fs::FileTypeExt for FileType { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::sealed::Sealed` is not implemented for `file_type::FileType` | = help: the following other types implement trait `std::sealed::Sealed`: Child Command ExitCode ExitStatus ExitStatusError OsStr OsString Simd<f32, N> and 2 others note: required by a bound in `std::os::windows::fs::FileTypeExt`
Versions and Environment
Wasmtime version or commit: 1.0.0
Operating system: Windows 10
Architecture: x86-64
Extra Info
This is caused by https://github.com/bytecodealliance/cap-std/issues/270, which has been fixed up by upstream
cap-std
. A v0.26.0-patch1 has been released that includes this fix, but it may be worth waiting for the 1.0.0? (not sure what y'all are planning internally.)Prior to this, I was using wasmtime 0.39.1 with these patches:
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "sunfishcode/file-type-ext" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "sunfishcode/file-type-ext" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "sunfishcode/file-type-ext" }
As wasmtime 1.0.0 depends on 0.25.3 specifically, I can no longer manually patch the relevant packages as there's no version of 0.25.3 with this fix on the Git repository, and (as far as I can tell, it's still a little mysterious to me) there's no way to patch with another version from crates.io (I'd patch with 1.0.0rc1 if it was possible)
This is currently blocking us from updating to 1.0.0; 0.39.1 still works fine, but would love to get in today's release hype :rocket:
philpax labeled issue #4936:
Steps to Reproduce
- Update to a Rust nightly after the 27th of July
- Attempt to build
wasmtime-wasi
Expected Results
The build completes successfully.
Actual Results
The build fails as the version of
cap-std
in use uses sealed traits in the Rust stdlib:--> C:\Users\me\.cargo\registry\src\github.com-1ecc6299db9ec823\cap-primitives-0.25.3\src\fs \file_type.rs:134:6 | 134 | impl std::os::windows::fs::FileTypeExt for FileType { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::sealed::Sealed` is not implemented for `file_type::FileType` | = help: the following other types implement trait `std::sealed::Sealed`: Child Command ExitCode ExitStatus ExitStatusError OsStr OsString Simd<f32, N> and 2 others note: required by a bound in `std::os::windows::fs::FileTypeExt`
Versions and Environment
Wasmtime version or commit: 1.0.0
Operating system: Windows 10
Architecture: x86-64
Extra Info
This is caused by https://github.com/bytecodealliance/cap-std/issues/270, which has been fixed up by upstream
cap-std
. A v0.26.0-patch1 has been released that includes this fix, but it may be worth waiting for the 1.0.0? (not sure what y'all are planning internally.)Prior to this, I was using wasmtime 0.39.1 with these patches:
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "sunfishcode/file-type-ext" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "sunfishcode/file-type-ext" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "sunfishcode/file-type-ext" }
As wasmtime 1.0.0 depends on 0.25.3 specifically, I can no longer manually patch the relevant packages as there's no version of 0.25.3 with this fix on the Git repository, and (as far as I can tell, it's still a little mysterious to me) there's no way to patch with another version from crates.io (I'd patch with 1.0.0rc1 if it was possible)
This is currently blocking us from updating to 1.0.0; 0.39.1 still works fine, but would love to get in today's release hype :rocket:
sunfishcode commented on issue #4936:
I think it makes sense to do a cap-std 0.26 release, with the fix, and update wasmtime to use that. I've now filed https://github.com/bytecodealliance/cap-std/issues/275 with more info.
philpax commented on issue #4936:
Seems reasonable - thank you for the speedy response! :heart:️
alexcrichton closed issue #4936:
Steps to Reproduce
- Update to a Rust nightly after the 27th of July
- Attempt to build
wasmtime-wasi
Expected Results
The build completes successfully.
Actual Results
The build fails as the version of
cap-std
in use uses sealed traits in the Rust stdlib:--> C:\Users\me\.cargo\registry\src\github.com-1ecc6299db9ec823\cap-primitives-0.25.3\src\fs \file_type.rs:134:6 | 134 | impl std::os::windows::fs::FileTypeExt for FileType { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::sealed::Sealed` is not implemented for `file_type::FileType` | = help: the following other types implement trait `std::sealed::Sealed`: Child Command ExitCode ExitStatus ExitStatusError OsStr OsString Simd<f32, N> and 2 others note: required by a bound in `std::os::windows::fs::FileTypeExt`
Versions and Environment
Wasmtime version or commit: 1.0.0
Operating system: Windows 10
Architecture: x86-64
Extra Info
This is caused by https://github.com/bytecodealliance/cap-std/issues/270, which has been fixed up by upstream
cap-std
. A v0.26.0-patch1 has been released that includes this fix, but it may be worth waiting for the 1.0.0? (not sure what y'all are planning internally.)Prior to this, I was using wasmtime 0.39.1 with these patches:
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "sunfishcode/file-type-ext" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "sunfishcode/file-type-ext" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "sunfishcode/file-type-ext" }
As wasmtime 1.0.0 depends on 0.25.3 specifically, I can no longer manually patch the relevant packages as there's no version of 0.25.3 with this fix on the Git repository, and (as far as I can tell, it's still a little mysterious to me) there's no way to patch with another version from crates.io (I'd patch with 1.0.0rc1 if it was possible)
This is currently blocking us from updating to 1.0.0; 0.39.1 still works fine, but would love to get in today's release hype :rocket:
philpax commented on issue #4936:
Aye, that's what I suspected - but is it possible to backport this under the bugfix policy? As far as I can tell, this is the only thing blocking us from updating to 1.0.
pchickey commented on issue #4936:
In my judgement, failing to build under Nightly doesn't meet the bar of "on-by-default behavior", though the RFC itself doesn't make that explicit. Nightly builds tend to break pretty often (once a month? more?) and it would be burdensome if we did a point release for all of them. Sorry to be the person to say no.
sunfishcode commented on issue #4936:
@philpax One workaround would be to pin to a nightly Rust version from before https://github.com/rust-lang/rust/pull/98583 landed.
Another workaround: If you'd like, I could create git branches of cap-std which have the fix and have a 0.25.3 version number. I can't publish those to crates.io because the fix is semver-incompatible with 0.25, but since you mentioned using
git =
dependencies above, if you could use agit =
dependency on such a branch, that would be another workaround. Would that be helpful?Also, part of the Wasmtime 1.0 announcement is that Wasmtime has a monthly release cadence, so in a month, we'll have a new release with the actual fix in it.
philpax commented on issue #4936:
In my judgement, failing to build under Nightly doesn't meet the bar of "on-by-default behavior", though the RFC itself doesn't make that explicit. Nightly builds tend to break pretty often (once a month? more?) and it would be burdensome if we did a point release for all of them. Sorry to be the person to say no.
Understandable, I'll make it work.
One workaround would be to pin to a nightly Rust version from before https://github.com/rust-lang/rust/pull/98583 landed.
Aye - unfortunately, we're using changes from after that nightly, so we're tied to it.
Another workaround: If you'd like, I could create git branches of cap-std which have the fix and have a 0.25.3 version number. I can't publish those to crates.io because the fix is semver-incompatible with 0.25, but since you mentioned using git = dependencies above, if you could use a git = dependency on such a branch, that would be another workaround. Would that be helpful?
That would be fantastic if possible! I'm more than happy to use a Git patch - that should resolve the issue for me until we can use 2.0.0 :smile:
sunfishcode commented on issue #4936:
Ok, I've now created a 0.26-with-a-0.25-version-number branch, which is the 0.26 branch with one patch applied, to change the version number to 0.25.4-backport0. Let me know if that doesn't work!
philpax commented on issue #4936:
Thanks! Unfortunately, it appears Cargo is intensely picky about how it decides to pick minor versions for patches, and will refuse to update
0.25.3
to0.25.4-backport0
(but _will_ update0.25.3
to0.25.4
, which I validated by making that change to your branch locally)I'm wrapping up my week, so I'm in no particular hurry for a fix. Based on my experimentation, I think you would have to drop the
-backport0
to make Cargo consider it as a viable candidate as a patch.I don't want to take up too much of your time / make things too confusing on your end, so I'm happy to just maintain a
0.25.4
-versioned fork ofcap-std
under our org for the next month (esp as you've shown that 0.26 is 0.25-compatible for wasmtime). Does that work for you?
sunfishcode commented on issue #4936:
Ah, I just added -backport0 because I thought it'd be helpful, but it isn't necessary. I added a patch to the branch to change the version to 0.25.5. Does that work? I'm happy to make minor tweaks if that's all that's needed. But also yeah, you can certainly maintain your own branch too if that's easier.
pinkforest commented on issue #4936:
Yeah our is picking up 0.25.2 - I went down the :hole: https://github.com/bytecodealliance/cap-std/issues/270#issuecomment-1257176470
│ │ │ ├── wasi-common v0.40.0 │ │ │ │ ├── cap-rand v0.25.2 │ │ │ │ ├── cap-std v0.25.2 │ │ │ │ │ ├── cap-primitives v0.25.2
It needs to be same version in git.. e.g. branch / tag can be different but the Cargo.toml manifest has to be the same
pinkforest edited a comment on issue #4936:
Yeah our is picking up 0.25.2 - I went down the :hole: https://github.com/bytecodealliance/cap-std/issues/270#issuecomment-1257176470
│ │ │ ├── wasi-common v0.40.0 │ │ │ │ ├── cap-rand v0.25.2 │ │ │ │ ├── cap-std v0.25.2 │ │ │ │ │ ├── cap-primitives v0.25.2
It needs to be same version in git.. e.g. branch / tag can be different but the Cargo.toml manifest has to be the same for Cargo to accept the crates.io patch
pinkforest edited a comment on issue #4936:
Yeah our is picking up 0.25.2 - I went down the :hole: https://github.com/bytecodealliance/cap-std/issues/270#issuecomment-1257176470
│ │ │ ├── wasi-common v0.40.0 │ │ │ │ ├── cap-rand v0.25.2 │ │ │ │ ├── cap-std v0.25.2 │ │ │ │ │ ├── cap-primitives v0.25.2
Cargo.toml manifest version field needs to be same version in git..
e.g. branch / tag name can be different but the Cargo.toml manifest in the tag has to be the same for Cargo to accept the crates.io patch
pinkforest edited a comment on issue #4936:
Yeah our is picking up 0.25.2 - I went down the :hole: https://github.com/bytecodealliance/cap-std/issues/270#issuecomment-1257176470
│ │ │ ├── wasi-common v0.40.0 │ │ │ │ ├── cap-rand v0.25.2 │ │ │ │ ├── cap-std v0.25.2 │ │ │ │ │ ├── cap-primitives v0.25.2
For the patch approach to work
Cargo.toml manifest version field needs to be same version in git..
e.g. branch / tag name can be different but the Cargo.toml manifest in the tag has to be the same for Cargo to accept the crates.io patch
pinkforest edited a comment on issue #4936:
Yeah our is picking up 0.25.2 - I went down the :hole: https://github.com/bytecodealliance/cap-std/issues/270#issuecomment-1257176470
│ │ │ ├── wasi-common v0.40.0 │ │ │ │ ├── cap-rand v0.25.2 │ │ │ │ ├── cap-std v0.25.2 │ │ │ │ │ ├── cap-primitives v0.25.2
For the patch approach to work
Cargo.toml manifest version field needs to be same version in git..
e.g. branch / tag name can be different but the Cargo.toml manifest in the tag has to be the same for Cargo to accept the crates.io patch
If we can update the branch Cargo.toml version then that would work
pinkforest edited a comment on issue #4936:
Yeah our is picking up 0.25.2 - I went down the :hole: https://github.com/bytecodealliance/cap-std/issues/270#issuecomment-1257176470
│ │ │ ├── wasi-common v0.40.0 │ │ │ │ ├── cap-rand v0.25.2 │ │ │ │ ├── cap-std v0.25.2 │ │ │ │ │ ├── cap-primitives v0.25.2
For the patch approach to work
EDIT: Just saw it was done already :partying_face:
Cargo.toml manifest version field needs to be same version in git..
e.g. branch / tag name can be different but the Cargo.toml manifest in the tag has to be the same for Cargo to accept the crates.io patch
If we can update the branch Cargo.toml version then that would work
pinkforest commented on issue #4936:
Also Cargo.lock gets now updated via that branch.. thanks !
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
pinkforest edited a comment on issue #4936:
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
pinkforest edited a comment on issue #4936:
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required - see warnings whether they were used in graph or not
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
pinkforest edited a comment on issue #4936:
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required - see warnings whether they were used in graph or not
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
For anyone curious I ended up having an adventure in Rust std first: https://github.com/rust-lang/rust/issues/102260
I'm tracking this here for lunatic: https://github.com/lunatic-solutions/lunatic/issues/136
pinkforest edited a comment on issue #4936:
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required - see warnings whether they were used in graph or not
Also NOTE: You need to absolutely gate this feature over 1.64.0 and for Windows - Otherwise it will break all builds on < 1.64.0
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
For anyone curious I ended up having an adventure in Rust std first: https://github.com/rust-lang/rust/issues/102260
I'm tracking this here for lunatic: https://github.com/lunatic-solutions/lunatic/issues/136
pinkforest edited a comment on issue #4936:
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required - see warnings whether they were used in graph or not
Also NOTE: You need to absolutely gate this patch over 1.64.0 and for Windows - Otherwise it will break all builds on < 1.64.0
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
For anyone curious I ended up having an adventure in Rust std first: https://github.com/rust-lang/rust/issues/102260
I'm tracking this here for lunatic: https://github.com/lunatic-solutions/lunatic/issues/136
pinkforest edited a comment on issue #4936:
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required - see warnings whether they were used in graph or not
NOTE: You need to absolutely gate this patch on >= 1.64.0 and for Windows - Otherwise it will break all builds on < 1.64.0
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
For anyone curious I ended up having an adventure in Rust std first: https://github.com/rust-lang/rust/issues/102260
I'm tracking this here for lunatic: https://github.com/lunatic-solutions/lunatic/issues/136
pinkforest edited a comment on issue #4936:
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required - see warnings whether they were used in graph or not
NOTE: Need to absolutely gate this patch on >= 1.64.0 and for Windows - Otherwise it will break all builds on < 1.64.0
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
For anyone curious I ended up having an adventure in Rust std first: https://github.com/rust-lang/rust/issues/102260
I'm tracking this here for lunatic: https://github.com/lunatic-solutions/lunatic/issues/136
pinkforest edited a comment on issue #4936:
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required - see warnings whether they were used in graph or not
NOTE: Need to gate this patch on >= 1.64.0 and for Windows - Otherwise it will break all builds on < 1.64.0
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
For anyone curious I ended up having an adventure in Rust std first: https://github.com/rust-lang/rust/issues/102260
I'm tracking this here for lunatic: https://github.com/lunatic-solutions/lunatic/issues/136
pinkforest edited a comment on issue #4936:
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required - see warnings whether they were used in graph or not
NOTE: Need to gate this patch on >= 1.64.0 and for Windows - Otherwise it will break all other builds on < 1.64.0
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
For anyone curious I ended up having an adventure in Rust std first: https://github.com/rust-lang/rust/issues/102260
I'm tracking this here for lunatic: https://github.com/lunatic-solutions/lunatic/issues/136
pinkforest edited a comment on issue #4936:
Yeah our is picking up 0.25.2 - I went down the :hole: https://github.com/bytecodealliance/cap-std/issues/270#issuecomment-1257176470
│ │ │ ├── wasi-common v0.40.0 │ │ │ │ ├── cap-rand v0.25.2 │ │ │ │ ├── cap-std v0.25.2 │ │ │ │ │ ├── cap-primitives v0.25.2
For the patch approach to work
EDIT: Just saw it was done already :partying_face:
EDIT.2: Now need to gate this patch to only Windows and >= 1.64.0 as otherwise it breaks < 1.64.0
Cargo.toml manifest version field needs to be same version in git..
e.g. branch / tag name can be different but the Cargo.toml manifest in the tag has to be the same for Cargo to accept the crates.io patch
If we can update the branch Cargo.toml version then that would work
pinkforest commented on issue #4936:
I need to send a patch to make sure it gets gated in the patch branch
pinkforest commented on issue #4936:
The patch breaks on < 1.64.0
error[E0277]: the trait bound `cap_primitives::fs::FileType: std::os::unix::fs::FileTypeExt` is not satisfied --> /home/foobar/.cargo/registry/src/github.com-1ecc6299db9ec823/cap-fs-ext-0.25.2/src/file_type_ext.rs:70:57 | 70 | std::os::unix::fs::FileTypeExt::is_block_device(self) | ----------------------------------------------- ^^^^ the trait `std::os::unix::fs::FileTypeExt` is not implemented for `cap_primitives::fs::FileType` | | | required by a bound introduced by this call | = help: the trait `std::os::unix::fs::FileTypeExt` is implemented for `std::fs::FileType` error[E0277]: the trait bound `cap_primitives::fs::FileType: std::os::unix::fs::FileTypeExt` is not satisfied --> /home/foobar/.cargo/registry/src/github.com-1ecc6299db9ec823/cap-fs-ext-0.25.2/src/file_type_ext.rs:75:56 | 75 | std::os::unix::fs::FileTypeExt::is_char_device(self) | ---------------------------------------------- ^^^^ the trait `std::os::unix::fs::FileTypeExt` is not implemented for `cap_primitives::fs::FileType` | | | required by a bound introduced by this call | = help: the trait `std::os::unix::fs::FileTypeExt` is implemented for `std::fs::FileType` error[E0277]: the trait bound `cap_primitives::fs::FileType: std::os::unix::fs::FileTypeExt` is not satisfied --> /home/foobar/.cargo/registry/src/github.com-1ecc6299db9ec823/cap-fs-ext-0.25.2/src/file_type_ext.rs:80:49 | 80 | std::os::unix::fs::FileTypeExt::is_fifo(self) | --------------------------------------- ^^^^ the trait `std::os::unix::fs::FileTypeExt` is not implemented for `cap_primitives::fs::FileType` | | | required by a bound introduced by this call | = help: the trait `std::os::unix::fs::FileTypeExt` is implemented for `std::fs::FileType` error[E0277]: the trait bound `cap_primitives::fs::FileType: std::os::unix::fs::FileTypeExt` is not satisfied --> /home/foobar/.cargo/registry/src/github.com-1ecc6299db9ec823/cap-fs-ext-0.25.2/src/file_type_ext.rs:85:51 | 85 | std::os::unix::fs::FileTypeExt::is_socket(self) | ----------------------------------------- ^^^^ the trait `std::os::unix::fs::FileTypeExt` is not implemented for `cap_primitives::fs::FileType` | | | required by a bound introduced by this call | = help: the trait `std::os::unix::fs::FileTypeExt` is implemented for `std::fs::FileType` For more information about this error, try `rustc --explain E0277`.
pinkforest deleted a comment on issue #4936:
I need to send a patch to make sure it gets gated in the patch branch
pinkforest deleted a comment on issue #4936:
The patch breaks on < 1.64.0
error[E0277]: the trait bound `cap_primitives::fs::FileType: std::os::unix::fs::FileTypeExt` is not satisfied --> /home/foobar/.cargo/registry/src/github.com-1ecc6299db9ec823/cap-fs-ext-0.25.2/src/file_type_ext.rs:70:57 | 70 | std::os::unix::fs::FileTypeExt::is_block_device(self) | ----------------------------------------------- ^^^^ the trait `std::os::unix::fs::FileTypeExt` is not implemented for `cap_primitives::fs::FileType` | | | required by a bound introduced by this call | = help: the trait `std::os::unix::fs::FileTypeExt` is implemented for `std::fs::FileType` error[E0277]: the trait bound `cap_primitives::fs::FileType: std::os::unix::fs::FileTypeExt` is not satisfied --> /home/foobar/.cargo/registry/src/github.com-1ecc6299db9ec823/cap-fs-ext-0.25.2/src/file_type_ext.rs:75:56 | 75 | std::os::unix::fs::FileTypeExt::is_char_device(self) | ---------------------------------------------- ^^^^ the trait `std::os::unix::fs::FileTypeExt` is not implemented for `cap_primitives::fs::FileType` | | | required by a bound introduced by this call | = help: the trait `std::os::unix::fs::FileTypeExt` is implemented for `std::fs::FileType` error[E0277]: the trait bound `cap_primitives::fs::FileType: std::os::unix::fs::FileTypeExt` is not satisfied --> /home/foobar/.cargo/registry/src/github.com-1ecc6299db9ec823/cap-fs-ext-0.25.2/src/file_type_ext.rs:80:49 | 80 | std::os::unix::fs::FileTypeExt::is_fifo(self) | --------------------------------------- ^^^^ the trait `std::os::unix::fs::FileTypeExt` is not implemented for `cap_primitives::fs::FileType` | | | required by a bound introduced by this call | = help: the trait `std::os::unix::fs::FileTypeExt` is implemented for `std::fs::FileType` error[E0277]: the trait bound `cap_primitives::fs::FileType: std::os::unix::fs::FileTypeExt` is not satisfied --> /home/foobar/.cargo/registry/src/github.com-1ecc6299db9ec823/cap-fs-ext-0.25.2/src/file_type_ext.rs:85:51 | 85 | std::os::unix::fs::FileTypeExt::is_socket(self) | ----------------------------------------- ^^^^ the trait `std::os::unix::fs::FileTypeExt` is not implemented for `cap_primitives::fs::FileType` | | | required by a bound introduced by this call | = help: the trait `std::os::unix::fs::FileTypeExt` is implemented for `std::fs::FileType` For more information about this error, try `rustc --explain E0277`.
pinkforest edited a comment on issue #4936:
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required - see warnings whether they were used in graph or not
NOTE: Still testing this.. having some issues
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
For anyone curious I ended up having an adventure in Rust std first: https://github.com/rust-lang/rust/issues/102260
I'm tracking this here for lunatic: https://github.com/lunatic-solutions/lunatic/issues/136
pinkforest edited a comment on issue #4936:
Yeah our is picking up 0.25.2 - I went down the :hole: https://github.com/bytecodealliance/cap-std/issues/270#issuecomment-1257176470
│ │ │ ├── wasi-common v0.40.0 │ │ │ │ ├── cap-rand v0.25.2 │ │ │ │ ├── cap-std v0.25.2 │ │ │ │ │ ├── cap-primitives v0.25.2
For the patch approach to work
EDIT: Just saw it was done already :partying_face:
Cargo.toml manifest version field needs to be same version in git..
e.g. branch / tag name can be different but the Cargo.toml manifest in the tag has to be the same for Cargo to accept the crates.io patch
If we can update the branch Cargo.toml version then that would work
pinkforest commented on issue #4936:
Patch doesn't seem to work when trying to build on either stable 1.64.0 or latest nightly in linux
error[E0277]: the trait bound `cap_primitives::fs::FileType: std::os::unix::fs::FileTypeExt` is not satisfied --> /home/foobar/.cargo/registry/src/github.com-1ecc6299db9ec823/cap-fs-ext-0.25.2/src/file_type_ext.rs:70:57 | 70 | std::os::unix::fs::FileTypeExt::is_block_device(self) | ----------------------------------------------- ^^^^ the trait `std::os::unix::fs::FileTypeExt` is not implemented for `cap_primitives::fs::FileType` | | | required by a bound introduced by this call | = help: the trait `std::os::unix::fs::FileTypeExt` is implemented for `std::fs::FileType` error[E0277]: the trait bound `cap_primitives::fs::FileType: std::os::unix::fs::FileTypeExt` is not satisfied --> /home/foobar/.cargo/registry/src/github.com-1ecc6299db9ec823/cap-fs-ext-0.25.2/src/file_type_ext.rs:75:56 | 75 | std::os::unix::fs::FileTypeExt::is_char_device(self) | ---------------------------------------------- ^^^^ the trait `std::os::unix::fs::FileTypeExt` is not implemented for `cap_primitives::fs::FileType` | | | required by a bound introduced by this call | = help: the trait `std::os::unix::fs::FileTypeExt` is implemented for `std::fs::FileType` error[E0277]: the trait bound `cap_primitives::fs::FileType: std::os::unix::fs::FileTypeExt` is not satisfied --> /home/foobar/.cargo/registry/src/github.com-1ecc6299db9ec823/cap-fs-ext-0.25.2/src/file_type_ext.rs:80:49 | 80 | std::os::unix::fs::FileTypeExt::is_fifo(self) | --------------------------------------- ^^^^ the trait `std::os::unix::fs::FileTypeExt` is not implemented for `cap_primitives::fs::FileType` | | | required by a bound introduced by this call | = help: the trait `std::os::unix::fs::FileTypeExt` is implemented for `std::fs::FileType` error[E0277]: the trait bound `cap_primitives::fs::FileType: std::os::unix::fs::FileTypeExt` is not satisfied --> /home/foobar/.cargo/registry/src/github.com-1ecc6299db9ec823/cap-fs-ext-0.25.2/src/file_type_ext.rs:85:51 | 85 | std::os::unix::fs::FileTypeExt::is_socket(self) | ----------------------------------------- ^^^^ the trait `std::os::unix::fs::FileTypeExt` is not implemented for `cap_primitives::fs::FileType` | | | required by a bound introduced by this call | = help: the trait `std::os::unix::fs::FileTypeExt` is implemented for `std::fs::FileType`
pinkforest commented on issue #4936:
Looking at the origiinal commit
commit 949f251bccbb84513fe81a427a46864c1e8ad82c
Date: Tue Aug 23 13:02:57 2022 -0700 Switch to custom `FileTypeExt` traits. std has recently sealed its `FileTypeExt` traits, so cap-primitives can no longer implement them for its own types. Fortunately, these traits are just used as extension traits, so we can just define our own copies of them, and implement those instead. Fixes #270.
It removed these and now it seems to have broken Linux ?
The non-patch branch was working fine in OSX / Linux and this error only happened in Windows
In the patch branch can we rollback how it was with unix and only apply the Windows specific stuff ?
pinkforest edited a comment on issue #4936:
Looking at the original commit
commit 949f251bccbb84513fe81a427a46864c1e8ad82c
Date: Tue Aug 23 13:02:57 2022 -0700 Switch to custom `FileTypeExt` traits. std has recently sealed its `FileTypeExt` traits, so cap-primitives can no longer implement them for its own types. Fortunately, these traits are just used as extension traits, so we can just define our own copies of them, and implement those instead. Fixes #270.
It removed these and now it seems to have broken Linux ?
The non-patch branch was working fine in OSX / Linux and this error only happened in Windows
In the patch branch can we rollback how it was with unix and only apply the Windows specific stuff ?
pinkforest edited a comment on issue #4936:
Looking at the original patch commit
commit 949f251bccbb84513fe81a427a46864c1e8ad82c
Date: Tue Aug 23 13:02:57 2022 -0700 Switch to custom `FileTypeExt` traits. std has recently sealed its `FileTypeExt` traits, so cap-primitives can no longer implement them for its own types. Fortunately, these traits are just used as extension traits, so we can just define our own copies of them, and implement those instead. Fixes #270.
It removed these and now it seems to have broken Linux ?
The non-patch branch was working fine in OSX / Linux and this error only happened in Windows
In the patch branch can we rollback how it was with unix and only apply the Windows specific stuff ?
pinkforest deleted a comment on issue #4936:
Yeah our is picking up 0.25.2 - I went down the :hole: https://github.com/bytecodealliance/cap-std/issues/270#issuecomment-1257176470
│ │ │ ├── wasi-common v0.40.0 │ │ │ │ ├── cap-rand v0.25.2 │ │ │ │ ├── cap-std v0.25.2 │ │ │ │ │ ├── cap-primitives v0.25.2
For the patch approach to work
EDIT: Just saw it was done already :partying_face:
Cargo.toml manifest version field needs to be same version in git..
e.g. branch / tag name can be different but the Cargo.toml manifest in the tag has to be the same for Cargo to accept the crates.io patch
If we can update the branch Cargo.toml version then that would work
pinkforest edited a comment on issue #4936:
Yeah our is picking up 0.25.2 - I went down the :hole: https://github.com/bytecodealliance/cap-std/issues/270#issuecomment-1257176470
│ │ │ ├── wasi-common v0.40.0 │ │ │ │ ├── cap-rand v0.25.2 │ │ │ │ ├── cap-std v0.25.2 │ │ │ │ │ ├── cap-primitives v0.25.2
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required - see warnings whether they were used in graph or not
NOTE: Still testing this.. having some issues
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
For anyone curious I ended up having an adventure in Rust std first: https://github.com/rust-lang/rust/issues/102260
I'm tracking this here for lunatic: https://github.com/lunatic-solutions/lunatic/issues/136
pinkforest edited a comment on issue #4936:
Yeah our is picking up 0.25.2 - I went down the :hole: https://github.com/bytecodealliance/cap-std/issues/270#issuecomment-1257176470
│ │ │ ├── wasi-common v0.40.0 │ │ │ │ ├── cap-rand v0.25.2 │ │ │ │ ├── cap-std v0.25.2 │ │ │ │ │ ├── cap-primitives v0.25.2
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required - see warnings whether they were used in graph or not
I cannot bump lock to 0.26 as wasi-common 0.40 pins to 0.25
NOTE: Still testing this.. having some issues
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
For anyone curious I ended up having an adventure in Rust std first: https://github.com/rust-lang/rust/issues/102260
I'm tracking this here for lunatic: https://github.com/lunatic-solutions/lunatic/issues/136
pinkforest edited a comment on issue #4936:
Yeah our is picking up 0.25.2 - I went down the :hole: https://github.com/bytecodealliance/cap-std/issues/270#issuecomment-1257176470
│ │ │ ├── wasi-common v0.40.0 │ │ │ │ ├── cap-rand v0.25.2 │ │ │ │ ├── cap-std v0.25.2 │ │ │ │ │ ├── cap-primitives v0.25.2
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required - see warnings whether they were used in graph or not
I cannot bump lock to 0.26 as wasi-common 0.40 pins to 0.25
So I am trying to use this branch-patch route
NOTE: Still testing this.. having some issues
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
For anyone curious I ended up having an adventure in Rust std first: https://github.com/rust-lang/rust/issues/102260
I'm tracking this here for lunatic: https://github.com/lunatic-solutions/lunatic/issues/136
pinkforest edited a comment on issue #4936:
I started overview around what is broken still via 1.64.0 stable: https://github.com/bytecodealliance/wasmtime/issues/4957
Yeah our is picking up 0.25.2 - I went down the :hole: https://github.com/bytecodealliance/cap-std/issues/270#issuecomment-1257176470
│ │ │ ├── wasi-common v0.40.0 │ │ │ │ ├── cap-rand v0.25.2 │ │ │ │ ├── cap-std v0.25.2 │ │ │ │ │ ├── cap-primitives v0.25.2
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required - see warnings whether they were used in graph or not
I cannot bump lock to 0.26 as wasi-common 0.40 pins to 0.25
So I am trying to use this branch-patch route
NOTE: Still testing this.. having some issues
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
For anyone curious I ended up having an adventure in Rust std first: https://github.com/rust-lang/rust/issues/102260
I'm tracking this here for lunatic: https://github.com/lunatic-solutions/lunatic/issues/136
pinkforest edited a comment on issue #4936:
I started overview around what is broken still via 1.64.0 stable: https://github.com/bytecodealliance/wasmtime/issues/4957
This is when using via wasi-common
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required - see warnings whether they were used in graph or not
I cannot bump lock to 0.26 as wasi-common 0.40 pins to 0.25
So I am trying to use this branch-patch route
NOTE: Still testing this.. having some issues
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
For anyone curious I ended up having an adventure in Rust std first: https://github.com/rust-lang/rust/issues/102260
I'm tracking this here for lunatic: https://github.com/lunatic-solutions/lunatic/issues/136
pinkforest edited a comment on issue #4936:
I summarized overview around what is broken still via 1.64.0 stable: https://github.com/bytecodealliance/wasmtime/issues/4957
This is when using via wasi-common
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required - see warnings whether they were used in graph or not
I cannot bump lock to 0.26 as wasi-common 0.40 pins to 0.25
So I am trying to use this branch-patch route
NOTE: Still testing this.. having some issues
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
For anyone curious I ended up having an adventure in Rust std first: https://github.com/rust-lang/rust/issues/102260
I'm tracking this here for lunatic: https://github.com/lunatic-solutions/lunatic/issues/136
pinkforest edited a comment on issue #4936:
EDIT: I summarized overview around what is broken still via 1.64.0 stable: https://github.com/bytecodealliance/wasmtime/issues/4957
This is when using via wasi-common
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required - see warnings whether they were used in graph or not
I cannot bump lock to 0.26 as wasi-common 0.40 pins to 0.25
So I am trying to use this branch-patch route
NOTE: Still testing this.. having some issues
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
For anyone curious I ended up having an adventure in Rust std first: https://github.com/rust-lang/rust/issues/102260
I'm tracking this here for lunatic: https://github.com/lunatic-solutions/lunatic/issues/136
pinkforest edited a comment on issue #4936:
EDIT: I summarized overview around what is broken still via 1.64.0 stable: https://github.com/bytecodealliance/wasmtime/issues/4957
This is when using via wasi-common 0.40
Also Cargo.lock gets now updated via that branch.. thanks !
All not necessarily required - see warnings whether they were used in graph or not
I cannot bump lock to 0.26 as wasi-common 0.40 pins to 0.25
So I am trying to use this branch-patch route
NOTE: Still testing this.. having some issues
Cargo.toml patch
[patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
$ cargo update -p wasi-common
Updating crates.io index Updating git repository `https://github.com/bytecodealliance/cap-std.git` warning: Patch `cap-fs-ext v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)` was not used in the crate graph. Check that the patched package version and available features are compatible with the dependency requirements. If the patch has a different version from what is locked in the Cargo.lock file, run `cargo update` to use the new version. This may also occur with an optional dependency that is not enabled. Removing cap-primitives v0.25.2 Adding cap-primitives v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0) Removing cap-std v0.25.2 Adding cap-std v0.25.5 (https://github.com/bytecodealliance/cap-std.git?branch=0.26-with-a-0.25-version-number#535747a0)
Can we ensure that this branch hangs around for a while until we manage to bump to 1 ? Cheers
For anyone curious I ended up having an adventure in Rust std first: https://github.com/rust-lang/rust/issues/102260
I'm tracking this here for lunatic: https://github.com/lunatic-solutions/lunatic/issues/136
sunfishcode commented on issue #4936:
Those error messages reference cap-fs-ext-0.25.2, which doesn't have the fix. Can you use cargo tree to find out what's pulling in cap-fs-ext 0.25.2 instead of 0.25.5?
pinkforest commented on issue #4936:
wasi-cap-std-sync but I think this is red herring
crates.io 0.25.5 for cap-fs-ext ? do we mean 0.25.3 ?
$ cargo tree -i cap-fs-ext
cap-fs-ext v0.25.2 └── wasi-cap-std-sync v0.40.1 └── wasmtime-wasi v0.40.1 ├── lunatic-runtime v0.10.0 (/home/foobar/gg/play/zz/lunatic) └── lunatic-wasi-api v0.10.0 (/home/foobar/gg/play/zz/lunatic/crates/lunatic-wasi-api)
Problem is that the patch repo Cargo.toml version has to match exactly what ends up in the lock
I think this method is pretty flaky and I would recommend to do the recursive point-release ?
I mean it's pain but :woman_shrugging: dealing with that point-branch this way just is prone to error me thinks ?
pinkforest edited a comment on issue #4936:
wasi-cap-std-sync but I think this is red herring
crates.io doesn't have 0.25.5 for cap-fs-ext ? do we mean 0.25.3 ?
$ cargo tree -i cap-fs-ext
cap-fs-ext v0.25.2 └── wasi-cap-std-sync v0.40.1 └── wasmtime-wasi v0.40.1 ├── lunatic-runtime v0.10.0 (/home/foobar/gg/play/zz/lunatic) └── lunatic-wasi-api v0.10.0 (/home/foobar/gg/play/zz/lunatic/crates/lunatic-wasi-api)
Problem is that the patch repo Cargo.toml version has to match exactly what ends up in the lock
I think this method is pretty flaky and I would recommend to do the recursive point-release ?
I mean it's pain but :woman_shrugging: dealing with that point-branch this way just is prone to error me thinks ?
pinkforest commented on issue #4936:
You would need to release crates.io release for 0.25.5 so the patch thing would work
Then it would be still broken for someone who hasn;t updated their lockfile .. so this is pretty doomed work/around ?
pinkforest edited a comment on issue #4936:
You would need to release crates.io release for 0.25.5 cap-fs-ext so the patch thing would work
Then it would be still broken for someone who hasn;t updated their lockfile .. so this is pretty doomed work/around ?
pinkforest edited a comment on issue #4936:
You would need to release crates.io release for 0.25.5 cap-fs-ext so the patch thing would take effect
Then it would be still broken for someone who hasn;t updated their lockfile .. so this is pretty doomed work/around ?
pinkforest edited a comment on issue #4936:
You would need to release crates.io release for 0.25.5 cap-fs-ext so the patch thing would take effect
Then it would be still broken for someone who hasn;t updated their lockfile .. so I would think this work/around is unfeasible ?
pinkforest edited a comment on issue #4936:
wasi-cap-std-sync but I think this is red herring
crates.io doesn't have 0.25.5 for cap-fs-ext ? do we mean 0.25.3 ?
$ cargo tree -i cap-fs-ext
cap-fs-ext v0.25.2 └── wasi-cap-std-sync v0.40.1 └── wasmtime-wasi v0.40.1 ├── lunatic-runtime v0.10.0 (/home/foobar/gg/play/zz/lunatic) └── lunatic-wasi-api v0.10.0 (/home/foobar/gg/play/zz/lunatic/crates/lunatic-wasi-api)
Problem is that the patch repo Cargo.toml version has to match exactly what ends up in the lock
I would recommend to do the recursive point-release ?
I mean it's pain but :woman_shrugging: dealing with that point-branch this way just is prone to error me thinks ?
sunfishcode commented on issue #4936:
The patch is not semver compatible with 0.25, so I will not publish 0.25.5 to crates.io.
I've responded to all reported issues promptly. I created a special branch to try to help. I'm willing to take other reasonable steps that anyone can suggest. But please also keep in mind that part of the responsibility that comes with depending on the very latest Rust nightly and being unable to pin to an older nightly is yours.
pinkforest commented on issue #4936:
This is rust stable
pinkforest edited a comment on issue #4936:
This is rust stable
I took the whole effort to document how this happens in 1.64 stable: https://github.com/bytecodealliance/wasmtime/issues/4957
pinkforest edited a comment on issue #4936:
This is both rust stable and latest nightly..
I took the whole effort to document how this happens in 1.64 stable: https://github.com/bytecodealliance/wasmtime/issues/4957
sunfishcode commented on issue #4936:
I have not seen any problems on Unix in any of the many issue threads that are live at the moment. I have seen an error that was caused by mixing 0.25.2 and 0.25.5.
pinkforest commented on issue #4936:
Well I originally came to this issue because the stable 1.64 was affected with Windows and I tried to apply this work-around to make it in work and it in turn causes another error.
The mixing is caused by work/around I am trying to apply to make Windows builds work in 1.64 stable.
See the problem ? I don't think people should be applying work / arounds on rust 1.63 stable ?
pinkforest edited a comment on issue #4936:
Well I originally came to this issue because the stable 1.64 was affected with Windows and I tried to apply this work-around to make it in work and it in turn causes another error.
The mixing is caused by work/around I am trying to apply to make Windows builds work in 1.64 stable.
See the problem ? I don't think people should be applying work / arounds on rust 1.64 stable to get 0.40 work on windows ?
pinkforest edited a comment on issue #4936:
Well I originally came to this issue because the stable 1.64 was affected with Windows and I tried to apply this work-around to make it in work and it in turn causes another error.
The mixing is caused by work/around I am trying to apply to make Windows builds work in 1.64 stable.
See the problem ? I don't think people should be applying work / arounds on rust 1.64 stable to get 0.40 work on windows ?
It doesn't either help that these issues are buried and it should have been fixed properly at the point where the nightly broke on windows given that at time it was known that the trait changes and it will eventually hit stable like it hit now with 1.64 ?
pinkforest commented on issue #4936:
I created a summary issue earlier here: https://github.com/bytecodealliance/wasmtime/issues/4957
So that we don't potentially have more confused people like myself trying to find out and apply work / arounds to this issue and create even more confusion :)
pinkforest edited a comment on issue #4936:
Well I originally came to this issue because the stable 1.64 was affected with Windows and I tried to apply this work-around to make it in work and it in turn causes another error.
The mixing is caused by work/around I am trying to apply to make Windows builds work in 1.64 stable.
See the problem ? I don't think people should be applying work / arounds on rust 1.64 stable to get 0.40 work on windows ?
It doesn't either help that these issues are buried and it should have been fixed properly at the point where the nightly broke on windows given that at time it was known that the trait changes and it will eventually hit stable like it hit now with 1.64 ?
I understand it is not entirely ideal situation and I am not sure why the trait got sealed like that - given it wasn't from the beginning - but ensuring that things still build is very important across platforms and I don't think this is much tested atm other than people ending up complaining which in turn isn't either ideal - I think we need more tests building across platforms and versions supported.
pinkforest edited a comment on issue #4936:
Well I originally came to this issue because the stable 1.64 was affected with Windows and I tried to apply this work-around to make it in work and it in turn causes another error.
The mixing is caused by work/around I am trying to apply to make Windows builds work in 1.64 stable.
See the problem ? I don't think people should be applying work / arounds on rust 1.64 stable to get 0.40 work on windows ?
It doesn't either help that these issues are buried and it should have been fixed properly at the point where the nightly broke on windows given that at time it was known that the trait changes and it will eventually hit stable like it hit now with 1.64 ?
I understand it is not entirely ideal situation and I am not sure why the trait got sealed like that - given it wasn't from the beginning - but ensuring that things still build is very important across platforms and I don't think this is much tested atm other than people ending up complaining which in turn isn't either ideal - I think we need more tests building across platforms and versions supported to detect these properly before and when they keep happening given rust changes.
philpax commented on issue #4936:
Ah, I just added -backport0 because I thought it'd be helpful, but it isn't necessary. I added a patch to the branch to change the version to 0.25.5. Does that work? I'm happy to make minor tweaks if that's all that's needed. But also yeah, you can certainly maintain your own branch too if that's easier.
Quickly tried this out and can confirm that this branch does work for me on Windows, with Rust nightly
2022-08-30
!This is what's in my Cargo.toml:
wasmtime = "1.0" wasmtime-wasi = "1.0" [patch.crates-io] cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" } cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25-version-number" }
Thank you for your work on this - it is very much appreciated :pray: Glad to be on 1.0!
Last updated: Nov 22 2024 at 17:03 UTC