Skip to content

[dev] refactor devserver into a combined service model#15518

Open
cjllanwarne wants to merge 4 commits into
hail-is:mainfrom
cjllanwarne:cjl_merge_devserver
Open

[dev] refactor devserver into a combined service model#15518
cjllanwarne wants to merge 4 commits into
hail-is:mainfrom
cjllanwarne:cjl_merge_devserver

Conversation

@cjllanwarne
Copy link
Copy Markdown
Collaborator

@cjllanwarne cjllanwarne commented May 29, 2026

Change Description

Replaces the devserver's SERVICE=... parameter with a combined service model.

Previously: SERVICE=batch gmake devserver followed by localhost:8000/
Now: gmake devserver followed by localhost:8000/batch/

Motivation:

  • Allow us to test UI components from all services with a single devserver invocation.
  • Allow us to build and test UI components which draw data from multiple services.

At the same time, remove the now redundant MOCK_API_DATA data generator that was used to test the flaky tests dashboard.

Security Assessment

  • This change cannot impact the Hail Batch instance as deployed by Broad Institute in GCP

No prod impact. This is all client-side developer tooling.

  • Required: The impact has been assessed and approved by appsec

@cjllanwarne cjllanwarne requested a review from a team as a code owner May 29, 2026 22:09
@cjllanwarne cjllanwarne requested a review from Copilot May 29, 2026 22:10
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR refactors the local devserver to run a single combined proxy that can serve multiple service UIs simultaneously (switching from a SERVICE=... model to service-prefixed URLs like /batch/, /ci/, etc.), and removes the CI MOCK_API_DATA generator path.

Changes:

  • Makefile: run all UI watchers + dev proxy together without SERVICE=..., and require all relevant editable Python packages for devserver startup.
  • devbin/dev_proxy.py: route by /<service>/... prefix, register service-prefixed static routes, and configure per-service Jinja environments to avoid template-name conflicts.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
Makefile Switch devserver to a combined multi-service target set; update dependency checks and parallelism.
devbin/dev_proxy.py Implement service-prefixed routing/static handling and multi-service Jinja setup; remove SERVICE-based branching and mock-data handler.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread devbin/dev_proxy.py
Comment thread devbin/dev_proxy.py
@cjllanwarne cjllanwarne requested a review from grohli June 2, 2026 19:46
@cjllanwarne cjllanwarne force-pushed the cjl_merge_devserver branch from 9314bae to 21fd6d6 Compare June 3, 2026 15:18
Copy link
Copy Markdown
Contributor

@grohli grohli left a comment

Choose a reason for hiding this comment

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

Discussed and demo shown offline, looks great. Thanks Chris!

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.

4 participants