Version checks
Often the code you’re writing would be depending on the version of
some external tool (say git
) or Emacs itself. Version checks in Emacs are pretty
easy - just use the built-in functions version=
, version<=
or version=
.
Let’s illustrate this with an example. Prelude requires at least GNU Emacs 24.1 to run and on startup it performs the following check:
(when (version< emacs-version "24.1")
(error "Prelude requires at least GNU Emacs 24.1"))
Simple and effective. The version
functions are pretty smart and recognize most popular version formats correctly.
Note that version string “1” is equal to “1.0”, “1.0.0”, “1.0.0.0”,
etc. That is, the trailing “.0”s are insignificant. Also, version
string “1” is higher (newer) than “1pre”, which is higher than “1beta”,
which is higher than “1alpha”. Also, “-CVS” and “-NNN” are treated
as alpha versions.
If you’re writing an Emacs package you can also add an explicit Emacs version dependency in the packge metadata:
;; Package-Requires: ((emacs "24.1"))
That way users of older Emacsen would not see a version of your package targeting newer Emacsen.