unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* guix shell init
@ 2023-10-25  2:24 jgart
  2023-10-25 11:10 ` Simon Tournier
  2023-10-25 13:52 ` jgart
  0 siblings, 2 replies; 12+ messages in thread
From: jgart @ 2023-10-25  2:24 UTC (permalink / raw)
  To: guix-devel

Hi Guixers,

What if we had a command like `guix shell init`.

It would create a basic manifest.scm or guix.scm file for the user.

bloat or meh or yeh?

Sprinkling some Guix flakes on your day,

jgart


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

* Re: guix shell init
@ 2023-10-25  4:18 Suhail
  2023-10-25  4:24 ` jgart
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Suhail @ 2023-10-25  4:18 UTC (permalink / raw)
  To: jgart; +Cc: guix-devel

"jgart" <jgart@dismail.de> writes:

> It would create a basic manifest.scm or guix.scm file for the user.

what would the "basic" manifest.scm or guix.scm do? could you share a
sample of what it would look like?

-- 
Suhail

This email is not an offer capable of acceptance, does not evidence an intention
to enter into an agreement, has no operative effect until a definitive agreement
is signed in writing by both parties, and that no party should act in reliance
on the email or any representations of the sender until a definitive agreement
is signed in writing by both parties.

This email may contain information that is privileged, confidential and/or
exempt from disclosure.  No waiver whatsoever is intended by sending this e-mail
which is intended only for the named recipient(s).  Unauthorized use,
dissemination or copying is prohibited.  If you receive this email in error,
please notify the sender and destroy all copies of this email.



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

* Re: guix shell init
  2023-10-25  4:18 guix shell init Suhail
@ 2023-10-25  4:24 ` jgart
  2023-10-25 10:58   ` Simon Tournier
  2023-10-25  4:27 ` jgart
  2023-10-25  4:29 ` jgart
  2 siblings, 1 reply; 12+ messages in thread
From: jgart @ 2023-10-25  4:24 UTC (permalink / raw)
  To: Suhail; +Cc: guix-devel

It would generate this boilerplate somehow:

https://guix.gnu.org/en/blog/tags/cookbook/sk/html_node/Getting-Started.html


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

* Re: guix shell init
  2023-10-25  4:18 guix shell init Suhail
  2023-10-25  4:24 ` jgart
@ 2023-10-25  4:27 ` jgart
  2023-10-25  4:29 ` jgart
  2 siblings, 0 replies; 12+ messages in thread
From: jgart @ 2023-10-25  4:27 UTC (permalink / raw)
  To: Suhail; +Cc: guix-devel

See this blog post for how nix does it for the `nix flakes init` command:

https://peppe.rs/posts/novice_nix:_flake_templates/

wdyt


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

* Re: guix shell init
  2023-10-25  4:18 guix shell init Suhail
  2023-10-25  4:24 ` jgart
  2023-10-25  4:27 ` jgart
@ 2023-10-25  4:29 ` jgart
  2023-10-25 11:00   ` Simon Tournier
  2023-10-25 14:12   ` jgart
  2 siblings, 2 replies; 12+ messages in thread
From: jgart @ 2023-10-25  4:29 UTC (permalink / raw)
  To: Suhail; +Cc: guix-devel

nix flakes also allows you to create your own custom template for use with `nix flakes init`:

https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-flake-init#template-definitions

We could do the same with `guix shell init` maybe...


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

* Re: guix shell init
@ 2023-10-25  4:40 Suhail
  0 siblings, 0 replies; 12+ messages in thread
From: Suhail @ 2023-10-25  4:40 UTC (permalink / raw)
  To: jgart; +Cc: guix-devel

"jgart" <jgart@dismail.de> writes:

> It would generate this boilerplate somehow:
>
> https://guix.gnu.org/en/blog/tags/cookbook/sk/html_node/Getting-Started.html

i see. i'm relatively new to guix, but i think it would be useful to
have a utility that

- allows us to define some language-specific, and more generally
  "situation-specific", templates

- [optional] allows the appropriate template to be automatically selected

- allows the user to specify the template they desire

cheers

-- 
Suhail

This email is not an offer capable of acceptance, does not evidence an intention
to enter into an agreement, has no operative effect until a definitive agreement
is signed in writing by both parties, and that no party should act in reliance
on the email or any representations of the sender until a definitive agreement
is signed in writing by both parties.

This email may contain information that is privileged, confidential and/or
exempt from disclosure.  No waiver whatsoever is intended by sending this e-mail
which is intended only for the named recipient(s).  Unauthorized use,
dissemination or copying is prohibited.  If you receive this email in error,
please notify the sender and destroy all copies of this email.



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

* Re: guix shell init
  2023-10-25  4:24 ` jgart
@ 2023-10-25 10:58   ` Simon Tournier
  0 siblings, 0 replies; 12+ messages in thread
From: Simon Tournier @ 2023-10-25 10:58 UTC (permalink / raw)
  To: jgart, Suhail; +Cc: guix-devel

Hi,

On Wed, 25 Oct 2023 at 04:24, "jgart" <jgart@dismail.de> wrote:

> It would generate this boilerplate somehow:
>
> https://guix.gnu.org/en/blog/tags/cookbook/sk/html_node/Getting-Started.html

Could you be precise about the boilerplate?  You would like that “guix
shell --init” would generate a template for some “guix.scm” file, right?

Cheers,
simon



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

* Re: guix shell init
  2023-10-25  4:29 ` jgart
@ 2023-10-25 11:00   ` Simon Tournier
  2023-10-25 14:12   ` jgart
  1 sibling, 0 replies; 12+ messages in thread
