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

make rustc_encodable_decodable feature properly unstable #134272

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

RalfJung
Copy link
Member

@RalfJung RalfJung commented Dec 13, 2024

This has been shown in future-compat reports since Rust 1.79 (#116016), released June 2024. Let's see if crater still finds any issues.

Part of #134301.

Cc @rust-lang/libs-api

@rustbot
Copy link
Collaborator

rustbot commented Dec 13, 2024

r? @ibraheemdev

rustbot has assigned @ibraheemdev.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Dec 13, 2024
@RalfJung RalfJung force-pushed the destabilize-rustc_encodable_decodable branch from 2993504 to 3ce5d1d Compare December 13, 2024 17:38
@RalfJung
Copy link
Member Author

RalfJung commented Dec 13, 2024

Hm, seeing the discussion in #116016 it seems like the plan was to move much more slowly with this? There's no separate tracking issue for the de-stabilization of this as far as I can see, so it's all a bit unclear.

I guess we'll see what crater says.
@bors try

bors added a commit to rust-lang-ci/rust that referenced this pull request Dec 13, 2024
…_decodable, r=<try>

make rustc_encodable_decodable feature properly unstable

This has been shown in future-compat reports since Rust 1.79 (rust-lang#116016). Let's see if crater still finds any issues.

Cc `@rust-lang/libs-api`
@bors
Copy link
Contributor

bors commented Dec 13, 2024

⌛ Trying commit 3ce5d1d with merge 79200d6...

@rust-log-analyzer

This comment has been minimized.

@RalfJung RalfJung force-pushed the destabilize-rustc_encodable_decodable branch from 3ce5d1d to 88960fd Compare December 13, 2024 18:10
@RalfJung
Copy link
Member Author

@bors try

bors added a commit to rust-lang-ci/rust that referenced this pull request Dec 13, 2024
…_decodable, r=<try>

make rustc_encodable_decodable feature properly unstable

This has been shown in future-compat reports since Rust 1.79 (rust-lang#116016). Let's see if crater still finds any issues.

Cc `@rust-lang/libs-api`
@bors
Copy link
Contributor

bors commented Dec 13, 2024

⌛ Trying commit 88960fd with merge 09ea730...

@compiler-errors compiler-errors added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Dec 13, 2024
@bors
Copy link
Contributor

bors commented Dec 13, 2024

☀️ Try build successful - checks-actions
Build commit: 09ea730 (09ea730c380b8b9acb96ff87b724c45df920f793)

@RalfJung
Copy link
Member Author

@craterbot check

@craterbot
Copy link
Collaborator

👌 Experiment pr-134272 created and queued.
🤖 Automatically detected try build 09ea730
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@jhpratt
Copy link
Member

jhpratt commented Dec 14, 2024

I don't think there really was a plan — soft destabilizing it was the extent to which it was discussed afaik.

@RalfJung
Copy link
Member Author

RalfJung commented Dec 14, 2024

There's some mixed messaging here: the ACP says "full destabilization is not proposed due to breakage of existing code", but the lint that is emitted when using these types says this "will become a hard error in a future release".

@jhpratt
Copy link
Member

jhpratt commented Dec 14, 2024

Ha, that's 100% on me. It must have been discussed on Zulip, as I wasn't aware soft destabilization was a thing before that. Anyways, it doesn't much matter.

@RalfJung
Copy link
Member Author

Well, seems like nobody complained about the future compat "this will become a hard error" warning that we have emitted for more than half a year now (and that is shown even when this occurs just in a dependency), so let's just see what crater says.

@craterbot
Copy link
Collaborator

🚧 Experiment pr-134272 is now running

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot
Copy link
Collaborator

🎉 Experiment pr-134272 is completed!
📊 286 regressed and 48 fixed (553892 total)
📰 Open the full report.

⚠️ If you notice any spurious failure please add them to the denylist!
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-crater Status: Waiting on a crater run to be completed. labels Dec 18, 2024
@Skgland
Copy link
Contributor

Skgland commented Dec 18, 2024

Analysis the regressed results with https://github.com/Skgland/Crater-Analysis yields:

139 times error[E0658]: use of unstable library feature `rustc_encodable_decodable`
121 times no space left on device
21 times collect2: fatal error: ld terminated with signal 7 [Bus error]

And five other

  • "indutny.bulk-gcd.59c6117a35e323b1cd959c6cac3596f703669e65"
  • "jakubo87.heal.0fbe28eb6adc85f22a278d0bb87026553de9dbbd"
  • "noorulislam770.rust-std-lib.f8087a3d86cb559a3c3c2d1e6bd8338b60b6fd28"
  • "tomshlomo.json-unix-time-staging.1d750b8553cafc1d4c3c233207a80c8e1c53af6b"
  • "xswordsx.ff.2e9778658b16c72d5516cea04da3a9b8b0eea557"

@RalfJung
Copy link
Member Author

RalfJung commented Dec 20, 2024

I've done an in-depth analysis of the crates.io failures at https://hackmd.io/@RalfJung/HyXfMpGH1e. (I did not look at the github repo failures.) There are 73 true regressions.

Almost all of them are due to crates depending on num 0.1, which is ancient. v0.2 has been released more than 6 years ago, so likely all that code is basically unmaintained. This covers 61 of the true regressions. Everything else falls into two categories:

So, it seems like the impact on maintained code is negligible. Nominating for t-libs-api discussion.

@RalfJung RalfJung added I-libs-api-nominated Nominated for discussion during a libs-api team meeting. S-waiting-on-team Status: Awaiting decision from the relevant subteam (see the T-<team> label). labels Dec 20, 2024
@traviscross
Copy link
Contributor

@Amanieu
Copy link
Member

Amanieu commented Jan 7, 2025

We discussed this in the libs-api meeting. Considering that this has been soft-deprecated for 6 months already, we believe the impact of breakage is low. However:

  • Instead of de-stabilizing it, could we just remove this entirely? The soft deprecation message specifically says that this feature will be removed in the future.
  • Could we publish a patch release for num 0.1 that removes the use of rustc_encodable_decodable? cc @cuviper

@Amanieu Amanieu removed the I-libs-api-nominated Nominated for discussion during a libs-api team meeting. label Jan 7, 2025
@RalfJung
Copy link
Member Author

RalfJung commented Jan 7, 2025

@Amanieu do you plan to do a libs-api FCP here, or can I consider this to be team consensus already?

@RalfJung RalfJung force-pushed the destabilize-rustc_encodable_decodable branch from e9804a3 to a25d805 Compare January 7, 2025 17:20
@cuviper
Copy link
Member

cuviper commented Jan 7, 2025

I can update num v0.1 (and corresponding num-{bigint,complex,rational}) -- since this is a breaking change, I'll probably make it autocfg-detect the unavailability rather than removing it outright, so that "blame" is upstream. 🙂

@Amanieu Amanieu added T-libs-api Relevant to the library API team, which will review and decide on the PR/issue. and removed T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jan 7, 2025
@rust-log-analyzer

This comment has been minimized.

@Amanieu
Copy link
Member

Amanieu commented Jan 7, 2025

FCP to propose removing RustcEncodable and RustcDecodable entirely.

@rfcbot merge

@rfcbot
Copy link

rfcbot commented Jan 7, 2025

Team member @Amanieu has proposed to merge this. The next step is review by the rest of the tagged team members:

No concerns currently listed.

Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!

See this document for info about what commands tagged team members can give me.

@rfcbot rfcbot added proposed-final-comment-period Proposed to merge/close by relevant subteam, see T-<team> label. Will enter FCP once signed off. disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. labels Jan 7, 2025
@Amanieu Amanieu removed the S-waiting-on-team Status: Awaiting decision from the relevant subteam (see the T-<team> label). label Jan 7, 2025
@RalfJung RalfJung force-pushed the destabilize-rustc_encodable_decodable branch from e771452 to 9ac62f9 Compare January 14, 2025 15:16
@RalfJung RalfJung added the S-waiting-on-team Status: Awaiting decision from the relevant subteam (see the T-<team> label). label Jan 14, 2025
@Amanieu Amanieu removed the S-waiting-on-team Status: Awaiting decision from the relevant subteam (see the T-<team> label). label Jan 14, 2025
@rfcbot rfcbot added final-comment-period In the final comment period and will be merged soon unless new substantive objections are raised. and removed proposed-final-comment-period Proposed to merge/close by relevant subteam, see T-<team> label. Will enter FCP once signed off. labels Jan 14, 2025
@rfcbot
Copy link

rfcbot commented Jan 14, 2025

🔔 This is now entering its final comment period, as per the review above. 🔔

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. final-comment-period In the final comment period and will be merged soon unless new substantive objections are raised. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs-api Relevant to the library API team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.