emacs-devel
[Top][All Lists]
Advanced

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

Re: feature/package+vc 04c4c578c7 3/4: Allow for packages to be installe


From: Philip Kaludercic
Subject: Re: feature/package+vc 04c4c578c7 3/4: Allow for packages to be installed directly from VCS
Date: Tue, 18 Oct 2022 20:43:01 +0000

Philip Kaludercic <philipk@posteo.net> writes:

> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>
>>> +          ;; Add `package-vc' data
>>> +          (let ((spec (cdr pkg-spec))
>>> +                (ups (list :upstream 'Git nil nil nil)))
>>> +            (if (null (plist-get spec :url))
>>> +                (setf (nth 2 ups) (concat 
>>> "https://git.savannah.gnu.org/git/";
>>> +                                          elpaa--gitrepo)
>>> +                      (nth 3 ups) (plist-get spec :lisp-dir)
>>> +                      (nth 4 ups) (concat elpaa--branch-prefix pkg))
>>> +              (setf (nth 2 ups) (plist-get spec :url)
>>> +                    (nth 3 ups) (plist-get spec :lisp-dir)
>>> +                    (nth 4 ups) (plist-get spec :branch)))
>>> +            (push ups extras))
>>
>> I think rather than invent a new format and duplicate that info into
>> `archive-contents`, pushing us to worry about its size, I'd prefer to
>> just stash a copy of `elpa-packages` alongside `archive-contents`.
>
> That sounds like a good idea, as long as we are fine with
> "elpa-packages" being a public interface that couldn't just be changed
> at will.
>
> I'll try it out and report back.

I have pushed a first draft and it appears to work.  It doesn't yet
handle all attribute (such as :doc), but that should be doable when I
find the time.

I wanted to add support for elpa-admin.el, and it will boil down to
something like this:

  (with-temp-buffer
    (let ((filename (expand-file-name "elpa-packages" dir))
          (standard-output (current-buffer)))
      ;; Remove and compress the contents of the "elpa-pacakges"
      (prin1 (elpaa--get-specs))
      (write-region nil nil filename)))

but I am uncertain where to add it, so that it only runs when necessary.
Do you have any ideas?



reply via email to

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