'pre-inst-env guix --version' is not updated by new commits"

  • Open
  • quality assurance status badge
Details
6 participants
  • Clément Lassieur
  • Leo Famulari
  • Ludovic Courtès
  • George Clemmer
  • Nils Gillmann
  • Ricardo Wurmus
Owner
unassigned
Submitted by
George Clemmer
Severity
normal
G
G
George Clemmer wrote on 11 Jun 2018 20:01
(address . bug-guix@gnu.org)
87r2lddwyg.fsf@gmail.com
When I clone and build Guix from scratch, it produces the untracked file
"doc/stamp-1" which contains the version number built into the Guix doc
and appears to be created from a call to 'git describe'.

But with subsequent git commit/make cycles the version does not
change. It doesn't change when the guix package is updated either. For
example, after pulling and building the recent commit updating the guix
package ...

commit 8b3aea9d9e022b20137cec93f668df8fa051abd9
Author: Ludovic Courtès <ludo@gnu.org>
Date: Sun Jun 10 23:31:01 2018 +0200

gnu: guix: Update to 77a1aac.

* gnu/packages/package-management.scm (guix): Update to 77a1aac.

g1@sysi31 ~/gom/.emacs.d/guix/guix [gmm]$ git describe 8b3aea9d9e022b20137cec93f668df8fa051abd9
v0.14.0-6300-g8b3aea9d9

"doc/stamp-1" and guix version remain "stuck" on June 8th ...

g1@sysi31 ~/gom/.emacs.d/guix/guix [gmm]$ cat doc/stamp-1
@set UPDATED 8 June 2018
@set UPDATED-MONTH June 2018
@set EDITION 0.14.0.5478-1458f7
@set VERSION 0.14.0.5478-1458f7

g1@sysi31 ~/gom/.emacs.d/guix/guix [gmm]$ ./pre-inst-env guix --version
guix (GNU Guix) 0.14.0.5478-1458f7

They remain stuck after 'make clean; make', and './bootstrap;
./configure; make' The only way I found to "unstick" them is 'sudo git
clean -dfx'.

Side questions:

1) why don't you gitignore "doc/stamp-1"?
2) why don't you gitignore .po files?

TIA - George
L
L
Ludovic Courtès wrote on 12 Jun 2018 15:21
(name . George Clemmer)(address . myglc2@gmail.com)(address . 31786@debbugs.gnu.org)
87k1r4p2ca.fsf@gnu.org
Hello George,

George Clemmer <myglc2@gmail.com> skribis:

Toggle quote (5 lines)
> But with subsequent git commit/make cycles the version does not
> change. It doesn't change when the guix package is updated either. For
> example, after pulling and building the recent commit updating the guix
> package ...

Currently the version number is hardcoded in ‘configure.ac’, so the fact
that running “git pull && make” doesn’t change it is expected. So to
me, it’s not a bug.

We could improve on that (see for instance how Guile does it with
build-aux/git-version-gen), but it still won’t be updated at each commit
because that’d be inconvenient: ‘config.h’ would regenerated, so in turn
we’d need to rebuild all of the C++ code.

‘guix pull’ does the right thing though, which I think is more important
than the build tree.

Toggle quote (4 lines)
> Side questions:
>
> 1) why don't you gitignore "doc/stamp-1"?

Good idea, done! :-)

Toggle quote (2 lines)
> 2) why don't you gitignore .po files?

Because they are checked in.

Thanks for your report.

Ludo’.
G
G
George Clemmer wrote on 12 Jun 2018 20:28
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 31786@debbugs.gnu.org)
87k1r3271g.fsf@gmail.com
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (18 lines)
> Hello George,
>
> George Clemmer <myglc2@gmail.com> skribis:
>
>> But with subsequent git commit/make cycles the version does not
>> change. It doesn't change when the guix package is updated either. For
>> example, after pulling and building the recent commit updating the guix
>> package ...
>
> Currently the version number is hardcoded in ‘configure.ac’, so the fact
> that running “git pull && make” doesn’t change it is expected. So to
> me, it’s not a bug.
>
> We could improve on that (see for instance how Guile does it with
> build-aux/git-version-gen), but it still won’t be updated at each commit
> because that’d be inconvenient: ‘config.h’ would regenerated, so in turn
> we’d need to rebuild all of the C++ code.

