Re: Using --manfistest with /manifest files

2020-06-17 Thread George Clemmer
Hello!

elaexuo...@wilsonb.com writes:

> FWIW, I never expected `/manifest' to encode "this is what the user
> ordered," so much as "this is the recipe for (deterministically) reproducing
> this exact profile." For the former we have `packages->manifest',
> `specifications->manifest' etc. The latter is what I understand this 
> discussion
> to be about.

I am sorry if it sounded like I was criticizing your level of guix
knowledge. Not my intent. You knowledge seems very high to me ;-)

I do admit to taking advantage of your public suffering in this guix
"trap" ...

> $ guix environment -m ~/.guix-profile/manifest
> (manifest ...): Wrong number of arguments

... and Ludo's acknowledgment of the "source of confusion that these
‘manifest’ files are not like the ‘manifest.scm’ files" that landed you
there to recycle a fix I proposed earlier:

https://lists.gnu.org/archive/html/guix-devel/2018-10/msg00011.html

Motivation: I see others fall into this trap periodically. When they
report their difficulty they get this "~/.guix-profile/manifest is not a
manifest" lecture.  This is a waste of time for all. It must be truly
annoying for someone in the trap to hear. And of course I fell into the
trap circa 2017 ;-)

FWIW, I support your request. In fact, I acctually suggest something
similar in the post referenced above.

HTH - George



Re: Using --manfistest with /manifest files

2020-06-16 Thread George Clemmer


Hi zimoun,

zimoun  writes:

> In contradiction with what I wrote above, I agree. :-)
>
> /manifest should be renamed /specifications or
> something like that.
>
> And a comment could be inserted in this file saying: internal usage, do
> not modify, etc..
>
> WDYT?

Sure, that would work. But, on further thought, I would like to amend my
suggestion -- to change which ever is easier. I say that because ...

"manifest" occurs ~600 times in the ./guix directory. I am guessing its
use is deeply embedded with developers. If so, renaming it internally
seems like a bad idea. And if we write our internal manifest into the
profile and call it "specifications" it will only add the confusion.

OTOH, "manifest" occurs only ~50 times in guix.info and the "user API"
seems limited to the --manifest option and the functions:
specifications->manifest and packages->manifest. Furthermore it is a new
concept for new users. So I don't think users care what we call it.

Bottom line: change whichever is more convenient for developers.

HTH - George



Re: Using --manfistest with /manifest files

2020-06-15 Thread George Clemmer


Ludovic Courtès  writes:

> elaexuo...@wilsonb.com skribis:

>> First, am I missing something? Is there a better/preferred way to make use of
>> the `manifest' files in profiles?

> You’re not missing anything: it’s a longstanding source of confusion
> that these ‘manifest’ files are not like the ‘manifest.scm’ files.
> These ‘manifest’ files are meant for internal consumption.

This hurt my head for a while a few years ago until I realized that
'manifest.scm' is the guix "order" and ‘.guix-profile/manifest’ is the
guix "packing list".

But actually a guix' 'manifest' packing list goes well beyond what we
normally find in a packing list by containing detailed info about how
the specific products were made, down to the specific design for the
specific version shipped.

Thought of this way it is easy to understand why a receiver of a
'manifest' can only estimate the set of 'manifest.scm' that might
produce it. A simple-minded example: did the manifest.scm specify the
version of the package shipped or is this an artifact of a) when
'manifest.scm' was processed or b) of the requirements of the other
packages that were received?

In any event, once I saw it this way it no longer troubled me that guix
doesn't have a pushbutton way to "reverse" 'manifest' into
'manifest.scm'.

ISTM we set ourselves up for confused users and a lot of explaining by
labeling two very different things with same name :-0

Yes, only 'manifest.scm' is in the doc, but '.guix-profile/manifest'
smacks a user in the face pretty quickly which leads to these messy
questions.

IMO we could dramatically simplify the situation, and simplify our
lives, by simply renaming the .guix-profile/manifest file ;-)

George



Re: Manual consistency

2020-06-09 Thread George Clemmer


zimoun  writes:

