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

Feat/eng 1019 devpod desktop #2

Merged

Conversation

pascalbreuninger
Copy link
Member

devpod desktop intial setup

@linear
Copy link

linear bot commented Mar 3, 2023

ENG-1019 DevPod: Desktop App

What technology should we use there? Electron?

https://docs.google.com/document/d/1s70RVDXda5IuTYe8eh1kTMP-mXuVojXHTneSYEzyVJk/edit?usp=sharing

=> Decision was made to start with Tauri, because:

  • Much smaller bundle size than Electron
  • Has better reputation in the Developer Community (Marketing benefit?)
  • Smaller footprint than Electron
  • Potentially easier to call low level functionality

Scope of MVP

  • Workspaces:
    • View: Create from Git / Local Path / Image
      • Select what provider to use
      • Select what IDE to use
      • Show create stdout output (reuse xtermjs from Loft)
    • Overview in system tray (click to open IDE)
    • Start / Stop / Delete (Button in system tray)
  • Providers:
    • View: Add / Configure Provider
      • Either: Select Inbuilt Provider or paste Provider URL (e.g. github.com/…)
      • Fill Options (e.g. gcloud zone, project etc.)
      • Show init output
    • Reconfigure / Delete Provider (Button in system tray)
  • Open/Create from URL Handler:
    • Open Create View with prefilled Git URL / Image OR if already exists, open IDE directly

Integration with DevPod CLI

  • Add global flag --log-output=json
  • Add --output=json for list workspaces.
    • devpod workspace status WORKSPACE_NAME -o json
  • Add --output=json list providers
  • Add --output=json list provider options

Rough Roadmap

Each week will have a main objective. Development in other areas might be done if appropriate or objective achieved. The first weeks will be spent on tauri specific APIs with the most uncertainty as to if and in what way they might work for us.

We'll take stock of tauri and our implementation of native functionality on March, 17th. This leaves us with some room to switch to electron if need be.

The general goal is to be done with a working version end of march, leaving us with 1,5 weeks of buffer time until kubecon.

CW 9, 27.02 - 03.03.: Project setup, custom protocol handler (most uncertainty, not officially supported by tauri)

CW 10, 06.03 - 10.03: Vacation

CW 11, 13.03 - 17.03: System tray and leftover tauri specifics

— 17.03: Check in - is tauri the right solution for us and are we on track? —

CW 12, 20.03 - 24.03: UI

CW 13, 27.03 - 31.03: UI / Distribution

CW 14, 03.04 - 05.03: Buffer

CW 15, 10.04 - 14.03: Buffer

@FabianKramm FabianKramm merged commit b954ad9 into loft-sh:main Mar 3, 2023
pascalbreuninger added a commit that referenced this pull request Apr 17, 2023
chore(ui): bump version to 0.1.0
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