Hi Ludo’,

Ok, cool. Thanks for the clarification. So... how about adding a
footnote to '(guix) Running Guix Before It Is Installed' something like
...

(3) The Guix version in the Guix build is set by './configure'. Thus,
when guix is run from the Git working tree by './pre-inst-env guix' or a
'~/.config/guix/latest’ symlink, the version reported by 'guix
--version' is not updated by subsequent 'git pull; make' steps. To
update the version (and rebuild everything), you may use 'git clean
-dfx; ./bootstrap; ./configure; make'.

Note: I also tried 'make distclean' and 'make maintainer-clean' which
didn't work.

Toggle quote (3 lines)
> ‘guix pull’ does the right thing though, which I think is more important
> than the build tree.

Agreed.

Toggle quote (6 lines)
>> Side questions:
>>
>> 1) why don't you gitignore "doc/stamp-1"?
>
> Good idea, done! :-)

Thanks!

Toggle quote (4 lines)
>> 2) why don't you gitignore .po files?
>
> Because they are checked in.

I guess I meant to say, why does the build change these checked-in
files? It seems like they should be ignored.

TIA - George
L
L
Ludovic Courtès wrote on 12 Jun 2018 22:33
(name . George Clemmer)(address . myglc2@gmail.com)(address . 31786@debbugs.gnu.org)
87d0wvoicy.fsf@gnu.org
George Clemmer <myglc2@gmail.com> skribis:

Toggle quote (33 lines)
> Ludovic Courtès <ludo@gnu.org> writes:
>
>> Hello George,
>>
>> George Clemmer <myglc2@gmail.com> skribis:
>>
>>> But with subsequent git commit/make cycles the version does not
>>> change. It doesn't change when the guix package is updated either. For
>>> example, after pulling and building the recent commit updating the guix
>>> package ...
>>
>> Currently the version number is hardcoded in ‘configure.ac’, so the fact
>> that running “git pull && make” doesn’t change it is expected. So to
>> me, it’s not a bug.
>>
>> We could improve on that (see for instance how Guile does it with
>> build-aux/git-version-gen), but it still won’t be updated at each commit
>> because that’d be inconvenient: ‘config.h’ would regenerated, so in turn
>> we’d need to rebuild all of the C++ code.
>
> Hi Ludo’,
>
> Ok, cool. Thanks for the clarification. So... how about adding a
> footnote to '(guix) Running Guix Before It Is Installed' something like
> ...
>
> (3) The Guix version in the Guix build is set by './configure'. Thus,
> when guix is run from the Git working tree by './pre-inst-env guix' or a
> '~/.config/guix/latest’ symlink, the version reported by 'guix
> --version' is not updated by subsequent 'git pull; make' steps. To
> update the version (and rebuild everything), you may use 'git clean
> -dfx; ./bootstrap; ./configure; make'.

I’m not comfortable documenting this because it’s nothing specific to
Guix.

Besides, note that ~/.config/guix/latest no longer exists.

Toggle quote (7 lines)
>>> 2) why don't you gitignore .po files?
>>
>> Because they are checked in.
>
> I guess I meant to say, why does the build change these checked-in
> files? It seems like they should be ignored.

The build changes them only if you start anew. In normal circumstances
(meaning you didn’t run “distclean”), they remained unchanged if I’m not
mistaken.

So yeah, it’s occasionally annoying, but I’m not sure how to fix this.

