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

Rocket no longer requires nightly #1603

Closed
wants to merge 1 commit into from
Closed

Conversation

frewsxcv
Copy link
Member

No description provided.

@frewsxcv frewsxcv requested a review from a team as a code owner October 26, 2021 03:39
@senekor
Copy link
Contributor

senekor commented Mar 21, 2023

The changes in the README are not enough, rocket actually needs to be updated to a version that doesn't require nightly. the 4.x branch still requires nightly. 0.5.0-rc.2 is the latest version that doesn't. Interestingly, I just tried to update. It doesn't work, rocket 0.5.0-rc.2 apparently still requires nightly..? I'm happy to be corrected. Here's my investigation:

rocket 0.5.0-rc.2 depends on figment 0.10.6, which resolves to 0.10.8 (its latest version). figment in turn pulls in pear 0.2.3. pear makes use of the unstable feature plugin. Both figment and pear are owned by the maintainer of rocket.

That being said, I think now is a good time to switch away from rocket. It has been poorly maintained for years. (Illustrated by how old this PR is and rocket still doesn't have a stable release without requiring nightly.)

Axum and actix-web are both fully featured, much more popular, stable and well-maintained options. I would be glad to help with that.

The rust-toolchain file should also be removed, once nightly is not required anymore.

Edit: I came across this while opening this issue, making sure it's not a duplicate:
#1783

@senekor
Copy link
Contributor

senekor commented Mar 21, 2023

In addition, there's also the dependency of rocket_contrib. It has a relaese of 0.5.0-rc.2 on GitHub, but that wasn't published to crates.io. It's latest release there is still 0.4.x and relies on that version of rocket itself. So, it doesn't even seem possible to get rocket 0.4.x out of the depencencies.

@Manishearth
Copy link
Member

It has been poorly maintained for years. (Illustrated by how old this PR is and rocket still doesn't have a stable release without requiring nightly.)

I don't think this is evidence of poor maintenance. Rocket has had an explicit policy of wanting to be an exploration ground for nightly features, and has been a driving force for stabilization in the past.

@senekor
Copy link
Contributor

senekor commented Mar 21, 2023

I don't think this is evidence of poor maintenance. Rocket has had an explicit policy of wanting to be an exploration ground for nightly features, and has been a driving force for stabilization in the past.

Agreed, usage of nightly alone doesn't mean it's poorly maintained.

But a release that doesn't depend on nightly has been promised at least since June 09, 2021, when the first release candidate for 0.5 was released. And that blog post claimed that the release candidate had been in development for two years already.

I can't find this promise being made at the time exactly, but the docs make it pretty clear:

The docs of 0.4 state: Warning: Rocket requires the latest version of Rust nightly.

The docs of 0.5 recommend to run rustup default stable but make this suggestion: "Note: You may prefer to develop using the nightly channel."

So it's clearly the intention that 0.5 should not rely on nightly. As far as I can tell, that's not even the case with the release candidates.

The latest blog post is from May 09, 2022. It states:

the general release of Rocket v0.5 is planned for late May 2022

No official communication since then, as far as I can tell.

@Manishearth
Copy link
Member

I mean, Rocket is fine, it works, it rarely has bugs, it doesn't need to have a constant publish cycle to be considered maintained. It's good enough for us here, are any rate.

It's actively maintained; the stability thing has been taking a while but like I said they've explicitly stated that as a low priority.

@senekor
Copy link
Contributor

senekor commented Mar 25, 2023

I need to correct myself: Rocket 0.5 release candidates do compile on stable. It's the rocket_contrib dependency that still requires nightly - because it has been deprecated in 0.5.

In order to upgrade to 0.5, the templating would have to be migrated to rocket_dyn_templates.

@Manishearth
Copy link
Member

Very open to doing that!

(In the long run I'm hoping we can switch to static site generation but we'd need something that can preserve the directory structure)

@senekor
Copy link
Contributor

senekor commented Jan 14, 2024

@Manishearth this can be closed as the migration to rocket 0.5 is done.

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 this pull request may close these issues.

None yet

3 participants