all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [ANN] Emacs-Guix 0.4
@ 2018-05-19 12:58 Alex Kost
  2018-05-20 22:55 ` Maxim Cournoyer
  0 siblings, 1 reply; 8+ messages in thread
From: Alex Kost @ 2018-05-19 12:58 UTC (permalink / raw)
  To: help-guix

Hello, Emacs-Guix (Emacs interface for GNU Guix) version 0.4 has been
released.  If you are not familiar with it yet, you may start with:
‘guix package -i emacs-guix’ and "M-x guix-about".

Summary of the new features:

* Interface to display services

  It is very similar to the interface for packages: the following
  commands will show you a list of services, where you can press RET to
  get more info about the current (or marked) service(s).  The new
  commands are:

    - 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-default-services" allows you to look at %base-services and
  %desktop-services.

  You may look at the screenshot for this new interface here:

    https://alezost.github.io/guix.el/images/screenshots/services.png

  Also, similarly to "M-x guix-package-locations" (renamed from "M-x
  guix-locations"), now there is:

    - M-x guix-service-locations

  (Now there are so many commands that even "M-x guix-help" may look
  terrifying :-))

* Additions for 'guix-devel-mode'

  - [C-c . '] key binding (‘guix-devel-code-block-edit’ command) allows
    you to edit synopsis or description of the current package in the
    texinfo-mode.  This feature is very similarly to the org-mode
    [C-c '] facility.

  - If you add the following code to your .emacs, you'll be able to find
    package patches with "M-x ffap":

      (add-to-list 'ffap-alist '("\\.patch" . guix-devel-ffap-patch))

* guix-env-var-mode

  When you build a package with ‘guix build --keep-failed’, you can find
  "/tmp/guix-build-*-*.drv-*/environment-variables" file which is now
  prettified with ‘guix-env-var-mode’: it is the same as ‘sh-mode’ but
  it also reformats the buffer to make the long guix file names more
  readable.

* M-x guix-dependent-packages

  It displays packages that depend on the specified package(s); this is
  analogous to ‘guix refresh --list-dependent’ shell command.

* M-x guix-number-of-packages

  It just displays the total number of Guix packages (including the
  packages placed in your GUIX_PACKAGE_PATH) in the minibuffer.

* M-x guix-report-bug

  Similarly, to "M-x report-emacs-bug", it prompts for a bug subject and
  opens a mail buffer with <bug-guix@gnu.org> address, and that's all.

* Performance improvements

  You probably noticed that "M-x guix-all-available-packages" was very
  slow (it could even fail on not-so-powerful machines).  This slowness
  happened when big chunks of data were passed from the "Guile side" to
  "Emacs side" through Geiser (the problem may not be Geiser itself, but
  some underlying Emacs code).  Anyway, now the big portions of guile
  data are passed through a temporary file instead, and it is much
  faster!

Many thanks to Pierre Neidhardt for the idea of ‘guix-report-bug’ and
‘guix-dependent-packages’ commands, and all credits to Oleg Pykhalov for
inventing and implementing ‘guix-env-var-mode’ and the new features for
‘guix-devel-mode’ (synopsis/description editing and finding a patch with
ffap).

-- 
Alex

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ANN] Emacs-Guix 0.4
  2018-05-19 12:58 [ANN] Emacs-Guix 0.4 Alex Kost
@ 2018-05-20 22:55 ` Maxim Cournoyer
  2018-05-23 15:30   ` Ludovic Courtès
  0 siblings, 1 reply; 8+ messages in thread
From: Maxim Cournoyer @ 2018-05-20 22:55 UTC (permalink / raw)
  To: Alex Kost; +Cc: help-guix

Hi Alex,

Alex Kost <alezost@gmail.com> writes:

> Hello, Emacs-Guix (Emacs interface for GNU Guix) version 0.4 has been
> released.  If you are not familiar with it yet, you may start with:
> ‘guix package -i emacs-guix’ and "M-x guix-about".

Just wanted to say thank you for this new feature packed release! I look
forward to trying it out :)

Maxim

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ANN] Emacs-Guix 0.4
  2018-05-20 22:55 ` Maxim Cournoyer
@ 2018-05-23 15:30   ` Ludovic Courtès
  2018-05-23 17:46     ` Alex Kost
  0 siblings, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2018-05-23 15:30 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: Alex Kost, help-guix

Hello!

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

