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

Make each desktop session be contained in its own config #2189

Closed
rbuels opened this issue Aug 5, 2021 · 8 comments
Closed

Make each desktop session be contained in its own config #2189

rbuels opened this issue Aug 5, 2021 · 8 comments
Labels
enhancement New feature or request needs review needs verification and/or more specifics

Comments

@rbuels
Copy link
Contributor

rbuels commented Aug 5, 2021

All tracks and assemblies will be session tracks and assemblies.

After discussion in our meeting, we want to explore having each session be in its own config, so it would still be running in "admin mode."

@rbuels rbuels added the enhancement New feature or request label Aug 5, 2021
@rbuels rbuels added this to the jbrowse-desktop first release milestone Aug 5, 2021
@garrettjstevens
Copy link
Collaborator

I think the goal here could be accomplished in another way. What if we said that each config only had a single session, so instead of having a bunch of sessions that all have session tracks, session assemblies, etc., we have a bunch of normal configs that each have a single session. Maybe there would be a base config with a handful of settings that could get copied into each new config as well.

@garrettjstevens
Copy link
Collaborator

Following up on above, it would make #2190 easier since opening a CLI-made data directory would just mean opening the CLI-made config file in that directory, you wouldn't have to convert it to a session or anything.

Also, we could give the config files a custom file extension and associate that file extension with the desktop app, and you should be able to then click on a config file in your file manager to open it in desktop.

@cmdcolin
Copy link
Collaborator

cmdcolin commented Aug 5, 2021

One idea for sessions is that when you select that you want to open e.g. hg38 from our preconfigured list, then it would open a session with hg38 and a gene track, and it would not necessarily modify our root config.json

I haven't created a workflow in my head yet that would work with multiple configs in a similar way

@cmdcolin
Copy link
Collaborator

cmdcolin commented Aug 5, 2021

e.g. if it did a similar thing with multiple configs would it download a full config.json each time? that would probably be fine, but would just be a little different of a workflow

@cmdcolin cmdcolin added the needs review needs verification and/or more specifics label Aug 10, 2021
@garrettjstevens garrettjstevens changed the title make desktop run in non-admin mode Make each desktop session be contained in its own config Aug 18, 2021
@garrettjstevens
Copy link
Collaborator

If each desktop session is a config and session all bundled together, then it would probably be good to have some way of applying global settings to each config. One thing we discussed was having a shared config that didn't have tracks, assemblies, session, etc., but could have the "configuration" sections of the config that has things like theme, etc. That could then be merged in to each config when it is opened.

If we do this, should anything else be in the shared config besides the "configuration" section? Plugins, maybe?

@cmdcolin
Copy link
Collaborator

I tried to go out on a limb and take a crack at this. It's still experimental but it seems like it is maybe getting towards this goal

This is an experimental branch but it can be seen here
https://github.com/GMOD/jbrowse-components/compare/electron_ts?expand=1

has thumbnail view and grid view on start screen, kinda like a file browser with thumbnail and detail view

Screenshot from 2021-08-21 21-02-20

Screenshot from 2021-08-21 21-05-25

With this branch it is possible to launch the preloaded hg38 config from the start screen (recent sessions table and other start screen functions are non-functional at this point)

Technical note:

If we are loading a new config after the start screen, then we don't really have a valid rootModel or pluginManager at that point. Therefore, the Loader for desktop needed some reorganizing so that it only tries to create a pluginManager after the start screen. This also sort of opens the door to perhaps maintaining the "theme" config separately from the other config stuff, since we do want the theme to exist at the start of the app.

@cmdcolin
Copy link
Collaborator

The branch noted above now has the ability to functionally do all the functions of the start screen

Screenshot from 2021-08-22 19-08-26

The pre-loaded datasets are hardcoded in the app, but could be downloaded from a remote server possibly

The function to "Open pre-existing config" can open e.g. the config.json from volvox, and it works fine. This is an interesting case perhaps because on load, it actually attempts to translate any uri entry into a localPath if it does not start with http. Then, the jbrowse autorun actually automatically copies this config into the UserData e.g. ~/.config/@jbrowse/core/sessions/sessionname.json (so it is no longer reading or writing to the original file you opened)

The "Open sequence file" is similar to the assembly add form.

@cmdcolin
Copy link
Collaborator

cmdcolin commented Sep 2, 2021

added in #2247

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request needs review needs verification and/or more specifics
Projects
None yet
Development

No branches or pull requests

3 participants