Package management and configuration in emacs
What’s the best way to manage packages in emacs? I’ve tried quite a few and prefer
I used this until I ran into two problems:
- Using packages not yet in elpa or melpa easily from github
- “https://elpa.gnu.org/packages/archive-contents” “Bad Request”
Maybe now there are better solutions, but I moved on to straight.el.
Sometimes I think about returning because I’ve found sticking to base packages that closely follow emacs conventions seems to make debugging and maintaining my configuration easier for some reason.
This also reminds me of
Next-generation, purely functional package manager
Init-file and version lockfiles as the sole source of truth. No persistent state kept elsewhere.
100% reproducible package management, accounting for changes in packages, recipe repositories, configuration, and the package manager itself.
In practice though, I kept running into some issue where I had to keep re-running the
straight-check-packages command or likely some other command.
Nix builds packages in isolation from each other. This ensures that they are reproducible and don’t have undeclared dependencies, so if a package works on one machine, it will also work on another.
To my surprise I’ve had 0 issues with this method of Package management and configuration in emacs.
For more details on this, see Replacing straight.el with Nix to manage my emacs packages.