Ludo’.
G
G
George Clemmer wrote on 13 Jun 2018 02:51
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 31786@debbugs.gnu.org)
87o9gf5x0t.fsf@gmail.com
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (16 lines)
> George Clemmer <myglc2@gmail.com> skribis:
>
>> Ok, cool. Thanks for the clarification. So... how about adding a
>> footnote to '(guix) Running Guix Before It Is Installed' something like
>> ...
>>
>> (3) The Guix version in the Guix build is set by './configure'. Thus,
>> when guix is run from the Git working tree by './pre-inst-env guix' or a
>> '~/.config/guix/latest’ symlink, the version reported by 'guix
>> --version' is not updated by subsequent 'git pull; make' steps. To
>> update the version (and rebuild everything), you may use 'git clean
>> -dfx; ./bootstrap; ./configure; make'.
>
> I’m not comfortable documenting this because it’s nothing specific to
> Guix.

So to summarize: This behavior is a side effect of how GNU tools
work. It is obvious to anyone who understands them. You don't want to
describe things that are obvious. I understand.

But I think many users don't have a clue about GNU build tools. They may
be puzzled by how pre-inst-env works. I think the footnote would be
helpful for them. I urge you to reconsider.

Toggle quote (2 lines)
> Besides, note that ~/.config/guix/latest no longer exists.

Yes, I saw you revamped Guix pull but I haven't actually used guix pull
in over a year. I need to check the new one out.

- George
L
L
Ludovic Courtès wrote on 13 Jun 2018 08:54
(name . George Clemmer)(address . myglc2@gmail.com)(address . 31786@debbugs.gnu.org)
87wov3npl2.fsf@gnu.org
Hello,

George Clemmer <myglc2@gmail.com> skribis:

Toggle quote (26 lines)
> Ludovic Courtès <ludo@gnu.org> writes:
>
>> George Clemmer <myglc2@gmail.com> skribis:
>>
>>> Ok, cool. Thanks for the clarification. So... how about adding a
>>> footnote to '(guix) Running Guix Before It Is Installed' something like
>>> ...
>>>
>>> (3) The Guix version in the Guix build is set by './configure'. Thus,
>>> when guix is run from the Git working tree by './pre-inst-env guix' or a
>>> '~/.config/guix/latest’ symlink, the version reported by 'guix
>>> --version' is not updated by subsequent 'git pull; make' steps. To
>>> update the version (and rebuild everything), you may use 'git clean
>>> -dfx; ./bootstrap; ./configure; make'.
>>
>> I’m not comfortable documenting this because it’s nothing specific to
>> Guix.
>
> So to summarize: This behavior is a side effect of how GNU tools
> work. It is obvious to anyone who understands them. You don't want to
> describe things that are obvious. I understand.
>
> But I think many users don't have a clue about GNU build tools. They may
> be puzzled by how pre-inst-env works. I think the footnote would be
> helpful for them. I urge you to reconsider.

It’s not that I find it “obvious” etc. This specific part of the manual
targets an audience of developers, and I think it’s reasonable to expect
this audience to know where to look things up.

The other aspect, from a maintenance and readability viewpoint, is that
we could quickly add up lots of explanations that we’ll have to keep
up-to-date and that may make more important information harder to find.

I hope that makes sense, but I’m happy to hear what others think.

Ludo’.
L
L
Leo Famulari wrote on 14 Jun 2018 03:39
(name . Ludovic Courtès)(address . ludo@gnu.org)
20180614013938.GD29167@jasmine.lan
On Wed, Jun 13, 2018 at 08:54:49AM +0200, Ludovic Courtès wrote:
Toggle quote (4 lines)
> The other aspect, from a maintenance and readability viewpoint, is that
> we could quickly add up lots of explanations that we’ll have to keep
> up-to-date and that may make more important information harder to find.

