unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Yagnesh Raghava Yakkala <hi@yagnesh.org>
To: guix-devel@gnu.org
Subject: Emacs UI for Guix (GSOC)
Date: Fri, 21 Mar 2014 19:55:35 +0900	[thread overview]
Message-ID: <8738ib3jo8.fsf@sealion.lowtem.hokudai.ac.jp> (raw)

[-- Attachment #1: Type: text/plain, Size: 312 bytes --]


Hello all,

I know its too late and few hours before the dead line of GSOC
application. Anyway I wrote a proposal based on previously discussed by Xue¹
in the list. I am attaching that here.  I would like to work on this whether
or not I will get selected for GSOC. I seek your comments (especially
Ludovic.)


[-- Attachment #2: proposal.org --]
[-- Type: text/x-org, Size: 5047 bytes --]

* Title
Emacs UI for Guix.

* Abstract
Guix¹ is purely functional package manger for GNU system. Guix, in addition to
standard package management features, supports transactional upgrades and
roll-backs, unprivileged package management. Package.el is a simple package
manager for GNU Emacs², which downloads and installs the Elisp packages from
different package archives. This project "Emacs UI for Guix" (or guix.el) aims
to create an User Interface (UI) for Guix above GNU Emacs analogous to Emacs
package.el. Guix.el provides an easy interface for guix command line to build,
install, upgrade, rollback and create packages for GNU system.

* Content
This package (guix.el) will include a interface that lets the user to 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 from
the Emacs. guix.el provides an easy key bindings (similar to Package.el for
Emacs) for guix command line operations. This package interacts with guix in
the background and tries to hide the complexity of command line
options/arguments of guix.

The command `guix-describe-package' 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.

`M-x guix-list-packages' will bring up a buffer named `*Guix Packages*'
with a list of all packages.  User can install or uninstall packages via
this buffer.

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 key bindings will be available in the `*Guix Packages*' buffer:

`h'
     Print a short message which summarizes available key bindings
      and their meanings (`guix-quick-help').

`?'
`<RET>'
     Display a help buffer for the package on the current line
     (`guix-describe-package'), similar to the help window
     displayed by the `C-h P' command of Package.el.

`i'
     Mark the package on the current line for installation
     (`guix-mark-install').  If the package status is `available', this
     adds an `I' character to the start of the line; typing `x' (see
     below) will download and install the package.

`d'
     Mark the package on the current line for deletion
     (`guix-mark-delete').  If the package status is `installed', this
     adds a `D' character to the start of the line; typing `x' (see
     below) will delete the package.

`u'
     Remove any installation or deletion mark previously added to the
     current line by an `i' or `d' command.

`U'
     Mark all package with a newer available version for “upgrading”
     (`guix-mark-upgrades').  This places an installation mark on the
     new available versions, and a deletion mark on the old installed
     versions.

`x'
     Download and install all packages marked with `i', and their
     dependencies; also, delete all packages marked with `d'
     (`guix-execute').  This also removes the marks.

`r'
     Refresh the package list (`guix-refresh').  Download the archive
     contents again and recomputes the package list.

`R'
     Roll back to the previous generation of the profile
     (`guix-roll-back').  This undo the last transaction.

`g'
     Rebuild the tabulated list of packages that have been downloaded
     previously.  See `r' (guix pull) to check package updates.

For example, user can install a package by typing `i' on the line listing
that package, followed by `x'.

User can also use the command `M-x guix-package-install' and `M-x
guix-package-remove' to install/remove a package.


* Timeline of the development.
** Before April 21:
- Getting familiar with guix concepts and code base
- Study Emacs Package.el implementation.
- Adding new package to guix.

** April 20 – May 23:
- Start on guix.el coding.
- Initial work on Elisp interface of guix function calls.
- Finalizing on guix.el implementation concepts that includes how to interact
  with guix from Emacs.

** May 24 – July 15:
- Implementation of glue code between Elisp and Guix.
- Work towards primary usable implementation of guix.el.

** July 16 – July 24:
- Code cleanup
- Fixing initial reported bugs.
- Preparing for submission of mid term evaluation

** June 27th Mid term evaluation

** June 28  – July 15:
- Further changes to improve code functionality.
- Refactoring code if required.
- Writing tests

** July 15 – July 25:
- Start working on documentation to meet GNU documentation standards.
- Fixing remaining bugs.
- Code cleanup

** July 26 - August 11
- reserved time left for unexpected delays.
- During whole period I will be communicating with mentor in guix IRC channel.

* Links

¹  http://www.gnu.org/software/guix/
²  http://www.gnu.org/software/emacs/

[-- Attachment #3: Type: text/plain, Size: 174 bytes --]


¹  http://article.gmane.org/gmane.comp.gnu.guix.devel/1675

Thanks
--
ఎందరో మహానుభావులు అందరికి వందనములు.
YYR

             reply	other threads:[~2014-03-21 10:55 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-21 10:55 Yagnesh Raghava Yakkala [this message]
2014-03-21 13:50 ` Emacs UI for Guix (GSOC) Ludovic Courtès
2014-03-21 14:04   ` Yagnesh Raghava Yakkala
2014-03-22 18:29 ` Ludovic Courtès
2014-03-23 20:29   ` Yagnesh Raghava Yakkala
2014-03-23 20:45     ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8738ib3jo8.fsf@sealion.lowtem.hokudai.ac.jp \
    --to=hi@yagnesh.org \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).