It’s time for a new Cask release. I began working on Cask v0.6 around christmas and now, over 200 commits later, it’s finally ready.
To upgrade, run:
$ cask upgrade
This release includes a lot of new features, which I will describe below.
We want to allow other packages to build upon Cask, such as Pallet. Now Cask has a nice API for that purpose.
See http://cask.github.io/api.html for more information.
There is a new directive, called files
. It specifies what files
should be included when building the packages. For example:
(files "foo.el" "foo-core.el")
If the files
directive is not used, it will use the default patterns
from the package-build.el
package.
This directive is used for two new commands build
and package
, see
more information below.
Cask has always had a cask help
command to list information about
each command and option. Now you can do it for a specific command, for
example: cask help exec
Here are the new commands:
files
- Lists all files (see http://cask.github.io/usage.html#files)build
- Compile all Emacs Lisp files specified in the files
pattern (see http://cask.github.io/usage.html#build)exec-path
- New alist for the path
command (see http://cask.github.io/usage.html#exec-path)clean-elc
- Remove all byte compiled files (see http://cask.github.io/usage.html#clean-elc)link
- Create link to local package (see http://cask.github.io/usage.html#link and below)package
- Create an ELPA package of this project (see http://cask.github.io/usage.html#package)upgrade-cask
- To avoid confusion between the update
and upgrade
command, this command was added. It’s simply an alias to the upgrade
command.Cask has a new and improved website. See http://cask.github.io.
This feature allow you to install dependencies from VCS sources. I use this for my yasnippets collection. I want to use a separate repository and I don’t want to release an ELPA package for it. I’ve used a submodule for this previously, but now I simply do:
(depends-on "yasnippets" :git "https://github.com/rejeep/yasnippets.git" :files ("*" (:exclude ".git")))
See http://cask.github.io/dsl.html#depends-on for more information.
Linking is a new functionality that allow you to link a Cask dependency to a local directory.
This is useful when you want to test changes to a package. Let’s say I
make changes to my f.el
package, then I can link that package in
another package that use f.el
to make sure it really works. For
example:
$ cask link f ~/Code/f.el
Run cask help link
for more information about linking.
Emacs is not optimal for CLI programs. It prints a lot of messages when you don’t want it. Cask now uses the shut-up package to be a bit more quiet. Unfortunately, it’s not possible to hide all output. We have reported this as an issue to the Emacs developers and hopefully they will do something about it.
If you want full output, use the --verbose
option.
Previously, the path
and load-path
commands included every
directory in the .cask/EMACS-VERSION/elpa
directory. Now it only
includes package directories.
Previously, if you removed a package from the Cask
-file it would
still be loaded when you started Emacs. Now, only the packages
specified in the Cask
-file are loaded.
This release adds a lot of functionality, but does not break a lot of
old functionality. The only thing breaking, is that the old command
called package
is now called pkg-file
.
That’s it folks, enjoy!