-*- mode: org -*-
M-x guix-hidden-packages
“M-x guix-all-packages” should be used instead.
It asks for multiple packages now.
It displays all profiles that have gc roots (similarly to “guix package –list-profiles” shell command) now.
This is a bug-fix release: “M-x guix”, introduced by the previous release, failed after pressing “p” or “P” because of a missing requirement in “guix-popup.el”. This is fixed in this release (commit d7b54784bc3962570519aac472f54598c10299ae).
The old “M-x guix” (interface for guix shell commands) is renamed to “M-x guix-command” (also it is one of the sub-popups of the new “M-x guix” now).
New key binding — “z”: display a total size of the marked store items.
- guix-file-size-string-function
- guix-store-item-show-total-size
- guix-default-profile -> guix-default-user-profile
- guix-default-pulled-profile
It was extracted into a stand-alone “Emacs-Build-Farm” package.
- guix-ask-before-buffer-update
- guix-geiser-connection-timeout
This is a bug-fix release: earlier version of “guix pull” command put “.go” files into the same directory as “.scm”, but now they are placed in different directories. This change is supported by this release. It is a crucial change, as incompatibility between .scm and .go files may lead to unpredictable errors.
The main purpose of this release is to support the new behaviour of “guix pull” command, which now makes a full-featured profile ~/.config/guix/current instead of just building the latest guix modules and putting them into ~/.config/guix/latest directory.
It asks for dependency type now: “all” or “direct”.
The new profile populated by “guix pull” is displayed by “M-x guix-profiles” now.
guix-hash-support-dired -> guix-support-dired
- guix-pulled-profile
‘guix-edit’ still exists as an alias for ‘guix-find-package-definition’ and it is not going to be removed.
The new ‘guix-devel-code-block-edit’ command that allows you to do this is bound to “C-c . ‘”.
To activate it, use:
(add-to-list ‘ffap-alist ‘(“\.patch” . guix-devel-ffap-patch))
It prettifies “/tmp/guix-build-*-*.drv-*/environment-variables” and “etc/profile” files.
- guix-hydra-build-status-unknown
- guix-location
‘guix-package-info-location’ face is removed (superseded by ‘guix-location’).
Not counting the huge amount of variables for the new service interface.
- guix-package-names-use-duplicates
- guix-hydra-number-of-builds
- guix-hydra-urls
- guix-repl-max-returned-list-size
Big portions of Guile data are passed to the Elisp side not through Geiser, but through a temporary file. This makes Emacs-Guix faster and more reliable. See commit 00c87a9cafa3d74840be02efa2516286515b6f93 for details.
New requirement: “edit-indirect.el” library.
It is enabled automatically in “/gnu/store/….drv” files.
It is enabled automatically in various Guile files from the store (for example, “/gnu/store/…-activate-service” or “/gnu/store/…-shepherd.conf”).
Along with “obsolete” packages, names of “superseded”, “unknown” and “future” packages are also highlighted.
- guix-derivation-file-name;
- guix-derivation-drv-file-name;
- guix-package-info-unknown;
- guix-package-info-future;
- guix-package-info-superseded;
- guix-package-list-unknown;
- guix-package-list-future;
- guix-package-list-superseded.
- guix-derivation-file-regexp;
- guix-derivation-file-regexp-group;
- guix-derivation-file-name-faces;
- guix-read-package-name-function;
- guix-hash-regexp;
- guix-default-hash-format;
- guix-default-key-policy;
- guix-default-elpa-archive;
- guix-default-size-sort-key;
- guix-default-search-paths-type;
- guix-default-graph-backend;
- guix-default-graph-node-type.
Previously “M-x guix-system-generations” followed by “i” failed if store devices were specified by UUIDs in a system configuration.
New key bindings:
- “E”: show ‘search paths’;
- “RET”: show “Profile Info”.
New interface.
New “Profile” and “Search paths” buttons.
New key bindings:
- “E”: show ‘search paths’;
- ‘guix-true’;
- ‘guix-faces’.
This faces are parent for:
- ‘guix-package-info-installed-outputs’ and ‘guix-package-info-uninstalled-outputs’,
- ‘guix-generation-info-current’ and ‘guix-generation-info-not-current’,
- ‘guix-profile-info-current’ and ‘guix-profile-info-not-current’ (faces for the new “Profile Info” interface).
Previously, “M-x guix-edit” might not open custom packages (from GUIX_PACKAGE_PATH) because it assumed the file names were absolute. Now relative file names are also handled.
New key bindings:
- “i”, “d”, “U”: install, delete, upgrade;
- “G”: show package graph;
- “z”: show package size;
- “L”: lint package.
More information added (bootloader, direct link to a system file name).
New key bindings:
- “G”: show package graph;
- “z”: show package size;
- “L”: lint package.
New buttons: “Graph”, “Size”, “Lint”.
Previously, when you pressed TAB to complete some guix shell command, an according ‘guix … -h’ shell command was called to get possible completions from the help output. Now this help output is received through Guix REPL, which is faster.
Previously, temporary files (REPL socket and generated graph images) were put directly in ‘temporary-file-directory’. Now they are placed in “emacs-guix-…” sub-directory.
Press “h” (or any unbound key) in any ‘list’ or ‘info’ buffer to display a hint message (a summary of the available key bindings).
- “D” key is removed (use “=” instead).
- ”s” key is used for sorting (as in the other lists), not for setting current generation as before (use “c” instead).
“e” key can be used to go to the location file.
“Current” column is added (current profile for package commands).
“info” buttons (for the commands) are added.
“G” (graph) completes --backend
option, and “v” (View graph) opens
html graph if the backend is “d3js”.
Previously, “RET” was used in various lists to display packages. Now it is not the case in lists of generations and licenses (“RET” is used to display Info buffer), but “P” can be used anywhere (in lists of generations, licenses, locations and profiles).
“C-u ^” marks all installed packages (even not obsolete) for upgrading.
New column with a number of packages is added.
Several new parameters and buttons are added (especially in Info buffer for system generations).
To activate it, use:
(add-hook ‘shell-mode-hook ‘guix-build-log-minor-mode)
To activate it, use:
(add-hook ‘scheme-mode-hook ‘guix-devel-mode)
- guix-repl-use-latest: defines whether or not to use “guix pull”-ed code (default is t).
guix-use-guile-server -> guix-repl-use-server guix-after-start-repl-hook -> guix-repl-after-start-hook guix-after-repl-operation-hook -> guix-repl-after-operation-hook guix-before-repl-operation-hook -> guix-repl-before-operation-hook guix-ui-update-after-operation -> guix-update-buffers-after-operation
“List” part was removed from buffer names (Guix Packages instead of Guix Package List, etc.)
Previously, there was a single “guix-main.scm” file with the code for all the features. Now there are several Guile modules which are loaded on demand. This improves the start time of the Guix REPL, especially for those commands that do not require to load many Guix modules (like “M-x guix-licenses”).
Previously, there was “guix-helper.scm” file (generated by “./configure”) that set up the required load-path and loaded “guix-main.scm”. Now this is done on the elisp side, which is more versatile as it also allows to use Emacs-Guix from MELPA or from source without additional configuration.
guix-backend.el -> guix-repl.el guix-base.el -> guix-misc.el guix-messages.el -> guix-ui-messages.el
Now BUI library is used for list/info interfaces, so a big part of elisp code was removed (the removed code was used as the base for BUI library).
This file stays in Guix as it is used in Emacs package recipe (it is intended to autoload Emacs packages installed with Guix).
It was deprecated in Guix since March 2016.
Required Geiser version updated to 0.8. New requirements: “bui.el” and “dash.el” libraries.