all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Stefan Kangas <stefankangas@gmail.com>
To: Charles Choi <kickingvegas@gmail.com>, emacs-devel@gnu.org
Subject: Re: Request to distribute Casual packages on NonGNU ELPA
Date: Wed, 25 Sep 2024 16:44:38 -0700	[thread overview]
Message-ID: <CADwFkmkqyZtppTwaCQDL3yWSKy5KycPcnN20_7=Yi=MjoAjtGw@mail.gmail.com> (raw)
In-Reply-To: <8B0830CA-6995-454C-BC5A-E4247E259CE9@gmail.com>

Charles Choi <kickingvegas@gmail.com> writes:

> Greetings Emacs Devel -
>
> Over the course of this past year, I have published a number of Emacs
> packages that offer Transient-based user interfaces for different
> modes with the moniker of "Casual" on MELPA. I wish to pursue
> publishing them on NonGNU ELPA and seek guidance on how to move
> forward with this. I have read the README at
> https://git.savannah.gnu.org/cgit/emacs/nongnu.git/plain/README.org
> and believe that these packages all comply with the guidance for
> package acceptance into NonGNU ELPA.
>
> A current listing of the packages that I wish to distribute on NonGNU
> ELPA can be found at the link
> https://melpa.org/#/?q=kickingvegas%20casual

I have given the `casual-bookmarks` command a spin, and I have looked at
a few others.  The screenshots really helped here.  Please find below my
review of Casual, and some ideas for potential improvements.  I hope you
find it useful.

AFAICT, Casual essentially provides something similar to
`which-key-show-full-mode` but with a hand-crafted display based on
transient instead of the auto-generated display which-key has.  Another
comparison is `help-quick-toggle`, though connected to the current major
mode.  It could also be compared to the many various `hydra` recipes
floating around out there.

I quite like it to the extent that it does the above, FWIW.  But there
are also some things that I think could be improved.

- Why so many packages?  They could easily be bundled into just one
  package.  This is also strongly suggested by the fact that there is a
  need for a `consult-bundle` package.  There is little to no benefit to
  split it up, it just makes dealing with it more fiddly.

- The Casual suite would benefit from having an Info manual.  This is
  related to the above point; there is a lot of duplicated information
  in the various README files.

- `casual-dired` changes some of the default Dired keybindings.  I think
  this is confusing, and reduces the value of `casual-dired` as a
  learning and/or help tool.  It should be possible to use the transient
  menu for Dired without being forced to use the new keybindings.

  This suggests to me that there should be a completely separate mode,
  perhaps not even part of Casual, to enable the "new and improved"
  keybindings everywhere: in Dired, in the Casual transient menu, etc.
  This would broaden its applicability to more use cases; for example, I
  might want to use the transient menu, but I have little to no interest
  in non-default Dired keybindings.

- I would put Casual on GNU ELPA, if possible.

I also have some comments based on the README.md for `casual-bookmarks`:

> Casual Bookmarks is an opinionated Transient-based user interface for
> Emacs Bookmarks.
>
> INSTALLATION (require 'casual-bookmarks) ;; optional

Using `require` is redundant, and not best practice: it slows down
starting Emacs and requires more memory, even if the commands are never
used.  All useful entry-points should simply be autoloaded (this is done
automatically by package.el on install).

> (keymap-set bookmark-bmenu-mode-map "C-o" #'casual-bookmarks-tmenu)
>
> Alternately with `use-package': (use-package bookmark
>   :ensure nil :defer t)

AFAICT, this form does nothing and can be removed.

> (use-package casual-bookmarks
>   :ensure t :bind (:map bookmark-bmenu-mode-map
>               ("C-o" . casual-bookmarks-tmenu) ("S"
>               . casual-bookmarks-sortby-tmenu) ("J" . bookmark-jump))
>   :after (bookmark))

The `bookmark-jump` key binding is generally useful, and should
preferably be sent as a patch to Emacs itself.

Perhaps this also applies to the new key bindings for info, ibuffer, and
org-agenda, etc.  I don't know, and I didn't look into it.

> Casual Bookmarks requires Casual Lib which in turn requires a recent
> installation of Transient 0.6.0+ from either ELPA or MELPA. As an
> older version of Transient is built-in to the Emacs release,

This should say which version of Emacs needs to have transient upgraded.
If it is Emacs 29.4, then say that.



  parent reply	other threads:[~2024-09-25 23:44 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-24 21:35 Request to distribute Casual packages on NonGNU ELPA Charles Choi
2024-09-25 17:30 ` Stefan Kangas
2024-09-25 18:30   ` Philip Kaludercic
2024-09-25 20:05     ` Charles Choi
2024-09-25 20:15       ` Philip Kaludercic
2024-09-26 18:06         ` Charles Choi
2024-09-28  3:08         ` Richard Stallman
2024-09-28  3:08         ` Richard Stallman
2024-09-28  8:52           ` Charles Choi
2024-09-27 15:52       ` Philip Kaludercic
2024-09-27 16:04         ` Philip Kaludercic
2024-09-27 18:12         ` Charles Choi
2024-09-27 18:58           ` Stefan Monnier
2024-09-27 20:05           ` Philip Kaludercic
2024-09-28 14:02       ` Philip Kaludercic
2024-09-26 19:08   ` Charles Choi
2024-09-27  4:40     ` Stefan Kangas
2024-09-27 15:34       ` Philip Kaludercic
2024-09-27 16:13         ` Charles Choi
2024-09-27 16:03     ` Stefan Monnier
2024-09-27 19:20       ` Charles Choi
2024-09-30  3:26         ` Richard Stallman
2024-09-30  3:57           ` Emanuel Berg
2024-09-25 23:44 ` Stefan Kangas [this message]
2024-09-26 17:01   ` Charles Choi
2024-09-26 18:05     ` Adam Porter
2024-09-27 15:18       ` Philip Kaludercic
2024-09-27  5:43     ` Stefan Kangas

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='CADwFkmkqyZtppTwaCQDL3yWSKy5KycPcnN20_7=Yi=MjoAjtGw@mail.gmail.com' \
    --to=stefankangas@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=kickingvegas@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.