Yeah, I'm worried about this too. It's tough to strike the correct
balance.
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAlshx1oACgkQJkb6MLrK
fwhUnhAArk6n1xg7M7GM2gGluwc1j/xfcwM++5j1rwxvaYKoYQ++EsxzNeFjKi/7
uNVrrd5hRo3tEq/skTuIK4mzwzXgetlWwRK1Bg9eCFA2sW7EhqT7Rkpsh36eW97u
8B7LnItWlcdPr92QZLnLkOW/t2RPy60fncNNNTmKTrCAQbOjDjhiUMgEeXWb20l/
aOTyV4bTZPaKbMdrMScxeRgFsk+X0qIJ5xGvZzmKcaKt+9SSPXxhL+AstaCyq0UW
UfCaQ1bL8wjEX6PKx788AZfwvPZS6ygf3aGIX8yp9jr1fWntO/cywSgsisjUCUnZ
DiDPYWasriLbpOco8MlkOWVnXFBeGDx9Y2CElI3tfaGljCco3lSr68O1Kafc+iHf
yhRuxiw5B4YZh0h0GjnS1e05SLrGagYCrG8dUlA/HwdDcM6Ac4w1mL4y+YgGBMoJ
D/6/CJamdkgXgULxDoptIFIWb8YadCrv082j/++CbtwpE1y3Cc6Nj/QAVR2236h4
0cO+xY+Tz9x+RhwN7U2X1bvoj/BQwrCpPJGD7dv82MsMEeeAie9dtGAjx8L/XCHm
sutSUD+tuWUdAx2JJcUSTD1IsWPVJrAJfvTL+VRQwrIQlC4Q3RONmUFgkQA8kauS
KuFLLJWh4j8THtwpuniwH8wnyuhq8JOsCmACQvO6VCo7yrl5pfw=
=2j1a
-----END PGP SIGNATURE-----


G
G
George Clemmer wrote on 14 Jun 2018 17:18
(name . Leo Famulari)(address . leo@famulari.name)
87d0wttn0v.fsf@gmail.com
Leo Famulari <leo@famulari.name> writes:

Toggle quote (8 lines)
> On Wed, Jun 13, 2018 at 08:54:49AM +0200, Ludovic Courtès wrote:
>> The other aspect, from a maintenance and readability viewpoint, is that
>> we could quickly add up lots of explanations that we’ll have to keep
>> up-to-date and that may make more important information harder to find.
>
> Yeah, I'm worried about this too. It's tough to strike the correct
> balance.

IMO Guix is great for hackers, maintainers and sysops. The doc is
appropriate for such users, well done, spare, and already voluminous.

This footnote suggestion, and others rejected in the past, are motivated
by my assumption that you will want to make Guix attractive to less
sophisticated users.

Maybe my assumption is wrong? Maybe you want only "elite" users?

Or maybe you want to defer the less sophisticated users to later in the
development cycle?
C
C
Clément Lassieur wrote on 14 Jun 2018 18:10
(name . George Clemmer)(address . myglc2@gmail.com)
87k1r1tklq.fsf@lassieur.org
Hi George,

George Clemmer <myglc2@gmail.com> writes:

Toggle quote (17 lines)
> Leo Famulari <leo@famulari.name> writes:
>
>> On Wed, Jun 13, 2018 at 08:54:49AM +0200, Ludovic Courtès wrote:
>>> The other aspect, from a maintenance and readability viewpoint, is that
>>> we could quickly add up lots of explanations that we’ll have to keep
>>> up-to-date and that may make more important information harder to find.
>>
>> Yeah, I'm worried about this too. It's tough to strike the correct
>> balance.
>
> IMO Guix is great for hackers, maintainers and sysops. The doc is
> appropriate for such users, well done, spare, and already voluminous.
>
> This footnote suggestion, and others rejected in the past, are motivated
> by my assumption that you will want to make Guix attractive to less
> sophisticated users.

But non-hacker users can use Guix pull! Running Guix before it is
installed (with pre-inst-env) is described in the manual as a "Hacker
trick".

Toggle quote (2 lines)
> Maybe my assumption is wrong? Maybe you want only "elite" users?

