emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: package.el dependencies


From: Thierry Volpiatto
Subject: Re: package.el dependencies
Date: Mon, 02 Feb 2015 16:33:28 +0100

Thierry Volpiatto <address@hidden> writes:

>> And one more thing. Why did you use `(package--get-deps p 'direct)' in
>> this snippet? Passing the `direct' argument will cause it to only
>> return 2nd level dependencies at most (direct dependencies of the
>> direct dependencies).

Consider following example using this definition of package--get-deps:

--8<---------------cut here---------------start------------->8---
(defun package--get-deps (pkg &optional only)
  (let* ((pkg-desc (cadr (assq pkg package-alist)))
         (direct-deps (cl-loop for p in (package-desc-reqs pkg-desc)
                               for name = (car p)
                               when (assq name package-alist)
                               collect name))
         (indirect-deps (unless (eq only 'direct)
                          (cl-loop for p in direct-deps
                                append (package--get-deps p 'direct)))))
    (cl-case only
      (direct   direct-deps)
      (separate (list direct-deps indirect-deps))
      (indirect indirect-deps)
      (t        (append direct-deps indirect-deps)))))
--8<---------------cut here---------------end--------------->8---

Here the dependencies of the package "jedi":

(package--get-deps 'jedi 'direct)
=>(epc auto-complete python-environment)

(package--get-deps 'epc 'direct)
=>(concurrent ctable)

(package--get-deps 'concurrent 'direct)
=>(deferred)

(package--get-deps 'ctable 'direct)
=>nil

(package--get-deps 'auto-complete 'direct)
=>(popup)

(package--get-deps 'python-environment 'direct)
=>(deferred)

(package--get-deps 'jedi)
=>(epc auto-complete python-environment concurrent ctable popup deferred)

As you can see all the dependencies are here and there is no duplicates.

-- 
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]