> (from: http://issues.guix.gnu.org/issue/41253#10)
>
> On Fri, 5 Jun 2020 at 18:36, Ludovic Courtès  wrote:
>
>> > There are many examples in guix.texi with $, and also many without. Plus
>> > some with # as the command line prompt.

>> I’ve come to the conclusion that snippets that contain only input should
>> be written without a prompt, for easier copy/pasting.

> I propose to do a pass on that:
>  - apply this rule: no-$ for only input and $ to distinguish between
> inputs and outputs.

+1.

For examples w/ outputs, how about also removing the $ and commenting
the outputs with '# ', or '# > '?

HTH - George



Re: Any interest in using HTML for locally-installed Texinfo documentation?

2019-04-02 Thread George Clemmer
Hi Gavin,

Gavin Smith  writes:
[...]
> A manual with this interface added is at
> https://www.gnu.org/software/texinfo/manual/texinfo-html/Overview.html.
> All the important keyboard commands that work in the Info viewers are
> implemented, including index lookup.

Nice! I like seeing Info commands work on WWW-posted doc. This would be
useful to an Emacs/Info user for packages that aren't installed or when
their Info system is broken. To reach the more numerous "non Emacs/Info
users", these commands need to be advertised and promoted. Is there a
plan for this?

WRT the current implementation ...

In Emacs and Info, typing 'h' shows Info keyboard commands. It didn't do
anything visiting this site with CHROME and Safari.

It would be nice if a second 'C-s' advanced to the next match without
requiring .

'C-s' on the site is so slow that I thought it was broken at first :(

HTH - George



Re: Communication and Design at Guix

2019-01-16 Thread George Clemmer
Hi Lprndn,

I am glad to see your interest in these issues.

Ludovic Courtès  writes:

> Hi,
>
> L  p R n  d n skribis:
>
>> Ludovic Courtès  writes:
>
> [...]
>
>>> A very concrete task that could be of interest to you is the “name
>>> change” (a bit of a strong word) that we’d like to implement by 1.0.
>>> I’ll try to summarize.  Currently we have “Guix” and “GuixSD”, and that
>>> confuses things: people visit the web site, they see a “GuixSD” logo and
>>> get confused because they were just looking for a package manager, not a
>>> whole distro, or they think “GuixSD” is a storage device ;-), things
>>> like that.
>>>
>>> The idea is to bring everything under the “Guix” name.  Most of the
>>> time, writing “Guix” is good enough—after all, one can run ‘guix system’
>>> on a foreign distro, too.  When we really need to make the distinction,
>>> for instance in the manual, we would write “Guix System” to designate
>>> what we currently call “GuixSD”.
>>
>> Hum. It might just be as easy as getting rid of the GuixSD logo and
>> wording for the most part. Then we can find a *preferred* way to
>> designate GuixSD (a Guix system (probably), Guix distro, Guix os).Here,
>> it's more about making GuixSD "disappear" but we could also just rebrand
>> GuixSD with some kind of "subtitle": "Guix, the system", derive a logo
>> from the Guix's one. It depends a lot from what we want to put under
>> the spotlight.
>
> The idea is more to have a single “brand”: Guix.

Yes a single brand is the way to go. But, piecemeal changes to the web
site are unlikely to get us there unless we work from a unified "Guix
Brand" product description. E.g., earlier I proposed ...

"'Guix' is a software environment manager that creates user environments
that are completely and independently specified by users. Guix users are
never stuck needing software that a Sysadmin can't, won't, or hasn't
installed. A Guix user can run multiple, differing environments
simultaneously and can replicate any environment on any Guix run-time
platform.  Guix provides system-wide environment management when
appropriate to the run-time platform.  Creation, modification, and
upgrade are atomic and roll-back is instantaneous, so Guix users and
sysadmins are never stuck with a broken user environment or system.
Guix implements a functional specification of package, user, and system
configurations using the Scheme language.  Guix complies with the FSF
Four Essential Freedoms and Free System Distribution Guidelines and
provides easy and immediate access to the exact source being run.  By
default, Guix uses pre-built package substitutes from the Guix build
farm and mirrors but users may build any package, or a complete system,
from package developer sources."[1]

> Then “Guix System” would be a component of Guix, so to speak, similar
> to GNOME and its applications.

"Guix System" is a "bad" name for "GuixSD." Why? Because a new user's
first expectation is for "Guix system" to refer to the whole of Guix,
which we want to call "Guix" (referred to as "Guix Brand" below).

But if we call GuixSD the "Guix System", we create a counter-intuitive
thing to explain. E.g., we will be saying, "Our GNU/Linux System
Distribution, 'Guix System' is just one of multiple ways to use 'Guix
Brand', which includes the Guix package manager, for which we also use
the 'Guix Brand' label.

Another "bad" thing about calling it "Guix system" is that when a user
searches "guix system" they hit the 'guix system' "Guix Brand" package
manager' command that, BTW, also generates "Guix VMs".

It will simplify our work if we present GuixSD as simply one of several
Guix download/deployment options. E.g., earlier I suggested ...

"Guix is available on multiple run-time platforms including bare metal
(GuixSD), Virtual Machines (QEMU image), and any GNU/Linux distro (Guix
Binary).[1]"

With this approach, we only need a distinctive label for GuixSD that
doesn't puzzle users to produce reliable search hits on the relevant
parts of our message and documentation. E.g., GuixOS.

HTH - George

[1] https://lists.gnu.org/archive/html/guix-devel/2018-01/msg00444.html



Re: End of beta soon? drop i686?

2018-12-12 Thread George Clemmer


swedebu...@riseup.net writes:

> First of all thanks for building a great OS!
+1

> In my view we still have a system where encountering a bug is still far
> more common than any other OS I ever used.
+1

> To sum it up: lets not ruin what we have by rushing ahead and ending
> beta too early.
+1

FWIW, GuixSD has been my daily headless server driver for ~3 years.



Re: Promoting the GNU Kind Communication Guidelines?

2018-10-25 Thread George Clemmer
Hello

Ricardo Wurmus  writes:

> Hello Mathieu,
>
>> Mathieu Lirzin  skribis:
>>
>>> Following the announcement made by RMS regarding the new GNU Kind
>>> Communication Guidelines (GKCG) [1], I would like to know if the Guix
>>> developpers in particular its maintainers would agree to adopt it in
>>> place of the current Code of Conduct (CoC)?
>>
>> Speaking for myself: no.  I think the GKCG fails to address important
>> issues, such as defining what’s acceptable and what’s not as well as
>> clear processes to address this.
>
> [Apologies for the delay; I’m currently traveling.]
>
> Adding to what Ludovic wrote, I also would not want to replace the
> current proven Contributor Covenant with the recently emerged GKCG.
> Using *both* of them would not be useful, I think, as I find our current
> CoC to be sufficient; using *only* the GKCG and dropping the existing
> CoC would be a mistake in my opinion, as our CoC describes a process
> which the GKCG does not.
>
> Committing to a process to deal with grievances is a very desirable
> feature of our current CoC that I don’t want to give up.  As one of the
> people who shares responsibility for dealing with incidents of
> harassment or misunderstandings, this helps me do a better job.
>
> Even so, I encourage people to continue to engage in fostering kind
> communication in the channels of the Guix project, something that this
> community by and large does very well.
>
>>> Adopting the GKCG instead of a CoC would help attracting people (like
>>> me) who agree to use a welcoming and respectful language which
>>> encourages everyone to contribute but are reluctant in contributing to
>>> any project following a CoC due to its punitive nature and the politics
>>> of its authors [2][3].
>
> To me the politics of the author(s) of the original or current version
> of the Contributor Covenant don’t play much of a role in prefering it as
> a practical guiding document for this community.  (I don’t know the
> author.)
>
> I think I see how it could be seen as “punitive”, but I don’t share this
> assessment.  We all want what’s best for the project and the people who
> currently work on or consider working on it — to me the emergence of the
> GKCG is more evidence that this is true.  I hope that seeing these
> similarities in intent more than the differences in implementation will
> allow you to overcome your feeling of reluctance to contribute to Guix
> (and other projects that have decided to adopt a CoC).

The responses above seem consistent with why CoC mightq appeal to
maintainers. But as a Guix user and occasional contributor, I find GKCG
more welcoming and more useful. For me, RMS' rationale is compelling:

The idea of the GNU Kind Communication Guidelines is to start
guiding people towards kinder communication at a point well before
one would even think of saying, "You are breaking the rules."  The
way we do this, rather than ordering people to be kind or else, is
try to help people learn to make their communication more kind.

It is really the either-or situation implied by the discussion above?

What would be wrong with adding GKCG and keeping CoC?

- George



Re: ~/.guix-profile/manifest usage with "guix package -m [manifest]" / "guix pack -m [manifest]" etc..

2018-10-10 Thread George Clemmer


Ludovic Courtès  writes:

> Hello,
>
> Ricardo Wurmus  skribis:
>
[...]
>> You can put this in a file “manifest-to-manifest.scm” and run it like
>> this from a Guix source checkout:
>>
>> ./pre-inst-env guile -s manifest-to-manifest.scm /path/to/.guix-profile 
>> > my-manifest.scm
>
> I like how the script’s name highlights the naming inconsistency.  :-)

