gitpod-io / gitpod

The developer platform for on-demand cloud development environments to create software faster and more securely.
https://www.gitpod.io
GNU Affero General Public License v3.0
12.72k stars 1.22k forks source link

Local to Gitpod "Onboarding Wizard" #9296

Open loujaybee opened 2 years ago

loujaybee commented 2 years ago

Context Remote development has many benefits, but it's also quite different for many developers who are very used to their current setup, workflows and configurations. Gitpod is intended to be "ready to code", but when you first start using it, you have a lot of things to configure, things like: dot files, Dockerfile, .gitpod.yml, VS Code extensions, gitpod CLI, if you're JetBrains user, you need to download JetBrains Gateway, if VS Code desktop you have to find / figure out how that works etc.

We already do some things to ease the burden here, such as: making inferences at configurations for the YAML file based on the project, however these don't cover all of the (aforementioned) things that a user needs to figure out and configure. Users should be able to experience the benefits of remote development, ephemeral etc without having to re-wire their brain (and all of their workflows) to how Gitpod works to reach the "ah-ha" moment. For example, switching from coding locally on VS Code Desktop and moving to Gitpod should be as instantaneous as possible.

Examples/use-cases:

  1. Feedback from user who didn't discover VS Code Settings Sync [1]

Proposal The proposal is to build an experience which walks a user through the process of migrating from their existing local flow into Gitpod, automating (and inferring) as many of the steps as possible. This could include (but not be limited to):

  1. Allow a user to open a gitpod workspace from an existing desktop repo gitpod open .
  2. Facilitating the download of JetBrains Gateway app / VS Code Desktop plugin download / Local Companion download
  3. Setup settings sync for VS Code (if the user wants)
  4. Auto detecting and assisting in migrating existing dotfiles from the current machine (shell aliases, etc)
  5. Support the creation of the Dockerfile (inference)
  6. Support for creation of the .gitpod.yml (inference)

This would be implemented, ideally, as part of the desktop CLI as a either a terminal-based wizard or a GUI walkthrough (this might make most sense as much of this configuration is already "on the users machine"). But could theoretically also be walked through in the browser (either as part of this work, or in future work).

gitpod start .

⚠️ GitHub repository detected `example-user/whatever`

Would you like to start a workspace based on your current repo, and its contents?
> Yes 
> No

Create new repo with contents of current directory?
> Yes
> No

What IDE/editor would you like to use?
> IntelliJ
> VS Code Desktop
> VS Code Browser

Would you like to set this as a global default?
> Yes
> No

Do you want to setup VS Code settings sync?
> Yes
> No

Do you have an existing dotfiles repo?
> Yes
> No

What shell do you use?
> Bash
> zsh

Would you like to create a github repo, and sync your current shell aliases to a dotfile?
> Yes
> No

Would you like to sync any local environment variables to Gitpod? 
> Yes
> No

Which ENV variables would you like to sync?
> GITPOD_TOKEN
> NPM_TOKEN
loujaybee commented 2 years ago

Adding a note here, as @Siddhant-K-code noted that Codespaces has some similar functionality for allowing a user to create a devcontainer configuration file using VS Code command palette actions. Worth factoring in that behaviour and how that functionality works if we move forward with this feature / idea.

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Siddhant-K-code commented 1 year ago

/never-stale