At some point, I found a web page that described using Cask
and Pallet
to configure emacs. I got that working, and life was good. I recently upgraded my version of Cask
to 0.9.0, and now I find this in cask.el
:
(define-obsolete-function-alias 'cask-initialize nil "22.1"
"In particular, I would not =require cask= in your dot.emacs
since cask is now largely a command-line tool independent of
whatever you do within emacs. If you are calling
=cask-initialize= in your dot.emacs or harken back to the bygone
era of [[https://github.com/rdallasgray/pallet][pallet]], I'm
afraid you're on your own.")
My .emacs
does indeed have (require 'cask "/path/to/cask.el") (cask-initialize))
Given that the most recent change in pallet is 6 years ago, it's clear that I've fallen behind current practices. However, when I search for things like "emacs cask without pallet", all I find is advice on how to configure emacs with cask
and pallet
.
I was able to get things working with
(let* ((cask-source-list '("~/.cask/cask.el" "/usr/local/share/emacs/site-lisp/cask/cask.el"))
(cask-source (cl-find-if #'file-exists-p cask-source-list)))
(when cask-source
(require 'cask cask-source)
(cask--initialize)))
(Note the double dash in the initialize call.) However, since the comment specifically advises against requiring cask
, I feel this is still not current best practice.
What is the current best practice for managing packages?
I am happy with either "go to this web page, which explains it" or "add these three lines to the start of your .emacs
".
If the answer is "don't use cask; use this [link here] instead", that also works, especially if there is a simple way to migrate my installed packages to the new system.