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

v0.7.0 #1583

Merged
merged 12 commits into from
Apr 21, 2023
Merged

v0.7.0 #1583

merged 12 commits into from
Apr 21, 2023

Conversation

davidpdrsn
Copy link
Member

@davidpdrsn davidpdrsn commented Nov 27, 2022

I wanna start slowly working towards 0.7.0. The biggest change for that will be hyper 1.0 compatibility.

Other PRs for 0.7.0 should be merged into this one. Think we should keep main free of breaking changes for a bit.

Some things off the top of my head we need (might file separate issues on these):

  • Remove re-exports of hyper::Server, http_body::Full, http_body::Empty, and possibly others. Those are being moved to *-util crates which will have breaking changes so we shouldn't have them in our public API.
  • Add an axum::serve(addr, make_service) function. I think our recommended server should be the one in hyper-util. However I also think we should provide a very simple server function for "hello world" stuff. I think that should just be a single function without any configuration.
  • Provide our own body type. hyper::Body is going away and it is using a new Incoming which is much smaller in scope. I think this could lead to much improved ergonomics and perhaps we could even remove the generic B type everywhere (related to Middleware that change the request body have poor usability #1110)
  • Use 422 Unprocessable Entity for Form deserialization errors, except GET and HEAD requests #1683 (comment)
  • Should we require Sync for services (Enforce Sync for inner services and handlers #1477)?
  • How should Body handle errors?
  • Move axum_extra's Multipart into axum?
  • Remove Full and Empty from public API (I know they're at least in axum-core)
  • Update to http-body 1.0-rc.x. Not sure if we can do this independently of updating hyper
  • Update to hyper 1.0-rc.x
  • Can serve handle both http 1 and 2?

@davidpdrsn davidpdrsn added this to the 0.7 milestone Nov 27, 2022
@jplatte
Copy link
Member

jplatte commented Nov 27, 2022

http_body will also not be stable enough to depend on publically? I thought the concern was just with hyper-util.

@davidpdrsn
Copy link
Member Author

http_body will also not be stable enough to depend on publically? I thought the concern was just with hyper-util.

http_body is going 1.0 as well with most things, except the Body trait, being moved to http-body-util. So similar treatment as hyper. So we can depend on the http_body::Body trait but not things like http_body_util::Full.

@jplatte
Copy link
Member

jplatte commented Nov 27, 2022

I'm a little confused about the first sentence of your reply, but the rest makes sense ^^

@jplatte
Copy link
Member

jplatte commented Nov 27, 2022

Also, are you working on upgrading axum to the rc's? If you could use some help, I'm interested in looking into (parts of) that.

@davidpdrsn
Copy link
Member Author

Also, are you working on upgrading axum to the rc's? If you could use some help, I'm interested in looking into (parts of) that.

Not right now. I'm mostly doing small prep things. Also have a PR in the works for a simple server function that uses hyper 1.0-rc.1.

You're very welcome to help out! Its not quite clear to me if we even can update to hyper rc.1 as there might be some things missing. But attempting to update is probably the best way to figure that out 😅

Co-authored-by: Michael Scofield <[email protected]>
Co-authored-by: Jonas Platte <[email protected]>
@davidpdrsn
Copy link
Member Author

davidpdrsn commented Apr 21, 2023

I'm leaning towards merging this and making a v0.6.x branch like we've done in the past. It's getting increasingly time consuming to rebase this against new changes. Then we could also make issues and a milestone for the todos in the top comment.

Looking at the issues there aren't any big features remaining that need to be implemented in 0.6 first. So cherry-picking to a v0.6.x branch should be fine.

@davidpdrsn davidpdrsn marked this pull request as ready for review April 21, 2023 15:44
@davidpdrsn davidpdrsn merged commit c378211 into main Apr 21, 2023
@davidpdrsn davidpdrsn deleted the v0.7.0 branch April 21, 2023 15:45
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.

3 participants