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
next prev parent reply other threads:[~2021-01-19 9:50 UTC|newest]
Thread overview: 252+ 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
[not found] ` <E1kxGuO-00079C-NR@fencepost.gnu.org>
[not found] ` <b94804db-7140-d450-6fc2-5afa440a8736@yandex.ru>
[not found] ` <E1kxZru-0007Cl-DD@fencepost.gnu.org>
2021-01-07 18:46 ` Dmitry Gutov
2021-01-07 21:07 ` Alfred M. Szmidt
2021-01-08 7:04 ` Eli Zaretskii
2021-01-08 10:14 ` Privileges and practicalities [was: Re: [ELPA] New package: repology.el] Göktuğ Kayaalp
2021-01-08 11:46 ` Jean Louis
2021-01-08 12:51 ` Aldric Giacomoni
2021-01-08 16:23 ` Ulrich Mueller
2021-01-08 18:47 ` Jean Louis
2021-01-09 6:42 ` Richard Stallman
2021-01-11 14:11 ` Arthur Miller
2021-01-12 6:09 ` Richard Stallman
2021-01-12 14:29 ` Arthur Miller
2021-01-08 19:17 ` Göktuğ Kayaalp
2021-01-09 6:41 ` Richard Stallman
2021-01-11 14:24 ` Arthur Miller
2021-01-12 6:09 ` Richard Stallman
2021-01-12 14:19 ` Arthur Miller
2021-10-04 13:46 ` Time to dial back the dialectic? [was: Re: Privileges and practicalities] dick
2021-10-04 14:20 ` Eli Zaretskii
2021-10-06 20:53 ` Richard Stallman
2021-01-09 7:25 ` Privileges and practicalities [was: Re: [ELPA] New package: repology.el] Jean Louis
2021-01-10 17:18 ` Devin Prater
2021-01-11 15:57 ` Jean Louis
2021-01-09 6:40 ` Richard Stallman
2021-01-09 6:40 ` Richard Stallman
2021-01-11 13:47 ` Arthur Miller
2021-01-12 6:10 ` Richard Stallman
2021-01-12 14:32 ` Arthur Miller
2021-01-13 5:42 ` Richard Stallman
2021-01-08 13:53 ` [ELPA] New package: repology.el Jean Louis
2021-01-08 17:22 ` Alfred M. Szmidt
2021-01-08 18:38 ` Eli Zaretskii
2021-01-08 19:40 ` Dmitry Gutov
2021-01-10 6:06 ` Sv: " arthur miller
2021-01-11 4:42 ` Richard Stallman
2021-01-11 13:00 ` Arthur Miller
2021-01-12 6:11 ` Richard Stallman
2021-01-12 14:10 ` Arthur Miller
2021-01-13 5:42 ` Richard Stallman
2021-01-09 6:37 ` Richard Stallman
2021-01-09 8:41 ` Eli Zaretskii
2021-01-10 6:31 ` Sv: " arthur miller
2021-01-13 5:29 ` Richard Stallman
2021-01-15 14:37 ` Arthur Miller
[not found] ` <2c5399e3-fa36-575d-d662-c7498dc334d6@yandex.ru>
[not found] ` <X/dsHBhcgPAXbqwe@protected.rcdrun.com>
2021-01-07 20:34 ` Dmitry Gutov
2021-01-07 20:47 ` Jean Louis
[not found] ` <834kjslexq.fsf@gnu.org>
[not found] ` <E1kxcV3-0005Rt-7a@fencepost.gnu.org>
2021-01-08 7:06 ` Eli Zaretskii
2021-01-08 11:48 ` Jean Louis
2021-01-08 12:34 ` Eli Zaretskii
2021-01-08 13:56 ` Jean Louis
2021-01-08 14:45 ` Eli Zaretskii
2021-01-08 18:27 ` Jean Louis
2021-01-08 19:38 ` Eli Zaretskii
2021-01-09 6:41 ` Richard Stallman
2021-01-09 8:54 ` Eli Zaretskii
2021-01-10 6:07 ` Richard Stallman
2021-01-10 6:04 ` Richard Stallman
2021-01-10 6:04 ` Richard Stallman
2021-01-07 8:54 ` Jean Louis
2021-01-07 14:07 ` Eli Zaretskii
2021-01-07 18:18 ` Alfred M. Szmidt
2021-01-07 19:31 ` Eli Zaretskii
2021-01-07 21:07 ` Alfred M. Szmidt
2021-01-07 21:17 ` Dmitry Gutov
2021-01-08 17:22 ` Alfred M. Szmidt
2021-01-08 19:43 ` Dmitry Gutov
2021-01-09 6:41 ` Richard Stallman
2021-01-09 8:57 ` Eli Zaretskii
2021-01-08 19:48 ` Eli Zaretskii
2021-01-10 5:59 ` Sv: " arthur miller
2021-01-11 4:43 ` Richard Stallman
2021-01-11 13:35 ` Arthur Miller
2021-01-12 6:10 ` Richard Stallman
2021-01-12 15:20 ` Eli Zaretskii
2021-01-12 15:28 ` Dmitry Gutov
2021-01-12 6:11 ` Richard Stallman
2021-01-12 14:08 ` Arthur Miller
2021-01-13 5:43 ` Richard Stallman
2021-01-15 14:46 ` Arthur Miller
2021-01-09 6:34 ` Richard Stallman
2021-01-09 19:04 ` Dmitry Gutov
2021-01-11 4:43 ` Richard Stallman
2021-01-09 6:37 ` Richard Stallman
2021-01-09 8:43 ` 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-07 19:38 ` Jean Louis
2021-01-07 20:00 ` Eli Zaretskii
2021-01-07 20:31 ` Jean Louis
2021-01-07 20:38 ` Eli Zaretskii
2021-01-07 21:00 ` Jean Louis
2021-01-08 6:58 ` Eli Zaretskii
2021-01-08 10:24 ` Arthur Miller
2021-01-08 11:28 ` Jean Louis
2021-01-09 6:35 ` Richard Stallman
2021-01-09 8:36 ` Eli Zaretskii
2021-01-09 8:39 ` Eli Zaretskii
2021-01-10 6:13 ` Sv: " arthur miller
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 8:49 ` Jean Louis
2021-01-07 7:49 ` Richard Stallman
2021-01-07 9:00 ` Jean Louis
2021-01-08 6:21 ` Richard Stallman
2021-01-08 6:25 ` Richard Stallman
2021-01-08 6:30 ` Jean Louis
2021-01-09 6:45 ` frepology.org Richard Stallman
2021-01-09 8:11 ` frepology.org Jean Louis
2021-01-11 4:47 ` frepology.org Richard Stallman
2021-01-07 10:55 ` [ELPA] New package: repology.el Ulrich Mueller
2021-01-07 11:46 ` Jean Louis
2021-01-07 19:38 ` Ulrich Mueller
2021-01-07 20:23 ` Jean Louis
2021-01-08 11:54 ` Ulrich Mueller
2021-01-08 18:23 ` Jean Louis
2021-01-09 6:35 ` Richard Stallman
2021-01-07 18:18 ` Alfred M. Szmidt
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
* 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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.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.