unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
To: emacs-devel@gnu.org
Cc: Stefan Monnier <monnier@iro.umontreal.ca>
Subject: Re: [ELPA] New package: repology.el (v4)
Date: Tue, 19 Jan 2021 10:50:06 +0100	[thread overview]
Message-ID: <87eeih9rxt.fsf_-_@nicolasgoaziou.fr> (raw)
In-Reply-To: <jwvr1n0txte.fsf-monnier+emacs@gnu.org> (Stefan Monnier's message of "Mon, 04 Jan 2021 12:32:59 -0500")

Hello,

As announced a few days ago, and with the guidance of Stefan Monnier,
I tweaked "repology.el" so it is somewhat aware about freedom, and
cautious about what it displays.

TL;DR: it is currently located at <https://elpa.gnu.org/devel/repology.html>.

Here is its current commentary section. The third and fifth paragraphs
are of particular interest for the discussion.

    This package provides tools to query Repology API
    (<https://repology.org/api>), process results, and display them.
    
    The results of a query revolve around three types of objects:
    projects, packages and problems.  Using this library, you can find
    projects matching certain criteria, packages in a given project,
    and possible problems in some repository.  See `repology-search-projects',
    `repology-lookup-project', and `repology-report-problems'.
    Projects-related requests are limited to `repology-projects-limit'.
    All requests are cached during `repology-cache-duration' seconds.
    
    By default, only projects recognized as free are included in the search
    results.  You can control this behavior with the variable
    `repology-free-only-projects'.  The function `repology-check-freedom'
    is responsible for guessing if a project, or a package, is free.
    
    You can then access data from those various objects using dedicated
    accessors.  See, for example, `repology-project-name',
    `repology-project-packages', `repology-package-field', or
    `repology-problem-field'.
    
    You can also decide to display (a subset of) results in a tabulated
    list.  See `repology-display-package', `repology-display-packages',
    `repology-display-projects' and `repology-display-problems'.  You
    can control various aspects of the display, like the colors used
    (see `repology-status-faces'), or the columns shown (see
    `repology-display-packages-columns',`repology-display-projects-columns',
    and `repology-display-problems-columns').  When projects or packages
    are displayed, pressing <RET> gives you more information about the item
    at point, whereas pressing <F> reports their "freedom" status.
    
    For example, the following expression displays all outdated projects
    named after "emacs" and containing a package in GNU Guix repository
    that I do not ignore:
    
       (repology-display-projects
        (seq-filter (lambda (project)
                      (not (member (repology-project-name project)
                                   my-ignored-projects)))
                    (repology-search-projects
                     :search "emacs" :inrepo "gnuguix" :outdated "on")))
    
    Eventually, this library provides an interactive function with
    a spartan interface wrapping this up: `repology'.  Since it builds
    and displays incrementally search filters, you may use it as
    a template to create your own queries.

The library distinguishes between three categories of freedom for
projects/packages: free, non-free, and unknown. Out of the 200.000
projects from Repology, it currently considers that about 73.000 are
free, 300 are non-free, and the rest is unknown.

Out of the box, the interface now only displays projects _most likely
free_ (more in this below). It is also possible to configure it so it
displays both free and unknown categories, or everything.

The commentary section in "repology-license.el" explains how freedom
state is obtained:

    This library provides the `repology-check-freedom' function, which returns
    t when a package or a project can be considered as free, nil it is
    identified as being non-free, and `unknown' otherwise.
    
    The decision is made by polling a number of "Reference repositories",
    defined in `repology-license-reference-repositories'.  If the ratio of
    "Free" votes is above `repology-license-poll-threshold', the project is
    declared as free.
    
    In order to see the results of each vote, and possibly debug the process,
    you can set `repology-license-debug' to a non-nil value.

Currently, reference repositories are: Debian, Fedora, OpenSUSE, Gentoo,
Mageia, along with all FSF-endorsed distributions known to Repology: GNU
Guix, Hyperbola, Parabola, PureOS, and Trisquel. I also added GNU ELPA
as a specialized repository.

The poll threshold is set to 0.5, so a package/project needs a strict
majority of "Free" votes to be considered as free. As explained above,
it is possible to look at the vote results to understand the final
decision for each project.

I hope this is now more in line with GNU expectations. Let me know if
you have questions, or suggestions.

Regards,
-- 
Nicolas Goaziou



  reply	other threads:[~2021-01-19  9:50 UTC|newest]

Thread overview: 145+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-30 16:23 [ELPA] New package: repology.el Nicolas Goaziou
2020-12-30 19:34 ` Jean Louis
2020-12-30 21:01   ` Clément Pit-Claudel
2020-12-31 13:31     ` Jean Louis
2020-12-31 11:46   ` Nicolas Goaziou
2020-12-31 13:11     ` Jean Louis
2020-12-31 20:30       ` Ulrich Mueller
2021-01-01  7:31         ` Richard Stallman
2021-01-01 10:05         ` Jean Louis
2021-01-01 11:56           ` Eli Zaretskii
2021-01-02  9:56             ` Jean Louis
2021-01-02  5:30           ` Richard Stallman
2021-01-04 12:09             ` Dmitry Gutov
2021-01-04 14:39               ` Alfred M. Szmidt
2021-01-04 15:00                 ` Ulrich Mueller
2021-01-04 16:32                   ` Alfred M. Szmidt
2021-01-05  6:45                   ` Richard Stallman
2021-01-05  8:56                     ` Alfred M. Szmidt
2021-01-07  7:34                       ` Richard Stallman
2021-01-04 15:02                 ` Dmitry Gutov
2021-01-04 16:29                   ` Alfred M. Szmidt
2021-01-04 17:08                     ` Dmitry Gutov
2021-01-04 17:12                       ` Alfred M. Szmidt
2021-01-04 17:17                         ` Dmitry Gutov
2021-01-04 17:58                           ` Alfred M. Szmidt
2021-01-04 17:43                         ` Clément Pit-Claudel
2021-01-04 17:55                           ` Vasilij Schneidermann
2021-01-04 18:51                             ` Clément Pit-Claudel
2021-01-04 22:21                               ` Vasilij Schneidermann
2021-01-05  2:09                                 ` Stefan Monnier
2021-01-05  6:42                                   ` Richard Stallman
2021-01-05  9:28                                     ` Ulrich Mueller
2021-01-06  5:03                             ` Richard Stallman
2021-01-06  9:44                               ` Alfred M. Szmidt
2021-01-07 17:51                                 ` Richard Stallman
2021-01-04 19:14                           ` Ulrich Mueller
2021-01-04 19:17                             ` Clément Pit-Claudel
2021-01-06  5:02                       ` Richard Stallman
2021-01-06 10:58                         ` Dmitry Gutov
2021-01-06 14:41                         ` Jean Louis
2021-01-06 14:59                           ` Arthur Miller
2021-01-06 15:21                             ` Jean Louis
2021-01-06 16:23                               ` Arthur Miller
2021-01-06 18:53                                 ` Jean Louis
2021-01-06 19:26                                   ` Eli Zaretskii
2021-01-06 21:18                                     ` Alfred M. Szmidt
2021-01-06 21:25                                       ` Dmitry Gutov
2021-01-07  7:47                                         ` Richard Stallman
2021-01-07  8:54                                       ` Jean Louis
2021-01-07 14:07                                       ` Eli Zaretskii
2021-01-07  7:49                                     ` Richard Stallman
2021-01-07 11:41                                       ` Dmitry Gutov
2021-01-09  6:39                                         ` Richard Stallman
2021-01-09 10:50                                           ` Dmitry Gutov
2021-01-07 14:24                                       ` Eli Zaretskii
2021-01-07  8:15                                     ` Jean Louis
2021-01-07 14:37                                       ` Eli Zaretskii
2021-01-06 20:36                                   ` Arthur Miller
2021-01-07  7:48                                     ` Richard Stallman
2021-01-07 16:53                                       ` Arthur Miller
2021-01-14  5:21                                         ` Richard Stallman
2021-01-15 14:52                                           ` Arthur Miller
2021-01-16  5:14                                             ` Richard Stallman
2021-01-07  7:49                                   ` Richard Stallman
2021-01-07  9:00                                     ` Jean Louis
2021-01-08  6:21                                       ` Richard Stallman
2021-01-07 10:55                                     ` Ulrich Mueller
2021-01-09  6:34                                       ` Richard Stallman
2021-01-09 21:07                                         ` Ulrich Mueller
2021-01-11  4:46                                           ` Richard Stallman
2021-01-12  8:24                                             ` Ulrich Mueller
2021-01-20  6:14                                       ` Richard Stallman
2021-01-21 11:09                                         ` Ulrich Mueller
2021-01-22  6:06                                           ` Richard Stallman
2021-01-22  9:43                                             ` Ulrich Mueller
2021-01-24  6:35                                               ` Richard Stallman
2021-01-24  8:34                                                 ` Ulrich Mueller
2021-01-25  5:53                                                   ` Richard Stallman
2021-01-25  6:52                                                     ` Jean Louis
2021-01-25 12:11                                                       ` Fabrice BAUZAC-STEHLY
2021-01-25 15:29                                                       ` Eli Zaretskii
2021-01-27  7:37                                                       ` Richard Stallman
2021-01-25 15:51                                                     ` Dmitry Gutov
2021-01-25 17:59                                                       ` Jean Louis
2021-01-25 18:21                                                         ` Dmitry Gutov
2021-01-26  3:40                                                           ` Jean Louis
2021-01-26  6:10                                                           ` Richard Stallman
2021-01-26 13:42                                                             ` Stefan Monnier
2021-01-27 18:32                                                               ` Jean Louis
2021-01-25 19:33                                                         ` Eli Zaretskii
2021-01-25 19:38                                                         ` Eli Zaretskii
2021-01-26 13:21                                                         ` Richard Stallman
2021-01-26  5:59                                                       ` Richard Stallman
2021-01-26 13:15                                                         ` Dmitry Gutov
2021-01-27  7:41                                                           ` Richard Stallman
2021-01-24 10:53                                                 ` Org schemas we talked to be non-free, was: " Jean Louis
2021-01-24 17:50                                                   ` Ulrich Mueller
2021-01-24 19:12                                                     ` Jean Louis
2021-01-24 19:53                                                       ` Eli Zaretskii
2021-01-24 20:36                                                         ` Ulrich Mueller
2021-01-25 15:06                                                           ` Eli Zaretskii
2021-01-26  6:01                                                             ` Richard Stallman
2021-01-26 15:57                                                               ` Eli Zaretskii
2021-01-26 16:03                                                                 ` Dmitry Gutov
2021-01-26 16:13                                                                   ` Eli Zaretskii
2021-01-26 16:14                                                                     ` Dmitry Gutov
2021-01-26 16:31                                                                       ` Eli Zaretskii
2021-01-26 22:55                                                                         ` Dmitry Gutov
2021-01-28  6:29                                                                 ` Richard Stallman
2021-01-28 14:08                                                                   ` Eli Zaretskii
2021-01-29  6:36                                                                     ` Richard Stallman
2021-01-24 20:47                                                         ` Jean Louis
2021-01-25 15:13                                                           ` Eli Zaretskii
2021-01-25 17:50                                                             ` Jean Louis
2021-01-25 17:56                                                             ` Jean Louis
2021-01-25 19:27                                                               ` Eli Zaretskii
2021-01-26  3:50                                                                 ` Jean Louis
2021-01-26  6:09                                                               ` Richard Stallman
2021-01-25 20:10                                                             ` Ulrich Mueller
2021-01-25 20:21                                                               ` Eli Zaretskii
2021-01-26  6:09                                                               ` Richard Stallman
2021-01-25  5:53                                                         ` Richard Stallman
2021-01-25 15:27                                                           ` Eli Zaretskii
2021-01-24 20:46                                                       ` tomas
2021-01-27  7:35                                                         ` Richard Stallman
2021-01-25  5:53                                                       ` Richard Stallman
2021-01-25  9:27                                                         ` Ulrich Mueller
2021-01-26  6:03                                                           ` Richard Stallman
2021-01-26  9:24                                                             ` Ulrich Mueller
2021-01-27  7:43                                                               ` Richard Stallman
2021-01-26 15:43                                                             ` Jose A. Ortega Ruiz
2021-01-26 16:48                                                             ` Kévin Le Gouguec
2021-01-28  6:34                                                               ` Richard Stallman
2021-01-25  5:51                                                     ` Richard Stallman
2021-02-16  5:21                                       ` freedom issues in free software Richard Stallman
2021-01-07 15:05                                     ` [ELPA] New package: repology.el Stefan Monnier
2021-01-13 15:57                                       ` Richard Stallman
2021-01-05  6:33               ` Richard Stallman
2021-01-05 11:21                 ` Dmitry Gutov
2021-01-07  7:32                   ` Richard Stallman
2020-12-30 21:58 ` [ELPA] New package: repology.el (v2) Nicolas Goaziou
2021-01-04 11:45   ` [ELPA] New package: repology.el (v3) Nicolas Goaziou
2021-01-04 17:32     ` Stefan Monnier
2021-01-19  9:50       ` Nicolas Goaziou [this message]
2021-01-20  6:13         ` [ELPA] New package: repology.el (v4) Richard Stallman

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://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=87eeih9rxt.fsf_-_@nicolasgoaziou.fr \
    --to=mail@nicolasgoaziou.fr \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /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/emacs.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).