From: Simon Tournier @ 2023-10-25 11:00 UTC (permalink / raw)
  To: jgart, Suhail; +Cc: guix-devel

Hi,

On Wed, 25 Oct 2023 at 04:29, "jgart" <jgart@dismail.de> wrote:
> nix flakes also allows you to create your own custom template for use with `nix flakes init`:
>
> https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-flake-init#template-definitions
>
> We could do the same with `guix shell init` maybe...

Could you explain what “Nix flake” means using Guix terminology?

Cheers,
simon


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

* Re: guix shell init
  2023-10-25  2:24 jgart
@ 2023-10-25 11:10 ` Simon Tournier
  2023-10-25 13:52 ` jgart
  1 sibling, 0 replies; 12+ messages in thread
From: Simon Tournier @ 2023-10-25 11:10 UTC (permalink / raw)
  To: jgart, guix-devel

Hi,

On Wed, 25 Oct 2023 at 02:24, "jgart" <jgart@dismail.de> wrote:

> What if we had a command like `guix shell init`.
>
> It would create a basic manifest.scm or guix.scm file for the user.

Is

    guix shell --export-manifest

not already doing that?  And “guix package --export-channels” is
similar for the channels.scm file.

Well, we could have a command somewhere for exporting both.  Maybe.

Following the idea, you would like:

    guix shell --init=python

that generates some guix.scm and channels.scm file where the guix.scm
would be a template for building Python some project.

Right?

Cheers,
simon


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

* Re: guix shell init
  2023-10-25  2:24 jgart
  2023-10-25 11:10 ` Simon Tournier
@ 2023-10-25 13:52 ` jgart
  1 sibling, 0 replies; 12+ messages in thread
From: jgart @ 2023-10-25 13:52 UTC (permalink / raw)
  To: Simon Tournier, guix-devel

> Right?

Hi Simon,

Yes, that is correct. Something like that.


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

* Re: guix shell init
  2023-10-25  4:29 ` jgart
  2023-10-25 11:00   ` Simon Tournier
@ 2023-10-25 14:12   ` jgart
  2023-11-29 16:05     ` Simon Tournier
  1 sibling, 1 reply; 12+ messages in thread
From: jgart @ 2023-10-25 14:12 UTC (permalink / raw)
  To: Simon Tournier, Suhail; +Cc: guix-devel

> Could you explain what “Nix flake” means using Guix terminology?

Hi Simon

Here's TLDR list of nix flake features and their guix equivalents (maybe):

Guix has features that overlap with flake features. What might be new nix features that the flakes API introduced might just be features that are built in to Guix by design as first class. Not all flake features are implemented or maybe make sense for Guix's API. This is potentially an open research question.

> Another feature of flakes is that they provide a consistent structure, which makes it easier to understand and use different Nix projects. Typically, they have a standard API where they provide Nix packages, NixOS modules, or other standard outputs.

Guix uses guix.scm and manifest.scm for this.


> Each flake has a lock file, flake.lock, which pins exact versions of its dependencies. This ensures that builds are reproducible, even across different machines.

Guix has a way to do this as well, currently.

> Flake evaluations can be cached. This means that if you're working with a particular set of flakes frequently, Nix won’t need to re-evaluate them every time, speeding up operations.
> A feature of the nix Flake edition is that Nix evaluations are cached.
> Running nix-shell can be a bit slow and take 1-3 seconds.

Ludo fixed the caching in guix shell and wrote a post about it.

A reference for the caching thing that flakes introduced:
https://nixos.wiki/wiki/Flakes#Super_fast_nix-shell


There's also some comparison of Guix and Nix flakes here:

https://blog.benoitj.ca/2023-10-23-guix-home-configuration-part1-packages/
https://blog.benoitj.ca/2023-10-20-how-guix-compare-to-nix-and-vice-versa/


Wrapping up this email the Guix way – carefully packaged and with a sprinkle of flakes for good measure. Have a crunchy day ahead!

jgart


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

* Re: guix shell init
  2023-10-25 14:12   ` jgart
@ 2023-11-29 16:05     ` Simon Tournier
  0 siblings, 0 replies; 12+ messages in thread
From: Simon Tournier @ 2023-11-29 16:05 UTC (permalink / raw)
  To: jgart, Suhail; +Cc: guix-devel

Hi jgart,

On mer., 25 oct. 2023 at 14:12, "jgart" <jgart@dismail.de> wrote:

>> Could you explain what “Nix flake” means using Guix terminology?
>
> Here's TLDR list of nix flake features and their guix equivalents
> (maybe):

Thanks for explaining.

If I understand correctly, Guix does not miss some feature from Nix
flakes, right?

If yes, could someone explain what would be such feature?


> There's also some comparison of Guix and Nix flakes here:
>
> https://blog.benoitj.ca/2023-10-23-guix-home-configuration-part1-packages/
> https://blog.benoitj.ca/2023-10-20-how-guix-compare-to-nix-and-vice-versa/

Thanks for the links.

Cheers,
simon


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

end of thread, other threads:[~2023-11-29 19:15 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-25  4:18 guix shell init Suhail
2023-10-25  4:24 ` jgart
2023-10-25 10:58   ` Simon Tournier
2023-10-25  4:27 ` jgart
2023-10-25  4:29 ` jgart
2023-10-25 11:00   ` Simon Tournier
2023-10-25 14:12   ` jgart
2023-11-29 16:05     ` Simon Tournier
  -- strict thread matches above, loose matches on Subject: below --
2023-10-25  4:40 Suhail
2023-10-25  2:24 jgart
2023-10-25 11:10 ` Simon Tournier
2023-10-25 13:52 ` jgart

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