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

Version 1.0.0 #2384

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open

Version 1.0.0 #2384

wants to merge 6 commits into from

Conversation

Kludex
Copy link
Sponsor Member

@Kludex Kludex commented Dec 23, 2023

I've tried to be careful on the commit sequence here - each commit passes the pipeline by itself.

@encode/maintainers Does someone want to add a breaking change on Starlette before we go to 1.0.0? Please, let's focus on breaking changes, if there are features that can be added on minor, let's not bother with them here.


from typing_extensions import ParamSpec

from starlette.datastructures import State, URLPath
from starlette.middleware import Middleware, _MiddlewareClass
from starlette.middleware.base import BaseHTTPMiddleware
from starlette.middleware.errors import ServerErrorMiddleware
from starlette.middleware.exceptions import ExceptionMiddleware
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to remove ExceptionMiddleware from here. And maybe delete that file as well.

Copy link
Sponsor Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where should we register the starlette.exception_handlers now?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I guess we need to get rid of is this part:

await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)

Copy link
Sponsor Member Author

@Kludex Kludex Dec 24, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah! Just to confirm: you mean that the ExceptionMiddleware should just register the exception_handlers in the scope, but the wrap_app_handling_exceptions should NOT be called there, only on the other places we have them (request_response and websocket_session). Correct?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep!

Copy link
Sponsor Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have a problem. We had an oversight when implementing the per route exception handler.

There are places we have a raise HTTPException that don't follow the request_response or websocket_session flow, and we can't just remove/replace by PlainTextResponse because the user may be already be changing the behavior of those HTTPException.

If you just remove the wrap_app_handling_exceptions you mentioned above, you'll see the test failures that express what I'm saying.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can try after the holidays but I’d say we should change those and users shouldn’t expect any request/response stuff in middleware (aside from BaseHTTPMiddleware which is beyond changing)

Copy link
Sponsor Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on what you said, I don't think I made myself clear with my comment above.

I'll wait for later then. Thanks! 🙏

Copy link
Sponsor Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I cannot come up with a solution for this, FYI.

Kludex and others added 6 commits February 18, 2024 14:30
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.

Version 1.0
3 participants