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

Compile on stable rustc #16

Closed
5 of 7 tasks
Hirevo opened this issue Nov 8, 2019 · 5 comments · Fixed by #24
Closed
5 of 7 tasks

Compile on stable rustc #16

Hirevo opened this issue Nov 8, 2019 · 5 comments · Fixed by #24
Assignees
Labels
C-enhancement Category: Enhancement P-high Priority: High

Comments

@Hirevo
Copy link
Owner

Hirevo commented Nov 8, 2019

This issue tracks whether or not we can compile Alexandrie on the stable channel of the Rust toolchain.

Currently, the feature gates used inside of Alexandrie itself are:

  • async_await (released to stable since 1.39 on Nov. 7, 2019)
  • try_blocks (low usage, easy to replace)
  • inner_deref (released to stable since 1.40 on Dec. 19, 2019)

In order to move to the stable channel, every dependencies has to compile on stable too, so we need to wait for these crates to all work on stable.
The most notable awaited crates are:

  • futures (0.3.0 has support for async-await and now works on stable)
  • tokio (0.2.0 was released on Nov. 26, 2019)
  • tide (0.4.0 was released on Nov. 27, 2019)
  • runtime (deprecated, and we should remove it as a dependency whenever possible)
@Hirevo Hirevo added C-enhancement Category: Enhancement P-high Priority: High labels Nov 8, 2019
@Hirevo Hirevo added this to the Core feature-set milestone Nov 8, 2019
@Hirevo
Copy link
Owner Author

Hirevo commented Nov 26, 2019

Tokio 0.2.0 has just been released today ! 🎉 🎉

@Hirevo
Copy link
Owner Author

Hirevo commented Nov 27, 2019

Tide 0.4.0 has just been released today ! 🎉 🎉

Everything seems to have landed now to start upgrading to these versions and start compiling on the stable compiler channel.
I'll submit a PR with everything upgraded very soon.

@Hirevo Hirevo self-assigned this Nov 27, 2019
@Hirevo
Copy link
Owner Author

Hirevo commented Dec 5, 2019

I have looked into this, and Tide 0.4.0 seems to have (temporarily) put aside the support for a few things like cookies, that Alexandrie relies on (the frontend uses cookies to implement both sessions and one-off flash messages between pages).
So I think that we may have to unfortunately wait a little bit more for Tide to complete its API revamp or explore migrating to another web frameworks (maybe Rocket, once its async support lands ?).

@Hirevo
Copy link
Owner Author

Hirevo commented Dec 9, 2019

I have been looking to the Rust 1.40 milestone to see what's new is landing on Dec 19 and I was happily surprised that the inner_deref feature (which gives things like Option::as_deref) is being stabilized in this release !
So, we can take it off the list of unstable feature gates.

@Hirevo
Copy link
Owner Author

Hirevo commented Dec 17, 2019

So I have looked into this more and, even though Tide (temporarily) removed support for cookies, re-implementing them turned out to be quite easy.
So, PR #24 now makes the move to Tide 0.4.0 and makes everything compile on stable !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-enhancement Category: Enhancement P-high Priority: High
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant