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

Avoid unstable Rust features #156

Open
freijon opened this issue Oct 12, 2023 · 4 comments · May be fixed by #158
Open

Avoid unstable Rust features #156

freijon opened this issue Oct 12, 2023 · 4 comments · May be fixed by #158

Comments

@freijon
Copy link

freijon commented Oct 12, 2023

Hello

We discussed this briefly on Discord, but to make it a more official request I create this issue
It would be great if you could find an alternative to the unstable Rust features currently in use.

The reason is that you need Rust with unstable features enabled to build your app. This is currently impossible on Gentoo. The nightly feature (which allows unstable features) is blocked since Rust 1.72.0 for stability reasons 1. So we cannot offer your app as a (source built) package at the moment 😟
I don't know if it also impacts other source-driven distros.
Also I think it's safer for you to rely on stable features, the risk that they are suddenly removed from Rust is much lower.

Footnotes

  1. Breaks multiple high-profile packages depending on outdated proc-macro2. See https://github.com/rust-lang/rust/issues/113152

@hwittenborn hwittenborn linked a pull request Oct 13, 2023 that will close this issue
@hwittenborn
Copy link
Owner

hwittenborn commented Oct 13, 2023

I think this is a pretty good idea - I'm pretty sure the use of nightly Rust would also block Celeste from entering into repositories such as Debian, so it's probably good to get this going.

See the linked PR for the progress on getting that done. As of the time of writing only one nightly feature needs to be removed, but removing it would make the codebase a bit messier (the feature isn't any actual functionality, just some syntax sugar that's being used) so I'm trying to figure out the best way to go about that.

@hwittenborn
Copy link
Owner

hwittenborn commented Oct 15, 2023

I'm looking into this quite a bit @freijon, but the main parts of the codebase that need to be fixed lie in https://github.com/hwittenborn/celeste/blob/develop/src/launch.rs#L1492-L2284, and the codebase is quite a mess in that spot as well. It's in quite a dire need of a rewrite, and my attempts to change much in there just left me confused and without a way to get things fixed.

The two solutions currently are:

  • Wait for the let_chains feature to be stabalized in Rust, not quite sure when that'll be
  • Wait for a rewrite to happen

Right now I'm planning on #2 to happen, which has already been planned for a bit now (see #143). This won't be a huge rewrite, but it will probably take a bit of time to clean up things and get everything tested properly.

Just wanted to let you know about all that's going on.

@freijon
Copy link
Author

freijon commented Oct 16, 2023

Thank you for the status update, I appreciate it.
Rust has had some features in unstable state indefinitely. There is really no telling when / if they stabilize this feature. So I don't count on that happening any time soon. I guess that leaves the rewrite ;)

@freijon
Copy link
Author

freijon commented Dec 1, 2023

Any progress so far? Please let me know if I can do anything to help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants