Skip to content

Latest commit

 

History

History
537 lines (332 loc) · 12.4 KB

NEWS

File metadata and controls

537 lines (332 loc) · 12.4 KB

-*- mode: org -*-

Changes in 0.5.2 (since 0.5.1.1)

User visible changes

New commands

M-x guix-lint-checkers

M-x guix-hidden-packages

Removed commands

M-x guix-newest-packages

“M-x guix-all-packages” should be used instead.

Changed commands

M-x guix-package-lint

It asks for multiple packages now.

Profile List

It displays all profiles that have gc roots (similarly to “guix package –list-profiles” shell command) now.

Changes in 0.5.1.1 (since 0.5.1)

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).

Changes in 0.5.1 (since 0.5)

User visible changes

“M-x guix” — new popup interface for Emacs-Guix commands

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 commands

M-x guix-set-emacs-environment

M-x guix-current-profile

Store Item List

New key binding — “z”: display a total size of the marked store items.

New variables

  • guix-file-size-string-function
  • guix-store-item-show-total-size

Internal changes

Renamed variables

  • guix-default-profile -> guix-default-user-profile

New variables

  • guix-default-pulled-profile

Changes in 0.5 (since 0.4.1.1)

User visible changes

New commands

M-x guix-store-item

M-x guix-store-item-referrers

M-x guix-store-item-references

M-x guix-store-item-requisites

M-x guix-store-item-derivers

M-x guix-store-failures

M-x guix-store-live-items

M-x guix-store-dead-items

Interface for Hydra removed

It was extracted into a stand-alone “Emacs-Build-Farm” package.

Internal changes

New variables

  • guix-ask-before-buffer-update
  • guix-geiser-connection-timeout

Changes in 0.4.1.1 (since 0.4.1)

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.

Changes in 0.4.1 (since 0.4)

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.

User visible changes

New commands

M-x guix-system-from-file

M-x guix-system-profile

Changed commands

M-x guix-dependent-packages

It asks for dependency type now: “all” or “direct”.

Profile List

The new profile populated by “guix pull” is displayed by “M-x guix-profiles” now.

Renamed variables

guix-hash-support-dired -> guix-support-dired

Internal changes

New variables

  • guix-pulled-profile

Changes in 0.4 (since 0.3.4)

User visible changes

New commands

M-x guix-all-services

M-x guix-default-services

M-x guix-services-by-name

M-x guix-services-by-regexp

M-x guix-services-by-location

M-x guix-service-locations

M-x guix-find-service-definition

M-x guix-find-service-location-file

M-x guix-find-license-location-file

M-x guix-dependent-packages

M-x guix-number-of-packages

M-x guix-report-bug

Renamed commands

M-x guix-all-available-packages -> guix-all-packages

M-x guix-newest-available-packages -> guix-newest-packages

M-x guix-find-location -> guix-find-package-location-file

M-x guix-locations -> guix-package-locations

M-x guix-edit -> guix-find-package-definition

‘guix-edit’ still exists as an alias for ‘guix-find-package-definition’ and it is not going to be removed.

guix-devel-mode

Possibility to edit synopsis/description in texinfo-mode

The new ‘guix-devel-code-block-edit’ command that allows you to do this is bound to “C-c . ‘”.

Possibility to find package patch file at point

To activate it, use:

(add-to-list ‘ffap-alist ‘(“\.patch” . guix-devel-ffap-patch))

guix-env-var-mode

It prettifies “/tmp/guix-build-*-*.drv-*/environment-variables” and “etc/profile” files.

Internal changes

New faces

  • guix-hydra-build-status-unknown
  • guix-location

‘guix-package-info-location’ face is removed (superseded by ‘guix-location’).

New variables

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

Performance improvements

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.

Requirements

New requirement: “edit-indirect.el” library.

Changes in 0.3.4 (since 0.3.3)

User visible changes

New commands

M-x guix-hash

M-x guix-superseded-packages

M-x guix-derivation-mode

It is enabled automatically in “/gnu/store/….drv” files.

M-x guix-scheme-mode

