← Back to issue list

Rewrite with `httpx`

View original Github issue

Metadata

Project
craft-store
Number
#208
Type
issue
State
open
Author
lengau
Labels
—
Created
Updated
Closed
—

Current evaluation

Maintainer-filed request to rewrite craft-store's HTTP layer with httpx. Migration is partially done (httpx auth classes, Ubuntu One login) but http_client.py/base_client.py still use requests. Open 748 days, no labels, no triage.

Suggested action: needs triage

Reason: The goal is clearly stated by a maintainer, and I confirmed the migration is genuinely partial: craft_store/http_client.py still does `import requests` with `requests.Session()`/`HTTPAdapter`/`Retry` and base_client.py uses `requests_toolbelt.MultipartEncoder`, while httpx exists only in newer paths (_httpx_auth.py's CandidAuth/DeveloperTokenAuth/UbuntuOneAuth, login/_ubuntuone.py). However, the issue has no labels, no assignee, and the only comment is an autogen bot Jira sync, so it has never been assessed. A rewrite of this size also needs a design spec (retry/backoff parity, multipart progress, keeping StoreClient/UbuntuOneStoreClient working for existing consumers) that the one-line 'why' does not provide.

Evaluated by: mr-cal-bot

Impact: 55 Quick Win: 8 Complexity: 75 Confidence: 82 Actionability: 55

Issue body

### What needs to get done Rewrite `craft-store` using `httpx` ### Why it needs to get done We're stuck on an older version of requests for other reasons and this can work around some issues.

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 55
Quick Win: 8
Complexity: 75
Confidence: 82
Actionability: 55
needs triage Maintainer-filed request to rewrite craft-store's HTTP layer with httpx. Migration is partially done (httpx auth classes, Ubuntu One login) but http_client.py/base_client.py still use requests. Open 748 days, no labels, no triage.
qwen/qwen3.6-35b-a3b
Impact: 60
Quick Win: 18
Complexity: 50
Confidence: 70
Actionability: 60
needs triage Request to complete migration from requests to httpx in craft-store. Partial httpx support exists (auth classes, login), but core HTTP client still uses requests. Open 737 days, no maintainer response.
qwen/qwen3.8-27b
Impact: 50
Quick Win: 15
Staleness: 55
Complexity: 70
Confidence: 65
Support Request: 0
keep open Feature request to rewrite craft-store using httpx instead of requests, to work around requests version pinning issues. Partially implemented: httpx-based auth classes and Publisher Gateway client exist, but core clients still use requests.
qwen/qwen3.6-35b-a3b
Staleness: 92
Complexity: 45
Confidence: 85
Support Request: 5
needs triage Request to rewrite craft-store to use httpx instead of requests to work around dependency constraints. Currently inactive with no maintainer triage or implementation progress.
qwen3.6-35b-a3b-mtp-q6
Staleness: 90
Complexity: 65
Confidence: 70
Support Request: 10
needs triage Proposal to rewrite craft-store to use httpx instead of requests to resolve dependency conflicts. Issue is over a year old, lacks labels or assignee, and has not been triaged by maintainers.

Update history

No update history recorded yet.

Related work

  • Related To: craft-store#237 (confidence 70%)

    Commit 5d699d6 'feat: add DeveloperTokenAuth for httpx clients (#237)' is part of this migration — httpx auth was built out alongside the still-requests core client.

  • Related To: craft-store#240 (confidence 65%)

    Commits c0cd369 (publisher gateway client) and d4e9806 (#369, PublisherGateway login with Ubuntu One SSO) add httpx-based clients that duplicate, rather than replace, the requests-based StoreClient path.

Related issues

No related issues found above the similarity threshold.