Spacemacs - Managing Broken Emacs Packages

There is a great deal of development in Spacemacs and the wider Emacs community, especially around the new features of Emacs 26. So sometimes bugs appear in Emacs packages, but usually for not very long. Here is a simple guide to avoiding broken packages in your Spacemacs environment on the rare occasion that this happens.

One way to track bugs is to watch the Spacemacs Github repository. You can also join the Spacemacs discussions on Gitter.im

Rolling back a package update

I update Emacs packages at least 1 a month using the Update Packages link on the Spacemacs homepage. If one of the new versions of a packages contains a bug, then I perform a rollback using the Rollback Package Updates link.

Spacemacs - Home - Update Packages

Pinning a version for a known buggy package

If you know there is a bug with a specific package before you update all the packages, then you can add the name of that package to dotspacemacs-frozen-packages list.

You need to restart Spacemacs for the change to take effect, but afterwards you can update the rest of your packages without updating any of the frozen packages.

Rollback is not an option

If you can’t rollback, you can tell Spacemacs to install a working version of the broken package by adding it to spacemacs-additional-packages with a recipe.

For example, at the initial time of writing there was a bug in the smartparens package although this was quickly fixed.

To temporarily pin that package to a known good version, we would have added the following to spacemacs-additional-packages:

1
2
3
4
5
(smartparens
:location (recipe
:fetcher github
:repo "Fuco1/smartparens"
:commit "73b9dd0c70f381aee2da8c8b27f79019aa80dcae"))

This temporary fix is no longer need as the Smartparens package was quickly fixed by the author. Smartparens is only used as an example. Thank you.

Summary

We have discussed an easy way to manage broken Emacs packages with Spacemacs, so hopefully you can quickly fix any situation that may occur with packages.

If you do find any bugs in a package then you can also submit an issue or pull request to the relevant package so you wont need to manage frozen or additional packages for long.

My thanks and gratitude goes out to all the Spacemacs and Emacs maintainers and contributors who all make Emacs the best tool out there.

Thank you.
@jr0cket


This work is licensed under a Creative Commons Attribution 4.0 ShareAlike License, including custom images & stylesheets. Permissions beyond the scope of this license may be available at @jr0cket
Creative Commons License