Bug#889794: elpa-cider: should inject dependencies from Debian packages

Sean Whitton spwhitton at spwhitton.name
Wed Feb 7 00:15:34 UTC 2018

Package: elpa-cider
Version: 0.16.0+dfsg-1
Severity: wishlist
Control: block -1 by 885409

elpa-cider's README.Debian says:

    The usual way to start a CIDER REPL is `M-x cider-jack-in`.  This
    requires CIDER's nREPL middleware be available in your project.
    CIDER can automatically download and inject this middleware during
    `M-x cider-jack-in`, but CIDER in Debian has this feature disabled
    by default to avoid surprise downloads from the Internet.
    You can either toggle the Emacs variable
    cider-inject-dependencies-at-jack-in to t in your ~/.emacs, which
    will enable transparent download and injection of CIDER's
    middleware, or add the middleware as dependencies of your project.
    See the "CIDER's nREPL middleware" subsection of the "Installation"
    section of CIDER's manual.

Ideally, we would patch CIDER such that it would inject middleware which
had been installed by means of Debian packages.  Then elpa-cider could
depend on those packages, and since CIDER would never try to download
its middleware from the Internet, we could set
cider-inject-dependencies-at-jack-in back to t.

Notes on my attempts to make this happen:

When using lein, CIDER users lein's `update-in` subcommand to inject its
dependencies.  So we should be able to use `update-in` to add a local
repository, like this:

    lein update-in : :repositories conj '["debian" \
        "file:/usr/share/maven-repo"]' -- update-in :dependencies conj \
        '[org.clojure/tools.nrepl "0.2.12" :exclusions \
        [org.clojure/clojure]]' -- update-in :plugins conj \
        '[cider/cider-nrepl "0.15.1"]' -- repl :headless :host ::

Alternatively, it might work to use a CIDER profile which sets the
mirror or the repositories:

    {:mirrors {#".+" {:url "file:/usr/share/maven-repo"}}}


    {:repositories [["debian" "file:/usr/share/maven-repo"]]}

Note that if we go the profiles approach, we would need to add support
for /etc/leiningen/profiles.d; currently only ~/.lein/profiles.d/,
~/.lein/profiles.clj and /etc/leiningen/profiles.clj are supported.

-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (900, 'testing'), (100, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.14.0-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages elpa-cider depends on:
pn  elpa-clojure-mode   <none>
ii  elpa-pkg-info       0.6-2
pn  elpa-queue          <none>
ii  elpa-seq            2.19-1
pn  elpa-spinner        <none>
ii  emacsen-common      2.0.8
pn  leiningen | gradle  <none>

Versions of packages elpa-cider recommends:
ii  emacs  47.0

Versions of packages elpa-cider suggests:
pn  cider-doc  <none>

Sean Whitton
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-clojure-maintainers/attachments/20180206/e71dd6e7/attachment.sig>

More information about the Pkg-clojure-maintainers mailing list