After more than a year with straight as my package manager, recently I have decided to sit down and look closely at how I handle my Emacs packages.
For all the interesting design choices and splendid documentation straight
offers, I have never used neither its version freezing capabilities nor the
chances to edit the source code of a package to try possible fixes before
sending patches upstream. Two reasons, mainly:
- I update my packages on a daily basis, accepting the risk of breakages in order to signal them to the maintainers and offer some help;
- when I want to send a patch, I have the source code of the package I am working on outside of my Emacs configuration to avoid leaving something messy around.
These are not issues with straight, of course. It all depends on what one needs
from their package manager.
One of the major benefits that straight brought to my setup is a boost in
startup speed. However, why don’t give package-quickstart a try? Setting
package-quickstart to t instructs package.el to pre-compute an autoload
file so that the activation of packages can be done much faster, resulting in a
faster
startup.
And indeed it does, resulting in more or less the same 0.4 seconds that I was
getting with straight.
One thing to be aware of is that, as the documention of package-quickstart
suggests, “the use of ‘package-quickstart-refresh’ every time the activation
need to be changed, such as when ‘package-load-list’ is modified” is required.
Hence, I added an :after-while advice to package-menu-execute (bound to
x in Package Menu) to make sure package-quickstart-refresh is run
after every upgrade.
Again, mine is not an argument against straight. It’s still a great package
manager and a fantastic alternative to the built-in package.el. However, these
days my Emacs interactions do not need the fine-grained control straight
provides.