Guix pull is well documented, and should be usable for non-elite users.

Toggle quote (3 lines)
> Or maybe you want to defer the less sophisticated users to later in the
> development cycle?

Clément
L
L
Ludovic Courtès wrote on 14 Jun 2018 18:36
(name . George Clemmer)(address . myglc2@gmail.com)
87k1r1z5o0.fsf@gnu.org
Hi George,

George Clemmer <myglc2@gmail.com> skribis:

Toggle quote (19 lines)
> Leo Famulari <leo@famulari.name> writes:
>
>> On Wed, Jun 13, 2018 at 08:54:49AM +0200, Ludovic Courtès wrote:
>>> The other aspect, from a maintenance and readability viewpoint, is that
>>> we could quickly add up lots of explanations that we’ll have to keep
>>> up-to-date and that may make more important information harder to find.
>>
>> Yeah, I'm worried about this too. It's tough to strike the correct
>> balance.
>
> IMO Guix is great for hackers, maintainers and sysops. The doc is
> appropriate for such users, well done, spare, and already voluminous.
>
> This footnote suggestion, and others rejected in the past, are motivated
> by my assumption that you will want to make Guix attractive to less
> sophisticated users.
>
> Maybe my assumption is wrong? Maybe you want only "elite" users?

No, definitely not; I’m sorry if this is the impression this gave.

Like I wrote, my main concern is about keeping the documentation focused
and maintainable. Sometimes we have to document things that are
technically outside of Guix because there’s no real canonical
documentation and because users would be impaired without it—I’m
thinking for instance of bits in the “Preparing for Installation”
section.

In this case, we’d be documenting something that’s both outside of Guix
and not vital for routine usage, and that’s mostly covered by the
Autoconf manual. Hence my reluctance.

I hope that makes sense.

Ludo’.
C
C
Clément Lassieur wrote on 14 Jun 2018 18:45
(name . George Clemmer)(address . myglc2@gmail.com)
87in6ltiyo.fsf@lassieur.org
Clément Lassieur <clement@lassieur.org> writes:

Toggle quote (34 lines)
> Hi George,
>
> George Clemmer <myglc2@gmail.com> writes:
>
>> Leo Famulari <leo@famulari.name> writes:
>>
>>> On Wed, Jun 13, 2018 at 08:54:49AM +0200, Ludovic Courtès wrote:
>>>> The other aspect, from a maintenance and readability viewpoint, is that
>>>> we could quickly add up lots of explanations that we’ll have to keep
>>>> up-to-date and that may make more important information harder to find.
>>>
>>> Yeah, I'm worried about this too. It's tough to strike the correct
>>> balance.
>>
>> IMO Guix is great for hackers, maintainers and sysops. The doc is
>> appropriate for such users, well done, spare, and already voluminous.
>>
>> This footnote suggestion, and others rejected in the past, are motivated
>> by my assumption that you will want to make Guix attractive to less
>> sophisticated users.
>
> But non-hacker users can use Guix pull! Running Guix before it is
> installed (with pre-inst-env) is described in the manual as a "Hacker
> trick".
>
>> Maybe my assumption is wrong? Maybe you want only "elite" users?
>
> Guix pull is well documented, and should be usable for non-elite users.
>
>> Or maybe you want to defer the less sophisticated users to later in the
>> development cycle?
>
> Clément

