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

Do we need to make the CLI more similar to docker command with combining the purposes? #192

Open
unkcpz opened this issue Oct 3, 2023 · 2 comments

Comments

@unkcpz
Copy link
Member

unkcpz commented Oct 3, 2023

In fact, I think the profile concept is not very useful to end user. If we regard aiidalab-launch as a wrapper of a combination of multiple docker commands, it maybe makes sense to have the CLI command match with the docker command which are:

  • docker run -> aiidalab-launch run: to start from an image. (this will be the combination of current aiidalab-launch profile add + aiidalab-launch profile start)
  • docker stop -> aiidalab-launch stop: stop the container, it is the same from what it is now.
  • docker rm -> aiidalab-launch rm: remove the container (for aiidalab-launch case also remove the volume), this is then what I was going to achieve in this PR. It is the combination of the current aiidalab-launch reset and aiidalab-launch profile remove.

Originally posted by @unkcpz in #189 (comment)

@danielhollas
Copy link
Contributor

I may have misunderstood the intention here, but I disagree with the premise that we should treat aiidalab-launch as a thin wrapper over Docker. I think we should not expect the users of this to even be familiar with Docker necessarily.

In fact, I think the profile concept is not very useful to end user.

I am confused by this. To me this is very useful, since I can separate different projects (or dev environments) easily using this. (instead of e.g. using aiida-core profiles which we don't really utilize in AiiDAlab.

Surely you need to profile to at least store the user configuration? (i.e. which image to use, port etc?) How else would you manage this? docker run is not designed around storing persistent configuration.

I do agree that the how the profiles interact with docker volumes may be confusing (I personally at first was always unsure about what the reset command does, since that name does not make it clear that it is about deleting data). But in any case I don't think we should go in the direction of requiring users to necessarily know the intricies of Docker.

@unkcpz
Copy link
Member Author

unkcpz commented Dec 15, 2023

I don't have a very strong opinion now, to be honest. As a developer, the profile concept is useful, for testing and development in an independent environment. But for the app user, I don't know how much it is needed, we can hold this discussion until we have more users (hopefully 😄 ) who are not app developers. Then we can collect the preferences from users to improve the interface.
But you are right, the docker solution is not a better one, and I have to admit I propose it because I am familiar with it. This is how the world works, right? People reflect their thoughts on how they treat the world based on their knowledge limitations, and I am a mediocre man so this would for sure happen to me 😄

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

No branches or pull requests

2 participants