Repository navigation
feat(apps): add the Impulse App as apps/adhoc-reporting - #128
Closed
MaximHammer wants to merge 3 commits into
Closed
MaximHammer wants to merge 3 commits into
MaximHammer wants to merge 3 commits into
Conversation
Adds the Impulse App, a Databricks App for building Impulse reports step by step or with an assistant, as a self-contained project under apps/adhoc-reporting. It is optional and not part of the databricks-impulse package: the wheel and sdist are unchanged, and the root make targets and CI don't include it. Imported from the standalone impulse-app repository at commit 0f47355 (main), without history, then adapted to its new home: - Lockfiles point to public PyPI and npm instead of internal mirrors; `make lock` keeps them there. - Own [tool.uv] table and .python-version (3.11), so uv doesn't apply the root project's settings; project installs use --frozen, so a local package mirror can't rewrite uv.lock. - `make deploy` only checks the app folder for uncommitted changes. - The bundle and the default app name are impulse-adhoc-reporting instead of impulse-v4. - Generated notebooks call report.run() and run(persist_results=False) instead of the deprecated determine_report() and persist_results(); the contract test binds every call against the real Report.run signature. - Pins Impulse 0.9.0, with the vendored framework skills re-synced. - `make test FRAMEWORK=../..` builds the contract tests against the framework source in this repo. - The install guide moves to the docs site; the README keeps the development notes. The root README and CONTRIBUTING point to the app, and NOTICE lists its dependencies. Co-authored-by: Isaac <[email protected]>
Runs the app's unit tests, its contract tests against the pinned framework release and against the framework source of the same commit, and the frontend build. It triggers on changes to apps/adhoc-reporting/, src/ and the workflow itself, so framework changes that break the app's generated notebooks show up in the PR that makes them. It isn't a required check and uploads no coverage, so the framework's CI and Codecov status stay as they are. Co-authored-by: Isaac <[email protected]>
Adds a second docs instance under /app with Overview, Requirements, Install and Architecture pages for the Impulse App. The navbar entry "Docs" becomes "Impulse Analytics Framework"; it still opens Motivation, and all existing /docs URLs stay the same. The landing page gets an "Impulse App" button. Co-authored-by: Isaac <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the Impulse App, a Databricks App for building Impulse reports step by step or with an assistant, as an optional, self-contained project in
apps/adhoc-reporting, and an "Impulse App" section in the docs next to the framework docs. Nothing changes for framework users: thedatabricks-impulsewheel and sdist are identical tomain, and the rootmaketargets and the existing CI don't include the app.This PR comes from a fork while my write access to
databrickslabsis renewed, so CI is skipped here. After review, a maintainer can runmake fork-sync PR=<this PR>to run the full CI.Changes
apps/adhoc-reporting: the app, imported from the standalone repository (commit 0f47355, without history) and adapted to this repo: public registries in both lockfiles, its own uv settings,report.run()instead of the deprecateddetermine_report()andpersist_results(), Impulse pinned to 0.9.0, and renamed fromimpulse-v4toimpulse-adhoc-reporting..github/workflows/app-adhoc-reporting.yml: unit tests, contract tests against the pinned release and againstsrc/of the same commit, and the frontend build. Path-filtered, not a required check, no Codecov upload./app(Overview, Requirements, Install, Architecture). The navbar entry "Docs" becomes "Impulse Analytics Framework" and still opens Motivation; existing/docsURLs are unchanged. The landing page gets an "Impulse App" button.Test Plan
Locally: the app's unit and contract tests (131 + 32) pass against the pinned 0.9.0 wheel and against
src/; the frontend builds;make lintpasses; the wheel and sdist matchmain; the docs build passes the broken-link check and search indexes the app pages.On a Databricks workspace: demo data seed, serverless smoke runs with and without gold writes, live data tests (12/12), assistant evals (10/10), bundle deploy, and a report built, run as the app's service principal and read back through the deployed app's API.
Not verified: the framework's Spark test suite (no framework code changed) and the new workflow on the protected runners, which need to download the pinned wheel from GitHub releases.
Checklist
This pull request and its description were written by Isaac.