Skip to content

Audit default Builder options #3279

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

Closed
4 tasks done
seanmonstar opened this issue Jul 26, 2023 · 1 comment
Closed
4 tasks done

Audit default Builder options #3279

seanmonstar opened this issue Jul 26, 2023 · 1 comment
Labels
C-refactor Category: refactor. This would improve the clarity of internal code. E-medium Effort: medium. Some knowledge of how hyper internal works would be useful.
Milestone

Comments

@seanmonstar
Copy link
Member

seanmonstar commented Jul 26, 2023

Prior to marking hyper 1.0, it would be wise to audit all the default options in the various connection Builders. While changing them would be a compilation breaking change, it would be a behavioral change. (We could add a note that default options are not meant to be relied upon, that setting them explicitly is better, and thus reserve the ability to change defaults?)

This issue balances two of hyper's tenets: Correct vs Flexible. The existence of an option fulfills flexible, but as that tenet description points out, we should favor the default being safer, since Correct is more important.

I know some of the options that should probably include defaults are slightly tricky: timeouts. They only work if a impl Timer is provided, otherwise they can't set any timeouts. But we can discuss here how best to handle that: default on but only enabled if a timer is provided, warn if a timer is not provided, or require a timer be provided.

Action Items

@seanmonstar seanmonstar added E-medium Effort: medium. Some knowledge of how hyper internal works would be useful. C-refactor Category: refactor. This would improve the clarity of internal code. labels Jul 26, 2023
@seanmonstar seanmonstar added this to the 1.0 milestone Jul 26, 2023
@seanmonstar
Copy link
Member Author

One thing I was thinking about was that the defaults, whatever they are, shouldn't be relied upon. I'd like to document that, since we could want to either (a) add a new option with a default, or (b) adjust a default, with the goal of protecting the most people. There's a couple things now that are documented separately about stability, so I'd probably also add a # Stability section the main doc page. But it would also be good to add more details to each Builder docs.

I've added an action item.

@seanmonstar seanmonstar moved this from Todo to In Progress in hyper 1.0 Nov 6, 2023
@github-project-automation github-project-automation bot moved this from In Progress to Done in hyper 1.0 Nov 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-refactor Category: refactor. This would improve the clarity of internal code. E-medium Effort: medium. Some knowledge of how hyper internal works would be useful.
Projects
No open projects
Status: Done
Development

No branches or pull requests

1 participant