From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.devel Subject: Naming guidelines for ELPA packages (was: Re: [NonGNU ELPA] New package: devil) Date: Sat, 13 May 2023 21:29:42 -0700 Message-ID: <0c04d76f-cca9-8a33-14fe-b9ad96a2b9aa@gmail.com> References: <87ttwjbfqq.fsf@gmail.com> <83y1lv5qe9.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="2029"; mail-complaints-to="usenet@ciao.gmane.io" Cc: eliz@gnu.org, relekarpayas@gmail.com, philipk@posteo.net, susam.pal@gmail.com, emacs-devel@gnu.org To: rms@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun May 14 06:30:32 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1py3NP-0000MI-Az for ged-emacs-devel@m.gmane-mx.org; Sun, 14 May 2023 06:30:31 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1py3Mj-0003Mp-FZ; Sun, 14 May 2023 00:29:49 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1py3Mh-0003M9-Hp for emacs-devel@gnu.org; Sun, 14 May 2023 00:29:47 -0400 Original-Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1py3Mf-0001Lp-Ib; Sun, 14 May 2023 00:29:47 -0400 Original-Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-24de9c66559so7908504a91.0; Sat, 13 May 2023 21:29:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684038583; x=1686630583; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=zJi0TTsensO6bJewjCtiMozXtifeObmaGOWYpdZvcHU=; b=omoyAmvx1juyO+uUSp8Z1A0yqHf8/YS5GY2U4B7HC/xrPa/iSPfIF5JKf+ySpdkTnN VMjxbJAtiOT6ke4Yhkvz30FhNV/L3hEW+buC5HQ+cMAvU+ZoJgTwWf2kCnDX5JhfhK+x b+los98CiAH9b+dpxAPLLaD47frzvaaqDwwjOMyx0+0MsYwEzF0USjraCbOZoZOLWSU6 qZy+lXUR+laMyyuSTKXE7zQ2rStZrXNZGqPSo7iwW6nbApku/51eOZCbNB9NyzJ09eXB R/Q9e3dIzUBig1q3+LY3cK3DCiLuAUeSChsj9ebL3oIab16xI7Bjh9ZzWCptGNRK/k05 Hlkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684038583; x=1686630583; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=zJi0TTsensO6bJewjCtiMozXtifeObmaGOWYpdZvcHU=; b=bUTeH8ZCuDpqc3pxOJeeFaw8gqg078zvZuSDi+cuEJyr4NCNtF1POeyEA8bdSk1rd6 p5BfPL7H+8FYlNkqGNL9Elawh3FFCDzB3A6bxT8ccwhfGoXv4HTE3vUZiyFn74pP6Nc4 g9SDns7/os8eFgT/7xrI/CVR5kYsN/82M3OX3p7idM2gCt/6GG4XvUNQrRZxdJ0M0RyH WcVUW8RxQKKzByK+Rb1VVXV4u4nmUPpvGrAKNK02M+mIbUhulP36g9WeaEHTCdMzVHIu EOAUQNTwTZtFA6IHkHpXAjUqgB9L1O9pMDaJ3/6D+bsQBJ0um/JeWzc4ydGA2Y/m8tZB vFRg== X-Gm-Message-State: AC+VfDws+Flf0kUhj1YAB5L0SkvNYOxQC5EYFcVl43NIBuqNJeOwiKr0 hM0ToX9SBE+MUx6c5wftvl+jwdlGW14= X-Google-Smtp-Source: ACHHUZ4JiRyX27YvLyJTNPIP4H5nrmRn+B86ywhCzvVgwSubSfG55dv0v3IRlCHSLyTcrSKDHERT/w== X-Received: by 2002:a17:90a:fa92:b0:24e:225b:c1a1 with SMTP id cu18-20020a17090afa9200b0024e225bc1a1mr29909097pjb.32.1684038582946; Sat, 13 May 2023 21:29:42 -0700 (PDT) Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id y4-20020a1709029b8400b001add2ba4459sm5579016plp.32.2023.05.13.21.29.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 13 May 2023 21:29:42 -0700 (PDT) Content-Language: en-US In-Reply-To: Received-SPF: pass client-ip=2607:f8b0:4864:20::1030; envelope-from=jporterbugs@gmail.com; helo=mail-pj1-x1030.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:306107 Archived-At: 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).