unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Philip Kaludercic <philipk@posteo.net>
Cc: emacs-devel@gnu.org
Subject: Re: Easy configuration of a site-lisp directory
Date: Wed, 25 Aug 2021 13:27:04 -0400	[thread overview]
Message-ID: <jwvwno978t4.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <87a6l57ew7.fsf@posteo.net> (Philip Kaludercic's message of "Wed,  25 Aug 2021 14:55:20 +0000")

Philip Kaludercic [2021-08-25 14:55:20] wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> Philip Kaludercic [2021-08-25 11:13:49] wrote:
>>> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>>> Max Brieiev [2021-08-23 12:14:46] wrote:
>>>>> So is there any conclusion in this long thread about preferable setup
>>>>> for the case described in the original post?  And making local git
>>>>> repositeries be package.el aware.
>>>>
>>>> From my point of view, the "preferable setup" is for someone to spice up
>>>> `elpa-admin.el` to make it more user-friendly for that use-case.
>>>
>>> I could look into this, because I was intending to work on elpa-admin.el
>>> a bit anyway.  But this would mean that it wouldn't work OOTB, right?
>>
>> Not sure what you mean by that, but I'm pretty sure the answer is no.
>
> My suggestion to add something like site-lisp.el to Emacs itself was to
> allow anyone to use unpackaged elisp code on their local system, without
> having to manually bother with updating load-path and autoloading.

Right, and the approach I use in elpa-admin.el indeed allows that.
To recap, here's what it does:

- Git clone <foo> from upstream into .../somewhere/<foo>.
- In that directory, create a <foo>-pkg.el and a <foo>-autoloads.el.
- Byte-compile the .el files.
- Add `.../somewhere` to `package-directory-list`.

The last step is only done once and forall rather than once per package.

IOW it acts as an alternative package installer: package.el could/should
be split into a part that deals with using (activating) the packages
currently installed (i.e. basically `package-activate-all` and the code
it uses) and a part that deals with ELPA repositories and installs
packages into (and remove froms) `package-user-dir`.
[ Side note: the byte-compilation should be moved out of the
  installation step, not only so it can be shared between different UIs
  and installers, but also so we can re-compile upon request.  ]

Then of course you'll want to add further features:

- commands to update packages, i.e. do a `git pull` and recreate/refresh
  the two files.
- support for creating Info docs out of Texinfo.
- support for packages where the Elisp code is not at the root of the
  clone but in some subdirectory.
- allow the user to choose to select an actual *release* rather than the
  bleeding edge.

The above listed features are those that `elpa-admin.el` currently
supports (to some extent, in one form or another), but of course, there
could be more.

Currently, for many packages all you need is the URL of the upstream
repository, but for others we need extra information in the "package
spec", such as where to find the Texinfo source.  In the context of
`elpa-admin.el` the extra info for this "package spec" are provided in
the `elpa-packages` file but I think it would make sense to make it
possible for the package to provide this info directly (e.g. via
additional pseudo-headers in the <foo>.el file).


        Stefan


PS: Note also that `elpa-admin.el` includes a fair bit of code that does
other things, not relevant to this discussion, such as creating tarballs
for ELPA repositories, creating HTML pages, etc...




  reply	other threads:[~2021-08-25 17:27 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-08 15:40 Easy configuration of a site-lisp directory Philip Kaludercic
2021-08-08 18:18 ` Stefan Monnier
2021-08-08 18:53   ` Philip Kaludercic
2021-08-08 20:03     ` Stefan Monnier
2021-08-08 22:43   ` dick
2021-08-08 23:16     ` Stefan Monnier
2021-08-09  0:43       ` dick
2021-08-09  3:13         ` Clément Pit-Claudel
2021-08-09 16:59           ` Eli Zaretskii
2021-08-09 18:33             ` Clément Pit-Claudel
2021-08-09 18:49               ` dick
2021-08-09 22:11                 ` Clément Pit-Claudel
2021-08-10  8:24                   ` Arthur Miller
2021-08-10  8:31                 ` Arthur Miller
2021-08-09 18:52               ` Eli Zaretskii
2021-08-09 22:14                 ` Clément Pit-Claudel
2021-08-10 11:55                   ` Eli Zaretskii
2021-08-10  8:10               ` Arthur Miller
2021-08-10 12:06                 ` Eli Zaretskii
2021-08-10 13:43                   ` Yuri Khan
2021-08-10 14:01                     ` Eli Zaretskii
2021-08-10 15:10                       ` Yuri Khan
2021-08-10 15:39                         ` dick
2021-08-10 15:49                           ` Stefan Monnier
2021-08-10 17:31                           ` Arthur Miller
2021-08-10 15:44                         ` Eli Zaretskii
2021-08-10 17:25                           ` Clément Pit-Claudel
2021-08-10 17:50                             ` Eli Zaretskii
2021-08-10 18:06                               ` Clément Pit-Claudel
2021-08-10 18:23                                 ` Eli Zaretskii
2021-08-10 20:51                                 ` Stefan Monnier
2021-08-11  2:23                                   ` Eli Zaretskii
2021-08-11  5:31                                     ` Stefan Monnier
2021-08-11 13:42                                     ` Basil L. Contovounesios
2021-08-11 16:34                                       ` Eli Zaretskii
2021-08-11 18:21                                         ` Basil L. Contovounesios
2021-08-12  5:48                                           ` Eli Zaretskii
2021-08-10 17:35                         ` Clément Pit-Claudel
2021-08-10 17:24                     ` Arthur Miller
2021-08-10 17:22                   ` Arthur Miller
2021-08-10 17:45                     ` Eli Zaretskii
2021-08-09  6:52     ` Arthur Miller
2021-08-09 11:50       ` dick
2021-08-09 15:27         ` Arthur Miller
2021-08-19  9:25 ` Philip Kaludercic
2021-08-19 20:24   ` Arthur Miller
2021-08-19 21:43     ` Arthur Miller
2021-08-19 21:47       ` Arthur Miller
2021-08-19 21:59         ` Philip Kaludercic
2021-08-20  0:21           ` Arthur Miller
2021-08-20 21:36             ` Arthur Miller
2021-08-21  1:56               ` Stefan Monnier
2021-08-21  2:46                 ` Arthur Miller
2021-08-21  3:12                   ` Arthur Miller
2021-08-21  6:39                     ` Eli Zaretskii
2021-08-21  6:48                       ` tomas
2021-08-21  7:00                         ` Eli Zaretskii
2021-08-21  7:19                           ` symlinks and W32 [was: Easy configuration of a site-lisp directory] tomas
2021-08-21 14:15                             ` Arthur Miller
2021-08-21 14:20                               ` Eli Zaretskii
2021-08-21 19:12                                 ` Arthur Miller
2021-08-21 14:34                       ` Easy configuration of a site-lisp directory Arthur Miller
2021-08-21 14:42                         ` Eli Zaretskii
2021-08-21 19:10                           ` Arthur Miller
2021-08-21 19:18                             ` Eli Zaretskii
2021-08-21 20:25                               ` Arthur Miller
2021-08-22  6:03                                 ` Eli Zaretskii
2021-08-25 10:47     ` Philip Kaludercic
2021-08-25 22:13       ` Arthur Miller
2021-08-26  9:42         ` Philip Kaludercic
2021-08-26 15:58           ` Arthur Miller
2021-08-20 10:23   ` Augusto Stoffel
2021-08-20 12:47     ` Arthur Miller
2021-08-23  9:14 ` Max Brieiev
2021-08-24 21:35   ` Stefan Monnier
2021-08-25 11:13     ` Philip Kaludercic
2021-08-25 14:37       ` Stefan Monnier
2021-08-25 14:55         ` Philip Kaludercic
2021-08-25 17:27           ` Stefan Monnier [this message]
2021-08-26  0:16             ` Arthur Miller
2021-08-26  4:10               ` Stefan Monnier
2021-08-26 15:38                 ` Arthur Miller
2021-08-26 18:03                   ` Stefan Monnier
2021-08-26 21:40                     ` Arthur Miller
2021-08-25 22:29           ` Arthur Miller
  -- strict thread matches above, loose matches on Subject: below --
2021-08-12  2:44 No Wayman
2021-08-12 12:41 ` dick
2021-08-12 14:48   ` No Wayman
2021-08-12 16:24     ` dick

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=jwvwno978t4.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=emacs-devel@gnu.org \
    --cc=philipk@posteo.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).