DevAlien/workspaces

Some way to share definitions?

yajo opened this issue · 10 comments

yajo commented

I see this could be a great way to work, and I'd like to consider including it in our dev workflow toolbelt.

It would be very nice if there'd be a way to share definitions, something like a git repo would be awesome. This way, devs in the team could share some specifics of the projects, such as where the git code exists, what's the project URL, how to connect to the server via SSH, and so on.

Of course, being able to include custom items in a project, or custom projects, that wouldn't be shared would be just perfect.

Ok, could you elaborate more on this?
You basically want to have some sort of extra fields in a workspace? or just be able to share the workspace? I'm asking that because it kind of makes sense, but for example to launch your editor with the path to the code is not the same for everyone, so that wouldn't be useful.

Do you have any idea?

Regarding path can be done in this way:

  • Each item has a base path that is captured or input by the user when selecting for example the folder to open
    This base path could be exported as blank to be imported to other users and then amend to path the right environment.
yajo commented

Humm true.

Also maybe some people want to use one terminal, editor or browser, and some people others...

There could be a place where to configure your favourite apps for such common scenarios. Or to define some variables that indicate the root of your dev folders. Then the shared template could use those variables to present a shared configuration for all users within a team, without forcing emacs users to use vim or viceversa.

browser , terminal etc are the default ones in your system. We could make a base path in a project and then the commands are going to be executed from that directory.

defaults can be interesting for a workspace, we have to think as well design wise how we could implement that. And then once that is figured out we could make an import and export function

yajo commented

Humm yes.

The point is that imagine one service moves from one domain to another... Then all devs in the team just open workspaces, sync it with the team config, and then when opening the website, it opens the correct domain and not the old one.

Just an example, you know? Something like project settings working out of the box for everybody.

I guess the complicated part is that maybe somebody would still want to add some item just for their computer, but well... They can always use a separate project for those items after all...

Hi. This seems like a great idea.
IMHO, a good way to do it would be following the same principle as, for example, VSCode, where you can have global settings set up by the user (these could be paths for the appropriate binaries, which editor to use, etc.) and then project specific settings (like server locations, domains, etc.), which could be shared by the team.
A good way to enable syncing would be to simply allow to define settings with some sort of file (YAML, for example) and then we can sync those with an external tool (like git, syncthing, etc.)

yajo commented

It seems a nice enhancement too.

Of course, we're just sharing ideas, don't feel guilty if any of them falls out of scope of what you think the project is 😉

Of course, but I want to find a solution that works for most people, without making it too complex

yajo commented

I'm thinking that after all you have to store configurations somewhere, right? If you let the user to specify one or several places, he can choose any tool he wants to sync just one of those. That'd be the simplest fix I think.