Xue Fuqiao <[email protected]> skribis: > Here's my (tentative) plan of this project:
Thanks for sharing your thoughts! > This package (guix.el) will include a facility that lets you easily > install (by name or by expression), remove, upgrade, and roll back > packages. Of course, guix.el can also list the available and/or > installed packages. > > The command `guix-describe-package' (I haven't come up with a good key > binding yet) can prompt for the name of a package, and display a help > buffer describing the package. The buffer includes the name, version, > source, dependencies, home page, license(s) and other descriptions of > the package. There should also be a link to jump to the package definition, pretty much like that of Emacs’ and Geiser’s docstring buffers. Optionally, the package’s logo could be displayed too (see build-aux/list-packages.scm, which does that for the HTML output.) Also, I think there should be a search facility, with incremental search fashion. For instance, you could type ‘S’, enter a “C lib”, and that would restrict the package list to the packages that show up in ‘guix package -S "C lib"’. > `M-x guix-list-packages' will bring up a buffer named `*Guix Packages*' > with a list of all packages. You can install or uninstall packages via > this buffer. *Note my attached image for the prototype of this buffer. Perfect. Ideally, new packages (obtained via ‘guix pull’) would show up first, highlighted, as with package.el. That requires support from ‘guix pull’, but that’s on the to-do list. > The `*Guix Packages*' buffer will list all the packages that Guix knows > about, one on each line, with the following information: > > * The package name (e.g., `emacs'). > > * The package's version number (e.g., `24.3'). > > * The package's status (installed/available). > > * A short description of the package. > > The following commands will be available in the `*Guix Packages*' buffer: [...] Yes, perfect. > `r' > Refresh the package list (`guix-refresh'). This recomputes the > package list. Perhaps there should be something that runs ‘guix pull’ too (it’s like ‘apt-get update’)? > `R' > Roll back to the previous generation of the profile > (`guix-roll-back'). This undo the last transaction. (Do we need a > "roll back" mark?) OK for ‘R’. We don’t need a roll-back mark, I think, because you’re rolling back to the previous generation; it’s not a per-package operation. I was thinking it would also be neat to have a way to visualize generations, basically a “graphical” and interactive representation of what ‘guix package --list-generations’ provides. That would show, for instance, the date of the generations and the changes compared to the previous one, and would make it easy to roll back to a specific generation. Perhaps we can keep that last thing as an bonus work item. How do you feel about it? Thanks! Ludo’.
