Skip to content

Obsoletion of dash functional.el

Basil L. Contovounesios edited this page Feb 6, 2021 · 7 revisions

Contents

Background

The dash-functional package comprised a collection of handy combinators, i.e., higher-level functions that manipulate and compose other functions.

The package was split off from dash due its reliance on lexical-binding, which required Emacs version 24 or later. See issue #45.

Now that dash itself depends on Emacs version 24 or later, there is no longer a need to keep the two packages separate, and the functionality provided by dash-functional can and should be absorbed by dash. See issue #356.

Transition plan

All definitions in dash-functional will be moved (not copied) into dash, and will be replaced with a deprecation warning.

The first release of dash to contain all definitions from dash-functional will be version 2.18.0.

The first release of dash-functional to depend on dash version 2.18.0 will be version 1.3.0.

Both releases will happen simultaneously.

The near-empty transitional dash-functional package will remain unmaintained, but will exist for backward compatibility for an indefinite period of time before finally being removed from GNU ELPA and MELPA.

What do I do? (Maintainers)

If you are a maintainer of a package that depends on dash-functional, then you should update your package to instead depend on dash version 2.18.0 or later.

This is usually achieved by updating your Package-Requires library header. For example, if the header currently lists something like the following:

;; Package-Requires: ((dash "2.0.0") (dash-functional "1.2.0"))

then it should be updated as follows:

;; Package-Requires: ((dash "2.18.0"))

Any calls to (require 'dash-functional) or similar should be removed from your package, and replaced with (require 'dash).

What do I do? (Users)

If you use any packages that still depend on dash-functional, either directly or indirectly, then you will have to wait until all of them have transitioned away from it before you can remove it. See (info "(emacs) Package Installation").

You are encouraged to bring up this issue with the maintainers of said packages, for example by reporting it on their issue tracker, so that they may transition away from dash-functional sooner.