Sorry if I sounded a bit rude, it wasn't my intention. :-)
G
G
George Clemmer wrote on 15 Jun 2018 21:13
8736xnj22c.fsf@gmail.com
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (38 lines)
> Hi George,
>
> George Clemmer <myglc2@gmail.com> skribis:
>
>> Leo Famulari <leo@famulari.name> writes:
>>
>>> On Wed, Jun 13, 2018 at 08:54:49AM +0200, Ludovic Courtès wrote:
>>>> The other aspect, from a maintenance and readability viewpoint, is that
>>>> we could quickly add up lots of explanations that we’ll have to keep
>>>> up-to-date and that may make more important information harder to find.
>>>
>>> Yeah, I'm worried about this too. It's tough to strike the correct
>>> balance.
>>
>> IMO Guix is great for hackers, maintainers and sysops. The doc is
>> appropriate for such users, well done, spare, and already voluminous.
>>
>> This footnote suggestion, and others rejected in the past, are motivated
>> by my assumption that you will want to make Guix attractive to less
>> sophisticated users.
>>
>> Maybe my assumption is wrong? Maybe you want only "elite" users?
>
> No, definitely not; I’m sorry if this is the impression this gave.
>
> Like I wrote, my main concern is about keeping the documentation focused
> and maintainable. Sometimes we have to document things that are
> technically outside of Guix because there’s no real canonical
> documentation and because users would be impaired without it—I’m
> thinking for instance of bits in the “Preparing for Installation”
> section.
>
> In this case, we’d be documenting something that’s both outside of Guix
> and not vital for routine usage, and that’s mostly covered by the
> Autoconf manual. Hence my reluctance.
>
> I hope that makes sense.

Hi Ludo’,

I see the situation this way:

The current doc reflects the needs and sensibilities of the hackers,
maintainers, and sysops that have built Guix. These "elite" users have
different needs and judge what is important quite differently from end
users. This guarantees that the current doc is inadequate for end users.
So, if, as you say, you want to make Guix accessible to end users, you
need to make changes in the doc. The questions: How? What?

May I suggest ...

a) Adopt a less defensive posture when responding to user questions,
comments, and bug reports.

b) Be pro-active about capturing support resolutions in the doc.

This thread presents a nice example of what I am talking about. To
recap:

I said: I use 'pre-inst-env guix' this way and this is a bug.

You said: Developers expect this, so it's not a bug.

A less defensive response: Hmm, You are using 'pre-inst-env guix' in a
way we didn't anticipate. What are the benefits of using it this way? I
see how this is a bug for your use case.

We discussed a workaround. I suggested adding it to the doc.

You said: I’m not comfortable documenting this because it’s nothing
specific to Guix.

I said: I urge you to reconsider.

You said: This part of the manual targets developers... they know where
to look things up. [The more we write the more we have to maintain.]

And Clément Lassieur <clement@lassieur.org> added:

Toggle quote (6 lines)
> But non-hacker users can use Guix pull! Running Guix before it is
> installed (with pre-inst-env) is described in the manual as a "Hacker
> trick".

> Guix pull is well documented, and should be usable for non-elite users.

OK, but I'm non-elite and I have used Guix for 2+ years. I have tried
both. I prefer pre-inst-env. I expect others will too. The fact is that
pre-inst-env does not correctly report the version after 'git pull;
make'. How can you know that this won't be a problem for other users?
It only takes 4 lines to explain this and provide a workaround, e.g.,

Proposed (revised) footnote:

(3) The Guix version in the Guix build is set by './bootstrap'. Thus,
the version reported by './pre-inst-env guix --version' is not updated
by subsequent 'git pull; make' steps. To update the version (and rebuild
everything), use 'git clean -dfx; ./bootstrap; ./configure; make'.

- George
N
N
Nils Gillmann wrote on 15 Jun 2018 22:30
(name . George Clemmer)(address . myglc2@gmail.com)
20180615203018.clbx3kqjqfzcyink@abyayala
Attachment: file
R
R
Ricardo Wurmus wrote on 16 Jun 2018 00:02
(name . George Clemmer)(address . myglc2@gmail.com)
87po0r674z.fsf@elephly.net
Hi George,

Toggle quote (6 lines)
> The current doc reflects the needs and sensibilities of the hackers,
> maintainers, and sysops that have built Guix. These "elite" users have
> different needs and judge what is important quite differently from end
> users. This guarantees that the current doc is inadequate for end users.
> So, if, as you say, you want to make Guix accessible to end users, you
> need to make changes in the doc. The questions: How? What?
[…]
Toggle quote (2 lines)
> I said: I use 'pre-inst-env guix' this way and this is a bug.

