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: Richard Stallman
Subject: Re: feature/package+vc 04c4c578c7 3/4: Allow for packages to be installed directly from VCS
Date: Tue, 01 Nov 2022 07:10:06 -0400

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > I'm not quite sure what that means -- what is the "foundation", and why
  > > is there a hurry to merge it in?

                                                         Of course this
  > shouldn't be rushed, but I believe the branch is currently in a
  > functional state that would be useful.

That may be true -- I don't know, so I won't dispute it.
However, before we merge it in we should get the command
interface right.

  > > The code for checking out the current-version repo of an ELPA package
  > > should be very little different from the code for checking out the
  > > upstream repo.  If the latter is already working, getting the former
  > > to work equally well shouldn't take long.  Would you please do that?

  > It can be done, but I believe it would be best to add those kinds of
  > annotations to the server side (elpa-admin.el).  The issue is that
  > figuring out what version was used to release a package is non-trivial
  > using just vc.

I find it hard to understand that last sentence.  What does it mean,
"what version was used to release a package"?

Do you mean, "what version _in the upstream repo_ was copied into the
ELPA repo"?  If so, I think that is a spurious problem -- we don't
need to know which upstream version.  At least, not for this purpose.
It might be useful to keep track of that for some other purpose; if
so, I have nothing against doing so.  But it isn't related to this
feature.

ELPA has its own repo.  By definition, the current version of the
package its latest version of in the ELPA repo.  To get the package
source in a repo, for the current ELPA version, should simply check it
out from the ELPA repo.  This has nothing to do with the ELPA repo.

These two operations (check out from ELPA repo, and check out from
upstream repo) are different in purpose.  It is important to avoid
confusion about whether the checkout contains the current version
or the upstream repo.

So they should have different command names.

Also, the results should be distinguishable by directory name.  A
checkout from the upstream repo should have `upstream' in its name,
while a checkout from the ELPA repo should have `current' in its name.
This too will help users avoid misremembering which version they
are operating on.

I think we should separate checking out the upstream source from a
repo and "installing" for use by default in your Emacs.  There are
several reasons to want to see the upstream source, different
scenarios.

* A user might want to start using the upstream version by default.

* A user might want to work on changes in the upstream version
and try those changes from time to time, but not most of the time.

* A user who has started using the upstream version by default
might wish to disable use of that version because it has some flaw,
and reemable it later.

So there needs to be a way to enable and disable use of a specific
ELPA version checkout of a package.

I think we should separate the operations of checking out a version
from a repo, and enabling or disabling that version for use by Emacs.

  > > I think `package-dev-repo' would be the command now called
  > > `package-vc-install'.

  > I am fine with renaming the file "package-vc" to "package-dev", but the
  > "-repo" suffix is not clear to me.  "-install" is clear in the sense
  > that it will fetch and activate the package, just like
  > "package-install",

How about `checkout' instead of `repo'?  `package-checkout' to check
out from the ELPA repo, and either `package-upstream-checkout' or
`package-dev-checkout' for the upstream repo.

We could also have `package-enable-version' and `package-disable-version'
to enable and disable actual use of a package checkout by Emacs.

Is it feasible to specify which version of which package by selecting
a directory containing a checkout, or by putting point in a list of
such checkouts?  That would be a convenient interface, I think.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





reply via email to

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