package.el or straight.el for a reproducible Emacs config across machines?
0 reputation · 06 Jul 2026, 17:57 UTC
Goal
I want an Emacs configuration I can reproduce on a fresh machine with minimal manual steps, and I am deciding between the built-in package.el and straight.el as the package manager. Assume Emacs 29 or later.
The trade-off as I understand it
package.el ships with Emacs and installs into ~/.emacs.d/elpa, but reproducibility seems to depend on me manually tracking which packages and archive states were installed. straight.el declares dependencies in a single init file and can mirror packages locally, which sounds better for offline or restricted-network setups, but it requires upfront configuration of the straight root and a mirror URL that must be maintained.
One constraint that matters to me: I sometimes work on machines without reliable network access, and I have read that package.el does not natively support offline archives while a stale straight.el mirror can fail silently.
Unresolved points
- For a single-user config synced across three machines, does straight.el's local mirror actually deliver more reliable reproducibility than a carefully maintained package.el selected-packages list?
- How do people handle the Emacs major-version upgrade problem (e.g., 29 to 30 breaking package compatibility) with either approach?
- What is the simplest verification routine to confirm a fresh install matches the recorded package state under each manager?