Subject: [bug#62264] [PATCH core-updates 0/6] Add `guix index` subcommand

From: Ludovic Courtès <[email-masked]>
Date: Sun, 02 Apr 2023 23:57:19 +0200

Hi Antoine,

"Antoine R. Dumont (@ardumont)" <[email-masked]>
skribis:

> Example of an indexation (fast method by default):
>
> $ guix index
> Registering 133 packages  ▕█████▎                                             ▏
>
>
> Example of a search:
>
> $ guix index search sqlite3
> [email-masked]        /gnu/store/jd6nn2c8ln5flv4vwl7pp1w804w2i9wj-sqlite-3.37.0/bin/sqlite3
> [email-masked]        /gnu/store/xmzx5mzv4863yw9kmr2ykndgp37p8if0-sqlite-3.36.0/bin/sqlite3

This is really nice!  I finally got around to looking at the patches.
The final version will be a single patch that adds code, tests, and
documentation.

I squashed the ‘guix index’ patches you posted, followed up with
individual changes on top of that (those will have to be squashed
eventually), and pushed the result in the ‘wip-guix-index’ branch.
Lemme know what you think!

Good news is “make check TESTS=tests/guix-index.sh” passes.  I disabled
tests for the ‘store’ method by default because it’s too expensive (it
would take several minutes with my SSD).

There were other things I wanted to fiddle with but I ran out of time
:-) so I’ll take another look later.

The main missing bit is a new node in the manual documenting it.

Perhaps one feature that would be nice to have before we publish is
pruning of database entries, so it doesn’t grow endlessly, but I’m not
sure how to do that (based on whether a Directory entry actually
exists?).

Thanks!

Ludo’.