Skip to content

fix: Build embedded UI from local source#6526

Merged
franciscojavierarceo merged 4 commits into
v0.64-branchfrom
codex/fix-ui-release-build-v0.64
Jun 16, 2026
Merged

fix: Build embedded UI from local source#6526
franciscojavierarceo merged 4 commits into
v0.64-branchfrom
codex/fix-ui-release-build-v0.64

Conversation

@franciscojavierarceo

@franciscojavierarceo franciscojavierarceo commented Jun 15, 2026

Copy link
Copy Markdown
Member

What changed

  • Backport fix: Build embedded UI from local source #6525 to v0.64-branch.
  • Update make build-ui to build the checked-out ui/ source and copy the generated build into sdk/python/feast/ui/build.
  • Keep build-ui-local as an alias for the same build path.
  • Backport the explicit MCP enablement guard from master so mocked config does not accidentally mount MCP routes in unit tests.
  • Backport the master REST route registration test simplification so the test verifies router inclusion directly instead of depending on mocked RestRegistryServer construction side effects.
  • Backport the master allowlist comment for the OpenLineage placeholder API key so detect-secrets --all-files passes on the release branch.

Why

feast ui packages the embedded React app from sdk/python/feast/ui/build. The previous release build target pulled @feast-dev/feast-ui --latest from npm, but npm's latest published package is still 0.57.0. That stale UI treats registryPath as a monolithic registry blob URL, so with the newer Python server generating /api/v1, it requests GET /api/v1 and receives a 404.

Building the embedded UI from the repo-local ui/ source keeps the frontend bundle aligned with the REST-backed Python UI server for the 0.64 release branch.

The test-only backports are included because v0.64-branch unit tests use a MagicMock config. Without requiring mcp.enabled is True, the mock is truthy and the server mounts MCP routes. After that guard, the route-path assertion still depends on mocked server construction, so this PR also matches master by verifying register_all_routes directly.

The OpenLineage manifest change matches master; it is a placeholder value, not a real secret.

Fixes #6519.

Validation

  • make -n build-ui
  • python3 -m py_compile sdk/python/tests/unit/api/test_api_rest_registry_server.py sdk/python/feast/api/registry/rest/rest_registry_server.py

I could not run the full UI build locally because yarn is not installed in this shell. I also could not run the targeted Python test locally because uv is not installed in this shell, and I could not run pre-commit locally because pre-commit is not installed in this shell.

Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
(cherry picked from commit f09aa92)
@franciscojavierarceo franciscojavierarceo marked this pull request as ready for review June 16, 2026 03:14
@franciscojavierarceo franciscojavierarceo changed the title fix: build embedded UI from local source fix: Build embedded UI from local source Jun 16, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f89eb23bc4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Makefile
cd $(ROOT_DIR)/sdk/python/feast/ui && yarn upgrade @feast-dev/feast-ui --latest && yarn install && npm run build --omit=dev

build-ui-local: ## Build Feast UI locally
cd $(ROOT_DIR)/ui && yarn install && npm run build --omit=dev

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Build the UI from the release ref

Because this target now compiles the checked-out ui/ sources, the existing wheel workflow bundles the wrong UI when checkout_ref or the computed release tag differs from the workflow's initial checkout: .github/workflows/build_wheels.yml runs make build-ui at lines 64-65, then only later does git checkout "${CHECKOUT_REF:-$VERSION}" at lines 76-78 before building the wheel. In those release/verification runs, the Python package is built from the requested ref but sdk/python/feast/ui/build was produced from the earlier ref, so published wheels can contain a frontend from the wrong branch/tag.

Useful? React with 👍 / 👎.

Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
@franciscojavierarceo franciscojavierarceo requested a review from a team as a code owner June 16, 2026 03:18
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
@franciscojavierarceo franciscojavierarceo merged commit 76d1a00 into v0.64-branch Jun 16, 2026
23 checks passed
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.

1 participant