all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Jim Porter <jporterbugs@gmail.com>
To: rms@gnu.org
Cc: eliz@gnu.org, relekarpayas@gmail.com, philipk@posteo.net,
	susam.pal@gmail.com, emacs-devel@gnu.org
Subject: Naming guidelines for ELPA packages (was: Re: [NonGNU ELPA] New package: devil)
Date: Sat, 13 May 2023 21:29:42 -0700	[thread overview]
Message-ID: <0c04d76f-cca9-8a33-14fe-b9ad96a2b9aa@gmail.com> (raw)
In-Reply-To: <E1pxxlE-0000ts-IQ@fencepost.gnu.org>

On 5/13/2023 3:30 PM, Richard Stallman wrote:
> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
> 
>    > How about something like "devil-keys"? That should make it clear that
>    > the package has something to do with keys. It doesn't tell exactly what
>    > it *does* with those keys, but I think a more-detailed description
>    > belongs in the package description or the manual.
> 
> I like this way of serving both goals at once: a clue about what the job is,
> and a name to distinguish this package from others for thatjob.
> 

Maybe we could turn this into a general guideline, and document it 
somewhere on GNU ELPA (maybe the README). Something like the below? It 
could probably use some editorial work, but I thought an example "story" 
of choosing a package name might help explain things to readers.

----------------------------------------

Naming is hard. To assist package authors, here are some guidelines for 
choosing good Emacs package names. Package names should be:

   * Memorable: Aim for short, distinct names that users can easily recall.
   * Intuitive: Names don't need to fully describe a package, but they 
should at least provide a hint about what the package does.

For example, suppose I've written a package that provides an interface 
between GObjects and Emacs Lisp, and named it "goeli". This isn't a very 
good name, since it's not easy to remember (users may find themselves 
asking, "Wait... was it 'goli' or 'goeli'?"), and it's nearly impossible 
to guess what it does from the name.

After thinking about it some more, I have a flash of insight: I'll call 
it "goblin" (for _GOb_ject _L_isp _In_terface)! This is easy enough to 
remember, but it's still not intuitive.

Perhaps the best name for a package like this would simply be "gobject". 
That's both memorable *and* intuitive.

However, after thinking about it yet again, I find myself disappointed: 
while "gobject" is a thoroughly practical name, it's just not very fun. 
Instead, I finally opt for a compromise: I'll still use "Goblin" when 
documenting the package and prefix names in my code with "goblin-", but 
I decide to submit it to GNU ELPA as "goblin-functions". While this 
isn't as descriptive as "gobject", it does at least provide a hint to 
the reader that this is a collection of functions (intended for other 
Lisp authors, as opposed to end users).



  reply	other threads:[~2023-05-14  4:29 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-11  5:23 [NonGNU ELPA] New package: devil Payas Relekar
2023-05-11  6:26 ` Po Lu
2023-05-11  6:33 ` Eli Zaretskii
2023-05-11  6:52   ` Philip Kaludercic
2023-05-11  7:07     ` Eli Zaretskii
2023-05-12 15:02       ` Brian Cully via Emacs development discussions.
2023-05-11  8:09     ` Susam Pal
2023-05-11  8:45       ` Philip Kaludercic
2023-05-11  8:58         ` Eli Zaretskii
2023-05-11  9:08           ` Susam Pal
2023-05-11  9:12             ` Philip Kaludercic
2023-05-11  9:19               ` Susam Pal
2023-05-11  9:34                 ` Ruijie Yu via Emacs development discussions.
2023-05-11 10:09                   ` Susam Pal
2023-05-11 10:31                     ` Susam Pal
2023-05-11 10:36             ` Eli Zaretskii
2023-05-11  8:56       ` Eli Zaretskii
2023-05-12 16:19   ` Jim Porter
2023-05-13  7:10     ` Philip Kaludercic
2023-05-13  9:05       ` Susam Pal
2023-05-15 22:12         ` Richard Stallman
2023-05-17 13:30         ` João Távora
2023-05-17 14:06           ` Philip Kaludercic
2023-05-17 15:41             ` João Távora
2023-05-17 15:46               ` Eli Zaretskii
2023-05-13 22:30     ` Richard Stallman
2023-05-14  4:29       ` Jim Porter [this message]
2023-05-14  7:47         ` Naming guidelines for ELPA packages Philip Kaludercic
2023-05-14 19:23           ` Jim Porter
2023-05-14 19:33             ` Philip Kaludercic
2023-05-19  3:49               ` Jim Porter
2023-05-19  4:33                 ` Akib Azmain Turja
2023-05-20 16:51                   ` Philip Kaludercic
2023-05-21 21:03                   ` Richard Stallman
2023-05-14 21:36         ` Stefan Monnier via Emacs development discussions.
2023-05-14 22:17           ` Jim Porter
2023-05-14 23:00             ` Stefan Monnier
2023-05-15  1:36               ` Jim Porter
2023-05-15 22:15         ` Naming guidelines for ELPA packages (was: Re: [NonGNU ELPA] New package: devil) Richard Stallman
2023-05-15 22:15         ` Richard Stallman
2023-05-16  4:51           ` Jim Porter
2023-05-16  8:42           ` Naming guidelines for ELPA packages Madhu

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=0c04d76f-cca9-8a33-14fe-b9ad96a2b9aa@gmail.com \
    --to=jporterbugs@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=philipk@posteo.net \
    --cc=relekarpayas@gmail.com \
    --cc=rms@gnu.org \
    --cc=susam.pal@gmail.com \
    /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.