all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Pierre Neidhardt <mail@ambrevar.xyz>
To: guix-devel@gnu.org
Subject: NLNet grant "Next Generation Internet -- Search & discovery": I'm in!
Date: Fri, 13 Dec 2019 15:48:37 +0100	[thread overview]
Message-ID: <874ky4s2m2.fsf@ambrevar.xyz> (raw)

[-- Attachment #1: Type: text/plain, Size: 6507 bytes --]

Dear Guix community!

I'm happy to let your know that my application to the NLNet "Next
Generation Internet -- Search & Discovery" grant for Guix has been
accepted!

See https://nlnet.nl/project/GUIX/ (the description is misleading, see below).
See also the European Union initiative website: https://www.ngi.eu/.

This will allow me to work on Guix for a flexible period, probably between 6
months and 1 year.

The bad news: Nope, IPFS is not part of the grant! :p  So I won't be working on
it myself in the context of NGI.  But who knows, if I get extra time... (Or
anyone else ;p).

Here follows the current plan (subject to change).  Ideas are welcome!



/The main goal is to enhance search and discovery of Guix packages and services
via a catalogue. The subgoal is to complete what “packages” and “services” are in
Guix by completing them and broadening their domain./

1. Parameterized packages
   (Previous discussion: https://lists.gnu.org/archive/html/guix-devel/2019-05/msg00285.html)

   Gentoo’s package manager, Portage, exposes a “USE flags” feature which allows
   users to customize packages in a way that composes (e.g. “disable the GUI
   elements of all packages” for a headless server).  This essentially subdivides
   packages into smaller “components.”  Since those components form the smallest
   atoms a user could search for, this is a prerequisite for the rest of the
   searchability improvements.

   Milestone(s)
   * Implement parameterized package support (mostly Guile code).
   * Write tests.
   * Document.
   * Community review.

2. File search
   (Previous discussion: https://lists.gnu.org/archive/html/guix-devel/2019-03/msg00236.html)

   Many package managers support looking up packages by the file paths they
   include.  This feature is missing in Guix while being crucial for search,
   e.g. when the user knows the executable name which happens to be different
   from the package name.

   Milestone(s)
   * Implement file paths caching in the daemon (mostly C++).
   * Implement high-level command line interface for file search (mostly Guile).
   * Write tests.
   * Document.
   * Community review.
   * Deploy on the build farms.

3. User services

   Previous discussions:
   - Guix shepherd user services: https://lists.gnu.org/archive/html/guix-devel/2019-02/msg00128.html
   - Julien's home manager: https://lists.gnu.org/archive/html/guix-devel/2019-09/msg00185.html
   - Nix Home Manager: https://nixos.wiki/wiki/Home_Manager
   I believe there were many more discussion on user services on the
   mailing list, feel free to share them!

   Guix provides excellent integration with GNU Shepherd for system services (all
   configurations are programmable and composable using Guile).  But it lacks
   integration for user services.  User services can be used to replace much of the
   traditional “dotfiles” which are often ad-hoc hacks (e.g. environment variables,
   scripts, various program configurations such as GnuPG).  The benefit is as for
   packages: the work of one can be redistributed to many.  Finally, services are
   not searchable with Guix.  We could fix this issue.

   Milestone(s)
   * Integrate Guix with GNU Shepherd to support user services.  A user service
     should then automatically require the necessary packages, just like a
     system service does.  For instance if the user sets up a GnuPG service,
     they don’t have to install GnuPG explicitly, Guix+Shepherd will take care
     of that.
   * Implement service search.
   * Write tests.
   * Document.
   * Community review.

4. Graphical user interface (GUI)

   *Question*: I recently read an email about someone (an intern?) working on a
   graphical installer.  Can't find the email back though.  Is someone still
   working on it?  There could be a lot of work to factor here.

   Guix comes with a command line interface and some Emacs interfaces.  None of
   them are particularly newcomer-friendly.  Besides, much of the configuration is
   done by editing Guile files.  The goal of this task is to make Guix more
   accessible to non-tech users by providing an intuitive user interface to most of
   Guix actions.

   Milestone(s)
   * Discuss with the Accessibility Group for the requirements.
   * Implement the GUI using Gobject-Introspection (Guile).
     1. Live fuzzy-search.
     2. Search packages.
     3. Search file paths.
     4. Search system/user services.
     5. Configuration editor (generates a Guile configuration).
   * Write tests.
   * Document.
   * Community review.

5. Social integration with the Guix catalogue

   Previous discussions:
   - Adding wikidata, wikipedia & screenshot-url fields to	package-recipes: https://lists.gnu.org/archive/html/guix-devel/2018-11/msg00007.html
   - Re-approaching package tagging: https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00385.html
   - New library: guile-wikidata: https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00107.html
   - Guix <-> Wikidata: https://lists.gnu.org/archive/html/guix-devel/2019-05/msg00017.html
   - Guix Wikidata module - next steps: https://lists.gnu.org/archive/html/guix-devel/2019-01/msg00089.html

   There were also a few discussions regarding package search improvements, in
   which has Zimoun participated quite a bit if I recall correctly.  Feel free
   to share all your precious links! :)

   Guix packages can be search from the package name, the synopsis (a one-liner)
   and the description (a paragraph).  The goal here is to extend the
   discoverability of both packages and services thanks to a catalogue.  If
   possible, we would like to make it possible to a wide audience to contribute to
   such a catalogue.

   Milestone(s)
   * Discuss with Guix, Nix, Debian and other distributions about the
     possibility to centralize the catalogue.  What about using Wikidata?
   * Implement the catalogue.
     1. Add package recommendation suggestions.
     2. Add (optionally anonymous) statistics (e.g. number of downloads).
     3. Add (optionally anonymous) ratings.
     4. Add tag lookup for packages/services.
   * Integrate the catalogue with Guix command line (mostly Guile).
   * Integrate the catalogue with the Guix GUI (mostly Guile).
   * Write tests.
   * Document.
   * Community review.

--
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

             reply	other threads:[~2019-12-13 14:48 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-13 14:48 Pierre Neidhardt [this message]
2019-12-13 20:44 ` NLNet grant "Next Generation Internet -- Search & discovery": I'm in! Pjotr Prins
2019-12-14 11:40   ` Pierre Neidhardt
2019-12-13 21:21 ` Tobias Geerinckx-Rice
2019-12-14 11:46   ` Pierre Neidhardt
2019-12-14 17:04 ` zimoun
2019-12-14 21:37   ` Ricardo Wurmus
2019-12-14 17:41 ` Arun Isaac
2019-12-14 19:13   ` Pierre Neidhardt
2019-12-19 16:37   ` Ludovic Courtès

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874ky4s2m2.fsf@ambrevar.xyz \
    --to=mail@ambrevar.xyz \
    --cc=guix-devel@gnu.org \
    /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 external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.