You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[PR #10534/3b9bb1cd backport][3.12] Replace tcp_sockopts with socket_factory (#10574)
replaces and closes#10565
Instead of TCPConnector taking a list of sockopts to be applied sockets
created, take a socket_factory callback that allows the caller to
implement socket creation entirely.
Fixes#10520
<!-- Thank you for your contribution! -->
Replace `tcp_sockopts` parameter with a `socket_factory` parameter that
is a callback allowing the caller to own socket creation. If passed, all
sockets created by `TCPConnector` are expected to come from the
`socket_factory` callback.
<!-- Please give a short brief about these changes. -->
The only users to experience a change in behavior are those who are
using the un-released `tcp_sockopts` argument to `TCPConnector`.
However, using unreleased code comes with caveat emptor, and is why I
felt entitled to remove the option entirely without warning.
<!-- Outline any notable behaviour for the end users. -->
The burden will be minimal and would only arise if `aiohappyeyeballs`
changes their interface.
<!--
Stop right there! Pause. Just for a minute... Can you think of anything
obvious that would complicate the ongoing development of this project?
Try to consider if you'd be able to maintain it throughout the next 5
years. Does it seem viable? Tell us your thoughts! We'd very much love
to hear what the consequences of merging this patch might be...
This will help us assess if your change is something we'd want to
entertain early in the review process. Thank you in advance! -->
<!-- Are there any issues opened that will be resolved by merging this
change? -->
<!-- Remember to prefix with 'Fixes' if it should close the issue (e.g.
'Fixes#123'). -->
- [x] I think the code is well written
- [x] Unit tests for the changes exist
- [x] Documentation reflects the changes
- [x] If you provide code modification, please add yourself to
`CONTRIBUTORS.txt`
* The format is <Name> <Surname>.
* Please keep alphabetical order, the file is sorted by names.
- [x] Add a new news fragment into the `CHANGES/` folder
* name it `<issue_or_pr_num>.<type>.rst` (e.g. `588.bugfix.rst`)
* if you don't have an issue number, change it to the pull request
number after creating the PR
* `.bugfix`: A bug fix for something the maintainers deemed an improper
undesired behavior that got corrected to match pre-agreed expectations.
* `.feature`: A new behavior, public APIs. That sort of stuff.
* `.deprecation`: A declaration of future API removals and breaking
changes in behavior.
* `.breaking`: When something public is removed in a breaking way. Could
be deprecated in an earlier release.
* `.doc`: Notable updates to the documentation structure or build
process.
* `.packaging`: Notes for downstreams about unobvious side effects and
tooling. Changes in the test invocation considerations and runtime
assumptions.
* `.contrib`: Stuff that affects the contributor experience. e.g.
Running tests, building the docs, setting up the development
environment.
* `.misc`: Changes that are hard to assign to any of the above
categories.
* Make sure to use full sentences with correct case and punctuation, for
example: ```rst Fixed issue with non-ascii contents in doctest text
files -- by :user:`contributor-gh-handle`. ```
Use the past tense or the present tense a non-imperative mood, referring
to what's changed compared to the last released version of this project.
---------
Co-authored-by: J. Nick Koston <[email protected]>
(cherry picked from commit 3b9bb1c)
<!-- Thank you for your contribution! -->
## What do these changes do?
<!-- Please give a short brief about these changes. -->
## Are there changes in behavior for the user?
<!-- Outline any notable behaviour for the end users. -->
## Is it a substantial burden for the maintainers to support this?
<!--
Stop right there! Pause. Just for a minute... Can you think of anything
obvious that would complicate the ongoing development of this project?
Try to consider if you'd be able to maintain it throughout the next
5 years. Does it seem viable? Tell us your thoughts! We'd very much
love to hear what the consequences of merging this patch might be...
This will help us assess if your change is something we'd want to
entertain early in the review process. Thank you in advance!
-->
## Related issue number
<!-- Are there any issues opened that will be resolved by merging this
change? -->
<!-- Remember to prefix with 'Fixes' if it should close the issue (e.g.
'Fixes#123'). -->
## Checklist
- [ ] I think the code is well written
- [ ] Unit tests for the changes exist
- [ ] Documentation reflects the changes
- [ ] If you provide code modification, please add yourself to
`CONTRIBUTORS.txt`
* The format is <Name> <Surname>.
* Please keep alphabetical order, the file is sorted by names.
- [ ] Add a new news fragment into the `CHANGES/` folder
* name it `<issue_or_pr_num>.<type>.rst` (e.g. `588.bugfix.rst`)
* if you don't have an issue number, change it to the pull request
number after creating the PR
* `.bugfix`: A bug fix for something the maintainers deemed an
improper undesired behavior that got corrected to match
pre-agreed expectations.
* `.feature`: A new behavior, public APIs. That sort of stuff.
* `.deprecation`: A declaration of future API removals and breaking
changes in behavior.
* `.breaking`: When something public is removed in a breaking way.
Could be deprecated in an earlier release.
* `.doc`: Notable updates to the documentation structure or build
process.
* `.packaging`: Notes for downstreams about unobvious side effects
and tooling. Changes in the test invocation considerations and
runtime assumptions.
* `.contrib`: Stuff that affects the contributor experience. e.g.
Running tests, building the docs, setting up the development
environment.
* `.misc`: Changes that are hard to assign to any of the above
categories.
* Make sure to use full sentences with correct case and punctuation,
for example:
```rst
Fixed issue with non-ascii contents in doctest text files
-- by :user:`contributor-gh-handle`.
```
Use the past tense or the present tense a non-imperative mood,
referring to what's changed compared to the last released version
of this project.
Co-authored-by: Tim Menninger <[email protected]>
0 commit comments