“pre-inst-env” really should not be used by people other than
developers. It is only available when building Guix from a clone of the
git repository.

We do not recommend “pre-inst-env” for any other purpose than to make
changes to the code, so I would not like to document the quirks and
limitations of “pre-inst-env” in the manual, as this is not how Guix is
supposed to be used generally.

Toggle quote (7 lines)
> Proposed (revised) footnote:
>
> (3) The Guix version in the Guix build is set by './bootstrap'. Thus,
> the version reported by './pre-inst-env guix --version' is not updated
> by subsequent 'git pull; make' steps. To update the version (and rebuild
> everything), use 'git clean -dfx; ./bootstrap; ./configure; make'.

I’m wary of adding this for similar reasons that Ludo wrote earlier. In
my opinion this ends up cluttering the manual with notes and what I
consider to be only tangentially relevant for readers of the manual.

--
Ricardo
G
G
George Clemmer wrote on 16 Jun 2018 03:35
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87zhzvh5su.fsf@gmail.com
Ricardo Wurmus <rekado@elephly.net> writes:

Toggle quote (31 lines)
> Hi George,
>
>> The current doc reflects the needs and sensibilities of the hackers,
>> maintainers, and sysops that have built Guix. These "elite" users have
>> different needs and judge what is important quite differently from end
>> users. This guarantees that the current doc is inadequate for end users.
>> So, if, as you say, you want to make Guix accessible to end users, you
>> need to make changes in the doc. The questions: How? What?
> […]
>> I said: I use 'pre-inst-env guix' this way and this is a bug.
>
> “pre-inst-env” really should not be used by people other than
> developers. It is only available when building Guix from a clone of the
> git repository.
>
> We do not recommend “pre-inst-env” for any other purpose than to make
> changes to the code, so I would not like to document the quirks and
> limitations of “pre-inst-env” in the manual, as this is not how Guix is
> supposed to be used generally.
>
>> Proposed (revised) footnote:
>>
>> (3) The Guix version in the Guix build is set by './bootstrap'. Thus,
>> the version reported by './pre-inst-env guix --version' is not updated
>> by subsequent 'git pull; make' steps. To update the version (and rebuild
>> everything), use 'git clean -dfx; ./bootstrap; ./configure; make'.
>
> I’m wary of adding this for similar reasons that Ludo wrote earlier. In
> my opinion this ends up cluttering the manual with notes and what I
> consider to be only tangentially relevant for readers of the manual.

Hi Ricardo,

Please read further down the original post. I think you will find that I
already addressed your points.

Collectively, the responses here bring to mind a Harvard Business School
case study I was taught in 1983. The gist of it: Bakers at Holsum Bread
told a salesman that they had figured out how to run his company's bread
making machine at twice the design speed. Because this was twice as fast
as the competitor's machine, they wanted to place a big order for more
machines. When the salesman told the company engineer about the order he
said, "You can't sell any more machines to Holsum because they aren't
using my machine properly!"

- George
G
G
George Clemmer wrote on 16 Jun 2018 18:06
(name . Nils Gillmann)(address . ng0@n0.is)
87k1qyaf7a.fsf@gmail.com
Hi Nils,