... and that we should consider renaming one of these "manifests" ;-)

>> You can then proceed to install the generated manifest with:
>>
>> guix package -m my-manifest.scm -p /path/to/new/.guix-profile
>>
>> If that’s what you’re looking for I suppose we could find a place for
>> something like that under the umbrella of “guix package”.
>
> The problem, as I see it, is that this might give a false impression
> that both “manifests” are entirely equivalent, which is not the case.

This "false impression" is caused by the "naming inconsistency" (above)
rather that by the proposed function, isn't it?

> I sympathize with George’s idea of making it easier to move from the
> incremental style to the declarative style, but I wonder if we should go
> beyond suggesting to basically copy the package names shown in “guix
> package -I” to the manifest file.

Does this mean to have "manifest-to-manifest.scm" add any non-default
(in the current Guix version) package outputs and versions to the
package specifications produced? Or something else?

- George



Re: Blog: Guix packaging tutorial

2018-10-10 Thread George Clemmer


This LGTM except ... the first paragraphs (quoted below) are an
advertisement. This is out of place in a tutorial. So, IMO, they should
simply be removed.

> GNU Guix stands out as the *hackable* package manager, mostly because
> it uses [GNU Guile](https://www.gnu.org/software/guile/), a powerful
> high-level programming language, one of the
> [Scheme](https://en.wikipedia.org/wiki/Scheme_(programming_language))
> dialects from the [Lisp
> family](https://en.wikipedia.org/wiki/Lisp_(programming_language)).
>
> Package definitions are also written in Scheme, which empowers Guix in
> some very unique ways, unlike most other package managers that use
> shell scripts or simple languages.
>
> - Use functions, structures, macros and all of Scheme expressiveness
> for your package definitions.
>
> - Inheritance makes it easy to customize a package by inheriting from
> it and modifying only what is needed.
>
> - Batch processing: the whole package collection can be parsed,
> filtered and processed.  Building a headless server with all graphical
> interfaces stripped out?  It's possible.  Want to rebuild everything
> from source using specific compiler optimization flags?  Pass the
> `#:make-flags "..."` argument to the list of packages.  It wouldn't be
> a stretch to think [Gentoo USE
> flags](https://wiki.gentoo.org/wiki/USE_flag) here, but this goes even
> further: the changes don't have to be thought out beforehand by the
> packager, they can be *programmed* by the user!

If you don't remove them, then at least move the paragraph quoted below
to the top of the piece ...

> The following tutorial covers all the basics around package creation
> with Guix.  It does not assume much knowledge of the Guix system nor
> of the Lisp language.  The reader is only expected to be familiar with
> the command line and to have some basic programming knowledge.

... and preface the above mentioned paragraphs with something like ...

# Guix is a unique approach to package management

HTH - George



Re: ~/.guix-profile/manifest usage with "guix package -m [manifest]" / "guix pack -m [manifest]" etc..

2018-10-02 Thread George Clemmer


Ricardo Wurmus  writes:

> Hi George,
>
>> My thinking is that if there was an easy way to produce “manifests as
>> passed to ‘guix package -m’” from profiles, it would be a handy: an easy
>> way for someone that has gone down the incremental path to switch to
>> manifests and an easy way to update one's manifest after incremental
>> changes.
>
> Do you mean something like this?
>
> --8<---cut here---start->8---
> (use-modules (guix profiles)
>  (ice-9 match)
>  (ice-9 pretty-print))
>
> (match (command-line)
>   ((_ where)
>(pretty-print
> `(specifications->manifest
>   ',(map manifest-entry-name (manifest-entries (profile-manifest 
> where))
>   (_ (error "Please provide the path to a Guix profile.")))
> --8<---cut here---end--->8---
>
> You can put this in a file “manifest-to-manifest.scm” and run it like
> this from a Guix source checkout:
>
> ./pre-inst-env guile -s manifest-to-manifest.scm /path/to/.guix-profile > 
> my-manifest.scm
>
> You can then proceed to install the generated manifest with:
>
> guix package -m my-manifest.scm -p /path/to/new/.guix-profile
>
> If that’s what you’re looking for I suppose we could find a place for
> something like that under the umbrella of “guix package”.

Hi Ricardo,

Nice! Yes, this is the idea and it worked here for me, thank you.

Ideally this would recover additional package specification details when
needed. E.g., I did 'guix package -i guile@2.2:debug' but only "guile"
was added to my-manifest.scm.

TIA! - George



Re: ~/.guix-profile/manifest usage with "guix package -m [manifest]" / "guix pack -m [manifest]" etc..

2018-10-02 Thread George Clemmer
Hi Ludo’,

Ludovic Courtès  writes:

> Hello,
>
> George Clemmer  skribis:
>
>> YOANN hit an error when trying to do 'guix package -m
>> ~/.guix-profile/manifest'. Why would one want to do this? Maybe to
>> (re)produce a configuration previously reached by a series of 'guix
>> package -i' operations?
>
> I agree this would be nice, but be aware that this is not quite possible
> because those files don’t have enough information to rebuild packages.
>
> Starting from a few weeks/months ago, ~/.guix-profile/manifest records
> upstream VCS information, like this:
>
>  ("libreoffice"
>   "6.1.2.1"
>   "out"
>   "/gnu/store/y4l3r7nh0dg3d8qaifz96ffab4jpjl3s-libreoffice-6.1.2.1"
>   (propagated-inputs ())
>   (search-paths ())
>   (properties
> (provenance
>   (repository
> (version 0)
> (url "https://git.savannah.gnu.org/git/guix.git;)
> (branch "master")
> (commit
>   "f8e710684e5c3f866413dff825ba17bdffceac5d")
>
> With this info and with inferiors and channels, it becomes possible to
> rebuild the package (if we make simplifying assumptions.)
>
> So I understand the need and agree that it would be nice.  But for now,
> I strongly recommend “manifests as passed to ‘guix package -m’” because
> they’re much more expressive, especially with the introduction of the
> inferior API:
>
>   https://issues.guix.info/issue/32759

IIUC, you are describing more-or-less "exact" (re)production of an
existing profile. But that's not what I was thinking of when I said
"(re)produce a configuration". Rather, I was thinking (as described
elsewhere in the original post) of the ability to produce “manifests as
passed to ‘guix package -m’” from an existing profile.

Why? In part to smooth over a puzzling inconsistency in guix
configuration: Systems configuration is "declarative" but user-profiles
may be "incremental" ('guix package -i') or "declarative" ('guix package
-m').

My thinking is that if there was an easy way to produce “manifests as
passed to ‘guix package -m’” from profiles, it would be a handy: an easy
way for someone that has gone down the incremental path to switch to
manifests and an easy way to update one's manifest after incremental
changes.

HTH - George



Re: ~/.guix-profile/manifest usage with "guix package -m [manifest]" / "guix pack -m [manifest]" etc..

2018-10-01 Thread George Clemmer


Ludovic Courtès  writes:

> Hello,
>
> YOANN P  skribis:
>
>> I was thinking than "~/.guix-profile/manifest" was a valid manifest file due 
>> to his name, but it seems not that is the case from the error i've got
>>
>> https://pastebin.com/Z7h2t5mL
>>
>> After some search , i've finally understand that the instantiated profile 
>> couldn't be used as source profile for "guix package -m" etc... due to the 
>> same words despite use case and is a bit confusing
>
> I agree it’s a bit confusing.  The manual does make it clear that -m
> expects source code that evaluates to a manifest object, though.
>
>> https://gnunet.org/bot/log/guix/2016-05-27#T1040380
>>
>> It will be really convenient to only have the instantiate profile to easily 
>> maintain it in a vcs system.
>>
>> Despite what ludo said in 2016 on IRC, i didn't see those options yet.
>> Did i missed them ?
>> If not implemented yet, any news about this feature ? :)
>
> No news I’m afraid :-) but I’ve opened an issue so we keep track of it:
>
>   https://issues.guix.info/issue/32844

Hi Ludo’,

Your bug doesn't capture some other manifest issues ...

"~/.guix-profile/manifest" and 'guix package --manifest=FILE' use the
same term/filename for markedly different things and the doc is silent
on the distinction. While "~/.guix-profile/manifest" may be internal to
Guix, users will inevitably trip across it and be confused (as YOANN did
here, and I did a year ago).

We might avoid confusion and make documentation easier by renaming one
of these. Consider ...

We are using "~/.guix-profile/manifest" in a way that is consistent with
a common use, e.g., shipping manifest, which specifies information not
in the associated order and at a level of detail that can only be
determined at shipment (e.g. serial number).

Our use of manifest in 'guix package --manifest=FILE' is rather less
intuitive. In fact this FILE is more like an order than a manifest,
IMO. As the doc says, [the manifest] 'FILE must return a “manifest”
object, which is roughly a list of packages'. If we were to rename this
a "package-list" or "package-spec", this would be more intuitive and
self-explanatory (at least to me, an English speaker), and make the doc
easier to write/understand.

YOANN hit an error when trying to do 'guix package -m
~/.guix-profile/manifest'. Why would one want to do this? Maybe to
(re)produce a configuration previously reached by a series of 'guix
package -i' operations?

In most situations, rather than a "~/.guix-profile/manifest" file, one
wants to use a 'guix package --manifest=FILE', since this is more
durable over time and easier to maintain (e.g. in SCC).

So, IMO, it would be useful to have something like ...

guix package --manifest-from-profile -p ~/.guix-profile > FILE

... which returns a "minimally specified" FILE that allows 'guix package
--manifest=FILE' to reproduce "~/.guix-profile".

- George



Re: Roadmap for Guix 1.0

2018-08-31 Thread George Clemmer


Gábor Boskovits  writes:

> George Clemmer  ezt írta (időpont: 2018. aug. 30., Cs,
> 21:14):
>
>>
>> Ricardo Wurmus  writes:
>>
>> > Ludovic Courtès  writes:
>> >
>> >> Hello,
>> >>
>> >> I think “Guix System” is OK.
>> >
>> > I think so too.
>>
>> I recommend against renaming GuixSD >> "Guix System". Here is Why:
>>
>> 1) A noob would expect "guix system" to refer to the whole Guix
>> enchilada. If we use it to refer to GuixSD, a specific Guix deployment
>> mode, we have created a new, counter-intuitive thing we have to explain.
>>
>> 2) As Ricardo points out below, the "guix system" command clashes with
>> this use of Guix system. This is a second counter-intuitive thing we
>> would have to explain.
>>
>> Bottom line: we shouln'd use the general term "Guix System" in any way
>> beyond, perhaps in a descriptway way, e.g., The Guix project develops
>> the Guix System, a set of tools that manage software environments.
>>
>> >> Most of the time we’ll just say “Guix”, as
>> >> is already the case, and when we need to disambiguate (for instance when
>> >> addressing bugs), we’ll ask “Are you using Guix System?” or “Are you
>> >> using the Guix distro?”, and everything will be fine.  :-)
>> >
>> > Exactly.
>> >
>> > I wrote this on IRC:
>> >
>> > The name “GuixSD” is opaque and creates an arbitrary distinction between
>> > the system running on bare metal and the systems you can create with the
>> > “guix system” commands.  It makes it difficult to communicate about
>> > Guix.  Do we really offer “a package manager” and a “distro” — or is it
>> > really all one thing with various levels?
>> >
>> > The “guix system” command can be used without GuixSD to create Guix
>> > virtual machines or containers.  Describing “guix system” is difficult
>> > when we think in terms of “package manager” vs “distro”.  Guix itself is
>> > also a distro – none of the packages it provides link with the host
>> > system, and the collection of packages is a distribution of free
>> > software.
>> >
>> > I think that simplifying the name by using “guix” as a category will
>> > make communication easier.
>> >
>> >> The motivation for this name change is that “SD” is obscure to most, as
>> >> you note, plus it creates confusion when people visit the web site: the
>> >> web site has a “GuixSD” logo, but then it talks about features of the
>> >> package manager.  Designating the whole tool set as “Guix” will simplify
>> >> this, and we can always be more specific when we need to.
>> >
>> > I agree.
>>
>> I agree too. You may recall that I recommendi this approach when we
>> discussed the web site in January. That thread includes a product
>> description [1] that might be a good place to start when describing the
>> "whole tool set".
>>
>> [1] https://lists.gnu.org/archive/html/guix-devel/2018-01/msg00457.html
>>
>> What do you think about  GuixSD >> "Guix Distribution"? This naming seems
> to resolve the ambiguities mentioned so far, and has a widespread
> use, that exactly matches the intended meaning. WDYT?

Hi Gábor,

I think this discussion was primarily triggered by the realization that
we can improve the top-level presentation of Guix by downplaying the
distinction between Guix and GuixSD. In fact, we could delay the
introduction of Guix/GuixSD to the download page.

A more informative download page might look like:

Use Guix to manage ...

entire computers: GuixSD download options: x86_64 i686

VMs: download options: GuixSD x86_64-QEMU-image

GNU/Linux user environments: Guix download options: x86_64, i686, armhf,
aarch64

Here we see the primary purpose of the Guix/GuixSD labels is to identify
the different download options and to enable the user to find the
correct install instructions and doc sections for whatever they
download.

GuixSD doesn't necessarily need to be changed. But the issue has been
raised, as mentioned above, that because "SD" is not a recognized
abbreviation "GuixSD" carries no intuitive meaning. If we want an
improved label for the Guix system distribution, the best one is
probably "GuixOS" since "OS" is a widely used and recognized
abbreviation ...

Termgoogle hits
OS  3.0 * 10**9
operating system0.7 * 10**9
system distribution 0.5 * 10**9

I guess the issue with this is that it seems odd to say "the GNU Guix
GNU/Linux System Distribution, abbreviated GuixOS" ;-)

HTH - George



Re: Roadmap for Guix 1.0

2018-08-30 Thread George Clemmer


Ricardo Wurmus  writes:

> Ludovic Courtès  writes:
>
>> Hello,
>>
>> I think “Guix System” is OK.
>
> I think so too.

I recommend against renaming GuixSD >> "Guix System". Here is Why:

1) A noob would expect "guix system" to refer to the whole Guix
enchilada. If we use it to refer to GuixSD, a specific Guix deployment
mode, we have created a new, counter-intuitive thing we have to explain.

2) As Ricardo points out below, the "guix system" command clashes with
this use of Guix system. This is a second counter-intuitive thing we
would have to explain.

Bottom line: we shouln'd use the general term "Guix System" in any way
beyond, perhaps in a descriptway way, e.g., The Guix project develops
the Guix System, a set of tools that manage software environments.

>> Most of the time we’ll just say “Guix”, as
>> is already the case, and when we need to disambiguate (for instance when
>> addressing bugs), we’ll ask “Are you using Guix System?” or “Are you
>> using the Guix distro?”, and everything will be fine.  :-)
>
> Exactly.
>
> I wrote this on IRC:
>
> The name “GuixSD” is opaque and creates an arbitrary distinction between
> the system running on bare metal and the systems you can create with the
> “guix system” commands.  It makes it difficult to communicate about
> Guix.  Do we really offer “a package manager” and a “distro” — or is it
> really all one thing with various levels?
>
> The “guix system” command can be used without GuixSD to create Guix
> virtual machines or containers.  Describing “guix system” is difficult
> when we think in terms of “package manager” vs “distro”.  Guix itself is
> also a distro – none of the packages it provides link with the host
> system, and the collection of packages is a distribution of free
> software.
>
> I think that simplifying the name by using “guix” as a category will
> make communication easier.
>
>> The motivation for this name change is that “SD” is obscure to most, as
>> you note, plus it creates confusion when people visit the web site: the
>> web site has a “GuixSD” logo, but then it talks about features of the
>> package manager.  Designating the whole tool set as “Guix” will simplify
>> this, and we can always be more specific when we need to.
>
> I agree.

I agree too. You may recall that I recommendi this approach when we
discussed the web site in January. That thread includes a product
description [1] that might be a good place to start when describing the
"whole tool set".

[1] https://lists.gnu.org/archive/html/guix-devel/2018-01/msg00457.html



Re: Roadmap for Guix 1.0

2018-08-30 Thread George Clemmer
Hi,

Ludovic Courtès  writes:

> Hello,
>
> Pierre Neidhardt  skribis:
>
>> - If we get started with Guix CI and Guix OS, I'm afraid that soon enough we
>>   will end up with a bunch Guix FS, Guix IP, Guix CD...
>
> I think “Guix System” is OK.  Most of the time we’ll just say “Guix”, as
> is already the case, and when we need to disambiguate (for instance when
> addressing bugs), we’ll ask “Are you using Guix System?” or “Are you
> using the Guix distro?”, and everything will be fine.  :-)
>
> The motivation for this name change is that “SD” is obscure to most, as
> you note, plus it creates confusion when people visit the web site: the
> web site has a “GuixSD” logo, but then it talks about features of the
> package manager.  Designating the whole tool set as “Guix” will simplify
> this, and we can always be more specific when we need to.

This is good because it declutters the Guix-Verse for new users.

I suggest that the distinction between GuixOS, package manager, QEMU
image, and source can be re-positioned as download options.

We could simplify the choice of these by improving the download
page. For example ...

1) We could simplify the download labels/descriptions, e.g.,

   "GuixSD 0.15.0 QEMU Image QCOW2 virtual machine (VM) image. Download
   options: x86_64"

   ... might become ...

   "x86_64 VM (GuixSD 0.15.0 QEMU Image QCOW2 virtual machine image)"

2) We could add a feature check list that helps with download selection.

With such changes the support question is: what did you download?

IMO it would be desirable to pick a single term for each download option
and use it obsessively throughout the site and doc. This small thing can
be quite helpful to a noob because it eliminates any confusion that
might be caused by multiple terms meaning the same thing. So, IMO we
should settle on only one of Guix System, GuixSD, GuixOS, or maybe "Guix
bare metal".

- George



Re: [doc RFC] Tame the Guix profile blizzard?

2018-07-10 Thread George Clemmer
Hi Nils,

Nils Gillmann  writes:

>   4) before each profile kind is used for the first time,
>  make use of something like this for the brief introduction
>  of it again (our manual is not very long, but it is still
>  long):

I Agee.

> @cartouche
> @quotation Note
> In the following ``spacejump'' refers to …
> @end quotation
> @end cartouche
>
> this renders at least in HTML and PDF output of texinfo. I haven't
> used this very much so far.
>
> A visual example can be found in 'Exchange', Chapter 'Configuration'
> in https://docs.taler.net/

I assume you refer to the box that reads, "Note: The rationale behind
having multiple bank accounts ..." and I agreed this would work well.

- George



Re: [doc RFC] Tame the Guix profile blizzard?

2018-07-10 Thread George Clemmer


Ludovic Courtès writes:

> Hi George,
>
> George Clemmer  skribis:
>
>> ISTM we can improve this situation as follows:
>>
>> 1) agree on a canonical term to use for the 4 types of profiles
>
> I think you mentioned only two types of “profiles”: one is profiles
> created by ‘guix package’ or ‘guix environment’ or ‘guix system’ (they
> are all the same kind of “profile”), and the other one is execution
> profile, which has nothing to do with that.
>
> So to me it seems that “profile” is in fact used fairly consistently,
> isn’t it?

Yes ... but ... the use of these profiles produces subtly different
"side-effects". Package operations cause changes in the user's "default"
profile that are immediately "used" in the user environment.  However
'guix package -p foo' does not cause foo to be "used".  'guix
environment --ad-hoc' causes the environment profile to be "added" to
the user's environment, but --pure substitutes it for both system and
"default" profiles IIUC.  IMO these could be better explained and more
easily referenced by users if we develop a structured nomenclature to
distinquish between these.

> However…
>
>> 3) add a top level discussion of profiles
>
> … we surely need this.  Someone we should clearly define “profile”
> somewhere upfront.  Perhaps we also need a glossary.

Agreed



[doc RFC] Tame the Guix profile blizzard?

2018-07-09 Thread George Clemmer
ISTM our doc is a veritable "Profile Blizzard."


The term occurs 173 times in guix.texi


The "user profile" is referred to in multiple ways:

 (guix) Application Setup: "your Guix profile"

 (guix) Features: 'own “profile”', "per-user profiles", "their profile"

 (guix) Invoking guix package: "user’s own profile", "user’s default
 profile", ‘$HOME/.guix-profile’

 (guix) Invoking guix environment: "package profile"


The "system profile" is referred to in multiple ways:

 (guix) Using the Configuration System: "Globally-installed packages"

 (guix) operating-system Reference: "global profile",
 ‘/run/current-system/profile’

 (guix) Networking Services: "system profile"


An unnamed type of "environment profile" is produced by 'guix
environment'

 (guix) Invoking guix environment" ‘GUIX_ENVIRONMENT’ variable


An unnamed type of "custom profile" is produced by the 'guix package' -p
option.


(guix) Top mentions only an entirely different use of the term:

 * Invoking guix size::  Profiling disk usage.


(guix) Concept Index contains only (guix) Invoking guix package
references.


ISTM we can improve this situation as follows:

1) agree on a canonical term to use for the 4 types of profiles

2) update the doc accordingly

3) add a top level discussion of profiles

WDYT? - George



Re: guix package is slow

2018-07-09 Thread George Clemmer


Alex Kost  writes:

> "M-x guix" can't be an entry point for this or any other interface, it
> is only for "guix" *shell* commands.  Actually I'm very surprised
> someone uses "M-x guix", I find it unpractical.

Agreed. FWIW, when I am trying to find an emacs-guix command I type 'M-x
guix-' and search the completions. But sometimes I forget the '-' and
when this pops up I am like ... UGH ;-(

I wanted to use and like the "M-x Guix" pop-up, I really did. I figured
the Guix CLI needed all the help it could get ;-) I tried several times
to learn this, but I just couldn't get the hang of it. I also tried it
in magit and it didn't work for me there.  This makes me wonder: a) Am I
am a dope? b) Do people really use this?

> I even plan to rename it to "M-x guix-command", and to make "M-x guix"
> a real entry point for the various Emacs-Guix commands (including
> "guix-command" and all the interfaces).

That's a great idea.

If "M-x guix" is not widely used you might consider deleting it
altogether.

- George