Skip to content

Install Android and Web dependency locally#661

Merged
mdshakib007 merged 3 commits intodevfrom
integrated-installer-localhost
Feb 16, 2026
Merged

Install Android and Web dependency locally#661
mdshakib007 merged 3 commits intodevfrom
integrated-installer-localhost

Conversation

@mahbd
Copy link
Collaborator

@mahbd mahbd commented Feb 15, 2026

PR Type

Feature

PR Checklist

  • Tests for the changes have been added / updated.
  • Documentation comments have been added / updated.
  • A changelog entry has been made.
  • Version number has been updated.
  • Required modules have been added to respective "requirements*.txt" files.
  • Relevant Test Cases added to this description (below).
  • (Team) Label with affected action categories and semver status.

Overview

This PR introduces local installation support for Android and Web services by creating a dedicated installer router (server/installers.py).

Key changes include:

  1. Asynchronous Web Requests: Updated Framework/install_handler/utils.py to make send_response calls asynchronous using asyncio.to_thread for HTTP requests, improving responsiveness, especially when interacting with external services. The response retry logic now uses a fixed sleep time of 3.5 seconds.
  2. Local Installer Implementation: A new file, server/installers.py, is introduced to host a local installer endpoint (/installer/*).
    • This module sets up an Event Bus and Job Store to manage asynchronous installation jobs locally.
    • It patches the global send_response mechanism across relevant modules (Android/Web) to redirect status updates to the local Job Store/Event Bus when running locally, falling back to the remote mechanism only if configured or if no job context is present.
    • It registers routes for general service listing, job creation/status tracking, and specific endpoints for Android Emulator management (refresh, list installables, create AVD, launch AVD).
  3. Android Integration: The Android installation utility (Framework/install_handler/utils.py) was updated to remove the dependency on ConfigModule (which seems unused here) and patched to use the new local response mechanism. The commit history suggests an update to use localhost for Android installation hooks, which is facilitated by the patching logic in server/installers.py.

This enables running and monitoring installation jobs (Android/Web) entirely on the local machine without relying on immediate remote communication for status updates.

Test Cases

  • Verify /installer/services returns expected services filtered for Android/Web categories.
  • Verify submitting an install job (e.g., for a Web service) returns a queued job ID.
  • Verify polling the job status endpoint /installer/jobs/{job_id} returns the updated status as the local job progresses.
  • Verify Android Emulator jobs (e.g., create/launch) are correctly dispatched and tracked.

@mahbd
Copy link
Collaborator Author

mahbd commented Feb 15, 2026

📚 $\text{Stack Overview}$

Pulls submitted in this stack:

This comment was automatically generated by st.

@mahbd mahbd marked this pull request as ready for review February 16, 2026 04:15
@mdshakib007 mdshakib007 merged commit 7ad568d into dev Feb 16, 2026
7 checks passed
@mdshakib007 mdshakib007 deleted the integrated-installer-localhost branch February 16, 2026 12:09
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.

2 participants

Comments