[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#50960] [PATCH 00/10] Add 'guix shell' to subsume 'guix environment'
From: |
Christine Lemmer-Webber |
Subject: |
[bug#50960] [PATCH 00/10] Add 'guix shell' to subsume 'guix environment' |
Date: |
Sat, 02 Oct 2021 09:03:34 -0400 |
User-agent: |
mu4e 1.6.6; emacs 27.2 |
Ludovic Courtès <ludo@gnu.org> writes:
> Hello Guix!
>
> Here comes ‘guix shell’, a proposed replacement for ‘guix environment’!
> ‘guix environment’ would stay around though, at least for some time,
> probably for a long time.
>
> The differences to ‘guix environment’ are:
>
> 1. ‘--ad-hoc’ is the default.
>
> ‘guix shell hello’ ≍ ‘guix environment --ad-hoc hello’
> ‘guix shell -D hello git’ ≍ ‘guix environment hello --ad-hoc git’
>
> 2. ‘guix shell’, without arguments, loads ‘guix.scm’ or ‘manifest.scm’
> from the current directory or one of its ancestors.
>
> 3. ‘--load’/‘-l’ is not ‘-f’/‘--install-from-file’ for consistency with
> ‘guix package’.
>
> 4. ‘guix shell’ without arguments maintains a cache, such that, the
> second time you run it, it runs in ~0.1s (it does not even need to
> connect to the daemon).
>
> If you run ‘guix pull’ and run again ‘guix shell’, it recomputes
> the environment, as is currently the case with ‘guix environment’.
>
> Here’s a summary of previous proposals:
>
> - Dave Thompson:
> https://lists.gnu.org/archive/html/guix-devel/2017-08/msg00300.html
> - [X] --ad-hoc is the default
> - [X] caching
> - [X] behavior with no arguments
> - [ ] --load accepts <environment>
> - [ ] Shepherd services
> - [ ] 'guix environment --update' to explicitly update
> - make --ad-hoc the default: https://issues.guix.gnu.org/38529
> - [X] https://issues.guix.gnu.org/38529#17: proposal for a new subcommand
> deprecation of ‘guix environment’
>
> I think <environment> records and Shepherd services could come later.
> As for ‘--update’, I prefer the behavior implemented here because it’s
> stateless and thus more predictable.
>
> Thoughts? Are there other changes people would like to see?
>
> If there’s rough consensus I can work on v2 with documentation. Please
> let’s keep the discussion focused. :-)
You have my massive thumbs up. Exciting stuff.
> As for deprecation, I think there’s no rush. I imagine there could be
> several phases, like: initially we only mention deprecation in the manual,
> later on ‘guix environment’ starts emitting a warning, and later (I guess
> at least two years later, probably more) we ask ourselves whether to
> remove ‘guix environment’. At this point keeping it doesn’t cost us much.
>
> Thanks,
> Ludo’.
>
> Ludovic Courtès (10):
> packages: Add 'package-development-inputs'.
> profiles: Add 'package->development-manifest'.
> DRAFT Add 'guix shell'.
> DRAFT shell: By default load the local 'guix.scm' or 'manifest.scm'
> file.
> environment: Add tests for '--profile'.
> environment: Skip derivation computation when '--profile' is used.
> environment: Do not connect to the daemon when '--profile' is used.
> environment: Autoload some modules.
> cache: Gracefully handle non-existent cache.
> shell: Maintain a profile cache.
>
> Makefile.am | 2 +
> doc/guix.texi | 52 ++++++
> guix/cache.scm | 10 +-
> guix/packages.scm | 10 ++
> guix/profiles.scm | 19 ++
> guix/scripts/environment.scm | 260 +++++++++++++++-------------
> guix/scripts/shell.scm | 254 +++++++++++++++++++++++++++
> po/guix/POTFILES.in | 1 +
> tests/guix-environment-container.sh | 8 +
> tests/guix-environment.sh | 7 +
> tests/guix-shell.sh | 70 ++++++++
> tests/packages.scm | 14 ++
> tests/profiles.scm | 7 +
> 13 files changed, 594 insertions(+), 120 deletions(-)
> create mode 100644 guix/scripts/shell.scm
> create mode 100644 tests/guix-shell.sh
- [bug#50960] [PATCH 00/10] Add 'guix shell' to subsume 'guix environment', (continued)
[bug#50960] ‘guix shell’ shebangs, Ludovic Courtès, 2021/10/02
[bug#50960] [PATCH 00/10] Add 'guix shell' to subsume 'guix environment',
Christine Lemmer-Webber <=
[bug#50960] [PATCH 00/10] Add 'guix shell' to subsume 'guix environment', Vagrant Cascadian, 2021/10/02
[bug#50960] [PATCH 00/10] Add 'guix shell' to subsume 'guix environment', zimoun, 2021/10/04
[bug#50960] [PATCH 00/10] Add 'guix shell' to subsume 'guix environment', Leo Famulari, 2021/10/04