yew-macro: remove transitive dependency on syn 1#3752
yew-macro: remove transitive dependency on syn 1#3752Alextopher wants to merge 4 commits intoyewstack:masterfrom
Conversation
ranile
left a comment
There was a problem hiding this comment.
I regenerated the test outputs to fix the CI error and found this issue
| warning: The tag 'tExTAreA' is not matching its normalized form 'textarea'. If you want to keep this form, change this to a dynamic tag `@{"tExTAreA"}`. | ||
| --> tests/html_lints/fail.rs:17:10 | ||
| | | ||
| 17 | <tExTAreA /> | ||
| | ^^^^^^^^ | ||
|
|
There was a problem hiding this comment.
For some reason, the update to proc-macro-error2 crate made it so that this lint is triggered. Can you please investigate and see what's going on?
To re-generate the files, you can run the test command with TRYBUILD=overwrite
There was a problem hiding this comment.
I haven't been able to reproduce the issue on my machine yet. I'll try to work through this.
There was a problem hiding this comment.
You need to use the same command as CI:
RUSTFLAGS='--cfg nightly_yew --cfg yew_lints' cargo +nightly test -p yew-macro test_html_lintsThere was a problem hiding this comment.
Thanks! I'm going to go ahead and bisect the proc-macro-errors2 project.
|
I think this will fix the nightly test, but will trigger stable failures. |
|
Using yew-nightly as a cargo feature means using the --all-features flag on stable causes build failures. I imagine that could be a pretty big cost, and might be why you use cargo attributes instead. Maybe it's possible to remove usage of nightly features from proc-macro-errors2 but that was out of scope of my original goal. I'm sorry, I'm not sure how else to work around this. |
|
Further research - removal of those build scripts I was speaking of (in favor of using a feature Maybe we could use a build script to enable that feature using the version-check crate. Is there some way to conditionally enable a feature-flag based on the usage of a nightly compiler? |
|
I attempted a fix in 37452a5 but it seems cargo does not allow this: rust-lang/cargo#8170 We cannot switch to using feature flag for nightly (see #2754). I wanted to use buildscript to enable the feature but that is not possible either. I raised GnomedDev/proc-macro-error-2#7 to allow using cfg here, which can be used from build.rs |
The following findings are not fixed: - `paste` is "finished: rustsec/advisory-db#2215 (comment) - `ring` will be fixed by OpenSK - `proc-macro-error` will be fixed by Yew: yewstack/yew#3752
Description
I've been enjoying yew and wanted to find a place I could make small contributions. I'm happy to put in some effort to remove duplicate dependencies.
There's a rustsec release out on
proc-macro-error, the issue being the crate is unmaintained. Potential replacements includeproc-macro-error2which seems to be API compatible.proc-macro-error2also removes some needless build scripts improving compilation times.Overall, replacing
proc-macro-errorwithproc-macro-error2leads to an 8% reduction in (single threaded) compilation of yew.cargo build --release --timings -j1results below.Before

After

Checklist
The existing test suite passes, I don't believe there is a test I could write for this PR.
Before
After