> Alex Kost <alezost@gmail.com> writes:
>
>> Hello, Emacs-Guix (Emacs interface for GNU Guix) version 0.4 has been
>> released.  If you are not familiar with it yet, you may start with:
>> ‘guix package -i emacs-guix’ and "M-x guix-about".
>
> Just wanted to say thank you for this new feature packed release! I look
> forward to trying it out :)

+1  I just tried it out and these new features are awesome, as usual!

‘guix-all-services’ is very cool!  (It shows that we lack descriptions
for roughly a third of the services; if you’re reading along, consider
helping out.  :-))

I think ‘guix-dependent-packages’ is going to be very useful.  I wonder
if we could have ‘C-u guix-dependent-packages’ list only packages that
are direct dependents?  That would be helpful in some situations.

Thank you!

Ludo’.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ANN] Emacs-Guix 0.4
  2018-05-23 15:30   ` Ludovic Courtès
@ 2018-05-23 17:46     ` Alex Kost
  2018-05-24 12:16       ` Ludovic Courtès
  0 siblings, 1 reply; 8+ messages in thread
From: Alex Kost @ 2018-05-23 17:46 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: help-guix

Ludovic Courtès (2018-05-23 17:30 +0200) wrote:

> Hello!
>
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> Alex Kost <alezost@gmail.com> writes:
>>
>>> Hello, Emacs-Guix (Emacs interface for GNU Guix) version 0.4 has been
>>> released.  If you are not familiar with it yet, you may start with:
>>> ‘guix package -i emacs-guix’ and "M-x guix-about".
>>
>> Just wanted to say thank you for this new feature packed release! I look
>> forward to trying it out :)
>
> +1  I just tried it out and these new features are awesome, as usual!
>
> ‘guix-all-services’ is very cool!  (It shows that we lack descriptions
> for roughly a third of the services; if you’re reading along, consider
> helping out.  :-))
>
> I think ‘guix-dependent-packages’ is going to be very useful.  I wonder
> if we could have ‘C-u guix-dependent-packages’ list only packages that
> are direct dependents?  That would be helpful in some situations.

I agree!  Is there a shell command for this?  I mean I'd like to know
what Guile code can do this :-)

Currently, the following code is used to get dependent packages:

    (with-store store
      (run-with-store store
        (mlet %store-monad ((edges (node-back-edges %bag-node-type
                                                    (all-packages))))
          (return (node-transitive-edges packages edges)))))

-- 
Alex

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ANN] Emacs-Guix 0.4
  2018-05-23 17:46     ` Alex Kost
@ 2018-05-24 12:16       ` Ludovic Courtès
  2018-05-24 17:21         ` Alex Kost
  0 siblings, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2018-05-24 12:16 UTC (permalink / raw)
  To: Alex Kost; +Cc: help-guix

Hello!

Alex Kost <alezost@gmail.com> skribis:

> Ludovic Courtès (2018-05-23 17:30 +0200) wrote:

[...]

>> I think ‘guix-dependent-packages’ is going to be very useful.  I wonder
>> if we could have ‘C-u guix-dependent-packages’ list only packages that
>> are direct dependents?  That would be helpful in some situations.
>
> I agree!  Is there a shell command for this?  I mean I'd like to know
> what Guile code can do this :-)

No, there’s no such command.  Perhaps something to add to ‘guix refresh
-l’, say ‘guix refresh -l direct’?

> Currently, the following code is used to get dependent packages:
>
>     (with-store store
>       (run-with-store store
>         (mlet %store-monad ((edges (node-back-edges %bag-node-type
>                                                     (all-packages))))
>           (return (node-transitive-edges packages edges)))))

‘node-transitive-edges’ traverses the whole DAG, so you should simply
call ‘edges’ instead.

HTH!

