-
-
Notifications
You must be signed in to change notification settings - Fork 55
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
⬆️ Upgrade axum
and related dependencies
#626
Conversation
…lete axum 0.8 upgrade.
Didn't realize that |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I gave this a good look over lunch and don't see any issues. I was curious what changed that made it so we couldn't use extractors in middleware, like HostExtractor
, but didn't have time to look in the changelog for hints. Not a biggie either way.
Thanks for knocking this out! Feel free to merge whenever
Also:
We can probably bump that after this whenever |
Seems to be related to this issue: tokio-rs/axum#3170 I'll spend a bit investigating to see if there's a better solution before merging. |
Well, there isn't really a good explanation for why I changed it to not use |
This pull request upgrades Axum to the latest version, 0.8.1.
This was a fairly extensive set of changes. Axum route handlers now follow a different syntax (
/:id
=>/{id}
) and a few other APIs changed. We also had to update a lot of downstream crates that rely on Axum themselves. The most significant change on that front was the necessary upgrading of utoipa to 5.3.1 and utoipa-swagger-ui to 9.0.0.The utoipa changes were pretty far-reaching as well. I had to make a minor modification to the smart filter generation macro and implement
ToSchema
for a good number of structures because utoipa now requires all nested structs to also implementToSchema
. Thealiases
attribute was also removed, so those types are now represented bypub type
s. Finally, because of changes to utoipa, it is now possible to cause stack overflows by having loops in the dependency graph for a struct/enum. To solve this, I added#[schema(no_recursion)]
annotations to several fields. It would be a good idea for someone to review the API documentation and make sure it still feels sensible in light of these changes.