Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracking issue for syn 2.0 inside rust-lang/rust #109302

Open
11 of 21 tasks
Noratrieb opened this issue Mar 18, 2023 · 4 comments
Open
11 of 21 tasks

Tracking issue for syn 2.0 inside rust-lang/rust #109302

Noratrieb opened this issue Mar 18, 2023 · 4 comments
Labels
C-cleanup Category: PRs that clean code up or issues documenting cleanup. C-tracking-issue Category: A tracking issue for an RFC or an unstable feature. E-help-wanted Call for participation: Help is requested to fix this issue.

Comments

@Noratrieb
Copy link
Member

Noratrieb commented Mar 18, 2023

syn 2.0 was just released!
https://github.com/dtolnay/syn/releases/tag/2.0.0

We should try to fully eliminate syn 1.0 from our dependency tree for better compile times.

The current ways in which we depend on syn 1:

Tasks

  • and a few more

Fixing this involes updating the dependencies once they upgrade or contributing upgrades to them directly.

@Noratrieb Noratrieb added C-cleanup Category: PRs that clean code up or issues documenting cleanup. C-tracking-issue Category: A tracking issue for an RFC or an unstable feature. E-help-wanted Call for participation: Help is requested to fix this issue. labels Mar 18, 2023
@jhpratt
Copy link
Member

jhpratt commented Mar 18, 2023

Mostly an aside: Is there a tracking issue for having a better (more thorough) proc macro API so that syn isn't necessary? I know there's #![feature(proc_macro_quote)] for output, but I'm not aware of anything for parsing.

GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this issue Mar 27, 2023
…ve, r=Mark-Simulacrum

bump `askama_derive` to 0.12.1

Which uses syn 2.0.

cc rust-lang#109302
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Apr 9, 2023
…r=Mark-Simulacrum

bump `thiserror` to use syn 2.0

cc rust-lang#109302
bors added a commit to rust-lang-ci/rust that referenced this issue Apr 10, 2023
JohnTitor added a commit to JohnTitor/rust that referenced this issue Apr 11, 2023
compiler-errors added a commit to compiler-errors/rust that referenced this issue Apr 11, 2023
compiler-errors added a commit to compiler-errors/rust that referenced this issue Apr 12, 2023
compiler-errors added a commit to compiler-errors/rust that referenced this issue Apr 12, 2023
bors added a commit to rust-lang-ci/rust that referenced this issue Apr 13, 2023
@Manishearth
Copy link
Member

The databake and zerovec derives are probably in this group. We should update ICU4X, and I can cut patch releases for those crates once we land the syn update upstream.

Manishearth added a commit to Manishearth/rust that referenced this issue May 3, 2023
Update ICU4X to 1.2

Was released a couple weeks ago.

Also needed to make progress on rust-lang#109302 (though this PR does not achieve that part just yet)
Manishearth added a commit to Manishearth/rust that referenced this issue May 3, 2023
Update ICU4X to 1.2

Was released a couple weeks ago.

Also needed to make progress on rust-lang#109302 (though this PR does not achieve that part just yet)
Manishearth added a commit to Manishearth/rust that referenced this issue May 3, 2023
Update ICU4X to 1.2

Was released a couple weeks ago.

Also needed to make progress on rust-lang#109302 (though this PR does not achieve that part just yet)
Manishearth added a commit to Manishearth/rust that referenced this issue May 3, 2023
Update ICU4X to 1.2

Was released a couple weeks ago.

Also needed to make progress on rust-lang#109302 (though this PR does not achieve that part just yet)
fee1-dead added a commit to fee1-dead-contrib/rust that referenced this issue May 28, 2023
…r=Mark-Simulacrum

bump `thiserror` to use syn 2.0

cc rust-lang#109302
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Jul 2, 2023
@w-flo
Copy link

w-flo commented Dec 8, 2023

Remaining syn1 reverse dependencies:

  • color-print has an unreleased syn2 update in git
  • darling 0.14 is an old version that still uses syn1, required by old version of derive_builder
  • derivative seems a bit undermaintained currently, no commits in >2 years
  • derive_builder decided not to update to syn2 as of now, as it would result in disruptive changes: Update syn dependency? colin-kiegel/rust-derive-builder#292 v0.20.0 is now available, which uses syn2 done
  • derive_more has an unreleased syn2 update in git, and currently appears to be in a "try to get everything right" phase before the 1.0 release so it might take a bit longer
  • html5ever has released 0.27 using syn2. ammonia has released 4.0.0 to depend on new html5ever. mdbook still needs to update to ammonia 4.0.0 in their git repo to eventually remove old html5ever from rust-lang/rust.
  • strum 0.24 is an old version still using syn1, required by spdx-rs. spdx-rs has an unreleased update to strum 0.25 (which uses syn2) in git.
  • thiserror-core-impl just needs a cargo update to the latest patch release
  • unic-langid-macros-impl just needs a cargo update to the latest patch release

So other than derive_builder and derivative, it looks like it's just a matter of waiting for releases (and then possibly waiting for reverse dependencies to update to the new release if the update to syn2 happens to be released as a major release).

Edit: updated derive-builder is now available with syn2 dependency.

Edit: derive_more has released a syn2 backport for their current release, and color-print is now syn2, too. Only remaining syn1 deps in rust-lang/rust appear to be derivative (which still seems unmaintained and projects are starting to switch to educe or drop the derivative dependency in other ways) and strum_macros (which will be updated to syn2 when spdx-rs releases current git).

matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Jan 22, 2024
Bump some deps with syn 1.0 dependencies

cc rust-lang#109302

`cargo update`ing `unic-langid` and `object` removes two dependencies on Syn 1.0.
fmease added a commit to fmease/rust that referenced this issue Jan 23, 2024
Bump some deps with syn 1.0 dependencies

cc rust-lang#109302

`cargo update`ing `unic-langid` and `object` removes two dependencies on Syn 1.0.
fmease added a commit to fmease/rust that referenced this issue Jan 24, 2024
Bump some deps with syn 1.0 dependencies

cc rust-lang#109302

`cargo update`ing `unic-langid` and `object` removes two dependencies on Syn 1.0.
compiler-errors added a commit to compiler-errors/rust that referenced this issue Jan 26, 2024
Bump some deps with syn 1.0 dependencies

cc rust-lang#109302

`cargo update`ing `unic-langid` and `object` removes two dependencies on Syn 1.0.
bors added a commit to rust-lang-ci/rust that referenced this issue Jan 27, 2024
Bump some deps with syn 1.0 dependencies

cc rust-lang#109302

`cargo update`ing `unic-langid` and `object` removes two dependencies on Syn 1.0.
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Jan 27, 2024
…tive, r=Nilstrieb

Stop using derivative in rustc_pattern_analysis

CC rust-lang#109302, rust-lang/rust-analyzer#16420 (comment)

r? `@Nadrieril`
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Jan 27, 2024
…tive, r=Nilstrieb

Stop using derivative in rustc_pattern_analysis

CC rust-lang#109302, rust-lang/rust-analyzer#16420 (comment)

r? `@Nadrieril`
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Jan 27, 2024
…tive, r=Nilstrieb

Stop using derivative in rustc_pattern_analysis

CC rust-lang#109302, rust-lang/rust-analyzer#16420 (comment)

r? ``@Nadrieril``
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Jan 28, 2024
…tive, r=Nilstrieb

Stop using derivative in rustc_pattern_analysis

CC rust-lang#109302, rust-lang/rust-analyzer#16420 (comment)

r? ```@Nadrieril```
Dylan-DPC added a commit to Dylan-DPC/rust that referenced this issue Jan 29, 2024
…tive, r=Nilstrieb

Stop using derivative in rustc_pattern_analysis

CC rust-lang#109302, rust-lang/rust-analyzer#16420 (comment)

r? ````@Nadrieril````
rust-timer added a commit to rust-lang-ci/rust that referenced this issue Jan 29, 2024
Rollup merge of rust-lang#120420 - lnicola:rm-pattern-analysis-derivative, r=Nilstrieb

Stop using derivative in rustc_pattern_analysis

CC rust-lang#109302, rust-lang/rust-analyzer#16420 (comment)

r? ````@Nadrieril````
@GrigorenkoPV
Copy link
Contributor

As you might have seen from the mentions, I have submitted a PR replacing derivative with a maintained alternative (#127042) and politely pestered the spdx-rs maintainers about making a new release (doubleopen-project/spdx-rs#33). When (and if) those two go through, the syn 1.* will officially be no more.

bors added a commit to rust-lang-ci/rust that referenced this issue Jun 27, 2024
Switch from `derivative` to `derive-where`

This is a part of the effort to get rid of `syn 1.*` in compiler's dependencies: rust-lang#109302

Derivative has not been maintained in nearly 3 years[^1]. It also depends on `syn 1.*`.

This PR replaces `derivative` with `derive-where`[^2], a not dead alternative, which uses `syn 2.*`.

A couple of `Debug` formats have changed around the skipped fields[^3], but I doubt this is an issue.

[^1]: mcarton/rust-derivative#117
[^2]: https://lib.rs/crates/derive-where
[^3]: See the changes in `tests/ui`
bors added a commit to rust-lang-ci/rust that referenced this issue Jul 25, 2024
…errors

Switch from `derivative` to `derive-where`

This is a part of the effort to get rid of `syn 1.*` in compiler's dependencies: rust-lang#109302

Derivative has not been maintained in nearly 3 years[^1]. It also depends on `syn 1.*`.

This PR replaces `derivative` with `derive-where`[^2], a not dead alternative, which uses `syn 2.*`.

A couple of `Debug` formats have changed around the skipped fields[^3], but I doubt this is an issue.

[^1]: mcarton/rust-derivative#117
[^2]: https://lib.rs/crates/derive-where
[^3]: See the changes in `tests/ui`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-cleanup Category: PRs that clean code up or issues documenting cleanup. C-tracking-issue Category: A tracking issue for an RFC or an unstable feature. E-help-wanted Call for participation: Help is requested to fix this issue.
Projects
None yet
Development

No branches or pull requests

5 participants