From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yagnesh Raghava Yakkala Subject: Emacs UI for Guix (GSOC) Date: Fri, 21 Mar 2014 19:55:35 +0900 Message-ID: <8738ib3jo8.fsf@sealion.lowtem.hokudai.ac.jp> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:34889) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WQx6f-00067M-6X for guix-devel@gnu.org; Fri, 21 Mar 2014 06:55:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WQx6Z-0005FC-R5 for guix-devel@gnu.org; Fri, 21 Mar 2014 06:55:21 -0400 Received: from plane.gmane.org ([80.91.229.3]:43385) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WQx6Z-0005F3-Hi for guix-devel@gnu.org; Fri, 21 Mar 2014 06:55:15 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1WQx6Y-00018M-5I for guix-devel@gnu.org; Fri, 21 Mar 2014 11:55:14 +0100 Received: from sealion.lowtem.hokudai.ac.jp ([133.87.217.30]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 21 Mar 2014 11:55:14 +0100 Received: from hi by sealion.lowtem.hokudai.ac.jp with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 21 Mar 2014 11:55:14 +0100 List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel@gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit 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.) --=-=-= Content-Type: text/x-org; charset=utf-8 Content-Disposition: attachment; filename=proposal.org Content-Transfer-Encoding: 8bit * 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'). `?' `' 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/ --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit ¹ http://article.gmane.org/gmane.comp.gnu.guix.devel/1675 Thanks -- ఎందరో మహానుభావులు అందరికి వందనములు. YYR --=-=-=--