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

Epic: Personalize workspaces from a user-configurable dotfiles repository #5198

Closed
dnsmichi opened this issue Aug 13, 2021 · 28 comments · Fixed by #7337
Closed

Epic: Personalize workspaces from a user-configurable dotfiles repository #5198

dnsmichi opened this issue Aug 13, 2021 · 28 comments · Fixed by #7337
Assignees

Comments

@dnsmichi
Copy link

dnsmichi commented Aug 13, 2021

Proposal

Provision the environment from a dotfiles repository, e.g. https://gitlab.com/dnsmichi/dotfiles

May need a special entry point in the .gitpod.yml similar to init/tasks: https://www.gitpod.io/docs/config-gitpod-file

Context

Question from @eddiejaoude in the stream at https://www.youtube.com/watch?v=tOrr4r_pNQc

GitHub Codespaces provides this feature: https://docs.github.com/en/codespaces/customizing-your-codespace/personalizing-codespaces-for-your-account#dotfiles

Possible Workarounds

Manual commands in .gitpod.yml and automate the setup of a dotfiles repository.


More details in the RFC

@dnsmichi
Copy link
Author

FYI @gtsiolis @pawlean

@eddiejaoude
Copy link

Yes please! This would be amazing 💥

@bigint
Copy link

bigint commented Aug 14, 2021

Love to see it ✨

@ghuntley
Copy link
Contributor

This has been heavily discussed internally and yes, we want to do it or help enable someone in the community to do it!

2021-08-17_15-17-14

Internal discussion link.

@svenefftinge
Copy link
Member

This needs to be a user setting.
I think codespaces did a great job on this and we should implement the same semantics as described here.

The settings should go under a new entry 'Dotfiles'.

@JanKoehnlein
Copy link
Contributor

I'd love to have that as well, but it doesn't currently fit into our schedule. Could you bring this up again later?

@dac09
Copy link

dac09 commented Aug 30, 2021

Just leaving a suggestion here: I don't think dotfiles should necessarily be provided in the gitpod.yml - because it's highly personal. I'd much prefer to set the dotfiles on my account only, and not force my team to use my dotfiles too :)

@eddiejaoude
Copy link

Yep, I would not want my team to have the same dotfiles either, but I would like my dotfiles to load automatically into my gitpod environment - this is similar to CodeSpaces.

@axonasif
Copy link
Member

axonasif commented Sep 7, 2021

Just leaving a suggestion here: I don't think dotfiles should necessarily be provided in the gitpod.yml - because it's highly personal. I'd much prefer to set the dotfiles on my account only, and not force my team to use my dotfiles too :)

Agreed ;)

@JanKoehnlein
Copy link
Contributor

We're currently still swamped, but this issue will be definitely reconsidered when you bring add it to groundwork again later.

@iQQBot iQQBot mentioned this issue Sep 28, 2021
@csweichel
Copy link
Contributor

Filling in some more detail here.

Configuration and user flow

Users would point to a repository in their settings on the dashboard. This needs some visual design @gtsiolis.
When a workspace starts, prior to starting the IDE we'd clone the repo and put it in the home directory. Hence, when the IDE starts it'll pull files like .bashrc and .bash_profile.

API changes

We could add a dotfiles_repo field to the StartWorkspaceSpec API. ws-manager would translate that field to a SUPERVISOR_ env var which supervisor would load as part of its workspace specific configuration.

Implementation

in supervisor prior to starting the IDE we'd run git clone --depth 1 on the dotfile repo, cloning it into $HOME/.dotfiles. Once the clone is complete, we'd symlink the files from the dotfiles repo into the home directory. Compared to moving the files into place, we retain the repository hence folks can make changes to their dotfiles and commit them back.

@csweichel
Copy link
Contributor

/team IDE

@gitpod-io gitpod-io deleted a comment from roboquat Nov 4, 2021
@jldec jldec changed the title Create personal workspace from dotfiles repository Epic: Personalize workspaces from a user-configurable dotfiles repository Dec 29, 2021
@jldec jldec moved this to In Progress in 🍎 WebApp Team Dec 30, 2021
@jldec jldec added the team: webapp Issue belongs to the WebApp team label Jan 2, 2022
@jldec
Copy link
Contributor

jldec commented Jan 2, 2022

As mentioned in #7337 (comment), I suggest shipping the first MVC PR as a BETA feature with just a text input UI, and later add a repo selection UI via followup issue #7385.

@schickling
Copy link

Just wanted drop a (vague) idea here (and maybe it's already possible?):

It would be great if I could persist my VSC settings in a config file/folder which is part of my dotfiles. In my workflow this would replace the MS/GitHub-based settings sync with a more git-centric workflow that could also power GitPod's VSC settings at the same time (related to #3733).

On another note related to dotfiles: Please keep Nix user workflows in mind here (cc @ghuntley)

@loujaybee loujaybee self-assigned this Jan 5, 2022
@loujaybee
Copy link
Member

I've added myself as an assignee here @csweichel to reflect IDE teams support / involvement. However, please remove if confusing / you had another idea of yourself as assignee!

@gtsiolis
Copy link
Contributor

Cross-posting from https://github.com/gitpod-io/roadmap/issues/21#issuecomment-1010208934 for visibility:

Hey everyone! FYI, we've recently shipped the first iteration of the .dotfiles support for workspaces, see #5198, #7337, and relevant RFC on how this works. 🔖

It should be relatively straightforward to use this feature. In dashboard /preferences add a repository URL that includes dotfiles. Gitpod will clone and install your dotfiles for every new workspace.

Follow up issues include 🅰️ adding some relevant documentation (gitpod-io/website#1407 Cc @jldec) and 🅱️ improving the user experience of selecting a repository (#7385) from just having a text input for the repository URL. 🗺️

Cc @dnsmichi @behrica @andymac4182 @schickling @eddiejaoude @trumbitta @akosyakov @axonasif @bigint @Milo123459 @PatMyron @nberlette @pawlean @jakehamilton @chyld @michael-bowen-sc @hoegertn @jcdea @brams-dev @kr-anurag @vnys @leodido

@leodido
Copy link
Contributor

leodido commented Jan 12, 2022

Cross-posting from gitpod-io/roadmap#21 (comment) for visibility:

Hey everyone! FYI, we've recently shipped the first iteration of the .dotfiles support for workspaces, see #5198, #7337, and relevant RFC on how this works. 🔖

It should be relatively straightforward to use this feature. In dashboard /preferences add a repository URL that includes dotfiles. Gitpod will clone and install your dotfiles for every new workspace.

Follow up issues include 🅰️ adding some relevant documentation (gitpod-io/website#1407 Cc @jldec) and 🅱️ improving the user experience of selecting a repository (#7385) from just having a text input for the repository URL. 🗺️

Cc @dnsmichi @behrica @andymac4182 @schickling @eddiejaoude @trumbitta @akosyakov @axonasif @bigint @Milo123459 @PatMyron @nberlette @pawlean @jakehamilton @chyld @michael-bowen-sc @hoegertn @JcdeA @brams-dev @kr-anurag @vnys @leodido

Lovely to see this finally come to life! 💟
Congrats all!

@gtsiolis
Copy link
Contributor

@zpthree yes, you're right! We've opened a follow up issue to also support private repositories in #7565 and there's already a fix on the way from @iQQBot in #7569.

@zpthree
Copy link

zpthree commented Jan 12, 2022

@gtsiolis awesome! looks like my comment got deleted somehow so for anyone seeing this i was just saying that it looks like the dotfiles repo needs to be public.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Status: In Progress
Development

Successfully merging a pull request may close this issue.