emacs-plus

emacs-plus: stats

Sharing some analytics insights from Emacs Plus and how they'll influence future maintenance. Looking at installation data, Emacs 28 is currently the most popular version, and features like native-comp and xwidgets are heavily used. I'm considering deprecating some rarely-used options while making it easier to enable simple build flags. For icons, modern-doom3, nobu417-big-sur, and spacemacs lead in popularity. Any major changes will be well-communicated to avoid disrupting users' workflows.


Over time Emacs Plus has grown into quite heavy homebrew formula supporting 4 Emacs versions (starting with Emacs 26), 13 compilation options and 53 icons. For a long time I was accepting new options, patches and icons. Now in the process of rethinking maintenance approach I decided to take a look at how people are using this formula. Luckily, brew provides public analytics even for taps, which is being sent by users unless they decide to disable it.

Of course, it's not covering 100% of emacs-plus user base, but I still found it interesting and since I might change few things in emacs-plus based on this, I thought that other might be interested in it as well. Enjoy.

Versions

version30 days90 days365 days
emacs-plus@2955913812256
emacs-plus@28234427035764
emacs-plus@275236023737
emacs-plus@262977496

Since Emacs 28 was released recently™, there is little wonder that it's being the most popular version among emacs-plus users. What interests me is that people are still using Emacs 26. Since it has zero footprint on maintenance, I am not going to remove older version, though I urge you to switch to latest version.

Options

option (365 days)emacs-plus@27emacs-plus@28emacs-plus@29
–HEAD91900
–with-ctags01250
–with-dbus0720
–with-imagemagick0308279
–with-mailutils014784
–with-native-comp047531213
–with-no-frame-refocus036493
–with-no-titlebar31781177
–with-x116300
–with-xwidgets1701816481
–without-cocoa32410
–without-imagemagick401570

Interestingly, all available options are used, even if some are used rarely. And all of them require some analysis.

For example, --with-x11 and --without-cocoa are not straightforward from the formula point of view and they add some complexity. Since they are being rarely used, I might deprecate them in emacs-plus@29.

Other options, like --with-mailutils, --with-ctags and --with-dbus are straightforward and add no complexity, though they are rarely used. So I might provide a different way of enabling such options.

Obviously --with-native-comp and --with-xwidgets will stay with us, even though the last one is known source of troubles. This is the case where added value is bigger than maintenance burden.

You may notice that Emacs 26 is not mentioned in this table, but this is simply because of issue #195.

Icons

iconinstalls
modern-doom31563
nobu417-big-sur1499
spacemacs1401
elrumo2682
modern-sexy-v2304
modern-papirus263
modern179
modern-doom168
modern-sexy-v1145
modern-vscode138
modern-cg433n130
modern-black-variant123
cacodemon116
modern-purple-flat109
elrumo193
modern-black-dragon87
modern-paper45
modern-sjrmanning40
modern-nuvola38
emacs-card-british-racing-green38
retro-gnu-meditate-levitate36
modern-alecive-flatwoken36
modern-orange34

Only 23 icons out of 53 are present here, and I am 100% sure some are missing from analytics, but it's nice to know the top 3 icons used by our community.

In any case, I have simplified the process of maintaining available icons and I might also provide a way to (easily?) install emacs-plus with any icon, even those that are not part of emacs-plus repository. If that works, I will cleanup icons a little bit based on usage stats and my personal preferences.

So what are the plans?

First of all, I am not going to remove any option without informing you in all possible ways (message in the build log and issue/PR in emacs-plus repository, as I did with --with-no-titlebar option here and here). If you find out that I am going to remove an option that you are using - just let me know, either via email or GitHub issues! emacs-plus still exists only because of its user base. And I want to support your needs to possible extent.

Secondly, I am thinking about providing a wrapper to install emacs-plus with stuff not support by this formula. Nothing fancy, just simple options like --with-dbus and local icons. Unfortunately, brew seems not powerful enough for this task, so I will have to investigate that a bit.

No ETA, as always, but stay tuned. Safe travels!