Ludo’.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ANN] Emacs-Guix 0.4
  2018-05-24 12:16       ` Ludovic Courtès
@ 2018-05-24 17:21         ` Alex Kost
  2018-05-25  1:02           ` myglc2
  0 siblings, 1 reply; 8+ messages in thread
From: Alex Kost @ 2018-05-24 17:21 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: help-guix

Ludovic Courtès (2018-05-24 14:16 +0200) wrote:

> Hello!
>
> Alex Kost <alezost@gmail.com> skribis:
>
>> Ludovic Courtès (2018-05-23 17:30 +0200) wrote:
>
> [...]
>
>>> I think ‘guix-dependent-packages’ is going to be very useful.  I wonder
>>> if we could have ‘C-u guix-dependent-packages’ list only packages that
>>> are direct dependents?  That would be helpful in some situations.
>>
>> I agree!  Is there a shell command for this?  I mean I'd like to know
>> what Guile code can do this :-)
>
> No, there’s no such command.  Perhaps something to add to ‘guix refresh
> -l’, say ‘guix refresh -l direct’?

It would be good!

>> Currently, the following code is used to get dependent packages:
>>
>>     (with-store store
>>       (run-with-store store
>>         (mlet %store-monad ((edges (node-back-edges %bag-node-type
>>                                                     (all-packages))))
>>           (return (node-transitive-edges packages edges)))))
>
> ‘node-transitive-edges’ traverses the whole DAG, so you should simply
> call ‘edges’ instead.
>
> HTH!

Yes, now it's clear, thanks!

I recalled that C-u prefix is already occupied by specifying an
arbitrary profile for the package commands.  So, I'm afraid instead of
"C-u M-x guix-dependent-packages" there will be "M-x
guix-direct-dependent-packages".

Or maybe I should just break this dull "convention" (I mean "C-u" for
profiles) as probably no one uses it anyway :-)

-- 
Alex

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ANN] Emacs-Guix 0.4
  2018-05-24 17:21         ` Alex Kost
@ 2018-05-25  1:02           ` myglc2
  2018-05-25 19:59             ` Alex Kost
  0 siblings, 1 reply; 8+ messages in thread
From: myglc2 @ 2018-05-25  1:02 UTC (permalink / raw)
  To: Alex Kost; +Cc: help-guix


Hi Alex,

Thank you for this new release. I am enjoying the cool new features!

On 05/24/2018 at 20:21 Alex Kost writes:

[...]

> I recalled that C-u prefix is already occupied by specifying an
> arbitrary profile for the package commands.  So, I'm afraid instead of
> "C-u M-x guix-dependent-packages" there will be "M-x
> guix-direct-dependent-packages".
>
> Or maybe I should just break this dull "convention" (I mean "C-u" for
> profiles) as probably no one uses it anyway :-)

+1

FWIW, ISTM this use of "C-u" is more global than typical and thus feels
a bit counter-intuitive. Since you have made it very easy to jump
between profiles in *Guix Profiles* I think it would be good to switch
to using "C-u" for more command-specific modifications. This might also
help avoid "function bloat in emacs-guix."

HTH - George

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ANN] Emacs-Guix 0.4
  2018-05-25  1:02           ` myglc2
@ 2018-05-25 19:59             ` Alex Kost
  0 siblings, 0 replies; 8+ messages in thread
From: Alex Kost @ 2018-05-25 19:59 UTC (permalink / raw)
  To: myglc2; +Cc: help-guix

myglc2@gmail.com (2018-05-24 21:02 -0400) wrote:

> Hi Alex,
>
> Thank you for this new release. I am enjoying the cool new features!
>
> On 05/24/2018 at 20:21 Alex Kost writes:
>
> [...]
>
>> I recalled that C-u prefix is already occupied by specifying an
>> arbitrary profile for the package commands.  So, I'm afraid instead of
>> "C-u M-x guix-dependent-packages" there will be "M-x
>> guix-direct-dependent-packages".
>>
>> Or maybe I should just break this dull "convention" (I mean "C-u" for
>> profiles) as probably no one uses it anyway :-)
>
> +1
>
> FWIW, ISTM this use of "C-u" is more global than typical and thus feels
> a bit counter-intuitive. Since you have made it very easy to jump
> between profiles in *Guix Profiles* I think it would be good to switch
> to using "C-u" for more command-specific modifications. This might also
> help avoid "function bloat in emacs-guix."

I agree.  Although I decided to make another solution for this case:
"M-x guix-dependent-packages" will ask you for the "dependent type" in
the minibuffer: "all" (default) or "direct".

-- 
Alex

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-05-25 19:59 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-19 12:58 [ANN] Emacs-Guix 0.4 Alex Kost
2018-05-20 22:55 ` Maxim Cournoyer
2018-05-23 15:30   ` Ludovic Courtès
2018-05-23 17:46     ` Alex Kost
2018-05-24 12:16       ` Ludovic Courtès
2018-05-24 17:21         ` Alex Kost
2018-05-25  1:02           ` myglc2
2018-05-25 19:59             ` Alex Kost

Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.