Remove all uses of getrandom_backend = "wasm_js"#771
Conversation
dhardy
left a comment
There was a problem hiding this comment.
Removal of getrandom_backend="wasm_js" is a breaking change; it makes sense to merge this before 0.4 (I assume this is your intention).
| # i.e. avoid unconditionally enabling it in library crates. | ||
| # | ||
| # WARNING: This feature SHOULD be enabled ONLY for binary crates and tests. In other words, | ||
| # avoid enabling it in library crates whether unconditionally or gated on a crate feature. |
There was a problem hiding this comment.
or gated on a crate feature
I see no hard reason not to have a "forwarding" feature flag (e.g. wasm_js = ["getrandom/wasm_js"]).
I know you don't like this pattern, but I don't think directing users like this will work particularly well.
I suggest we keep our advice direct and minimally opinionated:
We recommend against enabling this feature in libraries (except for tests) since it is known to break some non-Web WASM builds and further since the usage of
wasm-bindgencauses significant bloat toCargo.lock(on all targets).
There was a problem hiding this comment.
I think having a default guidance against forwarding crate features is a reasonable. It's mostly that you run into semver and stability issues when trying to forward the features of other crates. It's possible to do, but really only works if:
- you pay extra close attention to the issues
- you work closely between the forwarding crate and
getrandom(likeranddoes).
josephlr
left a comment
There was a problem hiding this comment.
Overall this seems reasonable if it's part of a breaking change for 0.4 (and the changes to tests/documentation might be good to also have in 0.3).
It might be worth mentioning (somewhere) that we used to allow --cfg getrandom_backend="wasm_js" (but don't anymore for 0.4)
This change does not "forbid" So, arguably, this change is not a breaking one and arguably we should've done it as part of the v0.3.4 release. |
Enabling the `wasm_js` crate feature is sufficient.
Enabling the
wasm_jscrate feature is sufficient.