guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [GSoC] Package management from Emacs


From: Ludovic Courtès
Subject: Re: [GSoC] Package management from Emacs
Date: Wed, 05 Mar 2014 19:44:57 +0100
User-agent: Gnus/5.130007 (Ma Gnus v0.7) Emacs/24.3 (gnu/linux)

Xue Fuqiao <address@hidden> 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’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]