Nils Gillmann <ng0@n0.is> writes:
[...]
Toggle quote (13 lines)
> Long text short nonsense: you end up with lots of work and long books if you
> do it right. It should be done this way. Maybe if not directly applied we
> could collect the proposals somewhere in the repository? I've recently
> started to strip out a whole chapter with repetive installation instructions
> in GNUnet. A while back I would've argued for keeping it, that we really
> need to cover and guide every case.
> Some projects have written "An introduction to..." books to lead up to
> the manual.
> In my opinion access to knowledge should be easy and without much 'rough
> edges' to get it.
> Do we keep it selfcontained? Reference other books? A middle path? It's
> difficult to get it right if you don't have the time to think about this
> as a fulltime job.
[...]
Toggle quote (6 lines)
>
> Do we really have to assume that everyone has the same skilset who wants
> to get involved? Not about this topic, but in general? I think the assumption
> that we share the same knowledge is difficult. Part of the excercise is to
> reach out, actively, in person. Another part is to try and do it in text (be
> it on a website or a (new) chapter in a manual).
[...]
Toggle quote (5 lines)
> Counter-proposal: What about additional man-pages? man has enough sections
> to provide well written, to the point, collection of notes for such day-to-day
> usage. I'm not against your proposal, just another suggestion in context of
> what I've written above.

I think the Guix strategy, AIUI, of putting 99.9% of the doc effort into
a single doc via Texinfo is very efficient. INFO and HTML reach the two
extreme user types: hackers that use INFO and people use that google.

Partitioning the problem into sub-parts is tempting. But it increases
the risk of a sub-part drifting out of date at which point it is better
to not have had the sub-part ;-)

The Guix "mico-man-page" effectively eliminates a sub-part. Hackers can
use INFO and people who google don't use man, so I think the micro-man
approach is fine.

I think the most promising and productive way for Guix to improve the
end-user-friendliness of the doc is to use end-user "support incidents"
to drive doc additions. At the end of an incident the user question is
fresh in your mind, you have information that you know could have been
helpful to at least one user, and you capture the support effort into
something longer lasting.

- George
R
R
Ricardo Wurmus wrote on 16 Jun 2018 00:24
(name . George Clemmer)(address . myglc2@gmail.com)
87o9gb663j.fsf@elephly.net
Ricardo Wurmus <rekado@elephly.net> writes:

Toggle quote (11 lines)
>> Proposed (revised) footnote:
>>
>> (3) The Guix version in the Guix build is set by './bootstrap'. Thus,
>> the version reported by './pre-inst-env guix --version' is not updated
>> by subsequent 'git pull; make' steps. To update the version (and rebuild
>> everything), use 'git clean -dfx; ./bootstrap; ./configure; make'.
>
> I’m wary of adding this for similar reasons that Ludo wrote earlier. In
> my opinion this ends up cluttering the manual with notes and what I
> consider to be only tangentially relevant for readers of the manual.

An alternative might be to change the output of “guix --version” in the
presence of GUIX_UNINSTALLED, which is set by “pre-inst-env”. This
could be a simple change in “show-version-and-exit” that would use
something other than “%guix-version” when GUIX_UNINSTALLED is set.

What do others think?

--
Ricardo
M
M
myglc2 wrote on 19 Jun 2018 18:47
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87wouuzpsk.fsf@g1.i-did-not-set--mail-host-address--so-tickle-me
On 06/16/2018 at 00:24 Ricardo Wurmus writes:

Toggle quote (23 lines)
> Ricardo Wurmus <rekado@elephly.net> writes:
>
>>> Proposed (revised) footnote:
>>>
>>> (3) The Guix version in the Guix build is set by './bootstrap'. Thus,
>>> the version reported by './pre-inst-env guix --version' is not updated
>>> by subsequent 'git pull; make' steps. To update the version (and rebuild
>>> everything), use 'git clean -dfx; ./bootstrap; ./configure; make'.
>>
>> I’m wary of adding this for similar reasons that Ludo wrote earlier. In
>> my opinion this ends up cluttering the manual with notes and what I
>> consider to be only tangentially relevant for readers of the manual.
>
> An alternative might be to change the output of “guix --version” in the
> presence of GUIX_UNINSTALLED, which is set by “pre-inst-env”. This
> could be a simple change in “show-version-and-exit” that would use
> something other than “%guix-version” when GUIX_UNINSTALLED is set.
>
> What do others think?
>
> --
> Ricardo

I like it.
?