Skip to content

chore: remove http options - #475

Merged
alexanto merged 3 commits into
mainfrom
chore/remove-http-options
Nov 11, 2026
Merged

alexanto merged 3 commits into
mainfrom
chore/remove-http-options

Conversation

@alexanto

@alexanto alexanto commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

removes http options since they no longer make sense, whatever they can do, should be done with the transport option

@alexanto
alexanto changed the base branch from main to feat/public-sync-transport November 5, 2026 13:08
@alexanto
alexanto changed the base branch from feat/public-sync-transport to feat/async-transport November 5, 2026 13:09
@alexanto
alexanto added this pull request to stack #468 November 5, 2026 13:09
@gastonfournier gastonfournier moved this from New to In Progress in Issues and PRs Nov 6, 2026
@alexanto
alexanto force-pushed the chore/remove-http-options branch from bca2252 to 509255d Compare November 6, 2026 08:15
@alexanto
alexanto requested review from ppicom and a balanced review from Copilot November 6, 2026 09:18

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

No active review issues remain for the move to transport-based HTTP configuration.

No open issues 🎉

What changed in this PR

This PR removes HttpOptions from the v7 SDK configuration, making transports the configuration point for HTTP behavior in synchronous and asynchronous clients.

Changes:

  • Removes http arguments, configuration fields, exports, and legacy request-option forwarding.
  • Defaults feature-fetch retries to three and fixes streaming connections to SDK headers and a 30-second timeout.
  • Updates tests and documentation for transport-based configuration and migration limitations.
File Description
v7_MIGRATION_GUIDE.md Explains transport-based migration and streaming limitations.
UnleashClient/​transport.py Removes legacy HTTP-option validation and request kwargs.
UnleashClient/​constants.py Removes the old retry constant.
UnleashClient/​connectors/​streaming_connector.py Removes custom request options from streaming.
UnleashClient/​config.py Removes HttpOptions and its configuration field.
UnleashClient/​clients/​unleash_client.py Removes http and sets the streaming timeout directly.
UnleashClient/​clients/​async_unleash_client.py Removes the async client’s http argument.
UnleashClient/​_unleash_api_client.py Uses default transport and retry settings.
UnleashClient/​_retry.py Introduces a default of three feature-fetch retries.
UnleashClient/​_headers.py Stops merging custom headers from configuration.
UnleashClient/​_async_unleash_api_client.py Uses default async transport and retry settings.
UnleashClient/​__init__.py Removes the HttpOptions export.
tests/​utilities/​testing_constants.py Removes obsolete HTTP test constants.
tests/​unit_tests/​test_unleash_api_client.py Removes legacy HTTP configuration and related assertions.
tests/​unit_tests/​test_transport.py Removes tests for deleted request-kwargs support.
tests/​unit_tests/​test_headers.py Removes configuration-based custom-header tests.
tests/​unit_tests/​test_config.py Adapts configuration tests to remaining option groups.
tests/​unit_tests/​test_async_unleash_api_client.py Configures timeout through an explicitly closed transport.
tests/​unit_tests/​connectors/​test_polling_connector.py Removes HTTP options from polling setup.
tests/​unit_tests/​connectors/​test_async_connector.py Uses a fixture to disable fetch retries.
tests/​unit_tests/​clients/​test_unleash_client.py Moves network timeout configuration to the transport.
tests/​unit_tests/​clients/​test_unleash_client_transport.py Updates rejected-transport validation tests.
tests/​unit_tests/​clients/​test_async_unleash_client.py Removes HTTP options and adopts the retry fixture.
tests/​unit_tests/​clients/​test_async_unleash_client_transport.py Updates async rejected-transport validation tests.
tests/​specification_tests/​test_async_client_specs.py Removes HTTP options from specification-test setup.
tests/​conftest.py Adds a fixture that disables feature-fetch retries.
README.md Updates configuration examples and transport limitations.
CHANGELOG.md Records the HTTP configuration breaking changes.

Review effort: Balanced

@sighphyre sighphyre left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Okay lotta trimming back here which is good. I think the best way for me to feel comfortable with this is probably a public API/docs review after merge which I can do as part of the docs migration.

I don't see anything dangerous or insane here so 👍

@github-project-automation github-project-automation Bot moved this from In Progress to Approved PRs in Issues and PRs Nov 10, 2026
Base automatically changed from feat/async-transport to main November 11, 2026 14:02
@alexanto
alexanto force-pushed the chore/remove-http-options branch from 509255d to 87af2a3 Compare November 11, 2026 14:13
@alexanto
alexanto merged commit bfdc56e into main Nov 11, 2026
8 checks passed
@alexanto
alexanto deleted the chore/remove-http-options branch November 11, 2026 15:46
@github-project-automation github-project-automation Bot moved this from Approved PRs to Done in Issues and PRs Nov 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants