Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initializes telemetry UI #24

Merged
merged 20 commits into from
Feb 23, 2024
Merged

Initializes telemetry UI #24

merged 20 commits into from
Feb 23, 2024

Conversation

elijahbenizzy
Copy link
Contributor

Design:

  1. CRA + tailwind (they don't like CRA but I really don't care)
  2. prettier + eslint
  3. Add to pre-commit-config.yaml rahte rthan husky (which is very painful IMO)

@elijahbenizzy elijahbenizzy force-pushed the burr-ui branch 3 times, most recently from 4ee7f0c to be6d032 Compare February 20, 2024 06:04
@elijahbenizzy
Copy link
Contributor Author

elijahbenizzy commented Feb 20, 2024

Ok, long list of TODOs before getting this out + getting out v0

  • Fix merge conflicts
  • Break up into more commits (client, backend, server)
  • Fix serialization (recursive pydantic models stuff)
  • Ensure library is built with static assets
  • Create a set of examples that will be the demo everyone sees
  • Add some helpful CLIs
    • burr-server -- initializes the burr server with a set of pre-made examples (chatbot, cowsay, counter)
    • burr-demo -- runs a sample application, --streamlit launches streamlit + opens a window
    • Fix up imports so we know which target to install for CLI
  • Add documentation
    • Tracking/server
    • Getting started on the server (in the hello world)
  • Generate a set of demonstration ones
    • Add chatbot-demo, cowsay-demo
  • Host site statically with demo (TBD)
  • Add some comments + dev instructions (README) to server
  • Add dev instructions (README) to repository
  • parameterize server port

@elijahbenizzy elijahbenizzy force-pushed the burr-ui branch 3 times, most recently from 66bba0c to 0ed7eab Compare February 20, 2024 23:12
We returned `None` in `step` -- we now bypass calling the lifecycle hook
This allows us to track burr's execution locally.
This is a little quick/dirty. The intention is that the local data model
will work and remain stable through releases (if not, we will have
automated migration). The contract between server and UI is not stable
and will likely change. This is not included in the semantic versioning
yet for those reasons.

Basic design:
1. FastAPI for server
2. Pydantic for data types
3. Aiofiles + quick file-list for db (filesystem) access
4. Simple BE abstraction to start forcing the difference between API and
   implementation (though this will change)
5. uvicorn to run
Design choices:

1. Uses React (plain)/CRA. Simple and tried/true.
2. Uses react-query -- easy to cache state/refetch
3. Uses openapi-typescript-codegen to generate a fetch client
4. Uses tailwind catalyst components.

Tailwind license expressly allows this use-case as follows:

Creating a web application where the primary purpose is clearly not to
simply re-distribute the components (like a conference organization app
that uses the components for its UI for example) that is free and open
source, where the source code is publicly available.

link here: https://tailwindui.com/license
We just delegate to the tracking server/client for tracking
@elijahbenizzy elijahbenizzy force-pushed the burr-ui branch 5 times, most recently from e92cf45 to dd6cf48 Compare February 21, 2024 01:56
@elijahbenizzy elijahbenizzy force-pushed the burr-ui branch 3 times, most recently from 0437da9 to 7020918 Compare February 23, 2024 15:38
We can now install and get all static assets. Also adds CLI for
admin/user work -- TODO -- split it out and do dynamic imports...
This happens when the error is too long -- this fixes a few issues
around the layout in the data view.
Copied from Hamilton
Also renames commands/makes some features of the CLI optional to go
along with the developer-facing docs.
This is set to False for now as we don't have examples, but we will be
adding them.
Before this we had synchronous hooks running twice for an async call.
This adds an internal method that has the options to bypass hooks, and
calls that from the step() function.
@elijahbenizzy elijahbenizzy marked this pull request as ready for review February 23, 2024 15:52
README.md Outdated Show resolved Hide resolved
@elijahbenizzy
Copy link
Contributor Author

Done with this portion, track V0 in #29

@elijahbenizzy elijahbenizzy merged commit 399cdba into main Feb 23, 2024
6 checks passed
@elijahbenizzy elijahbenizzy deleted the burr-ui branch February 23, 2024 19:34
@elijahbenizzy elijahbenizzy mentioned this pull request Feb 27, 2024
25 tasks
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