From: Maxime Devos <maximedevos@telenet.be>
To: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Cc: Nicolas Graves <ngraves@ngraves.fr>, guix-devel@gnu.org
Subject: Re: rust-build-system from antioxidant
Date: Wed, 14 Jun 2023 15:02:52 +0200 [thread overview]
Message-ID: <d86934ff-cafb-ec22-ddc4-3ed09c9c1204@telenet.be> (raw)
In-Reply-To: <87v8fs7rw2.fsf@gmail.com>
[-- Attachment #1.1.1: Type: text/plain, Size: 6736 bytes --]
Op 12-06-2023 om 15:05 schreef Maxim Cournoyer:
> Hi Maxime,
>
> Maxime Devos <maximedevos@telenet.be> writes:
>
>> Op 12-06-2023 om 03:17 schreef Maxim Cournoyer:
>> [...]
>> Yes. Overruling is a form of blocking, and blocking by authority
>> (whether de facto or de jure) is overruling.
>>
>>> There should not be a notion of 'overruling' in our
>>> contribution processes (unless the Guix co-maintainers have to step in
>>> as a last resort) if all participants strive to build consensus, as
>>> mentioned in info '(guix) Commit Access':
>>> It is expected from all contributors, and even more so from
>>> committers,
>>> to help build consensus and make decisions based on consensus. To learn
>>> what consensus decision making means and understand its finer details,
>>> you are encouraged to read
>>> <https://www.seedsforchange.org.uk/consensus>.
>>> I thought I knew what consensus meant myself, but the above link
>>> helped
>>> me to re-frame a few things in a way that is more conducive to building
>>> consensus.
>>
>
> [...]
>
>> For example, the thread of the patch you sent at
>> <https://issues.guix.gnu.org/51427> is a good example of this, pretty
>> much everyone (except Ludo') agreed that the provided patch is good.
>
> Let's avoid directly criticising ourselves and try to discuss what I
> think has more value, which is coming to a better understanding of the
> situation and how the perceived deadlock could be undone.
> Consensus is not a majority vote; all parties have to walk the extra mile
>to reach a
> common ground.
This quote is taken out of context -- nowhere I stated or assumed that
it was a majority vote -- (n - tiny)/n is higher than 50%, and I also
demonstrated that some other criteria were met.
Please don't ignore the explanation I wrote below all that, let's avoid
taking quotes out-of-context, and let's avoid ignoring the concerns I
pointed out in my previous e-mail.
> [...] try to discuss what I think has more value,
> which is coming to a better understanding of the situation, [...]
I did this in my previous e-mail. You can bring new discussion from
another POV if you want to, but why are you ignoring my discussion on
this matter?
> [...] all parties have to walk the extra mile to reach a common
> ground. [...]
This sentence would have more weight if you explained somewhere how this
wasn't the case in <https://issues.guix.gnu.org/51427>.
> I think the object there was from a semantic point of
> view: we'd have a 'garbage collection' command (guix gc) which wouldn't
> collect any garbage! It's a valid objection, although its importance in
> the narrow use case presented was not agreed by all parties.
Ludo' claimed that the resulting patch wouldn't collect garbage:
> I believe the effect is that ‘guix gc -D /gnu/store/…-disk-image’ would
> remove nothing: /gnu/store/.links would still contain a copy of that big
> disk image, so as a result, you’ve freed zero bytes.
On its own, this is a valid objection, but it is false -- it does
collect some garbage -- it deletes the /gnu/store/ITEM. This is
implicitly referred to in:
> https://issues.guix.gnu.org/51427#4
> [...] Obviously there needs to be a way of __removing
> single items from the store__, [...]
> zimoun wrote on 9 Nov 2021 19:10
> [...] Even if the phase is drastically speed up, it would be probably still
> too slow when using the option ’-D’ __remove only one <item>__; or just
> some. [...]
Yet, Ludo' seems to have missed this:
> [Ludovic Courtès wrote on 17 Nov 2021 11:02]
> [...]> No; like I wrote, it would have the effect of not deleting
anything:
> [...
So I have written it down explicitly:
> https://issues.guix.gnu.org/51427#25
> Also, it _does_ collect garbage -- it collects the /gnu/store/... item,
> it just doesn't collect _all_ the garbage (it doesn't collect the
> individual files in the store item or the things in /gnu/store/.links).
There wasn't any response.
> A consensus-based outcome could be to add a new option to guix gc,
> e.g. '--invalidate', which would be documented as "invalidate
> (de-register from the Guix database) rather actually delete from the
> store". If that's still argued semantically unclear we could go with a
> dedicated 'guix invalidate', although that seems overkill to me.
"guix gc -D" is already semantically clear -- it deletes a single
/gnu/store/... item. IIUC, the patch at
<https://issues.guix.gnu.org/51427#1> fixes the bug where it also
deletes more than that.
(IMO both deleting and not deleting the relevant links in
/gnu/store/.links would be acceptable behaviors, as long as it doesn't
do more than that. Also IMO deleting more links is technically a bug,
but harmless __as long as it's efficient.)
(IIUC, it also deregisters the store item, but that's needed for
consistency of DB->file system, and deregistering can be considered a
removal of DB entries, so not really a problem.)
> This is a bit more work than the 1 line change initially suggested, but
> I think we can agree that'd be a more general/better solution.
It's neither more general nor less general. If you just deregister it
from the Guix database, the directory /gnu/store/... exists (unlike
"guix gc -D") so --invalidate is not more general than "guix gc -D".
If you do "guix gc -D", it will not only deregister the item, but also
delete the item. As the removal is not optional, this is not more
general than "guix gc -D".
Also, I consider "guix gc -D" to be a better solution, because "guix gc
--invalidate" only deletes entries from the database whereas "guix gc
-D" also deletes the directory, so "guix gc -D" collects more garbage
than "guix gc --invalidate".
> Such is
> the trade-off of consensus-based decision making (requires more
> effort/slower moving but with a higher quality outcome).
While it appears to be completely sufficient for the use cases mentioned
in <https://issues.guix.gnu.org/51427#1>, I don't think this can be
considered a higher quality outcome, see above.
However, IMO having both <https://issues.guix.gnu.org/51427#1> and
"--invalidate" would be even better; being able to test what happens if
a non-registered directory exists in /gnu/store (e.g. a substitution
interrupted by a sudden power-off) might be convenient for testing
(without actually having to abruptly shut down the computer) the
behaviour of a hypothetical GNUnet equivalent of "guix publish"
(assuming that it works by doing a scandir of the store etc.).
Best regards,
Maxime Devos.
[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 929 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]
next prev parent reply other threads:[~2023-06-14 13:03 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-02 18:02 rust-build-system from antioxidant Nicolas Graves via Development of GNU Guix and the GNU System distribution.
2023-06-08 17:55 ` Maxime Devos
2023-06-12 1:17 ` Maxim Cournoyer
2023-06-12 10:10 ` Maxime Devos
2023-06-12 13:05 ` Maxim Cournoyer
2023-06-14 13:02 ` Maxime Devos [this message]
2023-07-02 20:12 ` Overruling and blocking Ludovic Courtès
2023-06-12 15:08 ` rust-build-system from antioxidant Vagrant Cascadian
2023-06-12 16:34 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2023-06-16 13:53 ` Nicolas Graves via Development of GNU Guix and the GNU System distribution.
2023-06-17 0:51 ` Maxim Cournoyer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d86934ff-cafb-ec22-ddc4-3ed09c9c1204@telenet.be \
--to=maximedevos@telenet.be \
--cc=guix-devel@gnu.org \
--cc=maxim.cournoyer@gmail.com \
--cc=ngraves@ngraves.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).