breaking: directly depend on crossbeam-channel instead of pulling in all of crossbeam#69
breaking: directly depend on crossbeam-channel instead of pulling in all of crossbeam#69m4rch3n1ng wants to merge 1 commit intoCanop:mainfrom
Conversation
be1c09f to
2eb91f5
Compare
|
What you say is reasonnable. I have still to try estimate the consequences for applications using the reexported crossbeam. Many of them use the Did you measure a gain (binary size, perhaps) ? |
i think it's fair to expect people that need crossbeam to be able to import it themselves. i personally am against exporting entire crates entirely (with a few exceptions like for macros, but i think those should be marked as i would also still advocate for putting the
i don't really care about binary size (unless it gets concerningly big, which i highly doubt would be the fault of |
|
i also wanted to say that this is not time-sensitive at all. if you want to wait for something else that warrants a breaking change anyway - something like a new crossterm version - and only then merge this, then that would be fine by me too, as this is not actually a change in any functionality. |
The point of reexporting the crate is to prevent version conflicts. That's why this reexport and the one of crossterm were required. I'm aware there are also downsides and that it's a balance to find, but it's not something that can be changed lightly. |
2eb91f5 to
e40db43
Compare
Warning
this is a breaking change, since you have previously been re-exporting crossbeam.
termimad does not actually need most of the features of
crossbeam, it only needs its channel. so you can save on a few unneeded dependencies if you just depend on thecrossbeam-channeldirectly.at this point it might be worth it to consider just using the std mpsc channel (or putting crossbeam behind a feature flag), as since rust 1.67 the std mpsc and the crossbeam channel are mostly the same performance wise and the extra functionality that crossbeam provides is, as far as i can tell, not used here.