emilk / egui

egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native
https://www.egui.rs/
Apache License 2.0
20.88k stars 1.52k forks source link

Update `accesskit_winit` #4219

Open mwcampbell opened 3 months ago

mwcampbell commented 3 months ago

accesskit_winit is on 0.18 now, and we have another refactor on the way which will be released in accesskit_winit 0.19. @emilk Do you need help from us to keep egui-winit up to date, or is there something on our end that's blocking the update?

emilk commented 3 months ago

The main thing that's been keeping me from updating it is that I don't know how to properly test it. Help would be greatly appreciated!

mwcampbell commented 3 months ago

I updated egui on this branch to work with an AccessKit refactor that I plan to release soon, and I noticed a cargo deny problem: AccessKit uses objc2 0.5.0, icrate 0.1.0, and block2 0.4.0, while winit still uses objc2 0.4.1, icrate 0.0.4, and block2 0.3.0. It was block2 that actually triggered the cargo deny error. Do we need to downgrade AccessKit's dependencies on objc2 and icrate to match winit's, or do you want to add an exception in deny.toml?

emilk commented 3 months ago

It depends on how much work it is, I guess.

If the change in accesskit when upgrading was just a version bump (no change in code needed), then you could support multiple version of objc2 etc (objc = ">=0.4.0 <= 0.5.0") which would be the best of two worlds.

Duplicated dependencies are super annoying, as it adds to the already long compile time of eframe

DataTriny commented 3 months ago

It looks like winit 0.30 is coming soon. I'd suggest we update all at once. We need to move away from icrate as quickly as possible because of its number of compile features.

See https://github.com/rust-windowing/winit/pull/3634