* Opposition to new single-letter package name "t" @ 2021-03-09 5:27 Mark H Weaver 2021-03-09 5:39 ` Raghav Gururajan ` (2 more replies) 0 siblings, 3 replies; 26+ messages in thread From: Mark H Weaver @ 2021-03-09 5:27 UTC (permalink / raw) To: guix-devel; +Cc: LibreMiami, Nicolas Goaziou Hello Guix, Yesterday, an obscure package called "t" was added to Guix. We should reject such short package names in Guix unless there's a very compelling reason to keep them. The problem with single-letter package names is that the probability of collisions is far too high. Due to the so-called "birthday paradox", it only takes 5 such package names before the probability of a collision gets close to 50%. Given this, it's an act of extraordinary hubris to claim a single-letter name for one's package. We've already had at least one collision involving 2-letter names. It takes 26 such names before the probability of collision reaches ~50%. A few years ago, someone wrote a tool based on Guile for "programmatic computer-aided design" and called it "Ao". It turns out that name is already taken by a cross platform audio library which is in Guix. We have precedent for renaming single-letter package names in Guix. We have already changed "s" to "s-shell", and "v" to "vlang". Let's choose a longer name for "t". Here's the package definition: --8<---------------cut here---------------start------------->8--- (define-public t ;; Last release is more than 10 years old. Using latest commit. (let ((changeset "89ad444c000b") (revision "97")) (package (name "t") (version (git-version "1.2.0" revision changeset)) (source (origin (method hg-fetch) (uri (hg-reference (url "https://hg.stevelosh.com/t") (changeset changeset))) (file-name (string-append name "-" version "-checkout")) (sha256 (base32 "0c8zn7l0xq65wp07h7mxnb5ww56d1443l2vkjvx5sj6wpcchfn0s")))) (build-system python-build-system) (native-inputs `(("python-cram" ,python-cram))) (synopsis "Command-line todo list manager") (description "@command{t} is a command-line todo list manager for people that want to finish tasks, not organize them.") (home-page "https://stevelosh.com/projects/t/") (license license:expat)))) --8<---------------cut here---------------end--------------->8--- Any suggestions for a longer name? Maybe "t-organizer" or "t-todo-list-manager"? Note that I'm not proposing to change the name of the executable, since that only affects users who have chosen to install the package, and naturally such users will want to minimize their typing when using the program. I merely propose to change the Scheme variable name and the 'name' field of the package. Thoughts? Regards, Mark ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Opposition to new single-letter package name "t" 2021-03-09 5:27 Opposition to new single-letter package name "t" Mark H Weaver @ 2021-03-09 5:39 ` Raghav Gururajan 2021-03-09 5:47 ` jgart 2021-03-09 21:39 ` bug#47028: Discourage single-character package names Tobias Geerinckx-Rice via Bug reports for GNU Guix 2 siblings, 0 replies; 26+ messages in thread From: Raghav Gururajan @ 2021-03-09 5:39 UTC (permalink / raw) To: Mark H Weaver, guix-devel; +Cc: LibreMiami, Nicolas Goaziou [-- Attachment #1.1: Type: text/plain, Size: 1333 bytes --] Hi Mark! > Yesterday, an obscure package called "t" was added to Guix. We should > reject such short package names in Guix unless there's a very compelling > reason to keep them. > > The problem with single-letter package names is that the probability of > collisions is far too high. Due to the so-called "birthday paradox", it > only takes 5 such package names before the probability of a collision > gets close to 50%. Given this, it's an act of extraordinary hubris to > claim a single-letter name for one's package. > > We've already had at least one collision involving 2-letter names. It > takes 26 such names before the probability of collision reaches ~50%. A > few years ago, someone wrote a tool based on Guile for "programmatic > computer-aided design" and called it "Ao". It turns out that name is > already taken by a cross platform audio library which is in Guix. > > We have precedent for renaming single-letter package names in Guix. We > have already changed "s" to "s-shell", and "v" to "vlang". Let's choose > a longer name for "t". Here's the package definition: Makes complete sense. Thanks for bringing it to our attention. :-) > Any suggestions for a longer name? Maybe "t-organizer" or > "t-todo-list-manager"? How about t-cli? @Jorge WDYT? Regards, RG. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --] ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Opposition to new single-letter package name "t" 2021-03-09 5:27 Opposition to new single-letter package name "t" Mark H Weaver 2021-03-09 5:39 ` Raghav Gururajan @ 2021-03-09 5:47 ` jgart 2021-03-09 6:08 ` Raghav Gururajan 2021-03-09 21:39 ` bug#47028: Discourage single-character package names Tobias Geerinckx-Rice via Bug reports for GNU Guix 2 siblings, 1 reply; 26+ messages in thread From: jgart @ 2021-03-09 5:47 UTC (permalink / raw) To: Raghav Gururajan, Mark H Weaver, guix-devel; +Cc: LibreMiami, Nicolas Goaziou Hi Everyone! > Maybe "t-organizer" or "t-todo-list-manager"? I like Mark's suggestion of "t-todo-list-manager" as well as Raghav's suggestion for "t-cli"; in that order. Either name sounds good to me, though. best regards, jgart libremiami.org search.libremiami.org March 9, 2021 12:39 AM, "Raghav Gururajan" <rg@raghavgururajan.name> wrote: > Hi Mark! > >> Yesterday, an obscure package called "t" was added to Guix. We should >> reject such short package names in Guix unless there's a very compelling >> reason to keep them. >> >> The problem with single-letter package names is that the probability of >> collisions is far too high. Due to the so-called "birthday paradox", it >> only takes 5 such package names before the probability of a collision >> gets close to 50%. Given this, it's an act of extraordinary hubris to >> claim a single-letter name for one's package. >> >> We've already had at least one collision involving 2-letter names. It >> takes 26 such names before the probability of collision reaches ~50%. A >> few years ago, someone wrote a tool based on Guile for "programmatic >> computer-aided design" and called it "Ao". It turns out that name is >> already taken by a cross platform audio library which is in Guix. >> >> We have precedent for renaming single-letter package names in Guix. We >> have already changed "s" to "s-shell", and "v" to "vlang". Let's choose >> a longer name for "t". Here's the package definition: > > Makes complete sense. Thanks for bringing it to our attention. :-) > >> Any suggestions for a longer name? Maybe "t-organizer" or >> "t-todo-list-manager"? > > How about t-cli? > > @Jorge WDYT? > > Regards, > RG. ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Opposition to new single-letter package name "t" 2021-03-09 5:47 ` jgart @ 2021-03-09 6:08 ` Raghav Gururajan 2021-03-09 9:35 ` Leo Prikler 2021-03-09 11:38 ` Tobias Geerinckx-Rice 0 siblings, 2 replies; 26+ messages in thread From: Raghav Gururajan @ 2021-03-09 6:08 UTC (permalink / raw) To: jgart, Mark H Weaver, guix-devel; +Cc: LibreMiami, Nicolas Goaziou [-- Attachment #1.1.1: Type: text/plain, Size: 337 bytes --] > I like Mark's suggestion of "t-todo-list-manager" as well as Raghav's suggestion for "t-cli"; in that order. > > Either name sounds good to me, though. Cool! Since, we already mention "todo list manager" in description, I think "ti-cli" is better. @Nicolas Could you merge the attached patch please? Regards, RG. [-- Attachment #1.1.2: 0001-gnu-Rename-t-to-t-cli.patch --] [-- Type: text/x-patch, Size: 1017 bytes --] From 0b3f82c8c8b0685583e99b6c3e48e1f0c22a7706 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan <rg@raghavgururajan.name> Date: Tue, 9 Mar 2021 01:03:32 -0500 Subject: [PATCH] gnu: Rename "t" to "t-cli". * gnu/packages/task-management.scm (t): Rename to t-cli. --- gnu/packages/task-management.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/task-management.scm b/gnu/packages/task-management.scm index 9667df6030..dfad07b32b 100644 --- a/gnu/packages/task-management.scm +++ b/gnu/packages/task-management.scm @@ -44,12 +44,12 @@ #:use-module (guix build-system meson) #:use-module (guix build-system python)) -(define-public t +(define-public t-cli ;; Last release is more than 10 years old. Using latest commit. (let ((changeset "89ad444c000b") (revision "97")) (package - (name "t") + (name "t-cli") (version (git-version "1.2.0" revision changeset)) (source (origin -- 2.30.1 [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --] ^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: Opposition to new single-letter package name "t" 2021-03-09 6:08 ` Raghav Gururajan @ 2021-03-09 9:35 ` Leo Prikler 2021-03-09 11:38 ` Tobias Geerinckx-Rice 1 sibling, 0 replies; 26+ messages in thread From: Leo Prikler @ 2021-03-09 9:35 UTC (permalink / raw) To: Raghav Gururajan, jgart, Mark H Weaver, guix-devel Cc: LibreMiami, Nicolas Goaziou Am Dienstag, den 09.03.2021, 01:08 -0500 schrieb Raghav Gururajan: > > I like Mark's suggestion of "t-todo-list-manager" as well as > > Raghav's suggestion for "t-cli"; in that order. > > > > Either name sounds good to me, though. > > Cool! > > Since, we already mention "todo list manager" in description, I > think > "ti-cli" is better. I personally disagree. Let's assume we do have a collision and the other program also happens to be a CLI – then we're back to square one. Also, assuming it is a GUI instead of a CLI and the package can be named "t-gui", there will be the implication that the two are related when they need not be. On a related note, the description treads awfully close to advertising territory. I'd say "t-todo-list-manager", perhaps shortened to "t-todos". Alternatively, we might borrow some bits from the go-build-system convention and name it com-stevelosh-t. Regards, Leo ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Opposition to new single-letter package name "t" 2021-03-09 6:08 ` Raghav Gururajan 2021-03-09 9:35 ` Leo Prikler @ 2021-03-09 11:38 ` Tobias Geerinckx-Rice 2021-03-09 11:40 ` Julien Lepiller ` (2 more replies) 1 sibling, 3 replies; 26+ messages in thread From: Tobias Geerinckx-Rice @ 2021-03-09 11:38 UTC (permalink / raw) To: Raghav Gururajan Cc: jgart, Mark H Weaver, LibreMiami, Nicolas Goaziou, guix-devel [-- Attachment #1: Type: text/plain, Size: 778 bytes --] Raghav Gururajan 写道: > Since, we already mention "todo list manager" in description, I > think > "ti-cli" is better. It says nothing about the package and does not uniquely identify it: bundlerApp { pname = "t"; [...] meta = with lib; { description = "A command-line power tool for Twitter"; homepage = "http://sferik.github.io/t/"; [...] }; } It's “t”! It's “CLI”! It's... a totally different package[0]! Please: t-todo-manager (t-todo-whatever, I don't care) or $something_a_mainstream_distro_uses, but not yet another bikeshedded unique name, fun as they are to do. Kind regards, T G-R [0]: https://github.com/NixOS/nixpkgs/blob/release-20.09/pkgs/tools/misc/t/default.nix [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --] ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Opposition to new single-letter package name "t" 2021-03-09 11:38 ` Tobias Geerinckx-Rice @ 2021-03-09 11:40 ` Julien Lepiller 2021-03-09 13:09 ` Ricardo Wurmus 2021-03-09 12:40 ` Raghav Gururajan 2021-03-09 13:32 ` Search improvements (Was: Opposition to new single-letter package name "t") Taylan Kammer 2 siblings, 1 reply; 26+ messages in thread From: Julien Lepiller @ 2021-03-09 11:40 UTC (permalink / raw) To: guix-devel [-- Attachment #1: Type: text/plain, Size: 1017 bytes --] Well, python-t should be unique, right? There can't be a collision on pypi. Well, except if that package is not on pypi? Le 9 mars 2021 06:38:04 GMT-05:00, Tobias Geerinckx-Rice <me@tobias.gr> a écrit : >Raghav Gururajan 写道: >> Since, we already mention "todo list manager" in description, I >> think >> "ti-cli" is better. > >It says nothing about the package and does not uniquely identify >it: > > bundlerApp { > pname = "t"; > [...] > > meta = with lib; { > description = "A command-line power tool for Twitter"; > homepage = "http://sferik.github.io/t/"; > [...] > }; > } > >It's “t”! It's “CLI”! It's... a totally different package[0]! > >Please: t-todo-manager (t-todo-whatever, I don't care) or >$something_a_mainstream_distro_uses, but not yet another >bikeshedded unique name, fun as they are to do. > >Kind regards, > >T G-R > >[0]: >https://github.com/NixOS/nixpkgs/blob/release-20.09/pkgs/tools/misc/t/default.nix [-- Attachment #2: Type: text/html, Size: 1517 bytes --] ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Opposition to new single-letter package name "t" 2021-03-09 11:40 ` Julien Lepiller @ 2021-03-09 13:09 ` Ricardo Wurmus 0 siblings, 0 replies; 26+ messages in thread From: Ricardo Wurmus @ 2021-03-09 13:09 UTC (permalink / raw) To: Julien Lepiller; +Cc: guix-devel Julien Lepiller <julien@lepiller.eu> writes: > Well, python-t should be unique, right? There can't be a collision on pypi. Well, except if that package is not on pypi? Since it’s not a library we shouldn’t name it “python-<anything>”. I agree with Tobias and others who suggested “t-todo-manager” or similar; not “t-cli”, please. -- Ricardo ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Opposition to new single-letter package name "t" 2021-03-09 11:38 ` Tobias Geerinckx-Rice 2021-03-09 11:40 ` Julien Lepiller @ 2021-03-09 12:40 ` Raghav Gururajan 2021-03-09 18:12 ` Nicolas Goaziou 2021-03-09 13:32 ` Search improvements (Was: Opposition to new single-letter package name "t") Taylan Kammer 2 siblings, 1 reply; 26+ messages in thread From: Raghav Gururajan @ 2021-03-09 12:40 UTC (permalink / raw) To: Tobias Geerinckx-Rice Cc: jgart, Mark H Weaver, LibreMiami, Nicolas Goaziou, guix-devel [-- Attachment #1.1.1: Type: text/plain, Size: 248 bytes --] Hi Tobias! > Please: t-todo-manager (t-todo-whatever, I don't care) or > $something_a_mainstream_distro_uses, but not yet another bikeshedded > unique name, fun as they are to do. Makes sense. I have attached the patch. Regards, RG. [-- Attachment #1.1.2: 0001-gnu-Rename-t-to-t-todo-manager.patch --] [-- Type: text/x-patch, Size: 1053 bytes --] From 04066b34518fc01290f12093910387e10c04fa08 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan <rg@raghavgururajan.name> Date: Tue, 9 Mar 2021 07:37:28 -0500 Subject: [PATCH] gnu: Rename "t" to "t-todo-manager". * gnu/packages/task-management.scm (t): Rename to t-todo-manager. --- gnu/packages/task-management.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/task-management.scm b/gnu/packages/task-management.scm index 9667df6030..3edf01a9f5 100644 --- a/gnu/packages/task-management.scm +++ b/gnu/packages/task-management.scm @@ -44,12 +44,12 @@ #:use-module (guix build-system meson) #:use-module (guix build-system python)) -(define-public t +(define-public t-todo-manager ;; Last release is more than 10 years old. Using latest commit. (let ((changeset "89ad444c000b") (revision "97")) (package - (name "t") + (name "t-todo-manager") (version (git-version "1.2.0" revision changeset)) (source (origin -- 2.30.1 [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --] ^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: Opposition to new single-letter package name "t" 2021-03-09 12:40 ` Raghav Gururajan @ 2021-03-09 18:12 ` Nicolas Goaziou 2021-03-10 0:16 ` Mark H Weaver 0 siblings, 1 reply; 26+ messages in thread From: Nicolas Goaziou @ 2021-03-09 18:12 UTC (permalink / raw) To: Raghav Gururajan; +Cc: guix-devel, jgart, LibreMiami Hello, Raghav Gururajan <rg@raghavgururajan.name> writes: > Makes sense. I have attached the patch. Applied. Thank you. Sorry for the mess! Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Opposition to new single-letter package name "t" 2021-03-09 18:12 ` Nicolas Goaziou @ 2021-03-10 0:16 ` Mark H Weaver 0 siblings, 0 replies; 26+ messages in thread From: Mark H Weaver @ 2021-03-10 0:16 UTC (permalink / raw) To: Nicolas Goaziou, Raghav Gururajan; +Cc: guix-devel, jgart, LibreMiami Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Raghav Gururajan <rg@raghavgururajan.name> writes: > >> Makes sense. I have attached the patch. > > Applied. Thank you. > > Sorry for the mess! No worries, it's no mess at all. Thanks to Nicolas and Raghav for taking care of renaming it, and also to everyone who contributed to the bike-shed discussion :) Mark ^ permalink raw reply [flat|nested] 26+ messages in thread
* Search improvements (Was: Opposition to new single-letter package name "t") 2021-03-09 11:38 ` Tobias Geerinckx-Rice 2021-03-09 11:40 ` Julien Lepiller 2021-03-09 12:40 ` Raghav Gururajan @ 2021-03-09 13:32 ` Taylan Kammer 2021-03-09 15:12 ` zimoun 2021-03-09 16:18 ` Tobias Geerinckx-Rice 2 siblings, 2 replies; 26+ messages in thread From: Taylan Kammer @ 2021-03-09 13:32 UTC (permalink / raw) To: Tobias Geerinckx-Rice, Raghav Gururajan Cc: guix-devel, jgart, LibreMiami, Nicolas Goaziou On 09.03.2021 12:38, Tobias Geerinckx-Rice wrote: > Raghav Gururajan 写道: >> Since, we already mention "todo list manager" in description, I think >> "ti-cli" is better. > > It says nothing about the package and does not uniquely identify it: > > bundlerApp { > pname = "t"; > [...] > > meta = with lib; { > description = "A command-line power tool for Twitter"; > homepage = "http://sferik.github.io/t/"; > [...] > }; > } > > It's “t”! It's “CLI”! It's... a totally different package[0]! > > Please: t-todo-manager (t-todo-whatever, I don't care) or > $something_a_mainstream_distro_uses, but not yet another bikeshedded > unique name, fun as they are to do. > > Kind regards, > > T G-R > > [0]: > https://github.com/NixOS/nixpkgs/blob/release-20.09/pkgs/tools/misc/t/default.nix > I agree that t-todo-manager is the superior choice. (With a secondary preference for "t-todo-list-manager".) This discussion made me realize that "guix search" might benefit from the following improvement though: I think the relevance score for a search result should be increased significantly if the searched word is a standalone (not substring) part of a package's name when the name is split into dash-separated words. For instance, the package "emacs-hl-todo" should get a much higher score than "emacs-mastodon" when searching for "todo". Currently the Mastodon one has score 11 and the todo one only 9. The same thing goes for the synopsis and description of the package, but with respectively lower increases to the score. (I.e. name > synopsis > description.) Handling of plurals like "todos" instead of "todo" would also be great but could be left to a later step. Any thoughts about / objections to this idea? To be honest I haven't checked if there's maybe already a bug report about this. - Taylan ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Search improvements (Was: Opposition to new single-letter package name "t") 2021-03-09 13:32 ` Search improvements (Was: Opposition to new single-letter package name "t") Taylan Kammer @ 2021-03-09 15:12 ` zimoun 2021-03-09 16:18 ` Tobias Geerinckx-Rice 1 sibling, 0 replies; 26+ messages in thread From: zimoun @ 2021-03-09 15:12 UTC (permalink / raw) To: Taylan Kammer Cc: LibreMiami, Raghav Gururajan, jgart, Nicolas Goaziou, Guix Devel Hi, On Tue, 9 Mar 2021 at 14:37, Taylan Kammer <taylan.kammer@gmail.com> wrote: > This discussion made me realize that "guix search" might benefit from > the following improvement though: I think the relevance score for a > search result should be increased significantly if the searched word is > a standalone (not substring) part of a package's name when the name is > split into dash-separated words. Currently, perfect match uses the weight of 5 and substring match uses 1. You are proposing to add something between, say 3, for perfect match on substring delimited by dash. Why not. > For instance, the package "emacs-hl-todo" should get a much higher score > than "emacs-mastodon" when searching for "todo". Currently the Mastodon > one has score 11 and the todo one only 9. Here how the relevance score reads: query: todo | field | emacs-hl-todo | emacs-mastodon | weight | |-------------+----------------+-----------------+--------| | name | 1 | 1 | 4 | | synopsis | 1 | 1 | 3 | | description | 1 | 2 | 2 | |-------------+----------------+-----------------+--------| | total | 1*4+1*3+2*1= 9 | 1*4+1*3+2*2= 11 | | Therefore, something looks wrong here: the score for emacs-hl-todo should be 1*4+1*5*3+1*5*2= 29 because the term TODO should be considered as a perfect match for the query todo. > The same thing goes for the synopsis and description of the package, but > with respectively lower increases to the score. (I.e. name > synopsis > > description.) Your proposal just needs the tweak of 'score' in the function 'relevance' from (guix ui). The weight for the field is another part (see %package-metrics in (guix ui)) > Handling of plurals like "todos" instead of "todo" would also be great > but could be left to a later step. The issue with this is that it is strongly connected to the language. Therefore, an external library implementing Natural Language should be added. And I am not convinced it is worth at the CLI level. > Any thoughts about / objections to this idea? To be honest I haven't > checked if there's maybe already a bug report about this. If you are interested, there is such discussion in this heavy thread: <http://issues.guix.gnu.org/issue/39258> And the 'relevance' function could be improved, for sure. For example, I proposed TF-IDF here: <https://lists.gnu.org/archive/html/guix-devel/2019-07/msg00252.html> and I did some tiny math calculs (optimization) to compute "better" relevance weight (%package-metrics) but the current choice are not so bad and simple enough. :-) Previous week, I have started to examine a strategy based on Bag-Of-Word and some word embedings strategies; mimicking a simple autoencoder [1] such as Word2Vec [2] but since the Guile tools are poor in this field, I have started to use Julia first to look if it is worth to implement or not such solution. My idea is to see how the packages cluster based on the synopsis+description information, then ideally based on this, we should be able to define package similarity and "synonyms". Well, if you are student and you are looking for a cool project about Machine Learning and Data Science, ping me. :-) 1: <https://en.wikipedia.org/wiki/Autoencoder> 2: <https://en.wikipedia.org/wiki/Word2vec> Cheers, simon ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Search improvements (Was: Opposition to new single-letter package name "t") 2021-03-09 13:32 ` Search improvements (Was: Opposition to new single-letter package name "t") Taylan Kammer 2021-03-09 15:12 ` zimoun @ 2021-03-09 16:18 ` Tobias Geerinckx-Rice 2021-03-09 18:37 ` zimoun 1 sibling, 1 reply; 26+ messages in thread From: Tobias Geerinckx-Rice @ 2021-03-09 16:18 UTC (permalink / raw) To: Taylan Kammer Cc: Raghav Gururajan, jgart, Mark H Weaver, LibreMiami, Nicolas Goaziou, guix-devel [-- Attachment #1: Type: text/plain, Size: 1168 bytes --] Taylan, Taylan Kammer 写道: > This discussion made me realize that "guix search" might benefit > from > the following improvement though: I think the relevance score > for a > search result should be increased significantly if the searched > word is > a standalone (not substring) part of a package's name when the > name is > split into dash-separated words. Thanks for remembering ‘guix search’! It didn't occur to me at all. For most upstreams whether or not dashes were in vogue[0] when they named their project is literally arbitrary. We'd penalise many other packages like texlive-todonotes, open{ssh,vpn,*}, ktexteditor, r-performanceanalytics, qutebrowser, ... It's not a net win. If I might pet my own peeve, I think clever heuristics appear necessary in part because %package-metrics grossly overscores package names. Rank them *below* synopsis & description--which will contain the name anyway--with a metric of 1, maybe 2. Enough to keep the relevant stuff above the irrelevant stuff (python- > ruby-, etc.) without distorting things as they do now. Kind regards, T G-R [0]: Not a joke. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --] ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Search improvements (Was: Opposition to new single-letter package name "t") 2021-03-09 16:18 ` Tobias Geerinckx-Rice @ 2021-03-09 18:37 ` zimoun 0 siblings, 0 replies; 26+ messages in thread From: zimoun @ 2021-03-09 18:37 UTC (permalink / raw) To: Tobias Geerinckx-Rice Cc: LibreMiami, Raghav Gururajan, jgart, Nicolas Goaziou, Guix Devel Hi Tobias, On Tue, 9 Mar 2021 at 18:14, Tobias Geerinckx-Rice <me@tobias.gr> wrote: > For most upstreams whether or not dashes were in vogue[0] when > they named their project is literally arbitrary. We'd penalise > many other packages like texlive-todonotes, open{ssh,vpn,*}, > ktexteditor, r-performanceanalytics, qutebrowser, ... It's not a > net win. I am not sure to understand what you mean here. > If I might pet my own peeve, I think clever heuristics appear > necessary in part because %package-metrics grossly overscores > package names. Rank them *below* synopsis & description--which > will contain the name anyway--with a metric of 1, maybe 2. Enough > to keep the relevant stuff above the irrelevant stuff (python- > > ruby-, etc.) without distorting things as they do now. I really did math, i.e., write the scoring function, something like (to simplify) score(package, query) = sum_{term in query} (wS cS + wD cD + w) where wS, wD, wN are the weights for synopsis, description, name and cS, cD, cN are the number of occurrences. Then for example computed Jacobian and so on in order to see the relation between the weights w* and the number of occurrence c*. Or I gave a look at the condition to have: score(package_1, query) = score(package_2, query) and basically, using the linear relevance as it is currently, the weight (%package-metrics) are not so bad; you cannot find a really better heuristic. Another conclusion is: it really depends on the number of terms the query has. Basically, if you type one term, you know what you are looking for and it is the package name but your are not sure. For more terms, currently the result strongly depends on the quality of the synopsis and description. For instance, try: guix search gnu compiler and compare the description of all the packages with a relevance higher than 4 (gcc-toolchain). Well, with a linear and local scoring function as it is currently, you cannot improve much, IMHO. By local, I mean only considering the words of one package independently of the words of other packages. That's why TF-IDF [1]. For a concrete example, see <https://lists.gnu.org/archive/html/guix-devel/2019-07/msg00252.html>. Once you have a TF-IDF, the natural scoring is BM25 [2]. Well, it is included in Xapian and there is a patch by Arun using Xapian as a backend for "guix search", see <http://issues.guix.gnu.org/issue/39258#14>. It is missing a good evaluation, i.e., queries examples. I have asked such examples (what query an user type and what they are expecting) here <https://lists.gnu.org/archive/html/guix-devel/2020-05/msg00190.html> but no one replied and since I am enough comfortable with searching with Guix and other bugs are more annoying for my workflow, I moved to other stuff. For another discussion on the topic, see <https://lists.gnu.org/archive/html/guix-devel/2020-01/msg00222.html>. Since 2020, I have read pieces of "word embdeding" (part of vogue[0] graph neural nets), and I think it would a great project: first some vogue[0] stats to evaluate how the packages cluster together, i.e., is emacs-foo closer to emacs-bar or python-foo? and second depending on the results, implement such embdeding to improve "guix search". The first means use Julia (or package PyTorch for Guix ;-)) and the second means implement targeting Guile (it could awesome to have an equivalent to Zygote [3,4] for Guile). 0: Not a joke. :-) 1: <https://en.wikipedia.org/wiki/Tf%E2%80%93idf> 2: <https://en.wikipedia.org/wiki/Okapi_BM25> 3: <https://github.com/FluxML/Zygote.jl> 4: <https://arxiv.org/pdf/1810.07951.pdf> Cheers, simon ^ permalink raw reply [flat|nested] 26+ messages in thread
* bug#47028: Discourage single-character package names 2021-03-09 5:27 Opposition to new single-letter package name "t" Mark H Weaver 2021-03-09 5:39 ` Raghav Gururajan 2021-03-09 5:47 ` jgart @ 2021-03-09 21:39 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix 2021-03-09 21:41 ` bug#47028: [PATCH 1/2] doc: Discourage ambiguous " Tobias Geerinckx-Rice via Bug reports for GNU Guix ` (2 more replies) 2 siblings, 3 replies; 26+ messages in thread From: Tobias Geerinckx-Rice via Bug reports for GNU Guix @ 2021-03-09 21:39 UTC (permalink / raw) To: 47028; +Cc: Mark H Weaver [-- Attachment #1: Type: text/plain, Size: 378 bytes --] Mark H Weaver 写道: > Yesterday, an obscure package called "t" was added to Guix. We > should > reject such short package names in Guix unless there's a very > compelling > reason to keep them. I completely agree (in fact I can't compel myself to find excusable exceptions), but this wasn't explicitly documented anywhere I looked. Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --] ^ permalink raw reply [flat|nested] 26+ messages in thread
* bug#47028: [PATCH 1/2] doc: Discourage ambiguous package names. 2021-03-09 21:39 ` bug#47028: Discourage single-character package names Tobias Geerinckx-Rice via Bug reports for GNU Guix @ 2021-03-09 21:41 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix 2021-03-09 21:41 ` bug#47028: [PATCH 2/2] lint: Warn about single-character " Tobias Geerinckx-Rice via Bug reports for GNU Guix 2021-03-09 21:51 ` bug#47028: [PATCH 1/2] doc: Discourage ambiguous " Tobias Geerinckx-Rice via Bug reports for GNU Guix 2021-03-10 0:44 ` bug#47028: Discourage single-character " Mark H Weaver 2021-04-01 8:57 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix 2 siblings, 2 replies; 26+ messages in thread From: Tobias Geerinckx-Rice via Bug reports for GNU Guix @ 2021-03-09 21:41 UTC (permalink / raw) To: 47028 * doc/contributing.texi (Package Naming): Explicitly mention single-character and otherwise ambiguous names. --- doc/contributing.texi | 8 ++++++++ doc/guix.texi | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/contributing.texi b/doc/contributing.texi index c9dd7d6c04..a3facdcadc 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -445,6 +445,14 @@ the project name chosen upstream, with underscores replaced with hyphens. For instance, GNUnet is available as @code{gnunet}, and SDL_net as @code{sdl-net}. +A noteworthy exception to this rule is when the project name is only a +single character, or if an older maintained project with the same name +already exists---regardless of whether it has already been packaged for +Guix. Use common sense to make such names unambiguous and meaningful. +For example, Guix's package for the shell called ``s'' upstream is +@code{s-shell} and @emp{not} @code{s}. Feel free to ask your fellow +hackers for inspiration. + We do not add @code{lib} prefixes for library packages, unless these are already part of the official project name. But @pxref{Python Modules} and @ref{Perl Modules} for special rules concerning modules for diff --git a/doc/guix.texi b/doc/guix.texi index f01e7ca89d..d726fa491f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -49,7 +49,7 @@ Copyright @copyright{} 2017, 2021 Christopher Lemmer Webber@* Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020, 2021 Maxim Cournoyer@* -Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@* +Copyright @copyright{} 2017, 2018, 2019, 2020, 2021 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019, 2020 Arun Isaac@* -- 2.30.1 ^ permalink raw reply related [flat|nested] 26+ messages in thread
* bug#47028: [PATCH 2/2] lint: Warn about single-character package names. 2021-03-09 21:41 ` bug#47028: [PATCH 1/2] doc: Discourage ambiguous " Tobias Geerinckx-Rice via Bug reports for GNU Guix @ 2021-03-09 21:41 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix 2021-03-26 8:26 ` zimoun 2021-03-09 21:51 ` bug#47028: [PATCH 1/2] doc: Discourage ambiguous " Tobias Geerinckx-Rice via Bug reports for GNU Guix 1 sibling, 1 reply; 26+ messages in thread From: Tobias Geerinckx-Rice via Bug reports for GNU Guix @ 2021-03-09 21:41 UTC (permalink / raw) To: 47028 * guix/lint.scm (check-name): New procedure. (%local-checkers): Add it. --- guix/lint.scm | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/guix/lint.scm b/guix/lint.scm index 311bc94cc3..5144fa139d 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2017 Alex Kost <alezost@gmail.com> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com> @@ -170,6 +170,16 @@ (requires-store? lint-checker-requires-store? (default #f))) +(define (check-name package) + "Check whether PACKAGE's name matches our guidelines." + ;; Currently checks only whether the name is too short. + (if (<= (string-length (package-name package)) 1) + (list + (make-warning package + (G_ "name should be longer than a single character") + #:field 'name)) + '())) + (define (properly-starts-sentence? s) (string-match "^[(\"'`[:upper:][:digit:]]" s)) @@ -1445,6 +1455,10 @@ them for PACKAGE." (define %local-checkers (list + (lint-checker + (name 'name) + (description "Validate package names") + (check check-name)) (lint-checker (name 'description) (description "Validate package descriptions") -- 2.30.1 ^ permalink raw reply related [flat|nested] 26+ messages in thread
* bug#47028: [PATCH 2/2] lint: Warn about single-character package names. 2021-03-09 21:41 ` bug#47028: [PATCH 2/2] lint: Warn about single-character " Tobias Geerinckx-Rice via Bug reports for GNU Guix @ 2021-03-26 8:26 ` zimoun 2021-04-01 8:51 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix 2021-04-01 20:41 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix 0 siblings, 2 replies; 26+ messages in thread From: zimoun @ 2021-03-26 8:26 UTC (permalink / raw) To: Tobias Geerinckx-Rice; +Cc: 47028 Hi, On Tue, 09 Mar 2021 at 22:41, Tobias Geerinckx-Rice <me@tobias.gr> wrote: > +(define (check-name package) > + "Check whether PACKAGE's name matches our guidelines." > + ;; Currently checks only whether the name is too short. > + (if (<= (string-length (package-name package)) 1) Maybe the length can be negative or zero. ;-) Well, both patches are LGTM. Cheers, simon ^ permalink raw reply [flat|nested] 26+ messages in thread
* bug#47028: [PATCH 2/2] lint: Warn about single-character package names. 2021-03-26 8:26 ` zimoun @ 2021-04-01 8:51 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix 2021-04-01 20:41 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix 1 sibling, 0 replies; 26+ messages in thread From: Tobias Geerinckx-Rice via Bug reports for GNU Guix @ 2021-04-01 8:51 UTC (permalink / raw) To: zimoun; +Cc: 47028 zimoun writes: > Maybe the length can be negative or zero. ;-) ‘Defensive programming’! Thanks, :-) T G-R ^ permalink raw reply [flat|nested] 26+ messages in thread
* bug#47028: [PATCH 2/2] lint: Warn about single-character package names. 2021-03-26 8:26 ` zimoun 2021-04-01 8:51 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix @ 2021-04-01 20:41 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix 1 sibling, 0 replies; 26+ messages in thread From: Tobias Geerinckx-Rice via Bug reports for GNU Guix @ 2021-04-01 20:41 UTC (permalink / raw) To: zimoun; +Cc: 47028-done [-- Attachment #1: Type: text/plain, Size: 291 bytes --] zimoun writes: > My point is: I am not even sure that “r” should be whitelisted. I think it deserves the name, but my reasons are fuzzy and feely. Anyway: I added that exception for ‘r’ and pushed as 1126bb9cf33f10f004a5f53331389c777c025e75 et al. Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 26+ messages in thread
* bug#47028: [PATCH 1/2] doc: Discourage ambiguous package names. 2021-03-09 21:41 ` bug#47028: [PATCH 1/2] doc: Discourage ambiguous " Tobias Geerinckx-Rice via Bug reports for GNU Guix 2021-03-09 21:41 ` bug#47028: [PATCH 2/2] lint: Warn about single-character " Tobias Geerinckx-Rice via Bug reports for GNU Guix @ 2021-03-09 21:51 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix 1 sibling, 0 replies; 26+ messages in thread From: Tobias Geerinckx-Rice via Bug reports for GNU Guix @ 2021-03-09 21:51 UTC (permalink / raw) Cc: 47028 [-- Attachment #1: Type: text/plain, Size: 282 bytes --] Tobias Geerinckx-Rice via Bug reports for GNU Guix 写道: > +@code{s-shell} and @emp{not} @code{s}. Feel free to ask your > fellow ??? I'm sorry, I'm really useless today. This should of course be correct & not wrong. Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --] ^ permalink raw reply [flat|nested] 26+ messages in thread
* bug#47028: Discourage single-character package names 2021-03-09 21:39 ` bug#47028: Discourage single-character package names Tobias Geerinckx-Rice via Bug reports for GNU Guix 2021-03-09 21:41 ` bug#47028: [PATCH 1/2] doc: Discourage ambiguous " Tobias Geerinckx-Rice via Bug reports for GNU Guix @ 2021-03-10 0:44 ` Mark H Weaver 2021-03-10 11:28 ` Ludovic Courtès 2021-03-10 13:04 ` zimoun 2021-04-01 8:57 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix 2 siblings, 2 replies; 26+ messages in thread From: Mark H Weaver @ 2021-03-10 0:44 UTC (permalink / raw) To: Tobias Geerinckx-Rice; +Cc: 47028 Hi Tobias, Tobias Geerinckx-Rice <me@tobias.gr> writes: > Mark H Weaver 写道: >> Yesterday, an obscure package called "t" was added to Guix. We >> should reject such short package names in Guix unless there's a very >> compelling reason to keep them. > > I completely agree (in fact I can't compel myself to find > excusable exceptions), but this wasn't explicitly documented > anywhere I looked. We have one notable exception in Guix: "r", which is "grandfathered in" so-to-speak, but perhaps it would have been excusable anyway, given its prominence and its large number of related packages "r-*". I fully support your proposal to talk about single-character names in the manual, and also to check for them in the linter, but perhaps "r" should be whitelisted. Thank you! Mark ^ permalink raw reply [flat|nested] 26+ messages in thread
* bug#47028: Discourage single-character package names 2021-03-10 0:44 ` bug#47028: Discourage single-character " Mark H Weaver @ 2021-03-10 11:28 ` Ludovic Courtès 2021-03-10 13:04 ` zimoun 1 sibling, 0 replies; 26+ messages in thread From: Ludovic Courtès @ 2021-03-10 11:28 UTC (permalink / raw) To: Mark H Weaver; +Cc: 47028 Hi Mark & Tobias, Mark H Weaver <mhw@netris.org> skribis: > I fully support your proposal to talk about single-character names in > the manual, and also to check for them in the linter, but perhaps "r" > should be whitelisted. Seconded on both points! The patches look great to me. Thanks, Ludo’. ^ permalink raw reply [flat|nested] 26+ messages in thread
* bug#47028: Discourage single-character package names 2021-03-10 0:44 ` bug#47028: Discourage single-character " Mark H Weaver 2021-03-10 11:28 ` Ludovic Courtès @ 2021-03-10 13:04 ` zimoun 1 sibling, 0 replies; 26+ messages in thread From: zimoun @ 2021-03-10 13:04 UTC (permalink / raw) To: Mark H Weaver, Tobias Geerinckx-Rice; +Cc: Ricardo Wurmus, 47028 Hi, (CC: Ricardo since they is the master about R stuff. :-)) On Tue, 09 Mar 2021 at 19:44, Mark H Weaver <mhw@netris.org> wrote: > We have one notable exception in Guix: "r", which is "grandfathered in" > so-to-speak, but perhaps it would have been excusable anyway, given its > prominence and its large number of related packages "r-*". > > I fully support your proposal to talk about single-character names in > the manual, and also to check for them in the linter, but perhaps "r" > should be whitelisted. On the other hand, instead of simply the one letter “r”, we could rename it “r-environment”. Because the package currently named “r” is the interpreter named “r-minimal” plus extra packages, constituting the basic bricks of the “R environment” [1]. 1: <https://www.r-project.org/about.html> --8<---------------cut here---------------start------------->8--- (define-public r (package (inherit r-minimal) (name "r") (source #f) (build-system trivial-build-system) (arguments '(#:builder (begin (mkdir %output) #t))) (propagated-inputs `(("r-minimal" ,r-minimal) ("r-boot" ,r-boot) ("r-class" ,r-class) ("r-cluster" ,r-cluster) ("r-codetools" ,r-codetools) ("r-foreign" ,r-foreign) ("r-kernsmooth" ,r-kernsmooth) ("r-lattice" ,r-lattice) ("r-mass" ,r-mass) ("r-matrix" ,r-matrix) ("r-mgcv" ,r-mgcv) ("r-nlme" ,r-nlme) ("r-nnet" ,r-nnet) ("r-rpart" ,r-rpart) ("r-spatial" ,r-spatial) ("r-survival" ,r-survival))))) --8<---------------cut here---------------end--------------->8--- I also support the proposal. My point is: I am not even sure that “r” should be whitelisted. Cheers, simon ^ permalink raw reply [flat|nested] 26+ messages in thread
* bug#47028: Discourage single-character package names 2021-03-09 21:39 ` bug#47028: Discourage single-character package names Tobias Geerinckx-Rice via Bug reports for GNU Guix 2021-03-09 21:41 ` bug#47028: [PATCH 1/2] doc: Discourage ambiguous " Tobias Geerinckx-Rice via Bug reports for GNU Guix 2021-03-10 0:44 ` bug#47028: Discourage single-character " Mark H Weaver @ 2021-04-01 8:57 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix 2 siblings, 0 replies; 26+ messages in thread From: Tobias Geerinckx-Rice via Bug reports for GNU Guix @ 2021-04-01 8:57 UTC (permalink / raw) To: Mark H Weaver, 47028 [Inexcusably breaking thread because I lost the original.] Mark, > We have one notable exception in Guix: "r", which is > "grandfathered > in" so-to-speak [...] Very good point. So grandfathered it didn't occur to me. > [...] perhaps "r"should be whitelisted. I agree. Thanks for pointing it out! T G-R ^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2021-04-01 20:42 UTC | newest] Thread overview: 26+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-03-09 5:27 Opposition to new single-letter package name "t" Mark H Weaver 2021-03-09 5:39 ` Raghav Gururajan 2021-03-09 5:47 ` jgart 2021-03-09 6:08 ` Raghav Gururajan 2021-03-09 9:35 ` Leo Prikler 2021-03-09 11:38 ` Tobias Geerinckx-Rice 2021-03-09 11:40 ` Julien Lepiller 2021-03-09 13:09 ` Ricardo Wurmus 2021-03-09 12:40 ` Raghav Gururajan 2021-03-09 18:12 ` Nicolas Goaziou 2021-03-10 0:16 ` Mark H Weaver 2021-03-09 13:32 ` Search improvements (Was: Opposition to new single-letter package name "t") Taylan Kammer 2021-03-09 15:12 ` zimoun 2021-03-09 16:18 ` Tobias Geerinckx-Rice 2021-03-09 18:37 ` zimoun 2021-03-09 21:39 ` bug#47028: Discourage single-character package names Tobias Geerinckx-Rice via Bug reports for GNU Guix 2021-03-09 21:41 ` bug#47028: [PATCH 1/2] doc: Discourage ambiguous " Tobias Geerinckx-Rice via Bug reports for GNU Guix 2021-03-09 21:41 ` bug#47028: [PATCH 2/2] lint: Warn about single-character " Tobias Geerinckx-Rice via Bug reports for GNU Guix 2021-03-26 8:26 ` zimoun 2021-04-01 8:51 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix 2021-04-01 20:41 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix 2021-03-09 21:51 ` bug#47028: [PATCH 1/2] doc: Discourage ambiguous " Tobias Geerinckx-Rice via Bug reports for GNU Guix 2021-03-10 0:44 ` bug#47028: Discourage single-character " Mark H Weaver 2021-03-10 11:28 ` Ludovic Courtès 2021-03-10 13:04 ` zimoun 2021-04-01 8:57 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix
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.