guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Opposition to new single-letter package name "t"


From: Mark H Weaver
Subject: Opposition to new single-letter package name "t"
Date: Tue, 09 Mar 2021 00:27:47 -0500

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]