cap-std icon indicating copy to clipboard operation
cap-std copied to clipboard

Upcoming semver bump, to 1.0

Open sunfishcode opened this issue 3 years ago • 6 comments

cap-std and cap-async-std will need a semver bump in order to pick up the fix for #270, which is needed in order to compile with changes to nightly Rust.

~~I'm also considering making the same change as #271 for FileExt, MetadataExt, DirBuilderExt, PermissionExt, OpenOptionsExt, to future-proof against std sealing those traits in the future.~~ [edit: see comments below]

To minimize the number of semver bumps, I'm also planning to coordinate these changes with another change, when I/O lifetimes makes it to stable Rust (expected Aug. 11), and I update io-lifetimes to use it when available.

That's the main change contemplated in https://github.com/bytecodealliance/cap-std/issues/192, so I'm tentatively planning to have this next release be version 1.0.

sunfishcode avatar Aug 10 '22 23:08 sunfishcode

I'm also considering making the same change as #271 for FileExt, MetadataExt, DirBuilderExt, PermissionExt, OpenOptionsExt, to future-proof against std sealing those traits in the future.

Note that if a trait is already stable it's very unlikely to be sealed later precisely so as to avoid breakages similar to the one with FileTypeExt. On the other hand, nightly only traits have no stability guarantees and can break at any time.

ChrisDenton avatar Aug 11 '22 19:08 ChrisDenton

Ah, thanks for pointing that out. So all those other traits are already stable, which means we're probably good without any further changes.

sunfishcode avatar Aug 11 '22 19:08 sunfishcode

The last remaining item here is #273. That's currently waiting for https://github.com/async-rs/async-std/pull/1036 in order to support cap-async-std. Another option would be to do a 1.0 release for all the crates except cap-async-std for now.

sunfishcode avatar Aug 23 '22 22:08 sunfishcode

It would be nice to have a release that contains the fix for https://github.com/bytecodealliance/cap-std/pull/271 , so that users are not stuck on old versions of the Rust toolchain. If you think that a true 1.0.0 release is blocked on other crates, would you be interested in doing a 1.0.0-pre prerelease for the time being?

bstrie avatar Sep 02 '22 14:09 bstrie

Sure. I've now published a 1.0.0-rc1 of cap-std et al.

Except for cap-async-std, as that's waiting for https://github.com/async-rs/async-std/pull/1036.

sunfishcode avatar Sep 02 '22 19:09 sunfishcode

I've also now released a v0.26.0-patch1, which is 0.25 plus #271 and a few other fixes, without the io-lifetimes updates, so it includes a cap-async-std release.

sunfishcode avatar Sep 02 '22 22:09 sunfishcode

Considering that the last commit in async-rs main is from July and the lack of recent activity in https://github.com/async-rs/async-std/pull/1036, does it really make sense to wait?

EdorianDark avatar Oct 22 '22 11:10 EdorianDark

@EdorianDark Yes, I think the best option at this time is to do a 1.0 release without cap-async-std for now. That'll take a few steps, as it wants a 1.0 release of io-lifetimes and a 0.36 release of rustix. Assuming those go smoothly, cap-std 1.0 is next!

sunfishcode avatar Nov 02 '22 20:11 sunfishcode

io-lifetimes 1.0 and rustix 0.36 are out; https://github.com/bytecodealliance/cap-std/pull/281 updates cap-std.

sunfishcode avatar Nov 07 '22 20:11 sunfishcode

1.0 is now released!

sunfishcode avatar Nov 07 '22 20:11 sunfishcode

Congratulations and nice work!

cgwalters avatar Nov 07 '22 21:11 cgwalters