It is enabled automatically in various Guile files from the store (for example, “/gnu/store/…-activate-service” or “/gnu/store/…-shepherd.conf”).

Package List

Along with “obsolete” packages, names of “superseded”, “unknown” and “future” packages are also highlighted.

Internal changes

New faces

  • 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.

New variables

  • 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.

Bug fixes

UUIDs are handled properly by System Generation Info

Previously “M-x guix-system-generations” followed by “i” failed if store devices were specified by UUIDs in a system configuration.

Changes in 0.3.3 (since 0.3.2)

User visible changes

Profile List

New key bindings:

  • “E”: show ‘search paths’;
  • “RET”: show “Profile Info”.

Profile Info

New interface.

Generation Info

New “Profile” and “Search paths” buttons.

Generation List

New key bindings:

  • “E”: show ‘search paths’;

Internal changes

New faces

  • ‘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).

Bug fixes

Editing user packages honors relative file names

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.

Changes in 0.3.2 (since 0.3.1)

User visible changes

Package Info

New key bindings:

  • “i”, “d”, “U”: install, delete, upgrade;
  • “G”: show package graph;
  • “z”: show package size;
  • “L”: lint package.

System Generation Info

More information added (bootloader, direct link to a system file name).

Changes in 0.3.1 (since 0.3)

User visible changes

New commands

M-x guix-info

M-x guix-services-from-system-config-file

Changes in 0.3 (since 0.2.2)

User visible changes

New commands

M-x guix-packages-from-system-config-file

M-x guix-package-graph

M-x guix-package-size

M-x guix-lint

M-x guix-switch-to-buffer

M-x guix-extended-command

Package List

New key bindings:

  • “G”: show package graph;
  • “z”: show package size;
  • “L”: lint package.

Package Info

New buttons: “Graph”, “Size”, “Lint”.

Internal changes

Guix REPL is used for shell completions

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.

Temporary files are placed in a sub-directory

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.

Changes in 0.2.2 (since 0.2.1)

User visible changes

Hints

Press “h” (or any unbound key) in any ‘list’ or ‘info’ buffer to display a hint message (a summary of the available key bindings).

Generation List

  • “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).

Location List

“e” key can be used to go to the location file.

Internal changes

“guix.scm” added

Changes in 0.2.1 (since 0.2)

User visible changes

New commands

M-x guix-about

Profile List

“Current” column is added (current profile for package commands).

M-x guix-help

“info” buttons (for the commands) are added.

M-x guix

“G” (graph) completes --backend option, and “v” (View graph) opens html graph if the backend is “d3js”.

Changes in 0.2 (since Emacs-Guix was a part of Guix)

User visible changes

New commands

M-x guix-help

M-x guix-profiles

“P” key to display packages

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).

Package List

“C-u ^” marks all installed packages (even not obsolete) for upgrading.

Generation List

New column with a number of packages is added.

Generation Info

Several new parameters and buttons are added (especially in Info buffer for system generations).

‘guix-build-log-minor-mode’ is not activated by default

To activate it, use:

(add-hook ‘shell-mode-hook ‘guix-build-log-minor-mode)

‘guix-devel-mode’ is not activated by default

To activate it, use:

(add-hook ‘scheme-mode-hook ‘guix-devel-mode)

New variables

  • guix-repl-use-latest: defines whether or not to use “guix pull”-ed code (default is t).

Renamed variables

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

Renamed buffers

“List” part was removed from buffer names (Guix Packages instead of Guix Package List, etc.)

Internal changes

Guile code is split into multiple modules

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”).

Guile load path is augmented on the Emacs-Lisp side

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.

Renamed files

guix-backend.el -> guix-repl.el guix-base.el -> guix-misc.el guix-messages.el -> guix-ui-messages.el

Removed files

guix-buffer.el, guix-entry.el, guix-history.el, guix-info.el, guix-list.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).

guix-emacs.el

This file stays in Guix as it is used in Emacs package recipe (it is intended to autoload Emacs packages installed with Guix).

guix-init.el

It was deprecated in Guix since March 2016.

Requirements

Required Geiser version updated to 0.8. New requirements: “bui.el” and “dash.el” libraries.