> I fully agree with this. My argument would be that if everything is > supposed to go through the command line, then we could work with very > limited types of expressions - instead of using not very expressive > Yaml, we could use a not very expressive subset of Scheme.
Sure, if it is possible to define this subset of Scheme clearly, that could be perfectly acceptable. > It assumes that people never hand edit these files created by a machine, > so that they remain in a rather rigid format. This is a difficult assumption, I think. It's hard to prevent people from tweaking files. Then, our tools will break and they will be left with a negative perception of Guix. > Well, that was not the question, I know you can easily write Scheme; > I just wondered whether these people's needs could be covered by the > existing command line tools. For the example you give, manifest files > could clearly by created and edited by a command line tool as outlined > above; and "guix shell" already is a command line tool. > > Maybe we need a concrete "workflow", an example of what people would > like to do on the command line, and which they cannot do right now? Fair point. I agree that guix shell is already a decent starting point. But, I find that surprisingly many researchers want to use fairly niche software packages that are specific to their domain. These packages are usually not packaged for Guix, and the researchers end up having to package it themselves. As a result, they are suddenly swamped by a full package definition in Scheme. After a few heroic attempts at making it work, they give up and go back to conda. Another common workflow I myself have to do often is to create channels. Creating a Guix channel is a lot of manual file editing, orphan branch creating, etc., etc. CLI tooling to automate such things would be very welcome. I even tried to write such tooling but was deterred by the complexity of programmatically editing arbitrary Scheme code.
