unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* CVS is the `released version'
@ 2007-05-09 19:56 Robert J. Chassell
  2007-05-09 19:59 ` Thomas Hühn
                   ` (4 more replies)
  0 siblings, 5 replies; 146+ messages in thread
From: Robert J. Chassell @ 2007-05-09 19:56 UTC (permalink / raw)
  To: emacs-devel

Remember, for many people, but not for many moderns, CVS provides the
`released version' of GNU Emacs.  It is the prime version used by
those who contribute.  It is not a binary that cannot be changed.
Once in a while, development needs to be frozen while bugs are fixed.

Since more and more people are coming to think of or are forced to use
big numbered releases and eschew the daily releases, they view a delay
between one big numbered release and another as bad.  But those who
enjoy daily releases hardly notice.

I suspect we are seeing a conflict between cultures: on the one hand,
those who install a new release of GNU Emacs every day or almost every
day and, on the other hand, those who look for big numbered releases,
such as that from Emacs 21 to Emacs 22.
    
The world is tending towards those who look for big numbered releases
even though most contributions are small.

-- 
    Robert J. Chassell                          GnuPG Key ID: 004B4AC8
    bob@rattlesnake.com                         bob@gnu.org
    http://www.rattlesnake.com                  http://www.teak.cc

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-09 19:56 CVS is the `released version' Robert J. Chassell
@ 2007-05-09 19:59 ` Thomas Hühn
  2007-05-10  2:00   ` Robert J. Chassell
  2007-05-09 20:12 ` David Kastrup
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 146+ messages in thread
From: Thomas Hühn @ 2007-05-09 19:59 UTC (permalink / raw)
  To: emacs-devel

"Robert J. Chassell" <bob@rattlesnake.com> writes:

> Remember, for many people, but not for many moderns, CVS provides the
> `released version' of GNU Emacs.  It is the prime version used by

Really? Under all circumstances?

It has worked over the last months and years quite well, but do you
really want to recommend people to use CVS Emacs when heavy development
is under way? Say, when those unicode-2 branch gets merged?

Thomas

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-09 19:56 CVS is the `released version' Robert J. Chassell
  2007-05-09 19:59 ` Thomas Hühn
@ 2007-05-09 20:12 ` David Kastrup
  2007-05-10  2:18 ` Chong Yidong
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-09 20:12 UTC (permalink / raw)
  To: bob; +Cc: emacs-devel

"Robert J. Chassell" <bob@rattlesnake.com> writes:

> Remember, for many people, but not for many moderns, CVS provides the
> `released version' of GNU Emacs.  It is the prime version used by
> those who contribute.  It is not a binary that cannot be changed.
> Once in a while, development needs to be frozen while bugs are fixed.
>
> Since more and more people are coming to think of or are forced to use
> big numbered releases and eschew the daily releases, they view a delay
> between one big numbered release and another as bad.  But those who
> enjoy daily releases hardly notice.
>
> I suspect we are seeing a conflict between cultures: on the one hand,
> those who install a new release of GNU Emacs every day or almost every
> day and, on the other hand, those who look for big numbered releases,
> such as that from Emacs 21 to Emacs 22.
>     
> The world is tending towards those who look for big numbered releases
> even though most contributions are small.

I can't find I agree even remotely.  A release is a point of
stability, one where one tries to make reasonably sure that the
overall consistency (of packages working together and with the core,
and of code and documentation) is in reasonable shape, for whoever
happens to use the software.

There are development phases where most changes are incremental and
where it becomes a reasonable operation to track the trunk.  The Linux
kernel development has changed its mode of operation and its
definition of "stable" and "release" a lot over the years.  Emacs
development has pretty much stalled in release anticipation, leading
to a version where one could have made a release pretty much anytime
in the last two years and have the users get something _better_ than
they are using now, and the developers a new point from which to
continue.

Architectural changes have not happened in the last few years, even
though some architectures have had a lot of problems shaken out
(Windows and MacOSX, two proprietary platforms).  Technologies like
emacs-unicode2, and even somewhat less radical changes like multitty
are not fit to be taken in mid-stride.  While the emacs-unicode2
branch is currently comparatively stable, this is not an accident but
the result of a _lot_ of duplicate work over years because of the
pent-up release.

There are no easy answers: XEmacs has decoupled packages and releases
them separately and often.  I am not convinced of the results: there
appears to be quite some bit rot happening, the beta core has been
unstable for a large time, anyway, and the packages are often not
updated or fixed for long amounts of time.

But never releasing anything for which one has at least some
inclination to stand behind it and call it "this is as good as it gets
right now" is not a good idea either, in my book.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-09 19:59 ` Thomas Hühn
@ 2007-05-10  2:00   ` Robert J. Chassell
  2007-05-10  6:03     ` Thomas Hühn
  2007-05-10  6:58     ` David Kastrup
  0 siblings, 2 replies; 146+ messages in thread
From: Robert J. Chassell @ 2007-05-10  2:00 UTC (permalink / raw)
  To: emacs-devel

    It has worked over the last months and years quite well, but do you
    really want to recommend people to use CVS Emacs when heavy development
    is under way? Say, when those unicode-2 branch gets merged?

Then I recommend people use an older version.  That is what the

    cvs update -D "10 days ago"

command is for.

David Kastrup <dak@gnu.org> says 

   ... A release is a point of stability, one where one tries to make
   reasonably sure that the overall consistency (of packages working
   together and with the core, and of code and documentation) is in
   reasonable shape, for whoever happens to use the software.

That presumes most people are not going to contribute, which may well
be true.  The view may not be a presumption, it may be an accurate
description.  But the issue may be one of morals, not evidence.  The
argument may be that people should find it easy to contribute.

In any case, David Kastrup's view does not reflect the experience
those who I have been calling (to myself) `the ancients'.  RMS is a
wonderful example of them, since he first wrote Emacs in the 1970s and
does not change habits if he can keep them.  (I am `ancient', too -- I
remember hearing on the radio that Sputnik was launched and being
amazed that the announcer had to explain that it was an `artificial
moon' -- but that is a totally different story.)


   But never releasing anything for which one has at least some
   inclination to stand behind it and call it "this is as good as it
   gets right now" is not a good idea either, in my book.

The point I am trying to make is that some people think Emacs is
released every day.  That is the opposite of `never releasing
anything'.  Often enough, but not always, you can use those releases.
But others do not think of those updates as releases.

-- 
    Robert J. Chassell                          GnuPG Key ID: 004B4AC8
    bob@rattlesnake.com                         bob@gnu.org
    http://www.rattlesnake.com                  http://www.teak.cc

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-09 19:56 CVS is the `released version' Robert J. Chassell
  2007-05-09 19:59 ` Thomas Hühn
  2007-05-09 20:12 ` David Kastrup
@ 2007-05-10  2:18 ` Chong Yidong
  2007-05-10 18:24 ` Ken Manheimer
  2007-05-10 23:05 ` Lukasz Stafiniak
  4 siblings, 0 replies; 146+ messages in thread
From: Chong Yidong @ 2007-05-10  2:18 UTC (permalink / raw)
  To: bob; +Cc: emacs-devel

"Robert J. Chassell" <bob@rattlesnake.com> writes:

> Remember, for many people, but not for many moderns, CVS provides the
> `released version' of GNU Emacs.

The vast majority of users of any software (not just Emacs) use
released versions, not CVS.  Since one of the motivations for
contributing to free and open source software (especially for a
volunteer) is to help people, it's obviously a better idea to spend
one's time working on a project that actually makes releases, since
you would be helping more people.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-10  2:00   ` Robert J. Chassell
@ 2007-05-10  6:03     ` Thomas Hühn
  2007-05-10 11:43       ` Robert J. Chassell
  2007-05-10  6:58     ` David Kastrup
  1 sibling, 1 reply; 146+ messages in thread
From: Thomas Hühn @ 2007-05-10  6:03 UTC (permalink / raw)
  To: emacs-devel

"Robert J. Chassell" <bob@rattlesnake.com> writes:

>     It has worked over the last months and years quite well, but do you
>     really want to recommend people to use CVS Emacs when heavy development
>     is under way? Say, when those unicode-2 branch gets merged?
>
> Then I recommend people use an older version.  That is what the
>
>     cvs update -D "10 days ago"
>
> command is for.

Are you willing to state on the Emacs web site which day's Emacs is
"good enough" for regular use? That must be updated regularly, of
course.

There are quite a few more Emacs users out there than those who read CVS
commits and want to/can decide themselves, whether one day's Emacs is
good.

Such expectations towards users are unrealistic. At best.

Thomas

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-10  2:00   ` Robert J. Chassell
  2007-05-10  6:03     ` Thomas Hühn
@ 2007-05-10  6:58     ` David Kastrup
  2007-05-10 11:58       ` Andrea Russo
  1 sibling, 1 reply; 146+ messages in thread
From: David Kastrup @ 2007-05-10  6:58 UTC (permalink / raw)
  To: bob; +Cc: emacs-devel

"Robert J. Chassell" <bob@rattlesnake.com> writes:

>     It has worked over the last months and years quite well, but do you
>     really want to recommend people to use CVS Emacs when heavy development
>     is under way? Say, when those unicode-2 branch gets merged?
>
> Then I recommend people use an older version.  That is what the
>
>     cvs update -D "10 days ago"
>
> command is for.

Replacing one random date with another is not helping any.  It takes
expertise to know which might be the best date.  A release is
something where the developers as a set of experts agrees.  This
developer knowledge can't be reliably replaced with dice.

It is also hampering development if developers feel compelled to keep
Emacs CVS trunk in a workable state at all times.

> David Kastrup <dak@gnu.org> says 
>
>    ... A release is a point of stability, one where one tries to
>    make reasonably sure that the overall consistency (of packages
>    working together and with the core, and of code and
>    documentation) is in reasonable shape, for whoever happens to use
>    the software.
>
> That presumes most people are not going to contribute, which may
> well be true.

I don't see this at all and don't have the slightest idea why you
would think such a thing.

> The view may not be a presumption, it may be an accurate
> description.  But the issue may be one of morals, not evidence.  The
> argument may be that people should find it easy to contribute.

And they can't contribute if there contributions never end up on a
user's computer.

> In any case, David Kastrup's view does not reflect the experience
> those who I have been calling (to myself) `the ancients'.  RMS is a
> wonderful example of them, since he first wrote Emacs in the 1970s
> and does not change habits if he can keep them.

You should be careful about your examples.  RMS has (quite prudently)
changed his working style on Emacs and the development style several
times.  It is now maintained in CVS, and the CVS has been made open to
public, too.  And he is about to change the habits again, as can be
witnessed by his call for a new Emacs maintainer.

So Richard is quite aware himself when it becomes infeasible to keep
his habits.

>    But never releasing anything for which one has at least some
>    inclination to stand behind it and call it "this is as good as it
>    gets right now" is not a good idea either, in my book.
>
> The point I am trying to make is that some people think Emacs is
> released every day.  That is the opposite of `never releasing
> anything'.  Often enough, but not always, you can use those
> releases.

Because they aren't releases.

> But others do not think of those updates as releases.

Word games don't help in the current situation.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-10  6:03     ` Thomas Hühn
@ 2007-05-10 11:43       ` Robert J. Chassell
  2007-05-10 11:47         ` David Kastrup
  0 siblings, 1 reply; 146+ messages in thread
From: Robert J. Chassell @ 2007-05-10 11:43 UTC (permalink / raw)
  To: emacs-devel

   Are you willing to state on the Emacs web site which day's Emacs is
   "good enough" for regular use?  That must be updated regularly, of
   course.

The issue is not whether I am willing, the issue is whether an expert
would be willing.  I think it would be hard.  As David Kastrup
<dak@gnu.org> says

    It takes expertise to know which might be the best date.

There is no doubt that nowadays

    There are quite a few more Emacs users out there than those who
    read CVS commits ...

That is true.  I think the real question is moral.

We live in an age of professionals.  Often they know more, a huge
amount more, than enthusiastic amateurs.  Professional programmers
know more about programming than people who type reports about
something else.

The moral issue is whether amateurs should give up power to
professionals?

When amateurs give way to professionals, willy-nilly, they promote a
scalable, but awkward social form which gives those on the top more
power than those on the bottom.  Consider RMS and GNU Emacs as
examples.

The alternative, which I know RMS seeks even though he is poor at it,
is a world in which professionals and amateurs cooperate.

That does not mean that professionals do not do their jobs (unless you
presume that professionals are always on top).  But it does mean a
different model.

As for specific points:

    > That presumes most people are not going to contribute, which may
    > well be true.

    I don't see this at all ...

Most of the people I know who are still using Emacs 21 do not
contribute.  Often they don't know how to.

As far as I can see, contribution involves interest and attention.
Most people I know are no more interested in software development than
they are in road construction.  (I think they ought to be interested
in both, but that is another issue.)  Their attention is directed
towards other people or towards non-peopled activities that have
nothing to do with either software development or road construction.

    > The argument may be that people should find it easy to
    > contribute.

    And they can't contribute if there contributions never end up on a
    user's computer.

But if the contribution does end up on a user's computer ... that is
the moral argument.  The moral position is that users fetch a current
release.  Except for instabilities which a professional detects (and
talks about), the release for users will be today's or yesterdays, or
since you may not restart Emacs very often, last month's.

I am not saying that GNU Emacs fits this model.  For one, no good
professional tells amateurs that "today's update is bad" for them (but
possibly good for professionals).  However, I am saying that the claim
that `contributions never end up on a user's computer' is true only if
you presume that users fetch or are forced to fetch big numbered
releases.

    > But others do not think of those [i.e., daily] updates as releases.

    Word games don't help in the current situation.

It is not a word game.

In order to avoid problems, many previously hierarchical
organizations, purely hierarchical, have instituted `matrix
management' and the like.  (Most of the solutions, I think, are crazy;
but they indicate felt problems.)  In the United States, I frequently
see references to `pointy haired bosses'.  These are references to a
character in a cartoon.  Among other things, that cartoon attacks
professional managers because they cannot contribute technically about
that which they know nothing.  Nonetheless, such bosses had to have
known how to become managers.

--
    Robert J. Chassell                          GnuPG Key ID: 004B4AC8
    bob@rattlesnake.com                         bob@gnu.org
    http://www.rattlesnake.com                  http://www.teak.cc

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-10 11:43       ` Robert J. Chassell
@ 2007-05-10 11:47         ` David Kastrup
  0 siblings, 0 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-10 11:47 UTC (permalink / raw)
  To: bob; +Cc: emacs-devel

"Robert J. Chassell" <bob@rattlesnake.com> writes:

> As for specific points:
>
>     > That presumes most people are not going to contribute, which may
>     > well be true.
>
>     I don't see this at all ...
>
> Most of the people I know who are still using Emacs 21 do not
> contribute.  Often they don't know how to.

I was talking about "That presumes".  I don't see at all the
connection.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-10  6:58     ` David Kastrup
@ 2007-05-10 11:58       ` Andrea Russo
  2007-05-10 12:34         ` Thomas Hühn
  0 siblings, 1 reply; 146+ messages in thread
From: Andrea Russo @ 2007-05-10 11:58 UTC (permalink / raw)
  To: David Kastrup; +Cc: bob, emacs-devel

David Kastrup <dak@gnu.org> writes:

>> The view may not be a presumption, it may be an accurate
>> description.  But the issue may be one of morals, not evidence.  The
>> argument may be that people should find it easy to contribute.
>
> And they can't contribute if there contributions never end up on a
> user's computer.

My (very tiny) contributions to GNU Emacs were possible because of the
strong incentive to have the shiny and new features only present in
Emacs CVS (actually I use emacs--cvs--0 Arch archive from Miles).  And
I consider myself an Emacs "user", not a developer.

Sure, one is always free to have development versions of programs
installed in his computer to be able to contribute, but having
incentives is very important imho to start being involved.

The tremendous extensibility of Emacs trough elisp is very helpful to
become a contributor, but I think that bluring the user/developer line
also by having users running the development version (or at least
being able to switch from released to development version in a very
easy way) could be a great goal to achieve.

Just my 2 cents.

Regards,
Andrea.

--
Do not worry about your difficulties in mathematics;
I can assure you that mine are still greater.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-10 11:58       ` Andrea Russo
@ 2007-05-10 12:34         ` Thomas Hühn
  0 siblings, 0 replies; 146+ messages in thread
From: Thomas Hühn @ 2007-05-10 12:34 UTC (permalink / raw)
  To: emacs-devel

Andrea Russo <rastandy@inventati.org> writes:

> The tremendous extensibility of Emacs trough elisp is very helpful to
> become a contributor, but I think that bluring the user/developer line
> also by having users running the development version (or at least
> being able to switch from released to development version in a very
> easy way) could be a great goal to achieve.

If you want "normal" users to use Emacs-CVS, you need to provide regular
snapshots and -- much more important -- you must never ever break Emacs
on the trunc during development.

Thomas

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-09 19:56 CVS is the `released version' Robert J. Chassell
                   ` (2 preceding siblings ...)
  2007-05-10  2:18 ` Chong Yidong
@ 2007-05-10 18:24 ` Ken Manheimer
  2007-05-10 19:05   ` Stefan Monnier
  2007-05-10 20:42   ` David Kastrup
  2007-05-10 23:05 ` Lukasz Stafiniak
  4 siblings, 2 replies; 146+ messages in thread
From: Ken Manheimer @ 2007-05-10 18:24 UTC (permalink / raw)
  To: bob; +Cc: emacs-devel

On 5/9/07, Robert J. Chassell <bob@rattlesnake.com> wrote:

> Remember, for many people, but not for many moderns, CVS provides the
> `released version' of GNU Emacs.  It is the prime version used by
> those who contribute.  It is not a binary that cannot be changed.
> Once in a while, development needs to be frozen while bugs are fixed.
>
> Since more and more people are coming to think of or are forced to use
> big numbered releases and eschew the daily releases, they view a delay
> between one big numbered release and another as bad.  But those who
> enjoy daily releases hardly notice.
>
> I suspect we are seeing a conflict between cultures: on the one hand,
> those who install a new release of GNU Emacs every day or almost every
> day and, on the other hand, those who look for big numbered releases,
> such as that from Emacs 21 to Emacs 22.
>
> The world is tending towards those who look for big numbered releases
> even though most contributions are small.

actually, incremental updates to end users are a *burgeoning* trend,
in certain circles.  "cloud" software, where you run a client that's
obtained from the network, delivers updates any time the managers
decide to release  revisions.  this is not as exotic as it sounds -
we're talking web applications like gmail, yahoo maps, even open
office and firefox have a self-update mode.  (i just opened my
firefox-based google notebook to discover a new look that incorporates
some features which address some of my former peeves.)

that self-update mode even applies to whole operating systems, where
the os vendor can convince their customers it has to be that way - can
you say, "security updates"?, and stealthy dissemination of
property-rights restrictions?

there is a diffference with CVS updates that is much more important
than push-pull, however.

the network-released incremental updates are managed as deliberate,
measured releases, and not just the set of any updates.  it takes
attention - time and discretion - to distinguish the development
frontier from the release frontier, though both can be incremental.  a
"stable"-ish branch in a code versioning arrangement may be a closer
aproximation, certainly more so than the trunk.

i like the idea of an incremental release mechanism for emacs.  but it
needs to be done right - i think xemacs network-based packages update
system doesn't quite do it, though it might be a step in the right
direction.
-- 
ken
http://myriadicity.net

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-10 18:24 ` Ken Manheimer
@ 2007-05-10 19:05   ` Stefan Monnier
  2007-05-11 18:48     ` Richard Stallman
  2007-05-10 20:42   ` David Kastrup
  1 sibling, 1 reply; 146+ messages in thread
From: Stefan Monnier @ 2007-05-10 19:05 UTC (permalink / raw)
  To: Ken Manheimer; +Cc: bob, emacs-devel

> I like the idea of an incremental release mechanism for Emacs.  But it
> needs to be done right - I think XEmacs network-based packages update
> system doesn't quite do it, though it might be a step in the right
> direction.

I'm not sure if unbundling packages can be a help, but as a developper,
I like the fact that I can go and change a bunch of packages in-step without
worrying about backward compatibility (actually, I do have to worry about it
for those packages which are maintained by people who also distribute it as
a separate package and I find it to "constrain my style").

So I'd rather keep the monolithic package, but just have a stable branch
which is fairly liberally open to contributions, so long as those are
non-disruptive.  I guess by "non-disruptive" I mean that the patches are
either "obviously safe" or have an obviously limited impact so that even if
they introduce bugs, these bugs should have a limited impact.  I'm thinking
of bugs such as incorrect indentation or highlighting, as opposed to a crash
or a data corruption.  Also it's important those bugs be fixable in a rather
straightforward way: i.e. no installation of a patch with non-trivial
dependencies such that reverting it might be painful.


        Stefan

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-10 18:24 ` Ken Manheimer
  2007-05-10 19:05   ` Stefan Monnier
@ 2007-05-10 20:42   ` David Kastrup
  1 sibling, 0 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-10 20:42 UTC (permalink / raw)
  To: Ken Manheimer; +Cc: bob, emacs-devel

"Ken Manheimer" <ken.manheimer@gmail.com> writes:

> i like the idea of an incremental release mechanism for emacs.  but
> it needs to be done right - i think xemacs network-based packages
> update system doesn't quite do it, though it might be a step in the
> right direction.

XEmacs' system does not cater for packages created outside of a
central packaging structure.  If we have a package system, it should
make it possible for third parties to provide packages without us
having to check our own versions of them: that's a scenario that is
just begging to result in bit rot and outdated packages.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-09 19:56 CVS is the `released version' Robert J. Chassell
                   ` (3 preceding siblings ...)
  2007-05-10 18:24 ` Ken Manheimer
@ 2007-05-10 23:05 ` Lukasz Stafiniak
  2007-05-10 23:23   ` Davis Herring
  4 siblings, 1 reply; 146+ messages in thread
From: Lukasz Stafiniak @ 2007-05-10 23:05 UTC (permalink / raw)
  To: emacs-devel

On 5/9/07, Robert J. Chassell <bob@rattlesnake.com> wrote:
> Remember, for many people, but not for many moderns, CVS provides the
> `released version' of GNU Emacs.  It is the prime version used by
> those who contribute.  It is not a binary that cannot be changed.
> Once in a while, development needs to be frozen while bugs are fixed.
>
> Since more and more people are coming to think of or are forced to use
> big numbered releases and eschew the daily releases, they view a delay
> between one big numbered release and another as bad.  But those who
> enjoy daily releases hardly notice.
>
Our Emacs
who art in CVS
hallowed be thy name
thy Release come
thy will be done
on earth as it is in CVS.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-10 23:05 ` Lukasz Stafiniak
@ 2007-05-10 23:23   ` Davis Herring
  2007-05-11 12:31     ` Thien-Thi Nguyen
  0 siblings, 1 reply; 146+ messages in thread
From: Davis Herring @ 2007-05-10 23:23 UTC (permalink / raw)
  To: Lukasz Stafiniak; +Cc: emacs-devel

> Our Emacs
> who art in CVS
> hallowed be thy name
> thy Release come
> thy will be done
> on earth as it is in CVS.
Give us this day our context patch,
And forgive us our edits,
As we forgive our editors;
And lead us not into SIGSEGV,
But deliver us from vi:
For thine is the control, the super,
And the meta forever.
C-c C-c

Davis

-- 
This product is sold by volume, not by mass.  If it appears too dense or
too sparse, it is because mass-energy conversion has occurred during
shipping.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-10 23:23   ` Davis Herring
@ 2007-05-11 12:31     ` Thien-Thi Nguyen
  0 siblings, 0 replies; 146+ messages in thread
From: Thien-Thi Nguyen @ 2007-05-11 12:31 UTC (permalink / raw)
  To: herring; +Cc: Lukasz Stafiniak, emacs-devel

() "Davis Herring" <herring@lanl.gov>
() Thu, 10 May 2007 16:23:47 -0700 (PDT)

   > Our Emacs
   > who art in CVS
   > hallowed be thy name
   > thy Release come
   > thy will be done
   > on earth as it is in CVS.
   Give us this day our context patch,
   And forgive us our edits,
   As we forgive our editors;
   And lead us not into SIGSEGV,
   But deliver us from vi:
   For thine is the control, the super,
   And the meta forever.
   C-c C-c

   what is a release?
   two birds sharing point of view,
   yet avoiding crash!

thi

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-10 19:05   ` Stefan Monnier
@ 2007-05-11 18:48     ` Richard Stallman
  2007-05-11 20:19       ` joakim
  0 siblings, 1 reply; 146+ messages in thread
From: Richard Stallman @ 2007-05-11 18:48 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: bob, ken.manheimer, emacs-devel

I don't like the idea of having a package system for Emacs.  First of all,
it clearly is not needed.  Second, it would invite programmers to put
a lot of work into a mechanism instead of putting it into improvements
in what Emacs can actually do.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-11 18:48     ` Richard Stallman
@ 2007-05-11 20:19       ` joakim
  2007-05-12 16:47         ` Richard Stallman
  0 siblings, 1 reply; 146+ messages in thread
From: joakim @ 2007-05-11 20:19 UTC (permalink / raw)
  To: emacs-devel

Richard Stallman <rms@gnu.org> writes:

> I don't like the idea of having a package system for Emacs.  First of all,
> it clearly is not needed.  Second, it would invite programmers to put
> a lot of work into a mechanism instead of putting it into improvements
> in what Emacs can actually do.

Tom Tromey posted a simple implementation of a package system to
emacs.sources recently. It works fairly well, so the time is already
invested.

IMHO such a system is very useful for packages outside of the emacs
core, and it would be nice if package.el could be inside the core so
external packages could be easily installed by users.

Compared with systems like Eclipse, installing an emacs package
consists of some fairly boring obviously automatable steps. (like
hunting for the package, downloading in the right dir, entering the
correct invocation in .emacs, etc...)


-- 
Joakim Verona

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-11 20:19       ` joakim
@ 2007-05-12 16:47         ` Richard Stallman
  2007-05-12 20:26           ` joakim
                             ` (2 more replies)
  0 siblings, 3 replies; 146+ messages in thread
From: Richard Stallman @ 2007-05-12 16:47 UTC (permalink / raw)
  To: joakim; +Cc: emacs-devel

    Tom Tromey posted a simple implementation of a package system to
    emacs.sources recently. It works fairly well, so the time is already
    invested.

I wish that were true, but most of the work of installing a package
system is making everything _use_ it.

    Compared with systems like Eclipse, installing an emacs package
    consists of some fairly boring obviously automatable steps. (like
    hunting for the package,

I don't see how any code installed in Emacs could save you the need
for that.

			     downloading in the right dir, entering the
    correct invocation in .emacs, etc...)

Since just loading the files is not supposed to change Emacs
functionality, I think the need for this cannot be avoided.

So that doesn't leave much good that a package system could do.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-12 16:47         ` Richard Stallman
@ 2007-05-12 20:26           ` joakim
  2007-05-13  8:49           ` Ryan Yeske
  2007-05-14  1:17           ` Tom Tromey
  2 siblings, 0 replies; 146+ messages in thread
From: joakim @ 2007-05-12 20:26 UTC (permalink / raw)
  To: emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     Tom Tromey posted a simple implementation of a package system to
>     emacs.sources recently. It works fairly well, so the time is already
>     invested.
>
> I wish that were true, but most of the work of installing a package
> system is making everything _use_ it.

Everyone doesnt have to use it, just several providers of interesting packages.
And also, a repository maintainer might choose to enter a package into
the system withouth explicit work from a package author.

>     Compared with systems like Eclipse, installing an emacs package
>     consists of some fairly boring obviously automatable steps. (like
>     hunting for the package,
>
> I don't see how any code installed in Emacs could save you the need
> for that.

It can be easier to find a package through an emacs interface, rather
than google.

> 			     downloading in the right dir, entering the
>     correct invocation in .emacs, etc...)
>
> Since just loading the files is not supposed to change Emacs
> functionality, I think the need for this cannot be avoided.

A package system can give a user help to install the necesessary
invocation into .emacs, given the users consent, similar to "Customize".

> So that doesn't leave much good that a package system could do.

I do feel there is things a package system can do for Emacs. I base
this on examples like the "Eclipse" editor, and the "Smart" rpm
package manager. 

-- 
Joakim Verona

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-12 16:47         ` Richard Stallman
  2007-05-12 20:26           ` joakim
@ 2007-05-13  8:49           ` Ryan Yeske
  2007-05-13  9:38             ` David Kastrup
  2007-05-14  8:09             ` Richard Stallman
  2007-05-14  1:17           ` Tom Tromey
  2 siblings, 2 replies; 146+ messages in thread
From: Ryan Yeske @ 2007-05-13  8:49 UTC (permalink / raw)
  To: rms; +Cc: joakim, emacs-devel

   I wish that were true, but most of the work of installing a package
   system is making everything _use_ it.

There are many people who are not necessarily emacs lisp hackers but
would be willing and able to prepare third party elisp packages from
existing sources.  I believe that the various free operating system
projects are able to find the resources for similar work for their
package management systems without draining the resources of the
hackers actually working on the development of the packages
themselves.

   I don't see how any code installed in Emacs could save you the need
   for that.

In my quick test of package.el, I was able to install and run a
package in 1/10th the time it would have taken to find, download and
install it manually.  For a package with dependencies on other
package libraries, the time/effort benefit would be even greater.

   Since just loading the files is not supposed to change Emacs
   functionality, I think the need for this cannot be avoided.

Having the package system install the file and setup autoloads in
.emacs will not itself change emacs functionality, but will save the
user a tremendous amount of tedious work.

Ryan

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-13  8:49           ` Ryan Yeske
@ 2007-05-13  9:38             ` David Kastrup
  2007-05-13 11:28               ` Ralf Angeli
  2007-05-14  1:43               ` Tom Tromey
  2007-05-14  8:09             ` Richard Stallman
  1 sibling, 2 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-13  9:38 UTC (permalink / raw)
  To: Ryan Yeske; +Cc: rms, joakim, emacs-devel

Ryan Yeske <rcyeske@gmail.com> writes:

>    I wish that were true, but most of the work of installing a package
>    system is making everything _use_ it.
>
> There are many people who are not necessarily emacs lisp hackers but
> would be willing and able to prepare third party elisp packages from
> existing sources.

This statement is in stark contrast to my personal experiences.  The
AUCTeX package, a pretty important editing mode for TeX-based formats,
has been lagging behind seriously in the XEmacs package system for the
last five years or so.  While a single person finally was found who
would _try_ keeping it more or less up to date, this has not really
worked out reasonably well.  As a result, the current version as
distributed by XEmacs remains terribly outdated.

The XEmacs package system basically consists of several pieces of
policy: a package layout which packages have to obey, a central
package repository where packages are checked in via CVS and built,
servers populated from this repository and mirrored.

AUCTeX is a complex package interacting with quite a few external
components.  It has an autoconf-based build procedure that can cater
for a lot of constellations and can be employed to tailor-fit AUCTeX
to a particular TeX environment.  It also runs on several different
Emacs variants.

The build infrastructure of AUCTeX is flexible enough to create an
XEmacs package, and indeed we distribute ready-built packages from the
AUCTeX download area.

XEmacs policies, however, prohibit the distribution of packages not
built with the XEmacs-specific build tools.

So basically the third-party maintainer has the grateful task of
taking the AUCTeX source package, rip Makefile and other generic build
structure from it, add definition files and stuff for the XEmacs
package build process and massage them until the output is just like
what AUCTeX upstream distributes as an XEmacs package in the first
place.

> I believe that the various free operating system projects are able
> to find the resources for similar work for their package management
> systems without draining the resources of the hackers actually
> working on the development of the packages themselves.

Please don't make the mistake of comparing the developer numbers on
operating system packagers (and the amount of work done) with those on
Emacs.

Most free operating systems which are not just packaging of other's
technology have one active work area: the packaging infrastructure.

In contrast, we Emacs hackers actually mostly work _coding_ stuff, not
arranging it.  And still our manpower is quite less.

Now the theory might be that once packaging becomes the mot du jour,
lots of non-developers will package lots of great things.

The problem is that there are not that many great things around that
are not already integrated into Emacs.

So a package system that comes with lots and rules and policies like
the XEmacs system does, is rather something that blocks inclusion of
good code and/or leads to its bit rot.

We would not want to go down the same path.  This does not rule out
package systems per se, but they are certainly not the panacea that
can offset bit rot, overpolicing and general indifference.  For
AUCTeX, the XEmacs package system has shown to be a roadblock for
getting uptodate packages to the users.  Not because of the structure
of such a package (which is a tar.gz file organized to drop into the
XEmacs package tree, with few additional files in fixed relative
places, like one defining package version and identification, one
containing customizable variables so that you don't need to preload
the package in order to customize it, one containing the autoloads,
one containing a list of all files so that the package can be removed
again if necessary, and some files like info files that are dropped in
standard places): that is actually useful.

But the whole _mandatory_ infrastructure (only available via anonymous
CVS and not conducive for creating Emacs packages) which one _has_ to
employ to create such a package (which has to be checked _into_ CVS so
that this venue is only open to registered XEmacs developers) so that
it will be accepted for distribution by the central servers (there is
no such thing as package specific repositories) is not really
conducive to producing output unless one is quite dedicated to XEmacs
specific development.

With all that policing, the administrative burden is actually more
than getting some Lisp file accepted into the Emacs core tree.

The advantage is just one of decoupled updates of centrally organized
packages to the centrally organized core.

I doubt that this could not equally well be achieved with a policy of
more frequent releases from a release branch.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-13  9:38             ` David Kastrup
@ 2007-05-13 11:28               ` Ralf Angeli
  2007-05-13 12:53                 ` David Kastrup
  2007-05-14  1:43               ` Tom Tromey
  1 sibling, 1 reply; 146+ messages in thread
From: Ralf Angeli @ 2007-05-13 11:28 UTC (permalink / raw)
  To: emacs-devel

* David Kastrup (2007-05-13) writes:

> The advantage is just one of decoupled updates of centrally organized
> packages to the centrally organized core.
>
> I doubt that this could not equally well be achieved with a policy of
> more frequent releases from a release branch.

It does not cater for people who think that over 100MB is an obscene
size for an editor.  It is quite lean for a desktop environment, though.

-- 
Ralf

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-13 11:28               ` Ralf Angeli
@ 2007-05-13 12:53                 ` David Kastrup
  0 siblings, 0 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-13 12:53 UTC (permalink / raw)
  To: Ralf Angeli; +Cc: emacs-devel

Ralf Angeli <angeli@caeruleus.net> writes:

> * David Kastrup (2007-05-13) writes:
>
>> The advantage is just one of decoupled updates of centrally organized
>> packages to the centrally organized core.
>>
>> I doubt that this could not equally well be achieved with a policy of
>> more frequent releases from a release branch.
>
> It does not cater for people who think that over 100MB is an obscene
> size for an editor.  It is quite lean for a desktop environment,
> though.

Let's put this into perspective: while this has been one of the
theoretical motivators of the XEmacs package system, the ratio of
people who don't use the "Sumo tarball" of everything is rather small.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-12 16:47         ` Richard Stallman
  2007-05-12 20:26           ` joakim
  2007-05-13  8:49           ` Ryan Yeske
@ 2007-05-14  1:17           ` Tom Tromey
  2007-05-14  5:06             ` Thien-Thi Nguyen
                               ` (2 more replies)
  2 siblings, 3 replies; 146+ messages in thread
From: Tom Tromey @ 2007-05-14  1:17 UTC (permalink / raw)
  To: rms; +Cc: joakim, emacs-devel

>>>>> "RMS" == Richard Stallman <rms@gnu.org> writes:

>>     Tom Tromey posted a simple implementation of a package system to
>>     emacs.sources recently. It works fairly well, so the time is already
>>     invested.

RMS> I wish that were true, but most of the work of installing a package
RMS> system is making everything _use_ it.

Actually this package manager was designed with the goal of making it
very easy to support.  If package.el were included in Emacs it would
require listing some version information for packages included in
Emacs, and invoking (package-initialize) during startup.  So I think
this could be supported without much difficulty in Emacs itself.

>>     Compared with systems like Eclipse, installing an emacs package
>>     consists of some fairly boring obviously automatable steps. (like
>>     hunting for the package,

RMS> I don't see how any code installed in Emacs could save you the need
RMS> for that.

package.el is attached to a web site, ELPA, where package updates are
uploaded.  The idea here is twofold.  First, many packages are
released between Emacs releases; package.el makes it simple to update
to these releases and use them.  Second, not every useful Emacs Lisp
package out there is going to be included in Emacs.  We've seen over
the years that having a separate repository is in fact very useful to
Emacs users.

Another thing package.el provides is simple installation.  Packages
are downloaded (including their dependencies, if any) and installed
for you, autoloads are extracted, the package is byte-compiled, and
when Emacs starts up,the packages are "activated" (meaning the
autoloads are evalled).  Users don't have to modify their .emacs for
updates to load-path, the Info path, or a list of autoloads.

There aren't many packages in ELPA yet.  However my experience has
been that packages consisting of a single .el file (the most common
kind) are very easy to fix up for inclusion.  That's because
package.el can usually extract the information it needs for files
following the already existing Emacs commenting guidelines.

Currently ELPA is hosted on my web site but I plan to turn it into a
project on savannah or the like.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-13  9:38             ` David Kastrup
  2007-05-13 11:28               ` Ralf Angeli
@ 2007-05-14  1:43               ` Tom Tromey
  1 sibling, 0 replies; 146+ messages in thread
From: Tom Tromey @ 2007-05-14  1:43 UTC (permalink / raw)
  To: David Kastrup; +Cc: Ryan Yeske, rms, joakim, emacs-devel

>>>>> "David" == David Kastrup <dak@gnu.org> writes:

David> The XEmacs package system basically consists of several pieces of
David> policy: a package layout which packages have to obey, a central
David> package repository where packages are checked in via CVS and built,
David> servers populated from this repository and mirrored.

FWIW, package.el does require a specific layout of the package.  This
could be changed -- package.el is reasonably small -- but so far I
didn't see a need.  Essentially it requires everything (.el files, the
info files and also a dir file) in the top level.  It also mandates a
couple file names, the main one being the .el file that holds the
"define-package" call.

David> XEmacs policies, however, prohibit the distribution of packages not
David> built with the XEmacs-specific build tools.

package.el by contrast does not have a build tool :-)

David> The problem is that there are not that many great things around that
David> are not already integrated into Emacs.

I respectfully disagree.  I'm regularly using a couple great packages
that for whatever reason, AIUI, will never be integrated into Emacs
(VM and BBDB).  There's also things like muse, planner, emms, RLX,
dvc, etc -- some of which may be integrated someday, but meanwhile it
would be nice to have a simpler way to install them.  Finally there's
the issue of Emacs' release cycle -- frequently it would be nice to
update an Emacs package like Gnus to some intermediate release.

David> With all that policing, the administrative burden is actually more
David> than getting some Lisp file accepted into the Emacs core tree.

package.el is tied to ELPA, the Emacs Lisp Package Archive.  My plan
here is to turn this into a project hosted on savannah or the like,
run it as a free software project is run, and then give the major
package maintainers login access.  IOW, you could update the AUCTeX
packages yourself.

For smaller packages, uploading is trivial if the package meets the
packaging guidelines.  I have it bound to a key in Gnus :-).  This
sort of thing can comfortably be done by anyone with ELPA admin
access.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-14  1:17           ` Tom Tromey
@ 2007-05-14  5:06             ` Thien-Thi Nguyen
  2007-05-14  6:47               ` David Kastrup
  2007-05-14 15:07               ` Tom Tromey
  2007-05-14  6:41             ` David Kastrup
  2007-05-18 23:10             ` Richard Stallman
  2 siblings, 2 replies; 146+ messages in thread
From: Thien-Thi Nguyen @ 2007-05-14  5:06 UTC (permalink / raw)
  To: Tom Tromey; +Cc: rms, joakim, emacs-devel

() Tom Tromey <tromey@redhat.com>
() Sun, 13 May 2007 18:17:15 -0700

   packages consisting of a single .el file (the most common
   kind) are very easy to fix up for inclusion.  That's because
   package.el can usually extract the information it needs for files
   following the already existing Emacs commenting guidelines.

does "very easy" include "without modification"?  that would be great.
someone else mentioned that xemacs' package system imposes policy that
ends up not being followed.  what plans would you have to make
package.el operate completely heuristically (possibly w/ human
intervention to fix glitches)?

i think the long-term merit of package.el will not be what it can do
given assistence (compliance to policy), but what it can do w/o.

thi

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-14  1:17           ` Tom Tromey
  2007-05-14  5:06             ` Thien-Thi Nguyen
@ 2007-05-14  6:41             ` David Kastrup
  2007-05-14  8:02               ` joakim
  2007-05-14 15:10               ` Tom Tromey
  2007-05-18 23:10             ` Richard Stallman
  2 siblings, 2 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-14  6:41 UTC (permalink / raw)
  To: Tom Tromey; +Cc: rms, joakim, emacs-devel

Tom Tromey <tromey@redhat.com> writes:

> package.el is attached to a web site, ELPA, where package updates
> are uploaded.  The idea here is twofold.

The central repository (and the necessary policies for maintaining it,
and the requirement to find intermediaries) is what I find works
absolutely worst with the XEmacs package system.  It is the main
culprit for XEmacs distributing outdated packages.

Once one has a central repository, there is no significant advantage
over not having packages but instead putting everything inside of
Emacs.

> First, many packages are released between Emacs releases; package.el
> makes it simple to update to these releases and use them.  Second,
> not every useful Emacs Lisp package out there is going to be
> included in Emacs.  We've seen over the years that having a separate
> repository is in fact very useful to Emacs users.

Who saw that?

> Another thing package.el provides is simple installation.  Packages
> are downloaded (including their dependencies, if any) and installed
> for you, autoloads are extracted, the package is byte-compiled, and
> when Emacs starts up,the packages are "activated" (meaning the
> autoloads are evalled).  Users don't have to modify their .emacs for
> updates to load-path, the Info path, or a list of autoloads.

They don't have for packages that are included in Emacs, anyway.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-14  5:06             ` Thien-Thi Nguyen
@ 2007-05-14  6:47               ` David Kastrup
  2007-05-14 15:07               ` Tom Tromey
  1 sibling, 0 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-14  6:47 UTC (permalink / raw)
  To: Thien-Thi Nguyen; +Cc: Tom Tromey, rms, joakim, emacs-devel

Thien-Thi Nguyen <ttn@gnuvola.org> writes:

> () Tom Tromey <tromey@redhat.com>
> () Sun, 13 May 2007 18:17:15 -0700
>
>    packages consisting of a single .el file (the most common
>    kind) are very easy to fix up for inclusion.  That's because
>    package.el can usually extract the information it needs for files
>    following the already existing Emacs commenting guidelines.
>
> does "very easy" include "without modification"?  that would be great.
> someone else mentioned that xemacs' package system imposes policy that
> ends up not being followed.

That would likely have been me.  The problem is rather that the
policies _end_ up being followed, and that means that packages like
AUCTeX (which are built upstream with a much more flexible build
process catering for more than XEmacs alone) are not permitted into
the XEmacs repository, meaning that somebody has to split the finished
package into its parts and write recipes that make the XEmacs package
builder (which exists only in XEmacs CVS) reassemble exactly the same
package with which one started.

Only then may it be distributed.  So the policies _are_ being
followed, with the result that XEmacs distributes only packages that
are severely outdated, with severe bugs that have been fixed for
yours, for the sake of "quality control".  If it looks like an XEmacs
package, behaves like an XEmacs package, smells like an XEmacs
package, it is still not distributed in XEmacs' central package
repository if it has not been assembled in the XEmacs CVS.

We don't want to go the same path of centralized package
repositories.  Really.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-14  6:41             ` David Kastrup
@ 2007-05-14  8:02               ` joakim
  2007-05-14 15:10               ` Tom Tromey
  1 sibling, 0 replies; 146+ messages in thread
From: joakim @ 2007-05-14  8:02 UTC (permalink / raw)
  To: emacs-devel

I think we have different experiences, which maybe accounts for our
diffierent views on package systems.

I havent used XEmacs much at all, and have no experience with its
package system. What David describes about it sounds like its mostly a
hassle, so I agree we dont want a package system like that.

It seems the XEmacs package system is mostly geared towards
modularizing emacs itself. I wouldnt need that for my emacs usage
patterns. If emacs was 1TB big, I would still download and use it, and
the size of a typical emacs install is not particularily bothersome
compared with most other software packages out there.

The particular need I feel Toms ELPA forfills is exploring emacs
packages that are not already in emacs core. Having a central
repository would also make it easier for such packages to eventualy be
accepted in emacs core.

Take for example two such valuable packages as CEDET and ECB. Both are
candidates for emacs inclusion, but have existed as separate packages
for years, and it will probably be years still before they are
included in a released emacs. These packages deserve a much larger
user-base, which they could have had with a package system such as ELPA.

If the only emacs that was available to me was the released emacs and
the packages that followed with it, I would very likely not be an
emacs user. 

David Kastrup <dak@gnu.org> writes:


> Tom Tromey <tromey@redhat.com> writes:
>
>> package.el is attached to a web site, ELPA, where package updates
>> are uploaded.  The idea here is twofold.
>
> The central repository (and the necessary policies for maintaining it,
> and the requirement to find intermediaries) is what I find works
> absolutely worst with the XEmacs package system.  It is the main
> culprit for XEmacs distributing outdated packages.
>
> Once one has a central repository, there is no significant advantage
> over not having packages but instead putting everything inside of
> Emacs.
>
>> First, many packages are released between Emacs releases; package.el
>> makes it simple to update to these releases and use them.  Second,
>> not every useful Emacs Lisp package out there is going to be
>> included in Emacs.  We've seen over the years that having a separate
>> repository is in fact very useful to Emacs users.
>
> Who saw that?
>
>> Another thing package.el provides is simple installation.  Packages
>> are downloaded (including their dependencies, if any) and installed
>> for you, autoloads are extracted, the package is byte-compiled, and
>> when Emacs starts up,the packages are "activated" (meaning the
>> autoloads are evalled).  Users don't have to modify their .emacs for
>> updates to load-path, the Info path, or a list of autoloads.
>
> They don't have for packages that are included in Emacs, anyway.
>
> -- 
> David Kastrup

-- 
Joakim Verona

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-13  8:49           ` Ryan Yeske
  2007-05-13  9:38             ` David Kastrup
@ 2007-05-14  8:09             ` Richard Stallman
  2007-05-14 15:19               ` Tom Tromey
                                 ` (2 more replies)
  1 sibling, 3 replies; 146+ messages in thread
From: Richard Stallman @ 2007-05-14  8:09 UTC (permalink / raw)
  To: Ryan Yeske; +Cc: joakim, emacs-devel

       I don't see how any code installed in Emacs could save you the need
       for that.

    In my quick test of package.el, I was able to install and run a
    package in 1/10th the time it would have taken to find, download and
    install it manually.

Can you explain why this is so?  What are the jobs that you need
to do without package.el, which package.el avoids?

       Since just loading the files is not supposed to change Emacs
       functionality, I think the need for this cannot be avoided.

    Having the package system install the file and setup autoloads in
    .emacs will not itself change emacs functionality, but will save the
    user a tremendous amount of tedious work.

I can see how putting the autoloads in a suitable place would be a
savings.

That is something that could be done by a function to install certain
Lisp code, which does not need that Lisp code to be a "package".

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-14  5:06             ` Thien-Thi Nguyen
  2007-05-14  6:47               ` David Kastrup
@ 2007-05-14 15:07               ` Tom Tromey
  2007-05-14 17:20                 ` Stefan Monnier
  1 sibling, 1 reply; 146+ messages in thread
From: Tom Tromey @ 2007-05-14 15:07 UTC (permalink / raw)
  To: Thien-Thi Nguyen; +Cc: Tom Tromey, rms, joakim, emacs-devel

>>>>> ">" == Thien-Thi Nguyen <ttn@gnuvola.org> writes:

Tom>    packages consisting of a single .el file (the most common
Tom>    kind) are very easy to fix up for inclusion.  That's because
Tom>    package.el can usually extract the information it needs for files
Tom>    following the already existing Emacs commenting guidelines.

>> does "very easy" include "without modification"?  that would be great.
>> someone else mentioned that xemacs' package system imposes policy that
>> ends up not being followed.  what plans would you have to make
>> package.el operate completely heuristically (possibly w/ human
>> intervention to fix glitches)?

If you have a self-contained .el file that follows the Emacs
commenting guidelines, then it can be uploaded and distributed without
modifications.

Most modifications I've had to make in practice have been along the
lines of fixing the formatting of the "foo.el ends here" comment, or
adding a "Version:" header.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-14  6:41             ` David Kastrup
  2007-05-14  8:02               ` joakim
@ 2007-05-14 15:10               ` Tom Tromey
  2007-05-14 18:41                 ` Ryan Yeske
                                   ` (2 more replies)
  1 sibling, 3 replies; 146+ messages in thread
From: Tom Tromey @ 2007-05-14 15:10 UTC (permalink / raw)
  To: David Kastrup; +Cc: Tom Tromey, rms, joakim, emacs-devel

>>>>> "David" == David Kastrup <dak@gnu.org> writes:

David> Once one has a central repository, there is no significant advantage
David> over not having packages but instead putting everything inside of
David> Emacs.

I don't agree.

The biggest benefit I see is that packages can be updated on the
package maintainer's schedule.  Emacs, on the other hand, is updated
on the Emacs maintainers' schedule.

There's also the fact that there are useful Emacs packages which will
never be included in Emacs.

>> First, many packages are released between Emacs releases; package.el
>> makes it simple to update to these releases and use them.  Second,
>> not every useful Emacs Lisp package out there is going to be
>> included in Emacs.  We've seen over the years that having a separate
>> repository is in fact very useful to Emacs users.

David> Who saw that?

Everybody who ever used the Ohio State Elisp Archive, ELL, or uploaded
or downloaded code from the Emacs Wiki.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-14  8:09             ` Richard Stallman
@ 2007-05-14 15:19               ` Tom Tromey
  2007-05-14 18:29               ` Ryan Yeske
  2007-05-16  2:23               ` Mike Mattie
  2 siblings, 0 replies; 146+ messages in thread
From: Tom Tromey @ 2007-05-14 15:19 UTC (permalink / raw)
  To: rms; +Cc: Ryan Yeske, joakim, emacs-devel

>>>>> "RMS" == Richard Stallman <rms@gnu.org> writes:

RMS> Can you explain why this is so?  What are the jobs that you need
RMS> to do without package.el, which package.el avoids?

package.el will install the dependencies of a package you are
installing.  It extracts autoloads and byte-compiles the lisp.  When
the package is activated, it sets up the load-path, the info path, and
evals the autoloads.  It also lets you install newer versions of
existing packages, and is smart about only activating the most recent.

In the future it will let you delete packages as well (a simple
operation, but I didn't want to include it in early releases).

RMS> That is something that could be done by a function to install certain
RMS> Lisp code, which does not need that Lisp code to be a "package".

First, please note that a "package" in most cases is really just a
single .el file.  More complicated things do need to be bundled (e.g.,
ELPA provides an old version of "url" for Emacs 21 users), but this
bundling is just a tar file (whose top-level directory has a certain
name) and a single extra file (e.g., "url-pkg.el", contained in the
tar).  Even for the "big program" case there is very little
administrative overhead here -- just a single call to
(define-package).

package.el has the code to install a lisp file.  This is not foolproof
because, in my experience, most Emacs Lisp files need a tweak or two
before they can be said to follow the comment guidelines.  The fixes
are generally trivial.

I thought I would use the installation code more, but it turns out to
be just as easy to upload a file to ELPA and then share it with
everybody.  And also the package-menu mode is fun to use :-)

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-14 15:07               ` Tom Tromey
@ 2007-05-14 17:20                 ` Stefan Monnier
  0 siblings, 0 replies; 146+ messages in thread
From: Stefan Monnier @ 2007-05-14 17:20 UTC (permalink / raw)
  To: Tom Tromey; +Cc: emacs-devel, Thien-Thi Nguyen, joakim, rms

> Most modifications I've had to make in practice have been along the
> lines of fixing the formatting of the "foo.el ends here" comment, or
> adding a "Version:" header.

AFAIK, even those requirements could be dropped.
After all, most single-file packages are "self-contained" and no other
package depends on it, so version-information for dependency tracking is
really a luxury more than a need for those.


        Stefan

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-14  8:09             ` Richard Stallman
  2007-05-14 15:19               ` Tom Tromey
@ 2007-05-14 18:29               ` Ryan Yeske
  2007-05-16  2:23               ` Mike Mattie
  2 siblings, 0 replies; 146+ messages in thread
From: Ryan Yeske @ 2007-05-14 18:29 UTC (permalink / raw)
  To: rms; +Cc: joakim, emacs-devel

       In my quick test of package.el, I was able to install and run a
       package in 1/10th the time it would have taken to find, download and
       install it manually.

   Can you explain why this is so?  What are the jobs that you need
   to do without package.el, which package.el avoids?

I installed package.el.  Then I ran package-list-packages, was
presented with a list of available packages in a buffer.  I hit RET on
wtf, which is a package that looks up acronyms.  package.el downloaded
the code, and installed and evaluated autoloads.  I was then able to
simply do M-x wtf to play with the new code.

Had I done this manually, I would have had to locate via a web search
where to ftp wtf.tar.gz (or whatever form it would be in), download it
via ftp or http, save it to my personal elisp directory, untar it, and
read the INSTALL file, or the commentary in the elisp file to find out
what autoloads to add to my .emacs file.  I would never have bothered
trying out wtf.el.

       Having the package system install the file and setup autoloads in
       .emacs will not itself change emacs functionality, but will save the
       user a tremendous amount of tedious work.

   I can see how putting the autoloads in a suitable place would be a
   savings.

   That is something that could be done by a function to install certain
   Lisp code, which does not need that Lisp code to be a "package".

Perhaps we are talking about different definitions of package.  I am
not referring to package system in elisp, in the same sense that
common lisp has a package system, but simply a system for automating
the routine retrieval and installation steps for making emacs
extensions available.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-14 15:10               ` Tom Tromey
@ 2007-05-14 18:41                 ` Ryan Yeske
  2007-05-14 19:03                 ` Eli Zaretskii
  2007-05-15 23:52                 ` thorne
  2 siblings, 0 replies; 146+ messages in thread
From: Ryan Yeske @ 2007-05-14 18:41 UTC (permalink / raw)
  To: Tom Tromey; +Cc: tromey, rms, joakim, emacs-devel

   David> Once one has a central repository, there is no significant advantage
   David> over not having packages but instead putting everything inside of
   David> Emacs.

   I don't agree.

   The biggest benefit I see is that packages can be updated on the
   package maintainer's schedule.  Emacs, on the other hand, is updated
   on the Emacs maintainers' schedule.

   There's also the fact that there are useful Emacs packages which will
   never be included in Emacs.

There is also no reason that we couldn't extend package.el to read
from multiple repositories, much like Debian's sources.list file, for
those familiar with that system.

That way, I could maintain an up-to-date package repository for my
personal projects if people wanted the bleeding edge versions that
weren't yet in the 'central' repository.  If people wanted access to
these package versions, they would simple add 'ftp://yeske.ca/elpa' to
their list of package-repositories.

Ryan

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-14 15:10               ` Tom Tromey
  2007-05-14 18:41                 ` Ryan Yeske
@ 2007-05-14 19:03                 ` Eli Zaretskii
  2007-05-14 19:16                   ` Tom Tromey
                                     ` (2 more replies)
  2007-05-15 23:52                 ` thorne
  2 siblings, 3 replies; 146+ messages in thread
From: Eli Zaretskii @ 2007-05-14 19:03 UTC (permalink / raw)
  To: Tom Tromey; +Cc: emacs-devel

> Date: Mon, 14 May 2007 08:10:43 -0700
> From: Tom Tromey <tromey@redhat.com>
> Cc: Tom Tromey <tromey@redhat.com>, rms@gnu.org, joakim@verona.se,
> 	emacs-devel@gnu.org
> 
> The biggest benefit I see is that packages can be updated on the
> package maintainer's schedule.  Emacs, on the other hand, is updated
> on the Emacs maintainers' schedule.

There are problems with this that no package system can ever solve: a
package that is released asynchronously from Emacs runs a high risk to
become broken by changes in Emacs.  Packages that are released
together with Emacs are generally coherent with the Emacs core, by
contrast.

As long as this is a real problem (and I personally don't see how it
can be solved, given the high rate of changes in core code), this
``biggest benefit'' is actually a myth, IMHO.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-14 19:03                 ` Eli Zaretskii
@ 2007-05-14 19:16                   ` Tom Tromey
  2007-05-14 22:36                   ` Ryan Yeske
  2007-05-16 15:46                   ` Stefan Monnier
  2 siblings, 0 replies; 146+ messages in thread
From: Tom Tromey @ 2007-05-14 19:16 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

>>>>> "Eli" == Eli Zaretskii <eliz@gnu.org> writes:

Eli> There are problems with this that no package system can ever solve: a
Eli> package that is released asynchronously from Emacs runs a high risk to
Eli> become broken by changes in Emacs.  Packages that are released
Eli> together with Emacs are generally coherent with the Emacs core, by
Eli> contrast.

Yes, that is true for some subset of packages.  But, it is by no means
universally true.

And, package.el makes an attempt to solve a related problem
experienced by users (me, at the very least): when an external package
is included in Emacs, package.el knows to disable the privately
installed copy in favor of the newer version included in Emacs.

Eli> As long as this is a real problem (and I personally don't see how it
Eli> can be solved, given the high rate of changes in core code), this
Eli> ``biggest benefit'' is actually a myth, IMHO.

I think you are drawing an overly general conclusion here.  A package
manager does not have to be perfect and solve every conceivable case
in order to be better than the status quo.  It merely has to provide
some tangible benefit to users.  Not solving every case does not
entirely eliminate the benefits of this application.

And, anyway, when a new Emacs is released, package maintainers can
update their packages.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-14 19:03                 ` Eli Zaretskii
  2007-05-14 19:16                   ` Tom Tromey
@ 2007-05-14 22:36                   ` Ryan Yeske
  2007-05-16 15:46                   ` Stefan Monnier
  2 siblings, 0 replies; 146+ messages in thread
From: Ryan Yeske @ 2007-05-14 22:36 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: tromey, emacs-devel

   There are problems with this that no package system can ever solve: a
   package that is released asynchronously from Emacs runs a high risk to
   become broken by changes in Emacs.  Packages that are released
   together with Emacs are generally coherent with the Emacs core, by
   contrast.

   As long as this is a real problem (and I personally don't see how it
   can be solved, given the high rate of changes in core code), this
   ``biggest benefit'' is actually a myth, IMHO.

I have run emacs-w3m and bbdb across different emacs versions without
problems.  If changes in emacs do result in breakage in a package,
then updating installed packages can be done much more easily than
manually downloading and reinstalling updated packages.

Of course packages that are released together with emacs may not have
this problem, but we are talking about making a convenient way to
deliver third party packages to users.  Perhaps then, this is actually
outside the scope of emacs-devel@, as a package system like the one we
have been discussing doesn't need even need to be a part of emacs.

Ryan

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-14 15:10               ` Tom Tromey
  2007-05-14 18:41                 ` Ryan Yeske
  2007-05-14 19:03                 ` Eli Zaretskii
@ 2007-05-15 23:52                 ` thorne
  2 siblings, 0 replies; 146+ messages in thread
From: thorne @ 2007-05-15 23:52 UTC (permalink / raw)
  To: emacs-devel

Tom Tromey <tromey@redhat.com> writes:

> Everybody who ever used the Ohio State Elisp Archive, ELL, or uploaded
> or downloaded code from the Emacs Wiki.

Just a couple of thoughts from an end-user.  Safe to ignore.

It seems like the basic logic in package.el could be useful for other
related things.  For instance, what's to stop one from writing a
little code to use the url package to grab something from, say, the
Google Usenet archives of gnu.emacs.sources, try to strip headers and
`this is my first post to g.e.sources' blah blah and then feed it to
package.el?  Or a function like
`gnus-install-lisp-package-from-message'?  Same goes for source on the
EmacsWiki.  The function could just give a graceful error message if
it couldn't extract the lisp, or if it was malformed as a package.

Assuming the source had version info it could work just as well as
something downloaded from an official repository.

As for version conflicts with new releases of Emacs, isn't that
something users expect to happen sometimes when they try to install
anything that didn't come with their base Emacs?

-- 
þ    theron tlåx    þ
(compose-mail (concat "thorne@" (rot13 "gvzoeny") ".net"))

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-14  8:09             ` Richard Stallman
  2007-05-14 15:19               ` Tom Tromey
  2007-05-14 18:29               ` Ryan Yeske
@ 2007-05-16  2:23               ` Mike Mattie
  2 siblings, 0 replies; 146+ messages in thread
From: Mike Mattie @ 2007-05-16  2:23 UTC (permalink / raw)
  To: emacs-devel; +Cc: rms


[-- Attachment #1.1: Type: text/plain, Size: 2513 bytes --]

On Mon, 14 May 2007 04:09:00 -0400
Richard Stallman <rms@gnu.org> wrote:

>        I don't see how any code installed in Emacs could save you the
> need for that.
> 

I have looked often for an "official" repository, simply because I do not want to
install a third party component that may be unavailable later if the code/author
disappears.

There is alot of emacs code that isn't distributed AFAIK with emacs with
significant user bases. SLIME , CEDET, EDB, JDEE. SLIME in particular is
an amazing piece of software.

Along with the extremely high quality packages , a repository with a lower
bar than emacs cvs would encourage people to take the plunge into publishing
their elisp hacks to the world. A softer soil for new code/developers.

I don't think it takes elisp code to manage an archive of that sort. Existing
package managers such as paludis could be used to manage a elisp tree, and
a simple modification to the .emacs file could recursively traverse and load
the top-level .elc? files it finds. Then you have a repository loader instead
of a complete repository system which is a enormous re-invention of the wheel.

paludis supports multiple repositories, periodic syncs for versioned repos,
and a host of other features. There are several package managers out there
with fairly light setup.

Even if a package repository is not created I think a search engine for elisp
code would be nice. It could even be a simple google-shortcut from the emacs page.
It would serve to link together the current emacs universe which is scattered
to the winds outside of emacs cvs. (Usually some university student's home-page
or some such thing)

Anyways most linux users at least are served by a distribution which has all
the functionality that has been discussed above. It's where I get my emacs-cvs,
foo-cvs, foo-wherever with full dependency information.

If this sort of infrastructure is set-up by emacs it's to bring the now ancient
revolution of the package manager to windows IMHO (where emacs works well but
feels stripped without hours of tracking down the far-flung components needed
to get the functionality of a linux distro installed emacs).

> 
> That is something that could be done by a function to install certain
> Lisp code, which does not need that Lisp code to be a "package".
> 
> 
> _______________________________________________
> Emacs-devel mailing list
> Emacs-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-devel

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

[-- Attachment #2: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-14 19:03                 ` Eli Zaretskii
  2007-05-14 19:16                   ` Tom Tromey
  2007-05-14 22:36                   ` Ryan Yeske
@ 2007-05-16 15:46                   ` Stefan Monnier
  2007-05-17 12:43                     ` David Kastrup
  2 siblings, 1 reply; 146+ messages in thread
From: Stefan Monnier @ 2007-05-16 15:46 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Tom Tromey, emacs-devel

>> The biggest benefit I see is that packages can be updated on the
>> package maintainer's schedule.  Emacs, on the other hand, is updated
>> on the Emacs maintainers' schedule.

Pleae, let's not link the issue of including a package-installer (such as
package.el) with the issue of which packages to (un)bundle.
These are completely separate questions.

package.el is useful to deal with non-bundled packages: there are many of
those and they're not about to be all bundled.


        Stefan

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-16 15:46                   ` Stefan Monnier
@ 2007-05-17 12:43                     ` David Kastrup
  2007-05-17 14:17                       ` Stefan Monnier
  0 siblings, 1 reply; 146+ messages in thread
From: David Kastrup @ 2007-05-17 12:43 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Tom Tromey, Eli Zaretskii, emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>>> The biggest benefit I see is that packages can be updated on the
>>> package maintainer's schedule.  Emacs, on the other hand, is updated
>>> on the Emacs maintainers' schedule.
>
> Pleae, let's not link the issue of including a package-installer (such as
> package.el) with the issue of which packages to (un)bundle.
> These are completely separate questions.
>
> package.el is useful to deal with non-bundled packages: there are
> many of those and they're not about to be all bundled.

I would think that if we could be able to say "if you have organized
your Lisp source files in such&such a way with this&that information
in the following format in its head, then using the command
M-x package-pull-into-current RET filename.el RET
will install the file and its associated files into your currently used
Emacs.  Using the command
M-x package-pull-into-source RET filename.el RET
will make it a part of your Emacs source tree (which you can then
either compile or commit).  And
M-x package-update RET filename.el RET
will look up any dedicated servers declared in the comments from
filename.el and will replace it (and its associated files) by a new
version which you can then either pull into current or pull into
source.

That would be a good feature/thing/whatever, and it could be made to
work with everything included in Emacs.  It could even ask whether you
want to pull from some package server, the last release from the
declared upstream, or a vc version from.

Creating a bunch of easy to follow conventions for this kind of
functionality, and updating source files to follow them by and by
would be a fine idea, I think.

But everything prescribing rigid procedures, policies, servers etc to
satisfy (like the XEmacs package system and its associated policies)
is asking for organized stagnation.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-17 12:43                     ` David Kastrup
@ 2007-05-17 14:17                       ` Stefan Monnier
  0 siblings, 0 replies; 146+ messages in thread
From: Stefan Monnier @ 2007-05-17 14:17 UTC (permalink / raw)
  To: David Kastrup; +Cc: Tom Tromey, Eli Zaretskii, emacs-devel

>>>> The biggest benefit I see is that packages can be updated on the
>>>> package maintainer's schedule.  Emacs, on the other hand, is updated
>>>> on the Emacs maintainers' schedule.
>> 
>> Pleae, let's not link the issue of including a package-installer (such as
>> package.el) with the issue of which packages to (un)bundle.
>> These are completely separate questions.
>> 
>> package.el is useful to deal with non-bundled packages: there are
>> many of those and they're not about to be all bundled.

> I would think that if we could be able to say "if you have organized
> your Lisp source files in such&such a way with this&that information
> in the following format in its head, then using the command
> M-x package-pull-into-current RET filename.el RET
> will install the file and its associated files into your currently used
> Emacs.  Using the command
> M-x package-pull-into-source RET filename.el RET
> will make it a part of your Emacs source tree (which you can then
> either compile or commit).  And
> M-x package-update RET filename.el RET
> will look up any dedicated servers declared in the comments from
> filename.el and will replace it (and its associated files) by a new
> version which you can then either pull into current or pull into
> source.

I don't see any relation with what I said.


        Stefan

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-14  1:17           ` Tom Tromey
  2007-05-14  5:06             ` Thien-Thi Nguyen
  2007-05-14  6:41             ` David Kastrup
@ 2007-05-18 23:10             ` Richard Stallman
  2007-05-18 23:31               ` Tom Tromey
  2007-05-22  6:10               ` Trent Buck
  2 siblings, 2 replies; 146+ messages in thread
From: Richard Stallman @ 2007-05-18 23:10 UTC (permalink / raw)
  To: Tom Tromey; +Cc: joakim, emacs-devel

    package.el is attached to a web site, ELPA, where package updates are
    uploaded.

In that case, I think the real proposal is not "add a package system
to Emacs" but rather "set up a standard site for Emacs add-ons".

If the add-ons are put in such a web site, finding and installing them
would be much easier.  Maybe it is worth doing that, though calling it
a "package system" seems like hype.

But there are two important non-technical problems with this approach.

1. It could reduce the incentive for people to assign copyright on
their code.

2. It would mean that Emacs refers people very strongly to a site that
isn't run by the GNU Project.  I don't know what their policies are.
But even if they are good, now, we have no way to assure that remains
so.

These problems would be eliminated if we put the package repository on
gnu.org and limit it to packages that are copyright FSF.

In other words, I can see that installing packages in a separate
repository and releasing them there, but I don't want this to
alter the legal and publicity arrangements that we would have
made for including them in Emacs.

      Packages
    are downloaded (including their dependencies, if any) and installed
    for you, autoloads are extracted, the package is byte-compiled, and
    when Emacs starts up,the packages are "activated" (meaning the
    autoloads are evalled).

It sounds convenient.  As long as it doesn't require a lot of change
in how you write the Lisp programs, I have nothing against this.

      It also mandates a
    couple file names, the main one being the .el file that holds the
    "define-package" call.

Something like a "define-package" call is one of the things that makes
me dislike package systems.  Can we avoid this?  Why is it needed?

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-18 23:10             ` Richard Stallman
@ 2007-05-18 23:31               ` Tom Tromey
  2007-05-19 22:31                 ` Richard Stallman
  2007-05-19 22:31                 ` Richard Stallman
  2007-05-22  6:10               ` Trent Buck
  1 sibling, 2 replies; 146+ messages in thread
From: Tom Tromey @ 2007-05-18 23:31 UTC (permalink / raw)
  To: rms; +Cc: joakim, emacs-devel

>>>>> "rms" == Richard Stallman <rms@gnu.org> writes:

rms> Maybe it is worth doing that, though calling it a "package
rms> system" seems like hype.

Perhaps we have different ideas about what this means.  My use comes
from the distro world, where it basically refers to the combination of
"binary" downloads and dependency tracking.  I'm not a real lisp
programmer but I gather this has some other meaning in the lisp
world...?

rms> 1. It could reduce the incentive for people to assign copyright
rms> on their code.

Yeah, this is definitely to be preferred.  I'm not comfortable
requiring it, though, because there are very useful Emacs Lisp
packages which, AIUI, will never be assigned to the FSF.

rms> 2. It would mean that Emacs refers people very strongly to a site that
rms> isn't run by the GNU Project.  I don't know what their policies are.
rms> But even if they are good, now, we have no way to assure that remains
rms> so.

Currently there is no "they", just me :).  My current policy is that
ELPA accepts anything that is free software.

Of course we could have an official GNU ELPA and then also change
package.el to support multiple repository URLs, so that users could
point to some non-FSF repository.

I wouldn't have a problem asking people to assign their code first,
and only uploading to the other repository if they say no.

>       It also mandates a
>     couple file names, the main one being the .el file that holds the
>     "define-package" call.

rms> Something like a "define-package" call is one of the things that makes
rms> me dislike package systems.  Can we avoid this?  Why is it needed?

It is only needed for multi-file packages.  Essentially package.el
needs 3 pieces of information about a package: its name, its version
number, and its requirements.  For a single-file package these are
extracted from comments; package.el defines a new comment header
("Package-Requires") for requirements, but so far I think this is
unused.

For a multi-file package the problem is just knowing where to look to
get this information.  It seemed simplest to have the package
maintainer provide it in a well-known place.

For a single-file package the quux-pkg.el file is generated by
package.el at install time.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-19 22:31                 ` Richard Stallman
@ 2007-05-19 22:31                   ` Tom Tromey
  2007-05-20 17:05                     ` Richard Stallman
  0 siblings, 1 reply; 146+ messages in thread
From: Tom Tromey @ 2007-05-19 22:31 UTC (permalink / raw)
  To: rms; +Cc: joakim, emacs-devel

>>>>> "rms" == Richard Stallman <rms@gnu.org> writes:

rms> I think I understand.  Can you show me the specs for define-package?

Here's an extract from package.el.
Hmm, I am very inconsistent about variable naming here, sorry.  And
the documentation is not entirely clear -- each OTHER-PACKAGE is a symbol.

    (defun define-package (name-str version-string
                                &optional docstring
                                &optional requirements)
      "Define a new package.
    NAME is the name of the package, a string.
    VERSION-STRING is the version of the package, a dotted sequence
    of integers.
    DOCSTRING is the optional description.
    REQUIREMENTS is a list of requirements on other packages.
    Each requirement is of the form (OTHER-PACKAGE \"VERSION\")."

This particular example was generated by package.el from
javascript.el:

    (define-package "javascript" "1.99.8" "Major mode for editing JavaScript source text" nil)

Here's another example, this time from lisppaste.  In this case,
lisppaste requires xml-rpc:

    (define-package "lisppaste" "1.2" "Interact with the lisppaste pastebot via XML-RPC." (quote ((xml-rpc "1.6.4"))))


There are some other issues we probably need to work out before we can
seriously contemplate adding package.el to Emacs.  I'm happy to
discuss them here if you like, just let me know... is this the right
time to discuss it?

Also, perhaps someone should review the code, as I am only an
occasional Emacs Lisp hacker.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-18 23:31               ` Tom Tromey
@ 2007-05-19 22:31                 ` Richard Stallman
  2007-05-19 22:33                   ` Tom Tromey
  2007-05-20  7:54                   ` David Kastrup
  2007-05-19 22:31                 ` Richard Stallman
  1 sibling, 2 replies; 146+ messages in thread
From: Richard Stallman @ 2007-05-19 22:31 UTC (permalink / raw)
  To: tromey; +Cc: joakim, emacs-devel

    rms> 1. It could reduce the incentive for people to assign copyright
    rms> on their code.

    Yeah, this is definitely to be preferred.  I'm not comfortable
    requiring it, though, because there are very useful Emacs Lisp
    packages which, AIUI, will never be assigned to the FSF.

I'm not comfortable with having Emacs automatically install and load
anything that isn't copyright FSF.  So if we do install a feature like
this, it will use only one repository, on gnu.org.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-18 23:31               ` Tom Tromey
  2007-05-19 22:31                 ` Richard Stallman
@ 2007-05-19 22:31                 ` Richard Stallman
  2007-05-19 22:31                   ` Tom Tromey
  1 sibling, 1 reply; 146+ messages in thread
From: Richard Stallman @ 2007-05-19 22:31 UTC (permalink / raw)
  To: tromey; +Cc: joakim, emacs-devel

    It is only needed for multi-file packages.  Essentially package.el
    needs 3 pieces of information about a package: its name, its version
    number, and its requirements.  For a single-file package these are
    extracted from comments; package.el defines a new comment header
    ("Package-Requires") for requirements, but so far I think this is
    unused.

    For a multi-file package the problem is just knowing where to look to
    get this information.  It seemed simplest to have the package
    maintainer provide it in a well-known place.

I think I understand.  Can you show me the specs for define-package?

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-19 22:31                 ` Richard Stallman
@ 2007-05-19 22:33                   ` Tom Tromey
  2007-05-20 17:05                     ` Richard Stallman
                                       ` (2 more replies)
  2007-05-20  7:54                   ` David Kastrup
  1 sibling, 3 replies; 146+ messages in thread
From: Tom Tromey @ 2007-05-19 22:33 UTC (permalink / raw)
  To: rms; +Cc: joakim, emacs-devel

>>>>> "rms" == Richard Stallman <rms@gnu.org> writes:

rms> I'm not comfortable with having Emacs automatically install and load
rms> anything that isn't copyright FSF.  So if we do install a feature like
rms> this, it will use only one repository, on gnu.org.

How about if I change things so that package.el looks at a list of
repositories, which by default only includes the FSF-owned site?
That way people can set up additional repositories as well.
This isn't quite as friendly for users but is, IMO, workable.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-19 22:31                 ` Richard Stallman
  2007-05-19 22:33                   ` Tom Tromey
@ 2007-05-20  7:54                   ` David Kastrup
  2007-05-20 21:53                     ` Tom Tromey
  2007-05-20 22:05                     ` CVS is the `released version' Richard Stallman
  1 sibling, 2 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-20  7:54 UTC (permalink / raw)
  To: rms; +Cc: tromey, joakim, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     rms> 1. It could reduce the incentive for people to assign copyright
>     rms> on their code.
>
>     Yeah, this is definitely to be preferred.  I'm not comfortable
>     requiring it, though, because there are very useful Emacs Lisp
>     packages which, AIUI, will never be assigned to the FSF.
>
> I'm not comfortable with having Emacs automatically install and load
> anything that isn't copyright FSF.  So if we do install a feature like
> this, it will use only one repository, on gnu.org.

I am not comfortable with having Emacs automatically install and load
anything, period.  I already expressed my opinion that requiring a
particular _repository_ would be quite a mistake.  While I agree that
something like that should likely be preconfigured to point to
something under our supervision, I consider the "fixed repository"
approach something that does not work out.  Each package should carry
with itself the information where to ask for updates.

There is a lot of code around for Emacs for which we do not even
_want_ copyright assignments and control since we have neither the
manpower nor the willingness to cater for it.  Providing for a simple
mechanism and file layout that will make it easy for the package
writers to provide the Elisp files, documentation, supplementary files
in a way where two or three Emacs commands will pull the package into
the Emacs' private site-lisp tree and byte-compile it there, would be
quite beneficial.

It would also decrease the motivation of Debian developers to come up
with their own system of placing third-party packages into Emacs
variants, a system that neither Emacs developers nor Debian developers
actually really understand in its complications and side-effects.

If we provided a standard way of getting some package layout pulled
into Emacs, possibly we could persuade Debian to stop providing Emacs
and package versions that force people to deinstall the Debian Emacs
version and replace it with a hand-installed one if they ever plan on
contributing to external Emacs projects (like AUCTeX and other).

So while I agree that the connection "central
repository"-"GNU"-"copyright FSF" seems somewhat natural, I don't want
a central repository as a necessary component of a package system or
packaging policy.

That, indeed, would not buy us so very much beyond just putting
everything into Emacs CVS itself.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-19 22:31                   ` Tom Tromey
@ 2007-05-20 17:05                     ` Richard Stallman
  2007-05-20 21:23                       ` Tom Tromey
  2007-05-21 12:59                       ` Stefan Monnier
  0 siblings, 2 replies; 146+ messages in thread
From: Richard Stallman @ 2007-05-20 17:05 UTC (permalink / raw)
  To: tromey; +Cc: joakim, emacs-devel

It seems wasteful to have a file just for this define-package.  Why
not get the info out of the .el files just as for a one-file package?

It could look at all the .el files and verify that they all agree.  If
they don't, it could print an error message.  If it finds different
package names in various files, it could treat them as separate packages.

I think this would in most cases simplify the packaging.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-19 22:33                   ` Tom Tromey
@ 2007-05-20 17:05                     ` Richard Stallman
  2007-05-20 21:45                       ` Tom Tromey
  2007-05-21  2:57                       ` Bob Rogers
  2007-05-21 12:53                     ` Stefan Monnier
  2007-05-22  4:38                     ` Xavier Maillard
  2 siblings, 2 replies; 146+ messages in thread
From: Richard Stallman @ 2007-05-20 17:05 UTC (permalink / raw)
  To: tromey; +Cc: joakim, emacs-devel

    How about if I change things so that package.el looks at a list of
    repositories, which by default only includes the FSF-owned site?

This might tempt redistributors (such as GNU/Linux distros) to add
other repositories.  I don't want to ask for trouble.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-20 17:05                     ` Richard Stallman
@ 2007-05-20 21:23                       ` Tom Tromey
  2007-05-21 12:59                       ` Stefan Monnier
  1 sibling, 0 replies; 146+ messages in thread
From: Tom Tromey @ 2007-05-20 21:23 UTC (permalink / raw)
  To: rms; +Cc: joakim, emacs-devel

>>>>> "rms" == Richard Stallman <rms@gnu.org> writes:

rms> It seems wasteful to have a file just for this define-package.  Why
rms> not get the info out of the .el files just as for a one-file package?

rms> It could look at all the .el files and verify that they all agree.  If
rms> they don't, it could print an error message.  If it finds different
rms> package names in various files, it could treat them as separate packages.

rms> I think this would in most cases simplify the packaging.

Thanks, I will think about this.  Single-file packages were actually
an add-on to package.el, initially I was only going to support tar
archives.

Right now package.el manages packages in a very simple way -- they are
just unpacked underneath ~/.emacs.d/elpa/, and there is a
straightforward correspondence between package name+version and
directory name.  Having multiple packages in a single directory would
seem to require changing this... not sure I want to do that.  But I
will brainstorm a bit.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-20 17:05                     ` Richard Stallman
@ 2007-05-20 21:45                       ` Tom Tromey
  2007-05-21  5:19                         ` David Kastrup
                                           ` (2 more replies)
  2007-05-21  2:57                       ` Bob Rogers
  1 sibling, 3 replies; 146+ messages in thread
From: Tom Tromey @ 2007-05-20 21:45 UTC (permalink / raw)
  To: rms; +Cc: joakim, emacs-devel

>>>>> "rms" == Richard Stallman <rms@gnu.org> writes:

>     How about if I change things so that package.el looks at a list of
>     repositories, which by default only includes the FSF-owned site?

rms> This might tempt redistributors (such as GNU/Linux distros) to add
rms> other repositories.  I don't want to ask for trouble.

Unfortunately this does not align very well with my goals in writing
package.el.  My goal is to make it much simpler for Emacs users to
download and install the many useful un-integrated Emacs packages that
are out there.  And, in my view, this has to include the 3rd party,
unassigned code -- there's a wealth of this on ELL and the Emacs Wiki,
and its existence, far from hurting Emacs in some way, is actually a
vital part of the thriving Emacs community.

So I think we've reached an impasse.  I suppose package.el can
comfortably continue to live outside of Emacs itself.  With the auto
installer (and the coming code to update package.el itself) it is not
a big problem for interested users to install it.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-20  7:54                   ` David Kastrup
@ 2007-05-20 21:53                     ` Tom Tromey
  2007-05-21  5:24                       ` David Kastrup
  2007-05-21 10:17                       ` package.el (was: Re: CVS is the `released version') David Reitter
  2007-05-20 22:05                     ` CVS is the `released version' Richard Stallman
  1 sibling, 2 replies; 146+ messages in thread
From: Tom Tromey @ 2007-05-20 21:53 UTC (permalink / raw)
  To: David Kastrup; +Cc: rms, joakim, emacs-devel

>>>>> "David" == David Kastrup <dak@gnu.org> writes:

David> I am not comfortable with having Emacs automatically install and load
David> anything, period.

Just to be clear here, package.el never automatically installs
anything.  You must ask for it using the package menu mode (or some
other install approach).  Once something is installed, it is
automatically activated when package-initialize is called -- but this
is an intentional feature.

David> I consider the "fixed repository"
David> approach something that does not work out.  Each package should carry
David> with itself the information where to ask for updates.

I considered this but rejected it for two reasons.

First, in my view it is simply more convenient for users to have a
single, pre-configured download site.  That way no configuration of
package.el is needed, it "just works".  Yes, this is slightly harder
for package maintainers, but I've tried to make package.el impose as
few hardships as possible, and I think the burden is not too great.

Second, 3rd party sites often die.  ELL has many stale links in it,
and in my view the free-for-all of the Emacs Wiki is a bit too scary
to trust blindly.  I know that the worst failure mode with a site
under my control (hosted on my web site or on savannah) is that it
will go stale -- which while lamentable at least is not a potential
security hole.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-20  7:54                   ` David Kastrup
  2007-05-20 21:53                     ` Tom Tromey
@ 2007-05-20 22:05                     ` Richard Stallman
  1 sibling, 0 replies; 146+ messages in thread
From: Richard Stallman @ 2007-05-20 22:05 UTC (permalink / raw)
  To: David Kastrup; +Cc: tromey, joakim, emacs-devel

    There is a lot of code around for Emacs for which we do not even
    _want_ copyright assignments and control since we have neither the
    manpower nor the willingness to cater for it.

We want copyright assignments for any packages that are important
(which includes the popular ones), and any code we might want to
install.

It is true that many Lisp programs are posted which are not quite as
interesting.  However, if we encourage people not to sign assignments
when we need them.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-20 17:05                     ` Richard Stallman
  2007-05-20 21:45                       ` Tom Tromey
@ 2007-05-21  2:57                       ` Bob Rogers
  2007-05-21 13:24                         ` Richard Stallman
  1 sibling, 1 reply; 146+ messages in thread
From: Bob Rogers @ 2007-05-21  2:57 UTC (permalink / raw)
  To: rms; +Cc: tromey, joakim, emacs-devel

   From: Richard Stallman <rms@gnu.org>
   Date: Sun, 20 May 2007 13:05:23 -0400

       How about if I change things so that package.el looks at a list of
       repositories, which by default only includes the FSF-owned site?

   This might tempt redistributors (such as GNU/Linux distros) to add
   other repositories.  I don't want to ask for trouble.

Why would GNU/Linux distributors stop using their own well-established
mechanisms for publishing Emacs add-ons?  If I search for package names
containing "emacs" in the installer for a SuSE distro, for example, I
get a handful of such SuSE-distributed RPMs.  So if this is asking for
trouble, I don't see how it gets us into any *new* trouble.  ;-}

					-- Bob Rogers
					   http://rgrjr.dyndns.org/

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-20 21:45                       ` Tom Tromey
@ 2007-05-21  5:19                         ` David Kastrup
  2007-05-21 10:33                         ` Richard Stallman
  2007-05-21 12:03                         ` Robert J. Chassell
  2 siblings, 0 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-21  5:19 UTC (permalink / raw)
  To: tromey; +Cc: rms, joakim, emacs-devel

Tom Tromey <tromey@redhat.com> writes:

>>>>>> "rms" == Richard Stallman <rms@gnu.org> writes:
>
>>     How about if I change things so that package.el looks at a list of
>>     repositories, which by default only includes the FSF-owned site?
>
> rms> This might tempt redistributors (such as GNU/Linux distros) to add
> rms> other repositories.  I don't want to ask for trouble.
>
> Unfortunately this does not align very well with my goals in writing
> package.el.  My goal is to make it much simpler for Emacs users to
> download and install the many useful un-integrated Emacs packages that
> are out there.  And, in my view, this has to include the 3rd party,
> unassigned code -- there's a wealth of this on ELL and the Emacs Wiki,
> and its existence, far from hurting Emacs in some way, is actually a
> vital part of the thriving Emacs community.

I more or less agree.  The first letter of Emacs stands for
"Extensible", and where is the point in extending if sharing is made
complicated?  This certainly holds for those things that are not of
general interest, but even those that end up in CVS proper take time
and work to integrate into the tree, time that could be better spent.
If it was usually a single command to grab a package into the tree,
that would save time and work.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-20 21:53                     ` Tom Tromey
@ 2007-05-21  5:24                       ` David Kastrup
  2007-05-21  5:53                         ` dhruva
                                           ` (2 more replies)
  2007-05-21 10:17                       ` package.el (was: Re: CVS is the `released version') David Reitter
  1 sibling, 3 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-21  5:24 UTC (permalink / raw)
  To: tromey; +Cc: rms, joakim, emacs-devel

Tom Tromey <tromey@redhat.com> writes:

>>>>>> "David" == David Kastrup <dak@gnu.org> writes:
>
> David> I am not comfortable with having Emacs automatically install and load
> David> anything, period.
>
> Just to be clear here, package.el never automatically installs
> anything.  You must ask for it using the package menu mode (or some
> other install approach).  Once something is installed, it is
> automatically activated when package-initialize is called -- but this
> is an intentional feature.
>
> David> I consider the "fixed repository"
> David> approach something that does not work out.  Each package should carry
> David> with itself the information where to ask for updates.
>
> I considered this but rejected it for two reasons.
>
> First, in my view it is simply more convenient for users to have a
> single, pre-configured download site.  That way no configuration of
> package.el is needed, it "just works".  Yes, this is slightly harder
> for package maintainers, but I've tried to make package.el impose as
> few hardships as possible, and I think the burden is not too great.

Please take a look at how the XEmacs package system works.  It has a
central repository.  It tends to distribute outdated or non-working
code because the people maintaining the central server tend to be not
the same creating the packages.

In my opinion, it is the crucial weakness of the XEmacs package
system.  We don't want to go there.  If some package is provided
upstream, we want to have it directly usable from its default download
location.

> Second, 3rd party sites often die.  ELL has many stale links in it,
> and in my view the free-for-all of the Emacs Wiki is a bit too scary
> to trust blindly.  I know that the worst failure mode with a site
> under my control (hosted on my web site or on savannah) is that it
> will go stale -- which while lamentable at least is not a potential
> security hole.

Where is the problem with that?  Allow for fallback sites to be
specified.  The fallback may well end in a central repository, and if
you are lucky, the package drawn from there will have been updated to
know where to get more recent packages in future.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21  5:24                       ` David Kastrup
@ 2007-05-21  5:53                         ` dhruva
  2007-05-21  6:51                           ` David Kastrup
  2007-05-21  8:47                         ` Stephen J. Turnbull
  2007-05-21 13:24                         ` Richard Stallman
  2 siblings, 1 reply; 146+ messages in thread
From: dhruva @ 2007-05-21  5:53 UTC (permalink / raw)
  To: emacs-devel

Hi,

On 5/21/07, David Kastrup <dak@gnu.org> wrote:
> Where is the problem with that?  Allow for fallback sites to be
> specified.  The fallback may well end in a central repository, and if
> you are lucky, the package drawn from there will have been updated to
> know where to get more recent packages in future.

Something along the lines of Debian's "apt". It is such a wonderful
tool. We could also try to have some sort of dependency check like apt
does. It sure helps people wanting to extend Emacs without having to
download, compile, file the missing package and go through that
loop... I keep promoting Debian and find it's "apt" to be the selling
point with administrators!

with best regards,
dhruva

-- 
Dhruva Krishnamurthy
Contents reflect my personal views only!

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21  5:53                         ` dhruva
@ 2007-05-21  6:51                           ` David Kastrup
  0 siblings, 0 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-21  6:51 UTC (permalink / raw)
  To: dhruva; +Cc: emacs-devel

dhruva <dhruvakm@gmail.com> writes:

> Hi,
>
> On 5/21/07, David Kastrup <dak@gnu.org> wrote:
>> Where is the problem with that?  Allow for fallback sites to be
>> specified.  The fallback may well end in a central repository, and if
>> you are lucky, the package drawn from there will have been updated to
>> know where to get more recent packages in future.
>
> Something along the lines of Debian's "apt". It is such a wonderful
> tool.

Again: I don't want to go the way of the central repository.  95% of
what constitutes Debian is maintaining the central repository.  We
don't have those resources.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21  5:24                       ` David Kastrup
  2007-05-21  5:53                         ` dhruva
@ 2007-05-21  8:47                         ` Stephen J. Turnbull
  2007-05-21  9:22                           ` David Kastrup
  2007-05-21 13:24                         ` Richard Stallman
  2 siblings, 1 reply; 146+ messages in thread
From: Stephen J. Turnbull @ 2007-05-21  8:47 UTC (permalink / raw)
  To: David Kastrup; +Cc: tromey, rms, joakim, emacs-devel

David Kastrup writes:

 > Please take a look at how the XEmacs package system works.  It has a
 > central repository.  It tends to distribute outdated or non-working
 > code because the people maintaining the central server tend to be not
 > the same creating the packages.

I wish you'd stop generalizing from your experience, which is limited
to AUCTeX and is unrepresentative of the general experience.
Furthermore, your reporting of the features and operation of the
XEmacs package system bears almost no resemblance to the reality.

So let's take a look at how it does work.

In fact, most of our packages (that are not maintained by the GNU
Emacs project) are maintained by their upstream maintainers.  They
generally simply make a commit to the XEmacs CVS repository, which
starts the release process using XEmacs resources, including rolling
and announcing tarballs, a pretest period, and a second announcement
when the pretest is over and the release is promoted to "public
release" (of the XEmacs package).  Only if bugs are reported, or if
the maintainer wishes to give special instructions (eg, more commits
are coming, don't release yet) is there need for anything more than a
cvs commit by upstream.  (AUCTeX differs because for many years its
upstream maintainer has been publicly at odds with the XEmacs project
and has explicitly claimed that the user who has volunteered to
maintain the XEmacs package is unqualified, and thus has forfeited
control over our package to our volunteer.)

Regarding centralization, if you want *us* to distribute packages with
storage and bandwidth contributed to *us* and want *us* to do the work
of rolling the tarballs and so on, then indeed we do insist on
checking in to our CVS.  For almost all changes to packages, it's
simply a matter of copying over the new version to a checked-out
XEmacs tree, and typing "cvs commit -m 'Release of version X.Y.Z.'" in
the package subtree of the XEmacs tree.  This is no different from
getting your package to be released as an official Emacs library,
using GNU resources: you have to check into the GNU CVS repo.

We do insist that "official XEmacs" packages be built in the context
of a full package tree, for precisely the same reasons that GNU Emacs
"wants" to be a monolithic application: Emacs Lisp provides no
facilities for proper modularization (the only namespace is the global
one), and there is no way to achieve inlining (required for Lisp
macros and extremely desirable for defsubsts) from bytecode.

Note that for this reason Tom Tromey's package.el will likely be quite
popular with upstream maintainers, compared to the XEmacs system.
It's Emacs-oriented, so you can assume that the environment will
contain all of the wonderful "stuff" distributed with Emacs.  Most of
the complexity of the XEmacs system derives from the fact that that
assumption is easily violated in a modular package system, while in
practice it won't often be a problem for users of monolithic Emacs.

For end users, in fact, there is no problem with using multiple
package archives.  (Admittedly, I'm personally not at all happy with
our UI for using multiple archives.  But that's an implementation
problem, not a bug in the basic design.)  Nor does the UI make any
attempt to distinguish between mirrors of the "official" archive and
private or upstream project archives.  VM, for example, has maintained
a private archive distributing its "latest and greatest" version as an
XEmacs package for at least 5 years.  Many users use that package in
preference to ours.  Others prefer the convenience of one stop
shopping.

 > If some package is provided upstream, we want to have it directly
 > usable from its default download location.

XEmacs's package system has that feature, and has always had it, by
design.  Cf VM.  There's nothing to stop you from distributing a
package compatible with our download and install UI.  In fact, AUCTeX,
like VM, does.  The VM and AUCTeX sites are not available from the
package configuration menu, but that's only because Kyle doesn't
particularly want the traffic, while there are "personal issues"
involved in the lack of an AUCTeX entry.

However, in the end I have to agree with Richard Stallman.  One big
problem (for GNU) with a package system is that it facilitates
distributed development and permits a general topology (rather than a
star) for the distribution network.  Thus it undermines the incentive
to work in the context of the Emacs project and to assign code to the
FSF.  That's inconsistent with my understanding of the goals of GNU,
and therefore of the Emacs project.

Stefan Monnier is also correct that properly supporting a package
system requires that exported APIs be designated and respected (ie,
backwards compatibility be maintained in the face of clearly better
alternatives).  In XEmacs practice, any API used by a package in the
CVS package repository is exported, unless we've explicitly labelled
it as internal.  In effect, any third party can "out" an API simply by
calling it.  Conflicts are rare, but annoying when they do occur.
This is a perennial complaint of core developers in XEmacs (especially
Ben Wing, but by no means limited to him).  Since GNU wants to
encourage development to happen inside of GNU, not outside of it, it
seems silly to constrain Emacs that way.

I conclude that until distributed development becomes an explicit goal
of the Emacs project, a package system is generally counterproductive
to the objectives it espouses (by which I mean advocating free
software and supporting organizations in the free software movement,
and developing Emacs itself as opposed to third party libraries).

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21  8:47                         ` Stephen J. Turnbull
@ 2007-05-21  9:22                           ` David Kastrup
  0 siblings, 0 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-21  9:22 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: tromey, rms, joakim, emacs-devel

"Stephen J. Turnbull" <stephen@xemacs.org> writes:

> David Kastrup writes:
>
>  > Please take a look at how the XEmacs package system works.  It
>  > has a central repository.  It tends to distribute outdated or
>  > non-working code because the people maintaining the central
>  > server tend to be not the same creating the packages.
>
> I wish you'd stop generalizing from your experience, which is
> limited to AUCTeX and is unrepresentative of the general experience.

I don't see how it would be unrepresentative.  Please name some
packages where

a) the upstream author has not taken upon himself the burden of
becoming an XEmacs developer including write access to the XEmacs
CVS repository and learning the structure of the package build system

b) the package is kept reasonably uptodate

Could you name externally distributed packages (useful for other Emacs
variants) where the structure of the XEmacs package is not different
from what works unmodified for the distribution of other versions?
There is X-Symbol, but its Emacs install procedure is a hand-crafted
process that is made more complicated by the XEmacs package structure.

> Furthermore, your reporting of the features and operation of the
> XEmacs package system bears almost no resemblance to the reality.
>
> So let's take a look at how it does work.
>
> In fact, most of our packages (that are not maintained by the GNU
> Emacs project) are maintained by their upstream maintainers.  They
> generally simply make a commit to the XEmacs CVS repository,

See?  You require
a) the upstream developers to have CVS write access
b) the package to be structured for the XEmacs packagae CVS tree which is
c) completely different from the actual package layout in the
   installed tree, meaning that this particular layout is useless
   _except_ as part of the _XEmacs_ package system.

> which starts the release process using XEmacs resources, including
> rolling and announcing tarballs, a pretest period, and a second
> announcement when the pretest is over and the release is promoted to
> "public release" (of the XEmacs package).  Only if bugs are
> reported, or if the maintainer wishes to give special instructions
> (eg, more commits are coming, don't release yet) is there need for
> anything more than a cvs commit by upstream.  (AUCTeX differs
> because for many years its upstream maintainer has been publicly at
> odds with the XEmacs project and has explicitly claimed that the
> user who has volunteered to maintain the XEmacs package is
> unqualified,

That's what the _user_ himself has stated several times, yet he has
seen little help.  Don't blame me for repeating Uwe's statement.  And
it is not like I have ever discouraged Uwe for his work.  I have
rather complained about the lack of help he is seeing from XEmacs
developers.

> and thus has forfeited control over our package to our volunteer.)

Stephen, cut the propaganda.  None of the XEmacs developers could be
bothered updating AUCTeX which had fallen _several_ years behind for
that reason.  I asked _repeatedly_ on the XEmacs developer list, over
a long period.

Finally an AUCTeX user, Uwe, volunteered to _try_ his hand and he has
repeatedly stated himself that he was quite out of his depth.
Nevertheless, he managed to get out some releases with a large
time-delay.  It was, however, relatively obvious that he was not
getting much help from XEmacs developers.  Since preview-latex already
had the infrastructure for building an XEmacs package layout included
(from the time an XEmacs developer helped porting it), when we merged
preview-latex into AUCTeX, we have kept this infrastructure intact.
One of the motivations was to be able to produce a complete XEmacs
package as a _target_ for those having to maintain the XEmacs package
in the XEmacs CVS manner.

preview-latex is not a simple package, and the installation process
has a lot of flexibilities.  Nevertheless, we have been able to come
up with a configuration (after several iterations) that produces a
ready-to-run XEmacs package usable for pretty much all configurations.

In spite of having our automated build process to take as an example,
in spite of having a ready-made package (which according to XEmacs
terminology is complete (citing the GPL) "with all the source code for
all modules it contains, plus any associated interface definition
files, plus the scripts used to control compilation and installation
of the executable") and in spite of both Uwe as well as another XEmacs
developer trying, they have not been able to create the files and/or
process of reproducing the package which we already provide in a final
form.

> Regarding centralization, if you want *us* to distribute packages
> with storage and bandwidth contributed to *us* and want *us* to do
> the work of rolling the tarballs and so on, then indeed we do insist
> on checking in to our CVS.

It does not work since the CVS requires a completely different
directory layout from the installed package.  So it is required to
have
a) a source tree modeled after the XEmacs CVS package source tree
b) a final package layout modeled after the XEmacs package layout.

If you have just b), you can't transform it into a) (or we would have
had an uptodate AUCTeX distributed long long ago).  And if you don't
use the rigid XEmacs package tree layout for going to b), you can't
get to a) easily either.

And this is simply a mistake.

Now the current approaches I see with package systems for Emacs at
least avoid the mistake of demanding a source package layout that is
fundamentally different from the finished package layout and can't be
reproduced from the latter.

That is one design mistake less to cater for.

But the centralized repository requirement, in my book, is another
that is asking for trouble.

> For almost all changes to packages, it's simply a matter of copying
> over the new version to a checked-out XEmacs tree, and typing "cvs
> commit -m 'Release of version X.Y.Z.'"  in the package subtree of
> the XEmacs tree.  This is no different from getting your package to
> be released as an official Emacs library, using GNU resources: you
> have to check into the GNU CVS repo.

Which does not have a different layout from the distributed packages
and does not require separate description files and Makefile rules.

Still, the target of a package system, if any, is _not_ to require
including everything into Emacs.  So saying that your system is as
easy as just dropping everything into Emacs (which it isn't) is
tantamount to saying that its complications are not offset by making
maintenance simpler.

> Note that for this reason Tom Tromey's package.el will likely be
> quite popular with upstream maintainers, compared to the XEmacs
> system.

Well, there is nothing wrong in trying to avoid what I consider design
mistakes in the XEmacs system.  Certainly package.el seems like an
improvement over the XEmacs system for most uses.  That does not mean
that one should not try still making it better for common use cases
while one is still in the design phase.

>  > If some package is provided upstream, we want to have it directly
>  > usable from its default download location.
>
> XEmacs's package system has that feature, and has always had it, by
> design.  Cf VM.

Uh no.  VM does not tell the package system where its canonical
download location is supposed to be.  One has to manually configure
that.

> There's nothing to stop you from distributing a package compatible
> with our download and install UI.  In fact, AUCTeX, like VM, does.
> The VM and AUCTeX sites are not available from the package
> configuration menu, but that's only because Kyle doesn't
> particularly want the traffic, while there are "personal issues"
> involved in the lack of an AUCTeX entry.

What personal issues?

> However, in the end I have to agree with Richard Stallman.  One big
> problem (for GNU) with a package system is that it facilitates
> distributed development and permits a general topology (rather than
> a star) for the distribution network.  Thus it undermines the
> incentive to work in the context of the Emacs project and to assign
> code to the FSF.  That's inconsistent with my understanding of the
> goals of GNU, and therefore of the Emacs project.

Yes and no.  Part of the strength of Emacs is its extensibility which
leads to a large amount of one-shot code for special solutions that
really has no sensible place in a centrally maintained repository, and
which is not strategically important to the GNU project.  Being able
to provide such code in a form which could easily be pulled into an
Emacs without much manual work would be a boon.

> I conclude that until distributed development becomes an explicit
> goal of the Emacs project, a package system is generally
> counterproductive to the objectives it espouses (by which I mean
> advocating free software and supporting organizations in the free
> software movement, and developing Emacs itself as opposed to third
> party libraries).

I am more thinking in the form of "disjoint" rather than "distributed"
development.  Stuff which you might very well decide you don't need.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 146+ messages in thread

* package.el (was: Re: CVS is the `released version')
  2007-05-20 21:53                     ` Tom Tromey
  2007-05-21  5:24                       ` David Kastrup
@ 2007-05-21 10:17                       ` David Reitter
  2007-05-21 17:40                         ` package.el Tom Tromey
  1 sibling, 1 reply; 146+ messages in thread
From: David Reitter @ 2007-05-21 10:17 UTC (permalink / raw)
  To: tromey; +Cc: emacs- devel

Hi Tom,

I just had a look at package.el. A few comments:

The install instructions say:

> If you don't know what "eval" means, it means that you should copy  
> this into your *scratch* buffer, move your cursor just after the  
> final closing paren, and type C-j.

*scratch* is not guaranteed to be in emacs-lisp-mode. So C-j might  
not work. M-x eval-region would!

 From your installer file:

> (expand-file-name "~/.emacs.d/elpa")

please don't assume that this directory is something where you can  
(or the user wants to) install things. There should be a  
customization variable for this. This applies to package.el itself as  
well, where you have a defvar, not a defcustom, for package-user-dir.

In package.el, I'm not sure what's going on with `package-activated- 
list', but you seem to make assumptions about which packages are  
installed by default. Does your code also check for actually  
installed files? Emacs distributions may come with other things like  
AUCTeX, JDEE, and many other packages already installed (and this may  
or may not have been done in a way compatible with package.el).

I hope that helps, and keep working on this - I think it's a good idea.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-20 21:45                       ` Tom Tromey
  2007-05-21  5:19                         ` David Kastrup
@ 2007-05-21 10:33                         ` Richard Stallman
  2007-05-21 10:46                           ` David Kastrup
  2007-05-21 16:33                           ` Tom Tromey
  2007-05-21 12:03                         ` Robert J. Chassell
  2 siblings, 2 replies; 146+ messages in thread
From: Richard Stallman @ 2007-05-21 10:33 UTC (permalink / raw)
  To: tromey; +Cc: joakim, emacs-devel

It seems that part of your motivation for wanting a package system is
to move Emacs development in a direction that weakens the FSF's
ability to develop Emacs as an FSF-copyrighted package.
This confirms my concern about the downside.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 10:33                         ` Richard Stallman
@ 2007-05-21 10:46                           ` David Kastrup
  2007-05-21 18:36                             ` JD Smith
  2007-05-22  8:30                             ` Richard Stallman
  2007-05-21 16:33                           ` Tom Tromey
  1 sibling, 2 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-21 10:46 UTC (permalink / raw)
  To: rms; +Cc: tromey, joakim, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> It seems that part of your motivation for wanting a package system is
> to move Emacs development in a direction that weakens the FSF's
> ability to develop Emacs as an FSF-copyrighted package.
> This confirms my concern about the downside.

I don't think this is a fair characterization.  The idea is not, as
far as I can tell, to reduce the motivation for contributing material
into Emacs' core.  It is to provide a mechanism to work with things
that have no real place in the Emacs core.

In addition, if done right, it could make it _easier_ to pull material
into Emacs' core: right now there are no hard rules for what a Emacs
package (a conglomerate of Lisp files, auxiliary files, documentation
and other stuff) should look like when wanting to get moved into
Emacs.  If there are some policies (like avoiding all absolute paths
or dependencies on the final system) made in connection with a package
system, it could mean that once a decision is made to make a package
an integral part of Emacs (instead of a separately distributed one),
this would be facilitated with a few commands and a commit.

Also, such a system could replace the vacuum that has called into
being the Debian Emacs packaging guidelines, which are not understood
by pretty much every Emacs and XEmacs developer, and not by all too
many Debian developers either.

I can't see how this would in any way diminuish the FSF's ability to
develop Emacs as an FSF-copyrighted package.  At the current point of
time, both pulling a (non-standardized) package into Emacs and
maintaining it externally is a source of pain.  A minimal package
system (which would probably consist more of structuring policies
rather than actual code implementing it) would reduce the pain on
either level.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-20 21:45                       ` Tom Tromey
  2007-05-21  5:19                         ` David Kastrup
  2007-05-21 10:33                         ` Richard Stallman
@ 2007-05-21 12:03                         ` Robert J. Chassell
  2007-05-21 12:13                           ` David Kastrup
                                             ` (2 more replies)
  2 siblings, 3 replies; 146+ messages in thread
From: Robert J. Chassell @ 2007-05-21 12:03 UTC (permalink / raw)
  To: emacs-devel

    rms> This might tempt redistributors (such as GNU/Linux distros)
    rms> to add other repositories.  I don't want to ask for trouble.

        Unfortunately this does not align very well with my goals in
        writing package.el.  ... download and install ... the 3rd
        party, unassigned code ...

Since all software in the United States is copyrighted on creation,
whether or not a copy of that code is sent to the copyright office,
unless it is specifically said to be public domain, downloading and
installing "3rd party, unassigned code" may mean `illegally using
code'.  Most programs, of course, are never used illegally.  But a few
may be.  This can be awkward.

Doubtless, you are thinking of code that you or people you trust have
checked for legality, but not every American does.

-- 
    Robert J. Chassell                          GnuPG Key ID: 004B4AC8
    bob@rattlesnake.com                         bob@gnu.org
    http://www.rattlesnake.com                  http://www.teak.cc

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 12:03                         ` Robert J. Chassell
@ 2007-05-21 12:13                           ` David Kastrup
  2007-05-21 12:45                           ` Stefan Monnier
  2007-05-21 13:18                           ` jasonr
  2 siblings, 0 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-21 12:13 UTC (permalink / raw)
  To: bob; +Cc: emacs-devel

"Robert J. Chassell" <bob@rattlesnake.com> writes:

>     rms> This might tempt redistributors (such as GNU/Linux distros)
>     rms> to add other repositories.  I don't want to ask for trouble.
>
>         Unfortunately this does not align very well with my goals in
>         writing package.el.  ... download and install ... the 3rd
>         party, unassigned code ...
>
> Since all software in the United States is copyrighted on creation,
> whether or not a copy of that code is sent to the copyright office,
> unless it is specifically said to be public domain, downloading and
> installing "3rd party, unassigned code" may mean `illegally using
> code'.  Most programs, of course, are never used illegally.  But a few
> may be.  This can be awkward.
>
> Doubtless, you are thinking of code that you or people you trust have
> checked for legality, but not every American does.

That sounds like making the tool responsible for the crime.  We are
not talking about something akin to "gun control" but rather to
"kitchen knife control".  The legitimate uses are much too farspread
that it makes sense blaming the tool for it.

And there is in particular no sense in banning a tool when that does
nothing to change the relative difficulty between legitimate and
illegitimate applications.

Anyway, we are not out to doing the government's work in shooting the
users in the foot.  We are bound by the laws, but we need not
proactively support them.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 12:03                         ` Robert J. Chassell
  2007-05-21 12:13                           ` David Kastrup
@ 2007-05-21 12:45                           ` Stefan Monnier
  2007-05-21 13:18                           ` jasonr
  2 siblings, 0 replies; 146+ messages in thread
From: Stefan Monnier @ 2007-05-21 12:45 UTC (permalink / raw)
  To: bob; +Cc: emacs-devel

>         Unfortunately this does not align very well with my goals in
>         writing package.el.  ... download and install ... the 3rd
>         party, unassigned code ...

> Since all software in the United States is copyrighted on creation,
> whether or not a copy of that code is sent to the copyright office,
> unless it is specifically said to be public domain, downloading and
> installing "3rd party, unassigned code" may mean `illegally using
> code'.  Most programs, of course, are never used illegally.  But a few
> may be.  This can be awkward.

You're confused: unassigned, just means that the copyright is not assigned
to the FSF.  It may still be (and generally is) properly licensed under
the GPL.


        Stefan

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-19 22:33                   ` Tom Tromey
  2007-05-20 17:05                     ` Richard Stallman
@ 2007-05-21 12:53                     ` Stefan Monnier
  2007-05-21 16:41                       ` Tom Tromey
  2007-05-22  4:38                     ` Xavier Maillard
  2 siblings, 1 reply; 146+ messages in thread
From: Stefan Monnier @ 2007-05-21 12:53 UTC (permalink / raw)
  To: tromey; +Cc: rms, joakim, emacs-devel

> How about if I change things so that package.el looks at a list of
> repositories, which by default only includes the FSF-owned site?
> That way people can set up additional repositories as well.
> This isn't quite as friendly for users but is, IMO, workable.

Tom, I recommend that you separate issues a bit more.  Your package.el does
2 things: one is find&download packages from a repository, and the other is
install/activate/deinstall/listinstalled packages.  The two should be fairly
independent, just like apt-get and dpkg in Debian.

The dpkg-like part (the part that my install.el also intended to cover) is
the first part that really needs to be installed.  People can easily browse
the ELL already to download packages using any other random tool.  The more
difficult part for average users is to do the actual install.

Once the dpkg part is agreed upon, we can move on to the other part.


        Stefan

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-20 17:05                     ` Richard Stallman
  2007-05-20 21:23                       ` Tom Tromey
@ 2007-05-21 12:59                       ` Stefan Monnier
  2007-05-21 13:03                         ` David Kastrup
  2007-05-21 16:50                         ` Tom Tromey
  1 sibling, 2 replies; 146+ messages in thread
From: Stefan Monnier @ 2007-05-21 12:59 UTC (permalink / raw)
  To: rms; +Cc: tromey, joakim, emacs-devel

> It seems wasteful to have a file just for this define-package.  Why
> not get the info out of the .el files just as for a one-file package?

I don't think the waste is very significant.  Butm I agree that package.el
could simply look for a define-package call in every .el file.  And it could
simply report an error if there are 2 or more such calls.

> It could look at all the .el files and verify that they all agree.  If
> they don't, it could print an error message.  If it finds different
> package names in various files, it could treat them as separate packages.

I think tht supporting several "packages" inside a single tarball will
complicate matters significantly.  OTOH, some packages include other
packages for the user's (in)convenience, e.g. ProofGeneral includes a copy
of X-Symbol in its tarball, so package.el somehow do something intelligent
in such cases.  Maybe it can recognize that it's in a dubdirectory of its
own and move it out or something like that.


        Stefan

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 12:59                       ` Stefan Monnier
@ 2007-05-21 13:03                         ` David Kastrup
  2007-05-21 14:14                           ` Stefan Monnier
  2007-05-21 16:50                         ` Tom Tromey
  1 sibling, 1 reply; 146+ messages in thread
From: David Kastrup @ 2007-05-21 13:03 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: tromey, rms, joakim, emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> It seems wasteful to have a file just for this define-package.  Why
>> not get the info out of the .el files just as for a one-file package?
>
> I don't think the waste is very significant.  Butm I agree that
> package.el could simply look for a define-package call in every .el
> file.  And it could simply report an error if there are 2 or more
> such calls.

Could also be information in a comment, properly formatted.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 12:03                         ` Robert J. Chassell
  2007-05-21 12:13                           ` David Kastrup
  2007-05-21 12:45                           ` Stefan Monnier
@ 2007-05-21 13:18                           ` jasonr
  2007-05-21 15:39                             ` Robert J. Chassell
  2 siblings, 1 reply; 146+ messages in thread
From: jasonr @ 2007-05-21 13:18 UTC (permalink / raw)
  To: bob; +Cc: emacs-devel

Quoting "Robert J. Chassell" <bob@rattlesnake.com>:

> Since all software in the United States is copyrighted on creation,
> whether or not a copy of that code is sent to the copyright office,
> unless it is specifically said to be public domain, downloading and
> installing "3rd party, unassigned code" may mean `illegally using
> code'.  Most programs, of course, are never used illegally.  But a few
> may be.  This can be awkward.

As we are talking about emacs-lisp packages here, assuming the code to be Free
is quite reasonable.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21  2:57                       ` Bob Rogers
@ 2007-05-21 13:24                         ` Richard Stallman
  2007-05-21 16:22                           ` Tom Tromey
  0 siblings, 1 reply; 146+ messages in thread
From: Richard Stallman @ 2007-05-21 13:24 UTC (permalink / raw)
  To: Bob Rogers; +Cc: tromey, joakim, emacs-devel

    Why would GNU/Linux distributors stop using their own well-established
    mechanisms for publishing Emacs add-ons?

I don't know what they do now.  Would you like to tell me?

      If I search for package names
    containing "emacs" in the installer for a SuSE distro, for example, I
    get a handful of such SuSE-distributed RPMs.

That doesn't have much detail, so I cannot tell if I would consider it
a problem or what.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21  5:24                       ` David Kastrup
  2007-05-21  5:53                         ` dhruva
  2007-05-21  8:47                         ` Stephen J. Turnbull
@ 2007-05-21 13:24                         ` Richard Stallman
  2007-05-21 13:51                           ` David Kastrup
  2 siblings, 1 reply; 146+ messages in thread
From: Richard Stallman @ 2007-05-21 13:24 UTC (permalink / raw)
  To: David Kastrup; +Cc: tromey, joakim, emacs-devel

    Please take a look at how the XEmacs package system works.  It has a
    central repository.  It tends to distribute outdated or non-working
    code because the people maintaining the central server tend to be not
    the same creating the packages.

You previously explained that this is because making the XEmacs package
requires doing substantial work on the code.  We are moving to reduce
to zero the amount of "packaging" required.  All that would be necessary
is to install the new version in the standard repository.  Since this
is easy, people would do it often.  We could even let the maintainers
of the package itself do so.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 13:24                         ` Richard Stallman
@ 2007-05-21 13:51                           ` David Kastrup
  2007-05-24 21:22                             ` Richard Stallman
  0 siblings, 1 reply; 146+ messages in thread
From: David Kastrup @ 2007-05-21 13:51 UTC (permalink / raw)
  To: rms; +Cc: tromey, joakim, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     Please take a look at how the XEmacs package system works.  It
>     has a central repository.  It tends to distribute outdated or
>     non-working code because the people maintaining the central
>     server tend to be not the same creating the packages.
>
> You previously explained that this is because making the XEmacs
> package requires doing substantial work on the code.  We are moving
> to reduce to zero the amount of "packaging" required.  All that
> would be necessary is to install the new version in the standard
> repository.  Since this is easy, people would do it often.

If they have access and are interested in doing it.  One of the
package-centric projects I am involved with is TeX.  There is a server
CTAN (comprehensive TeX archive network) which takes contributions in
whatever form people want to make.  There is no really standardized
package format.  A distribution, TeXlive, is usually made yearly, and
it takes a bunch of volunteers to check stuff from CTAN into TeXlive,
update the TPM (TeX package manager files, XML files which basically
say what goes where in the installed tree) and integrate stuff.

CTAN basically places no burden on the submitter at all concerning the
structuring of the package, and licensing (there is a non-free
hierarchy for stuff that can't be redistributed and changed freely) or
copyrights.  Even though contributing to it is basically hassle-free,
it is probably "only" 90% of all interesting packages that are there,
and reasonably up to date.  TeXlive also manages to be mostly up to
date (apart from some oversights).  Contributors are usually asked to
suggest proper installation points in the CTAN hierarchy, as well as
in a running TeX system.

> We could even let the maintainers of the package itself do so.

If we provide Emacs commands that produce a package _and_ can install
into an Emacs CVS work copy (probably generating appropriate ChangeLog
entries semi-automatically) _and_ can install into local directories
for a running Emacs, all from the same package source tree, we
basically are at a point where contributing to Emacs CVS is a
zero-pain procedure once one finished testing and installing locally.
If those commands don't do much more than a recursive copy, so much
the better: it would mean that one could convert one form into a
different one easily, not requiring starting from a "canonical" source
version.

I would guess that such a system would tend to get us more rather than
fewer contributions.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 13:03                         ` David Kastrup
@ 2007-05-21 14:14                           ` Stefan Monnier
  0 siblings, 0 replies; 146+ messages in thread
From: Stefan Monnier @ 2007-05-21 14:14 UTC (permalink / raw)
  To: David Kastrup; +Cc: tromey, rms, joakim, emacs-devel

>>> It seems wasteful to have a file just for this define-package.  Why
>>> not get the info out of the .el files just as for a one-file package?
>> 
>> I don't think the waste is very significant.  Butm I agree that
>> package.el could simply look for a define-package call in every .el
>> file.  And it could simply report an error if there are 2 or more
>> such calls.

> Could also be information in a comment, properly formatted.

Indeed, probably using the same format as is currently used for
single-file packages.


        Stefan

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 13:18                           ` jasonr
@ 2007-05-21 15:39                             ` Robert J. Chassell
  2007-05-22 10:10                               ` Stefan Monnier
  0 siblings, 1 reply; 146+ messages in thread
From: Robert J. Chassell @ 2007-05-21 15:39 UTC (permalink / raw)
  To: emacs-devel

    > ... Most programs, of course, are never used illegally.  But a few
    > may be.  This can be awkward.

    You're confused: unassigned, just means that the copyright is not
    assigned to the FSF.  It may still be (and generally is) properly
    licensed under the GPL.

No, I am not talking about those that are properly licensed.  I am
talking about the one -- that is all that is needed -- that is
mis-copyrighted and is supported by an organization which decides to
litigate, has lots of money, and does not mind losing.

   > Since all software in the United States is copyrighted on
   > creation, ...

   That sounds like making the tool responsible for the crime. ... 

No, it has to do with various ways of fighting to reduce excessive
costs (including the time of people who are not lawyers thinking about
this) for baseless litigation in the US.

Thus, in a country that follows the international treaty, instead of a
programmer making improvements to package.el, he might spend his time
in court instead.

   As we are talking about emacs-lisp packages here, assuming the code
   to be Free is quite reasonable.

That is not true if there is someone willing to spend several millions
of dollars, does not mind the defenses, and likely losing ...

-- 
    Robert J. Chassell                          GnuPG Key ID: 004B4AC8
    bob@rattlesnake.com                         bob@gnu.org
    http://www.rattlesnake.com                  http://www.teak.cc

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 13:24                         ` Richard Stallman
@ 2007-05-21 16:22                           ` Tom Tromey
  0 siblings, 0 replies; 146+ messages in thread
From: Tom Tromey @ 2007-05-21 16:22 UTC (permalink / raw)
  To: rms; +Cc: Bob Rogers, joakim, emacs-devel

>>>>> "rms" == Richard Stallman <rms@gnu.org> writes:

>     Why would GNU/Linux distributors stop using their own well-established
>     mechanisms for publishing Emacs add-ons?

rms> I don't know what they do now.  Would you like to tell me?

Fedora's Emacs package by default removes some Emacs functionality
(tetris, on advice of lawyers) and also adds a (seemingly random) set
of additions to the system site-lisp directory.  I can send a list of
the additions if you like.  Some of them appear to be redundant with
new additions to Emacs 22 (but perhaps they are better versions of
existing modes, I don't know).

Fedora also defines a way to package Emacs add-ons.  At least AUCTeX,
Muse, and VM are packaged this way, and BBDB is in the works.
Generally these packages install into site-lisp and add a file that is
loaded by default by Emacs startup; this file handles autoloads and
the like.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 10:33                         ` Richard Stallman
  2007-05-21 10:46                           ` David Kastrup
@ 2007-05-21 16:33                           ` Tom Tromey
  2007-05-21 18:32                             ` CVS is the `released version' (ELL and the ohio lisp archive) Stephen Eglen
                                               ` (2 more replies)
  1 sibling, 3 replies; 146+ messages in thread
From: Tom Tromey @ 2007-05-21 16:33 UTC (permalink / raw)
  To: rms; +Cc: joakim, emacs-devel

>>>>> "rms" == Richard Stallman <rms@gnu.org> writes:

rms> It seems that part of your motivation for wanting a package system is
rms> to move Emacs development in a direction that weakens the FSF's
rms> ability to develop Emacs as an FSF-copyrighted package.
rms> This confirms my concern about the downside.

I was a bit surprised, and I suppose a little hurt, to read this.
Please ask about my motives rather than try to infer what they might
be.

I don't want to weaken the FSF's ability to develop emacs as an
FSF-copyright package.  I think that would be a bad idea.

My real motivation is that I got tired of jumping through hoops to
download and try out Emacs extensions.  I thought it would be fun and
useful to try to solve this problem in a user-friendly way.

In my view package.el does not make Emacs worse in any way.  To the
extent that it enables unassigned work, it is simply reflecting the
actually existing state of affairs -- there are many Emacs packages
which, for whatever reason, are not FSF-assigned and that probably
will never be.

There's another way to address this 3rd party elisp problem: you could
do outreach to the authors and ask them to contribute to Emacs.  ELL
and the Emacs Wiki have a long list of potential contributors.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 12:53                     ` Stefan Monnier
@ 2007-05-21 16:41                       ` Tom Tromey
  2007-05-21 19:40                         ` Stefan Monnier
  0 siblings, 1 reply; 146+ messages in thread
From: Tom Tromey @ 2007-05-21 16:41 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: rms, joakim, emacs-devel

>>>>> "Stefan" == Stefan Monnier <monnier@iro.umontreal.ca> writes:

Stefan> Tom, I recommend that you separate issues a bit more.  Your
Stefan> package.el does 2 things: one is find&download packages from a
Stefan> repository, and the other is
Stefan> install/activate/deinstall/listinstalled packages.

Ok, I see what you mean.  I will think about it a bit.

I think the reason I combined them (aside from "that's what I wanted
to do" :-) is dependency tracking.  But I suppose we can just make the
user install dependencies first.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 12:59                       ` Stefan Monnier
  2007-05-21 13:03                         ` David Kastrup
@ 2007-05-21 16:50                         ` Tom Tromey
  2007-05-22 14:51                           ` Richard Stallman
  1 sibling, 1 reply; 146+ messages in thread
From: Tom Tromey @ 2007-05-21 16:50 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: rms, joakim, emacs-devel

>>>>> "Stefan" == Stefan Monnier <monnier@iro.umontreal.ca> writes:

Stefan> I think tht supporting several "packages" inside a single
Stefan> tarball will complicate matters significantly.  OTOH, some
Stefan> packages include other packages for the user's
Stefan> (in)convenience, e.g. ProofGeneral includes a copy of X-Symbol
Stefan> in its tarball, so package.el somehow do something intelligent
Stefan> in such cases.  Maybe it can recognize that it's in a
Stefan> dubdirectory of its own and move it out or something like
Stefan> that.

Yeah -- I considered a lot of different scenarios when initially
writing package.el.  Not just things like the above but also things
like anti-dependencies, version dependency relations other than ">=",
elisp in subdirectories, optionally compiled elisp, optional
dependencies, sub-packages, ...

In the end I decided to start with something simple and see how that
worked out.  I don't know about ProofGeneral, but my initial reaction
here would be to try to convince them to package X-Symbol as a
separate package.

In general I think putting dependencies into a package like this is a
reaction to the lack of any sort of extension management in Emacs.  In
the current state of affairs it looks more convenient for users to do
this... but this is part of what I'd like to change.

I'm certainly not averse to adding features, but I'd prefer to push
the KISS approach as long as possible.

For cases like ProofGeneral, they could make one set of packages for
ELPA and another for general ("old school") download.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: package.el
  2007-05-21 10:17                       ` package.el (was: Re: CVS is the `released version') David Reitter
@ 2007-05-21 17:40                         ` Tom Tromey
  2007-05-21 18:13                           ` package.el David Kastrup
  2007-05-21 22:43                           ` package.el David Reitter
  0 siblings, 2 replies; 146+ messages in thread
From: Tom Tromey @ 2007-05-21 17:40 UTC (permalink / raw)
  To: David Reitter; +Cc: emacs-devel

>>>>> "David" == David Reitter <david.reitter@gmail.com> writes:

David> I just had a look at package.el. A few comments:

Thanks for your time and your feedback.

If emacs-devel folks don't like this traffic here we can move it
elsewhere.  `elpa@tromey.com' is my package.el address.

>> If you don't know what "eval" means, it means that you should copy
>> this into your *scratch* buffer, move your cursor just after the
>> final closing paren, and type C-j.

David> *scratch* is not guaranteed to be in emacs-lisp-mode. So C-j might
David> not work. M-x eval-region would!

I wasn't aware of this.  Is this a common situation?  Those
instructions are intended for people who know very little about Emacs;
are they likely to have changed the mode for *scratch*?

David> From your installer file:
David> (expand-file-name "~/.emacs.d/elpa")
David> please don't assume that this directory is something where you can
David> (or the user wants to) install things.

David> There should be a customization variable for this. This applies
David> to package.el itself as well, where you have a defvar, not a
David> defcustom, for package-user-dir.

Yes, I agree.  I don't know much about custom (my last emacs lisp
hacking experience predates the existence of custom -- sad but true).
But I will learn and I'll make the appropriate fix.

However, for the installer, I think this is an ok choice.  I don't see
how we would support customizing the package install directory before
actually installing package.el.  And, I suspect users who know about
and use features like this probably won't have much trouble hand
installing package.el.

What do you think about this?

David> In package.el, I'm not sure what's going on with `package-activated- 
David> list', but you seem to make assumptions about which packages are
David> installed by default.

Yes.  package.el knows a bit about which packages are shipped as part
of Emacs.  This supports one of the use cases I was interested in,
something I've run into a reasonable number of times.

The use case is this: suppose I install some package, for example ERC,
in my $HOME.  Then later I upgrade to Emacs 22, which includes ERC.
At this point I want my private ERC to be deactivated in favor of
Emacs' built-in version.  But then later I may upgrade to a later ERC,
in which case I want to use my newer private copy again.

In package.el this is solved by knowing the versions of large packages
which are included in Emacs.  This list isn't complete though -- known
bug.

David> Does your code also check for actually installed files?

Nope.  It could though, I think, perhaps not without drastically
slowing down Emacs startup.  I want to avoid that as much as possible.
I suppose my ideal situation here would be for distros to support
package.el directly (my real ideal was to get this into Emacs itself
but that is looking less likely :-).  This is intentionally not hard
to do... but I think it is still a bit early to approach them on this
topic.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: package.el
  2007-05-21 17:40                         ` package.el Tom Tromey
@ 2007-05-21 18:13                           ` David Kastrup
  2007-05-21 22:43                           ` package.el David Reitter
  1 sibling, 0 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-21 18:13 UTC (permalink / raw)
  To: tromey; +Cc: David Reitter, emacs-devel

Tom Tromey <tromey@redhat.com> writes:

> David> *scratch* is not guaranteed to be in emacs-lisp-mode. So C-j might
> David> not work. M-x eval-region would!
>
> I wasn't aware of this.  Is this a common situation?  Those
> instructions are intended for people who know very little about
> Emacs; are they likely to have changed the mode for *scratch*?

Primarily people with little knowledge about Emacs would be tempted to
change the mode for *scratch*...  On the other hand, they would be
likely to do a lot of other things one can't possibly guess in
advance.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version' (ELL and the ohio lisp archive)
  2007-05-21 16:33                           ` Tom Tromey
@ 2007-05-21 18:32                             ` Stephen Eglen
  2007-05-24 21:22                             ` CVS is the `released version' Richard Stallman
  2007-05-24 21:22                             ` CVS is the `released version' Richard Stallman
  2 siblings, 0 replies; 146+ messages in thread
From: Stephen Eglen @ 2007-05-21 18:32 UTC (permalink / raw)
  To: emacs-devel

Tom Tromey <tromey@redhat.com> writes:


> There's another way to address this 3rd party elisp problem: you could
> do outreach to the authors and ask them to contribute to Emacs.  ELL
> and the Emacs Wiki have a long list of potential contributors.

As an aside to this discussion -- I created the ELL (Emacs lisp list)
ELL in September 1998, mostly because I was saddened to see that the
ohio elisp archive had fell into disuse, and thought the ELL would be
a quick fix to list files until another repository came along.  Little
did I think it would exist for more than a year or so, let alone close
to nine years.  I don't track how much it is used, but I hope it is
still useful.

However, I'd much rather see the return of something like the old lisp
archive, and I think something that Tom is doing should be supported,
since it would seem to essentially resurrect the archive concept in
addition to being a package manager.  (I personally probably wouldn't
use it immediately as a package manager, but would appreciate just
being able to browse the archive for code, ideas, etc.)

If this system gets elisp code more visibility, then great, and I'd
hope that eventually, if there is enough demand for certain pacakages,
they could get into Emacs core.

Stephen

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 10:46                           ` David Kastrup
@ 2007-05-21 18:36                             ` JD Smith
  2007-05-21 18:47                               ` David Kastrup
                                                 ` (2 more replies)
  2007-05-22  8:30                             ` Richard Stallman
  1 sibling, 3 replies; 146+ messages in thread
From: JD Smith @ 2007-05-21 18:36 UTC (permalink / raw)
  To: emacs-devel

On Mon, 21 May 2007 12:46:42 +0200, David Kastrup wrote:

> I can't see how this would in any way diminuish the FSF's ability to
> develop Emacs as an FSF-copyrighted package.  At the current point of
> time, both pulling a (non-standardized) package into Emacs and
> maintaining it externally is a source of pain. 

Isn't that the point?  That pain may be the motivation to assign
copyright and move a package into the mainline Emacs distribution.
Relieving it would lessen that motivation.  On the other hand, the
pain may simply discourage any development.  It's a fine line to walk.

At the very minimum, an integrated, easy to use capability to update
assigned, core Emacs packages between releases would be very welcome.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 18:36                             ` JD Smith
@ 2007-05-21 18:47                               ` David Kastrup
  2007-05-21 18:51                               ` Chong Yidong
  2007-05-25 21:13                               ` Ken Manheimer
  2 siblings, 0 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-21 18:47 UTC (permalink / raw)
  To: JD Smith; +Cc: emacs-devel

JD Smith <jdsmith@as.arizona.edu> writes:

> On Mon, 21 May 2007 12:46:42 +0200, David Kastrup wrote:
>
>> I can't see how this would in any way diminuish the FSF's ability to
>> develop Emacs as an FSF-copyrighted package.  At the current point of
>> time, both pulling a (non-standardized) package into Emacs and
>> maintaining it externally is a source of pain. 
>
> Isn't that the point?  That pain may be the motivation to assign
> copyright and move a package into the mainline Emacs distribution.

Where is the point if this act is equally painful?

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 18:36                             ` JD Smith
  2007-05-21 18:47                               ` David Kastrup
@ 2007-05-21 18:51                               ` Chong Yidong
  2007-05-21 19:02                                 ` David Kastrup
  2007-05-22 14:52                                 ` Richard Stallman
  2007-05-25 21:13                               ` Ken Manheimer
  2 siblings, 2 replies; 146+ messages in thread
From: Chong Yidong @ 2007-05-21 18:51 UTC (permalink / raw)
  To: JD Smith; +Cc: emacs-devel

JD Smith <jdsmith@as.arizona.edu> writes:

> On Mon, 21 May 2007 12:46:42 +0200, David Kastrup wrote:
>
>> I can't see how this would in any way diminuish the FSF's ability to
>> develop Emacs as an FSF-copyrighted package.  At the current point of
>> time, both pulling a (non-standardized) package into Emacs and
>> maintaining it externally is a source of pain. 
>
> Isn't that the point?  That pain may be the motivation to assign
> copyright and move a package into the mainline Emacs distribution.
> Relieving it would lessen that motivation.  On the other hand, the
> pain may simply discourage any development.  It's a fine line to walk.
>
> At the very minimum, an integrated, easy to use capability to update
> assigned, core Emacs packages between releases would be very welcome.

An analogy can be drawn to the Debian apt system.  By default, this
points to the Debian software repositories, but it is trivial to add
third-party repositories to obtain packages that are not included in
Debian for whatever reason (software patent encumbered codecs,
experimental packages, etc.)  The presence of this feature does not
detract from Debian's ability to develop the Debian system.  All
things being equal, users generally use the default Debian package
rather than an equivalent third-party package, if a Debian package
exists; this is simply because the Debian package is better integrated
into the Debian system (just as Lisp packages distributed with Emacs
are better integrated into the rest of Emacs); but it is good to offer
people a choice.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 18:51                               ` Chong Yidong
@ 2007-05-21 19:02                                 ` David Kastrup
  2007-05-22 14:52                                 ` Richard Stallman
  1 sibling, 0 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-21 19:02 UTC (permalink / raw)
  To: Chong Yidong; +Cc: emacs-devel, JD Smith

Chong Yidong <cyd@stupidchicken.com> writes:

> An analogy can be drawn to the Debian apt system.  By default, this
> points to the Debian software repositories, but it is trivial to add
> third-party repositories to obtain packages that are not included in
> Debian for whatever reason (software patent encumbered codecs,
> experimental packages, etc.)

But a Debian package can't carry within itself the notion of what
repositories to use for it.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 16:41                       ` Tom Tromey
@ 2007-05-21 19:40                         ` Stefan Monnier
  0 siblings, 0 replies; 146+ messages in thread
From: Stefan Monnier @ 2007-05-21 19:40 UTC (permalink / raw)
  To: tromey; +Cc: rms, joakim, emacs-devel

> I think the reason I combined them (aside from "that's what I wanted
> to do" :-) is dependency tracking.  But I suppose we can just make the
> user install dependencies first.

I can see that for monsters like packages in CEDET and such, dependencies
can be a problem, but for 99% of the packages it's really the least of the
user's problems.


        Stefan

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: package.el
  2007-05-21 17:40                         ` package.el Tom Tromey
  2007-05-21 18:13                           ` package.el David Kastrup
@ 2007-05-21 22:43                           ` David Reitter
  2007-05-21 22:51                             ` package.el Tom Tromey
  2007-05-21 22:57                             ` package.el David Kastrup
  1 sibling, 2 replies; 146+ messages in thread
From: David Reitter @ 2007-05-21 22:43 UTC (permalink / raw)
  To: tromey; +Cc: emacs-devel

On 21 May 2007, at 18:40, Tom Tromey wrote:

> David> *scratch* is not guaranteed to be in emacs-lisp-mode. So C-j  
> might
> David> not work. M-x eval-region would!
>
> I wasn't aware of this.  Is this a common situation?  Those
> instructions are intended for people who know very little about Emacs;
> are they likely to have changed the mode for *scratch*?

default-major-mode's default value is text-mode in Aquamacs.  
*scratch* is in text-mode by default.

> Yes, I agree.  I don't know much about custom (my last emacs lisp
> hacking experience predates the existence of custom -- sad but true).
> But I will learn and I'll make the appropriate fix.
>
> However, for the installer, I think this is an ok choice.

Well, in a distribution, this is what one wants to customize - simply  
because ~/.emacs.d is not a [standard] directory on all operating  
systems. I don't know what Windows does, but on the Mac, such  
extensions go into ~/Applications/Application Support/Emacs/... -  
which is something a CVS (GNU) Emacs doesn't do. But a distribution  
of GNU Emacs (such as Aquamacs) knows these directories.

> and use features like this probably won't have much trouble hand
> installing package.el.

Yes, if it's a standard package that provides a new feature - sure no  
problem. That's what would be included in a distro anyways.

> Yes.  package.el knows a bit about which packages are shipped as part
> of Emacs.  This supports one of the use cases I was interested in,
> something I've run into a reasonable number of times.

OK, please don't forget cases where a distribution installs  
additional packages. Both distributions on the Mac do that, and I  
presume the Windows binaries come with some add-ons, too. And you,  
yourself, mentioned Fedora's dislike for Tetris, etc.

> In package.el this is solved by knowing the versions of large packages
> which are included in Emacs.  This list isn't complete though -- known
> bug.

Yes, bug. I would check the versions of all installed packages at  
compile time (install time), going through Emacs' load path.
Or, perhaps better, you check for installed versions just when you  
actually need to know, i.e., when the user wants to install another  
package.
As a distributor, I would not enable a feature that will slow down  
the application startup.

> I suppose my ideal situation here would be for distros to support
> package.el directly (my real ideal was to get this into Emacs itself
> but that is looking less likely :-).

It's more realistic to make package.el work in the way Emacs already  
finds and loads its packages, rather than requiring distributors to  
maintain a separate database of file versions (even though that would  
be a sensible thing to do). This could be done via a standard symbol  
`feature-version' where "feature" stands for the name of the feature  
that is `provide'd, or via the subfeatures argument to `provide'. I  
don't know what is already in place in package.el.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: package.el
  2007-05-21 22:43                           ` package.el David Reitter
@ 2007-05-21 22:51                             ` Tom Tromey
  2007-05-21 23:48                               ` package.el Davis Herring
  2007-05-21 23:50                               ` package.el David Reitter
  2007-05-21 22:57                             ` package.el David Kastrup
  1 sibling, 2 replies; 146+ messages in thread
From: Tom Tromey @ 2007-05-21 22:51 UTC (permalink / raw)
  To: David Reitter; +Cc: emacs-devel

>>>>> "David" == David Reitter <david.reitter@gmail.com> writes:

David> default-major-mode's default value is text-mode in Aquamacs.
David> *scratch* is in text-mode by default.

Ok.  I will update the text to account for this somehow.

David> Well, in a distribution, this is what one wants to customize -
David> simply because ~/.emacs.d is not a [standard] directory on all
David> operating systems.

I simply followed existing practice that I found in Emacs.  FWIW I
think it would make sense to make this a customizable setting used
everywhere that "~/.emacs.d" is currently used.

Does Aquamacs have a setting for this?  package.el could conditionally
use that.

David> OK, please don't forget cases where a distribution installs
David> additional packages. Both distributions on the Mac do that, and I
David> presume the Windows binaries come with some add-ons, too. And you,
David> yourself, mentioned Fedora's dislike for Tetris, etc.

Yes.  The issue is expressing this in an efficient way to package.el.

David> It's more realistic to make package.el work in the way Emacs already
David> finds and loads its packages, rather than requiring distributors to
David> maintain a separate database of file versions (even though that would
David> be a sensible thing to do). This could be done via a standard symbol
David> feature-version' where "feature" stands for the name of the feature
David> that is `provide'd, or via the subfeatures argument to `provide'. I
David> don't know what is already in place in package.el.

Currently this is done by loading the "-pkg.el" file from the package,
which then invokes define-package.

This is ok if you don't have a huge number of packages.  If we ever
get there then perhaps I'll need to think about a new approach.

I don't see how feature-version would be defined until a package is
loaded -- but that is what we want to avoid.

My (former) plan for incorporating this into the core was to extract
this info when Emacs is built.  Anyway, I'm open to suggestions but,
again, I'm a bit unsure whether this is the appropriate forum for
discussion.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: package.el
  2007-05-21 22:43                           ` package.el David Reitter
  2007-05-21 22:51                             ` package.el Tom Tromey
@ 2007-05-21 22:57                             ` David Kastrup
  1 sibling, 0 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-21 22:57 UTC (permalink / raw)
  To: David Reitter; +Cc: tromey, emacs-devel

David Reitter <david.reitter@gmail.com> writes:

> On 21 May 2007, at 18:40, Tom Tromey wrote:
>
>> David> *scratch* is not guaranteed to be in emacs-lisp-mode. So C-j
>> might
>> David> not work. M-x eval-region would!
>>
>> I wasn't aware of this.  Is this a common situation?  Those
>> instructions are intended for people who know very little about Emacs;
>> are they likely to have changed the mode for *scratch*?
>
> default-major-mode's default value is text-mode in Aquamacs.
> *scratch* is in text-mode by default.

I doubt it should be the job of package.el's instructions to
anticipate such ideosyncratic setting choices.  Since you would
presumably package package.el into Aquamacs, anyway, in order to cater
for your prospective not-so-experienced user audience, this would
appear to be a non-issue.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: package.el
  2007-05-21 23:50                               ` package.el David Reitter
@ 2007-05-21 23:44                                 ` Tom Tromey
  2007-05-22  2:21                                   ` package.el Stephen J. Turnbull
  2007-05-22 10:18                                   ` package.el Stefan Monnier
  0 siblings, 2 replies; 146+ messages in thread
From: Tom Tromey @ 2007-05-21 23:44 UTC (permalink / raw)
  To: David Reitter; +Cc: emacs-devel

>>>>> "David" == David Reitter <david.reitter@gmail.com> writes:

>> Currently this is done by loading the "-pkg.el" file from the package,
>> which then invokes define-package.

David> ..but that would mean that each package has to have an extra file.
David> Many packages consist of only a single .el source file, which then
David> doesn't even need to be tar'ed for distribution.

Yes.  Please look at package.el.  This is what it does; for single
files it generates the -pkg.el and -autoloads.el files.  For
multi-file packages, my belief is that adding a single file containing
a single form is not a major maintenance burden.

>> I don't see how feature-version would be defined until a package is
>> loaded -- but that is what we want to avoid.

David> How about looking for some tags ;; pkg:define and ;; pkg:end inside
David> the source file, and then evaluating only what's within those tags?

package.el uses the comments to generate the -pkg.el file.

I'm reasonably sure that I don't want to do this scanning every time
Emacs starts up.  But I admit I have not benchmarked the scanning
approach.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: package.el
  2007-05-21 22:51                             ` package.el Tom Tromey
@ 2007-05-21 23:48                               ` Davis Herring
  2007-05-21 23:56                                 ` package.el Lennart Borgman (gmail)
  2007-05-25 21:39                                 ` package.el Tom Tromey
  2007-05-21 23:50                               ` package.el David Reitter
  1 sibling, 2 replies; 146+ messages in thread
From: Davis Herring @ 2007-05-21 23:48 UTC (permalink / raw)
  To: tromey; +Cc: David Reitter, emacs-devel

> David> Well, in a distribution, this is what one wants to customize -
> David> simply because ~/.emacs.d is not a [standard] directory on all
> David> operating systems.
>
> I simply followed existing practice that I found in Emacs.  FWIW I
> think it would make sense to make this a customizable setting used
> everywhere that "~/.emacs.d" is currently used.
>
> Does Aquamacs have a setting for this?  package.el could conditionally
> use that.

This (the customizable setting) has been discussed before[1], and I even
offered to go find all the hardcoded ~/.emacs.d/ usages, but there wasn't
much evident interest.  Is there now, especially given the issue of
differing standards among OSes?

Davis

[1] http://lists.gnu.org/archive/html/emacs-devel/2005-08/msg00317.html

-- 
This product is sold by volume, not by mass.  If it appears too dense or
too sparse, it is because mass-energy conversion has occurred during
shipping.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: package.el
  2007-05-21 22:51                             ` package.el Tom Tromey
  2007-05-21 23:48                               ` package.el Davis Herring
@ 2007-05-21 23:50                               ` David Reitter
  2007-05-21 23:44                                 ` package.el Tom Tromey
  1 sibling, 1 reply; 146+ messages in thread
From: David Reitter @ 2007-05-21 23:50 UTC (permalink / raw)
  To: tromey, emacs- devel

On 21 May 2007, at 23:51, Tom Tromey wrote:

> I simply followed existing practice that I found in Emacs.  FWIW I
> think it would make sense to make this a customizable setting used
> everywhere that "~/.emacs.d" is currently used.
> Does Aquamacs have a setting for this?  package.el could conditionally
> use that.

No, and I think we should just come up with a setting in the trunk  
rather than making a change downstream.
It's only a handful of places where "~/emacs.d" is assumed (as default).

> Currently this is done by loading the "-pkg.el" file from the package,
> which then invokes define-package.

..but that would mean that each package has to have an extra file.  
Many packages consist of only a single .el source file, which then  
doesn't even need to be tar'ed for distribution.

> I don't see how feature-version would be defined until a package is
> loaded -- but that is what we want to avoid.

How about looking for some tags ;; pkg:define and ;; pkg:end inside  
the source file, and then evaluating only what's within those tags?

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: package.el
  2007-05-21 23:48                               ` package.el Davis Herring
@ 2007-05-21 23:56                                 ` Lennart Borgman (gmail)
  2007-05-25 21:39                                 ` package.el Tom Tromey
  1 sibling, 0 replies; 146+ messages in thread
From: Lennart Borgman (gmail) @ 2007-05-21 23:56 UTC (permalink / raw)
  To: herring; +Cc: tromey, David Reitter, emacs-devel

Davis Herring wrote:
>> David> Well, in a distribution, this is what one wants to customize -
>> David> simply because ~/.emacs.d is not a [standard] directory on all
>> David> operating systems.
>>
>> I simply followed existing practice that I found in Emacs.  FWIW I
>> think it would make sense to make this a customizable setting used
>> everywhere that "~/.emacs.d" is currently used.
>>
>> Does Aquamacs have a setting for this?  package.el could conditionally
>> use that.
> 
> This (the customizable setting) has been discussed before[1], and I even
> offered to go find all the hardcoded ~/.emacs.d/ usages, but there wasn't
> much evident interest.  Is there now, especially given the issue of
> differing standards among OSes?


Sounds like a good change to me.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: package.el
  2007-05-21 23:44                                 ` package.el Tom Tromey
@ 2007-05-22  2:21                                   ` Stephen J. Turnbull
  2007-05-22 10:18                                   ` package.el Stefan Monnier
  1 sibling, 0 replies; 146+ messages in thread
From: Stephen J. Turnbull @ 2007-05-22  2:21 UTC (permalink / raw)
  To: tromey; +Cc: David Reitter, emacs-devel

Tom Tromey writes:

 > I'm reasonably sure that I don't want to do this scanning every time
 > Emacs starts up.  But I admit I have not benchmarked the scanning
 > approach.

XEmacs does do a lot of scanning, and it has been a source of
complaints.  But IIRC the problem was that XEmacs keeps each package
in a separate directory (actually, several of them, since it emulates
the standard layout of GNU Emacs with subdirectories of lisp/ for
package Lisp, subdirectories of etc/ for miscellaneous package data,
and so on).  Searching through that to determine which subdirectories
are actually package directories and should be on load-path was what
took the most time.

The original scheme was fully recursive requiring stats of all files
to find subdirectories for possible recursion.  Substantial savings
were achieved by limiting the search depth (currently to children of
the lisp/ directory itself).  Currently most XEmacs users seem to
consider the additional startup time acceptable, especially on fast
machines with Unix-style file systems, but I suspect for even a
moderate number of packages, Emacs users would detect a lag, since
Emacs's startup is snappier than XEmacs's.

David Kastrup had several suggestions for how to speed up XEmacs's
start time, which would probably apply to package.el, too.  IIRC they
were to collect package auto-autoloads and custom-loads into a single
file, and to put all package Lisp into a single directory to avoid
recursive searching.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-19 22:33                   ` Tom Tromey
  2007-05-20 17:05                     ` Richard Stallman
  2007-05-21 12:53                     ` Stefan Monnier
@ 2007-05-22  4:38                     ` Xavier Maillard
  2 siblings, 0 replies; 146+ messages in thread
From: Xavier Maillard @ 2007-05-22  4:38 UTC (permalink / raw)
  To: Tom Tromey; +Cc: rms, joakim, emacs-devel

Hi,

Is there a spec that each mode/package should respect in order to
be package.el compliant ?

	Xavier
-- 
http://www.gnu.org
http://www.april.org
http://www.lolica.org

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-18 23:10             ` Richard Stallman
  2007-05-18 23:31               ` Tom Tromey
@ 2007-05-22  6:10               ` Trent Buck
  2007-05-22  7:56                 ` David Kastrup
  2007-05-24 21:22                 ` Richard Stallman
  1 sibling, 2 replies; 146+ messages in thread
From: Trent Buck @ 2007-05-22  6:10 UTC (permalink / raw)
  To: emacs-devel

Richard Stallman <rms@gnu.org> writes:

> In that case, I think the real proposal is not "add a package system
> to Emacs" but rather "set up a standard site for Emacs add-ons".

Agreed.

> If the add-ons are put in such a web site, finding and installing them
> would be much easier.  Maybe it is worth doing that, though calling it
> a "package system" seems like hype.
>
> But there are two important non-technical problems with this approach.
>
> 1. It could reduce the incentive for people to assign copyright on
> their code.
>
> 2. It would mean that Emacs refers people very strongly to a site
> that isn't run by the GNU Project.  I don't know what their policies
> are.  But even if they are good, now, we have no way to assure that
> remains so.
>
> These problems would be eliminated if we put the package repository on
> gnu.org and limit it to packages that are copyright FSF.

Would it be acceptable to have two repositories "main" and "non-fsf",
both hosted on gnu.org, and only have the former enabled by default?
That is, packages in "non-fsf" would not be listed or installable
unless the user explicitly added something like this to their .emacs:

    (add-to-list 'package-repositories "http://elpa.gnu.org/non-fsf")

That way Free software packages that are NOT assigned to the FSF (such
as paredit, which is declares itself to be in the Public Domain), can
still be installed easily by users via the package.el framework, but
only after the user explicitly says "please enable installation of
Free, but non-FSF packages".  It would also make it easy to move a
package into "main" once the paperwork was done by simply changing a
few headers -- the rest of the package.el integration would already
have been done and tested in the "non-fsf" repository.
-- 
Trent Buck

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-22  6:10               ` Trent Buck
@ 2007-05-22  7:56                 ` David Kastrup
  2007-05-24 21:22                 ` Richard Stallman
  1 sibling, 0 replies; 146+ messages in thread
From: David Kastrup @ 2007-05-22  7:56 UTC (permalink / raw)
  To: Trent Buck; +Cc: emacs-devel

Trent Buck <trentbuck@gmail.com> writes:

> Richard Stallman <rms@gnu.org> writes:
>
>> In that case, I think the real proposal is not "add a package system
>> to Emacs" but rather "set up a standard site for Emacs add-ons".
>
> Agreed.
>
>> If the add-ons are put in such a web site, finding and installing them
>> would be much easier.  Maybe it is worth doing that, though calling it
>> a "package system" seems like hype.
>>
>> But there are two important non-technical problems with this approach.
>>
>> 1. It could reduce the incentive for people to assign copyright on
>> their code.
>>
>> 2. It would mean that Emacs refers people very strongly to a site
>> that isn't run by the GNU Project.  I don't know what their policies
>> are.  But even if they are good, now, we have no way to assure that
>> remains so.
>>
>> These problems would be eliminated if we put the package repository on
>> gnu.org and limit it to packages that are copyright FSF.
>
> Would it be acceptable to have two repositories "main" and
> "non-fsf", both hosted on gnu.org, and only have the former enabled
> by default?  That is, packages in "non-fsf" would not be listed or
> installable unless the user explicitly added something like this to
> their .emacs:
>
>     (add-to-list 'package-repositories "http://elpa.gnu.org/non-fsf")
>
> That way Free software packages that are NOT assigned to the FSF
> (such as paredit, which is declares itself to be in the Public
> Domain), can still be installed easily by users via the package.el
> framework, but only after the user explicitly says "please enable
> installation of Free, but non-FSF packages".  It would also make it
> easy to move a package into "main" once the paperwork was done by
> simply changing a few headers -- the rest of the package.el
> integration would already have been done and tested in the "non-fsf"
> repository.

I don't think that "non-fsf" is a good label: it focuses on a legal
aspect, not on the motivation behind it.  And it is irrelevant for the
end user whether or not a GPLed piece of software is copyrighted by
the FSF or someone else (unless she wants to negotiate a different
license, but that's quite unlikely with Emacs packages).

If one wanted to make such a distinction, it would likely be better to
use something like

http://elpa.gnu.org/core or http://elpa.gnu.org/gnu-packages

and

http://elpa.nongnu.org/contrib

and make clear that the core packages require formal approval that
will imply a copyright assignment as a rule.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 10:46                           ` David Kastrup
  2007-05-21 18:36                             ` JD Smith
@ 2007-05-22  8:30                             ` Richard Stallman
  1 sibling, 0 replies; 146+ messages in thread
From: Richard Stallman @ 2007-05-22  8:30 UTC (permalink / raw)
  To: David Kastrup; +Cc: tromey, joakim, emacs-devel

    I don't think this is a fair characterization.  The idea is not, as
    far as I can tell, to reduce the motivation for contributing material
    into Emacs' core.  It is to provide a mechanism to work with things
    that have no real place in the Emacs core.

When we all agree on which class a given package is in, there would
probably be no problem.  My concern is with the cases where there is
disagreement -- such as VM.

    In addition, if done right, it could make it _easier_ to pull material
    into Emacs' core: right now there are no hard rules for what a Emacs
    package (a conglomerate of Lisp files, auxiliary files, documentation
    and other stuff) should look like when wanting to get moved into
    Emacs.

Yes there are.  Look at the Tips appendix.  The guidelines are quite
thorough.  I don't see where having a package system could possibly
help.  (I don't think it would hurt, either.)

The main obstacle in getting new libraries into Emacs is that of
making them modular, making them follow the conventions of Emacs, 
and sometimes cleaning up the code.  I just don't see how a package
system with its own repository(s) would change anything.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 15:39                             ` Robert J. Chassell
@ 2007-05-22 10:10                               ` Stefan Monnier
  2007-05-22 11:18                                 ` Robert J. Chassell
  0 siblings, 1 reply; 146+ messages in thread
From: Stefan Monnier @ 2007-05-22 10:10 UTC (permalink / raw)
  To: bob; +Cc: emacs-devel

>> ... Most programs, of course, are never used illegally.  But a few
>> may be.  This can be awkward.
>     You're confused: unassigned, just means that the copyright is not
>     assigned to the FSF.  It may still be (and generally is) properly
>     licensed under the GPL.
> No, I am not talking about those that are properly licensed.  I am
> talking about the one -- that is all that is needed -- that is
> mis-copyrighted and is supported by an organization which decides to
> litigate, has lots of money, and does not mind losing.

Then I have no idea what scenario you have in mind where package.el makes
any difference.

> That is not true if there is someone willing to spend several millions
> of dollars, does not mind the defenses, and likely losing ...

But in what way would packake.el make any difference?


        Stefan

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: package.el
  2007-05-21 23:44                                 ` package.el Tom Tromey
  2007-05-22  2:21                                   ` package.el Stephen J. Turnbull
@ 2007-05-22 10:18                                   ` Stefan Monnier
  1 sibling, 0 replies; 146+ messages in thread
From: Stefan Monnier @ 2007-05-22 10:18 UTC (permalink / raw)
  To: tromey; +Cc: David Reitter, emacs-devel

> I'm reasonably sure that I don't want to do this scanning every time
> Emacs starts up.  But I admit I have not benchmarked the scanning
> approach.

I'm reasonably sure that doing any scanning at startup time is a bad idea.
Do the scan at package-activation time and be done with it,


        Stefan

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-22 10:10                               ` Stefan Monnier
@ 2007-05-22 11:18                                 ` Robert J. Chassell
  2007-05-22 13:36                                   ` David Kastrup
  2007-05-22 15:12                                   ` Stefan Monnier
  0 siblings, 2 replies; 146+ messages in thread
From: Robert J. Chassell @ 2007-05-22 11:18 UTC (permalink / raw)
  To: emacs-devel

   Then I have no idea what scenario you have in mind where package.el makes
   any difference.

Suppose a program in the package repository has been placed there in
order to hurt?  Most people and their organizations are good, but not
all.

Bear in mind, a statement on the program that `this is licensed under
the GPL' does not count.

--
    Robert J. Chassell                          GnuPG Key ID: 004B4AC8
    bob@rattlesnake.com                         bob@gnu.org
    http://www.rattlesnake.com                  http://www.teak.cc

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-22 11:18                                 ` Robert J. Chassell
@ 2007-05-22 13:36                                   ` David Kastrup
  2007-05-22 15:19                                     ` Robert J. Chassell
  2007-05-22 15:12                                   ` Stefan Monnier
  1 sibling, 1 reply; 146+ messages in thread
From: David Kastrup @ 2007-05-22 13:36 UTC (permalink / raw)
  To: bob; +Cc: emacs-devel

"Robert J. Chassell" <bob@rattlesnake.com> writes:

>    Then I have no idea what scenario you have in mind where package.el makes
>    any difference.
>
> Suppose a program in the package repository has been placed there in
> order to hurt?

And how would that hurt?

> Most people and their organizations are good, but not all.
>
> Bear in mind, a statement on the program that `this is licensed under
> the GPL' does not count.

Could you please explain what the problem is that you are talking
about?

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 16:50                         ` Tom Tromey
@ 2007-05-22 14:51                           ` Richard Stallman
  0 siblings, 0 replies; 146+ messages in thread
From: Richard Stallman @ 2007-05-22 14:51 UTC (permalink / raw)
  To: tromey; +Cc: monnier, joakim, emacs-devel

I'm in favor of dealing first with convenient installation of one
package, and worrying about things like dependencies later.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 18:51                               ` Chong Yidong
  2007-05-21 19:02                                 ` David Kastrup
@ 2007-05-22 14:52                                 ` Richard Stallman
  1 sibling, 0 replies; 146+ messages in thread
From: Richard Stallman @ 2007-05-22 14:52 UTC (permalink / raw)
  To: Chong Yidong; +Cc: emacs-devel, jdsmith

    An analogy can be drawn to the Debian apt system.

Debian doesn't need to get copyright assignments before packaging a
program; we do need them, before we distribute a program in Emacs.
That changes everything.

In addition, Debian normally expects to find its own maintainers
for its own version of the program.  We want the developer of
the Lisp program to keep maintaining it as part of Emacs.

That makes two ways in which we need or want the developer's continued
cooperation.

If we were to help the users and the Lisp program developers bypass
us, we would be creating unnecessary difficulties for our efforts.  It
would be a mistake.  Our goal is not simply to make the users as happy
as possible in the short term.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-22 11:18                                 ` Robert J. Chassell
  2007-05-22 13:36                                   ` David Kastrup
@ 2007-05-22 15:12                                   ` Stefan Monnier
  2007-05-22 17:24                                     ` Robert J. Chassell
  1 sibling, 1 reply; 146+ messages in thread
From: Stefan Monnier @ 2007-05-22 15:12 UTC (permalink / raw)
  To: bob; +Cc: emacs-devel

> Suppose a program in the package repository has been placed there in
> order to hurt?  Most people and their organizations are good, but not all.

> Bear in mind, a statement on the program that `this is licensed under
> the GPL' does not count.

The same holds for any other GPL material distributed by the FSF but for
which the FSF does not hold the copyright.  Nothing new here.


        Stefan

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-22 13:36                                   ` David Kastrup
@ 2007-05-22 15:19                                     ` Robert J. Chassell
  2007-05-22 15:37                                       ` Jason Rumney
  0 siblings, 1 reply; 146+ messages in thread
From: Robert J. Chassell @ 2007-05-22 15:19 UTC (permalink / raw)
  To: emacs-devel

    > Suppose a program in the package repository has been placed
    > there in order to hurt?

    And how would that hurt?

Baseless litigation that takes you away from programming.  Most likely
the victim would be American, although anyone in a country that has
accepted the WIPO treaty is at risk.

    > Bear in mind, a statement on the program that `this is licensed
    > under the GPL' does not count.

    Could you please explain what the problem is that you are talking
    about?

Baseless litigation by someone who wants to hurt and who `makes a
mistake' so the penalties for fraud are not imposed by a court.

-- 
    Robert J. Chassell                          GnuPG Key ID: 004B4AC8
    bob@rattlesnake.com                         bob@gnu.org
    http://www.rattlesnake.com                  http://www.teak.cc

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-22 15:19                                     ` Robert J. Chassell
@ 2007-05-22 15:37                                       ` Jason Rumney
  0 siblings, 0 replies; 146+ messages in thread
From: Jason Rumney @ 2007-05-22 15:37 UTC (permalink / raw)
  To: bob; +Cc: emacs-devel

Robert J. Chassell wrote:
> Baseless litigation by someone who wants to hurt and who `makes a
> mistake' so the penalties for fraud are not imposed by a court.
>   

Refraining from doing something because of baseless FUD would be wrong.
I don't see any reason to consider your arguments here.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-22 15:12                                   ` Stefan Monnier
@ 2007-05-22 17:24                                     ` Robert J. Chassell
  2007-05-23 14:54                                       ` Stefan Monnier
  2007-05-23 15:02                                       ` Jason Rumney
  0 siblings, 2 replies; 146+ messages in thread
From: Robert J. Chassell @ 2007-05-22 17:24 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

    > Bear in mind, a statement on the program that `this is licensed
    > under the GPL' does not count.

    The same holds for any other GPL material distributed by the FSF
    but for which the FSF does not hold the copyright.  Nothing new
    here.

It is likely that the FSF checked the intent of the copyright holder.
Someone downloading from a package repository may not check as
thoroughly -- for one, they may be bored by this sort of thing.  I
agree, this is not new, but the danger persists.

    Refraining from doing something because of baseless FUD would be wrong.

I agree.  The trouble is that in the contemporary US, a fear of legal
suits is not baseless, especially if you are well known.  Fortunately,
I am not.

-- 
    Robert J. Chassell                          GnuPG Key ID: 004B4AC8
    bob@rattlesnake.com                         bob@gnu.org
    http://www.rattlesnake.com                  http://www.teak.cc

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-22 17:24                                     ` Robert J. Chassell
@ 2007-05-23 14:54                                       ` Stefan Monnier
  2007-05-23 15:02                                       ` Jason Rumney
  1 sibling, 0 replies; 146+ messages in thread
From: Stefan Monnier @ 2007-05-23 14:54 UTC (permalink / raw)
  To: bob; +Cc: emacs-devel

> It is likely that the FSF checked the intent of the copyright holder.
> Someone downloading from a package repository may not check as
> thoroughly -- for one, they may be bored by this sort of thing.  I
> agree, this is not new, but the danger persists.

Again, nothing to do with package.el.  Please don't introduce pointless and
unrelated thread in discussions.  We're already all too easily drifting
aimlessly without this kind of help,


        Stefan

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-22 17:24                                     ` Robert J. Chassell
  2007-05-23 14:54                                       ` Stefan Monnier
@ 2007-05-23 15:02                                       ` Jason Rumney
  2007-05-23 19:08                                         ` Robert J. Chassell
  1 sibling, 1 reply; 146+ messages in thread
From: Jason Rumney @ 2007-05-23 15:02 UTC (permalink / raw)
  To: bob; +Cc: Stefan Monnier, emacs-devel

Robert J. Chassell wrote:
> I agree.  The trouble is that in the contemporary US, a fear of legal
> suits is not baseless, especially if you are well known.  Fortunately,
> I am not.
>   

The scenario you describes relies on the GPL not holding up in court. If
we are to make decisions on that assumption, we might as well give up now.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-23 15:02                                       ` Jason Rumney
@ 2007-05-23 19:08                                         ` Robert J. Chassell
  0 siblings, 0 replies; 146+ messages in thread
From: Robert J. Chassell @ 2007-05-23 19:08 UTC (permalink / raw)
  To: emacs-devel

[regarding baseless litigation] 

   The scenario you describes relies on the GPL not holding up in court. 

On the contrary, I am assuming we win, that the attacker goes into the
process knowing he will lose in court.

    Again, nothing to do with package.el.

That presumes that every package comes from a safe repository.  I am
sure that most will.  But the goal is to make it easier to load
packages.  That has everything to do with package.el.

All I am suggesting is a little caution, not a huge amount; that is a
defeat.  But no caution is risky, too.  People I know, like me, tend
to be on the less cautious side.  I think that is a good thing.  But
no caution at all is foolish.

Ah, you will say, nobody I know is that foolish!  But there are people
in our community who are -- that is the problem.

It is much better to be friendly and to help strangers.  It is more
efficient.  But we have got too threatening to those who prefer
feudalism, with them on top, to permit foolishness.  A little caution
is a good idea.

-- 
    Robert J. Chassell                          GnuPG Key ID: 004B4AC8
    bob@rattlesnake.com                         bob@gnu.org
    http://www.rattlesnake.com                  http://www.teak.cc

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-22  6:10               ` Trent Buck
  2007-05-22  7:56                 ` David Kastrup
@ 2007-05-24 21:22                 ` Richard Stallman
  1 sibling, 0 replies; 146+ messages in thread
From: Richard Stallman @ 2007-05-24 21:22 UTC (permalink / raw)
  To: Trent Buck; +Cc: emacs-devel

    Would it be acceptable to have two repositories "main" and "non-fsf",
    both hosted on gnu.org, and only have the former enabled by default?

I don't think this would solve all the problems I'm concerned about.
If some people are going to use a repository of packages
that we can't install in Emacs, I don't see why it helps to
have that repository on an FSF machine.

    That way Free software packages that are NOT assigned to the FSF (such
    as paredit, which is declares itself to be in the Public Domain),

If a program has been explicitly placed in the public domain, we could
install it.  That is an acceptable alternative to assigning the
copyright.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 16:33                           ` Tom Tromey
  2007-05-21 18:32                             ` CVS is the `released version' (ELL and the ohio lisp archive) Stephen Eglen
@ 2007-05-24 21:22                             ` Richard Stallman
  2007-05-24 21:58                               ` New Extensions (was: Re: CVS is the `released version') Henrik Enberg
  2007-05-24 21:22                             ` CVS is the `released version' Richard Stallman
  2 siblings, 1 reply; 146+ messages in thread
From: Richard Stallman @ 2007-05-24 21:22 UTC (permalink / raw)
  To: tromey; +Cc: joakim, emacs-devel

    There's another way to address this 3rd party elisp problem: you could
    do outreach to the authors and ask them to contribute to Emacs.  ELL
    and the Emacs Wiki have a long list of potential contributors.

We do want to do this, especially now that we can start installing
extensions again.  But this is a big job.

Would people like to start choosing which extensions we would like to
install, and talking with their developers about (1) the appropriate
changes for installation and (2) the necessary legal papers?

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 16:33                           ` Tom Tromey
  2007-05-21 18:32                             ` CVS is the `released version' (ELL and the ohio lisp archive) Stephen Eglen
  2007-05-24 21:22                             ` CVS is the `released version' Richard Stallman
@ 2007-05-24 21:22                             ` Richard Stallman
  2 siblings, 0 replies; 146+ messages in thread
From: Richard Stallman @ 2007-05-24 21:22 UTC (permalink / raw)
  To: tromey; +Cc: joakim, emacs-devel

    rms> It seems that part of your motivation for wanting a package system is
    rms> to move Emacs development in a direction that weakens the FSF's
    rms> ability to develop Emacs as an FSF-copyrighted package.
    rms> This confirms my concern about the downside.

    I was a bit surprised, and I suppose a little hurt, to read this.
    Please ask about my motives rather than try to infer what they might
    be.

I apologize -- I should not have spoken about motivation.
But it does seem that the goal you stated would entail
this result.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 13:51                           ` David Kastrup
@ 2007-05-24 21:22                             ` Richard Stallman
  0 siblings, 0 replies; 146+ messages in thread
From: Richard Stallman @ 2007-05-24 21:22 UTC (permalink / raw)
  To: David Kastrup; +Cc: tromey, joakim, emacs-devel

    If we provide Emacs commands that produce a package _and_ can install
    into an Emacs CVS work copy (probably generating appropriate ChangeLog
    entries semi-automatically) _and_ can install into local directories
    for a running Emacs, all from the same package source tree, we
    basically are at a point where contributing to Emacs CVS is a
    zero-pain procedure once one finished testing and installing locally.
    If those commands don't do much more than a recursive copy, so much
    the better: it would mean that one could convert one form into a
    different one easily, not requiring starting from a "canonical" source
    version.

I am confused by this response, because I was talking about
installation into a separate repository of packages not included in
Emacs itself, but you're talking about installation into Emacs.

That doesn't mean your idea is not a good one, but I am not sure
what its point is.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* New Extensions (was: Re: CVS is the `released version')
  2007-05-24 21:22                             ` CVS is the `released version' Richard Stallman
@ 2007-05-24 21:58                               ` Henrik Enberg
  0 siblings, 0 replies; 146+ messages in thread
From: Henrik Enberg @ 2007-05-24 21:58 UTC (permalink / raw)
  To: emacs-devel

Richard Stallman <rms@gnu.org> writes:
> Would people like to start choosing which extensions we would like to
> install, and talking with their developers about (1) the appropriate
> changes for installation and (2) the necessary legal papers?

Some kind of CSS mode.  Personally, I prefer Stefan's.

http://www.iro.umontreal.ca/~monnier/elisp/css-mode.el

-- 
If animal trapped call 410-844-6286

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-21 18:36                             ` JD Smith
  2007-05-21 18:47                               ` David Kastrup
  2007-05-21 18:51                               ` Chong Yidong
@ 2007-05-25 21:13                               ` Ken Manheimer
  2007-05-25 21:24                                 ` Lennart Borgman (gmail)
                                                   ` (2 more replies)
  2 siblings, 3 replies; 146+ messages in thread
From: Ken Manheimer @ 2007-05-25 21:13 UTC (permalink / raw)
  To: JD Smith; +Cc: emacs-devel

On 5/21/07, JD Smith <jdsmith@as.arizona.edu> wrote:

> At the very minimum, an integrated, easy to use capability to update
> assigned, core Emacs packages between releases would be very welcome.

i agree - i think this issue is very important.  from people's
responses in this thread, it's apparent that it's complicated by a few
concerns.  i think the discussion is getting muddied by intermixing of
the concerns, and it would be helpful to explicity distinguish and
address them.  my take:

(1) we are talking about enabling package developers and users to update
     the packages they use incrementally within a major emacs release,
(2) without burdening emacs maintainers with change management chaos,
     and
(3) without reducing the incentive for package developers to assign
     copyright to the fsf.

(1) is the purpose of the thing, and seems quite valuable to me.  it
would reduce the pressure for emacs major releases, or conversely,
reduce the impedence that delays in an emacs major release presents.
those of us that feel confident about the general polish of the CVS
head, and our ability to tackle problems when they creep in, have a
version of this by using an emacs checked out and built form the head.
 we get bug fixes quickly, and get to enjoy valuable features and
improvements as they arrive.

(3) copyright assignment incentives could be maintained by requiring
copyright assignment for inclusion of a package in the system.  this
may be severe, however - perhaps it would be enough to require
assignment for inclusion in the default collection, but enable
inclusion of alternate collections?  i think this is the gist of one
of the discussions that tom tromey and richard are having in this
thread.  whatever the choice, it seems like this can be kept as close
to the status quo as desired, and relaxed as much as willing, by
choice.

(2) is the tricky bit.  the situation would be simplest if the update
system is contrived to only allow the entire collection of packages to
be updated at as a whole.  this would mean that package committers
need worry only about interoperation with the current version of other
packages, not with the diversity available.  ("current" would be a
gradually moving target, but at least there would be only one target
at any moment.)  what this would amount to is a finer incremental
release mechanism for the lisp directory, as a whole.  this would be
very like someone following emacs development via the CVS head, with
the addition that the releases could be better controlled to ensure
coherence/integrity, rather than being wherever checkins happen to be.

the cygwin installer for the cygwin gnu/linux distribution presents an
example of another, more intricate mode, which i like.  (gentoo's
portage and debian's apt systems are (much) more elaborate versions of
this mode, the cygwin version has the advantage of a compact, concise
interface.)

in it, collections of package versions are offered together, and the
user has to specifically elect for exceptions from the standard (or
alternate) version collections.  by deliberately choosing the
exceptions, the user is aware that they're departing from the
programmed situation.  we could even have bug reporting mechanisms
note such departures, to at least have the deviance reported.

the question here is how much turbulence would be introduced by
allowing more frequent incremental release of the packages, and
further, more intricate combinations of package versions.  i think
both are worth considering.
-- 
ken
http://myriadicity.net

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-25 21:13                               ` Ken Manheimer
@ 2007-05-25 21:24                                 ` Lennart Borgman (gmail)
  2007-05-26  7:01                                 ` David Kastrup
  2007-06-03  3:23                                 ` Tom Tromey
  2 siblings, 0 replies; 146+ messages in thread
From: Lennart Borgman (gmail) @ 2007-05-25 21:24 UTC (permalink / raw)
  To: Ken Manheimer; +Cc: emacs-devel, JD Smith

Ken Manheimer wrote:

> (2) is the tricky bit.  the situation would be simplest if the update
> system is contrived to only allow the entire collection of packages to
> be updated at as a whole.  this would mean that package committers
> need worry only about interoperation with the current version of other
> packages, not with the diversity available.  ("current" would be a
> gradually moving target, but at least there would be only one target
> at any moment.)  what this would amount to is a finer incremental
> release mechanism for the lisp directory, as a whole.  this would be
> very like someone following emacs development via the CVS head, with
> the addition that the releases could be better controlled to ensure
> coherence/integrity, rather than being wherever checkins happen to be.


I think this touches the most important point of a package system. There 
must be something that can assure that the package to download fits on 
the users system. Otherwise a package system may create a disaster.

For more complicated packages the alternative is otherwise to download 
the whole package. And in my opinion a package system is propably of 
most value if it assists in installing complicated packages.

It is quite simple to follow instructions to install single elisp files. 
I am not sure that a package system is really needed there. In contrast 
it may be very frustrating for a user getting the files in a package out 
of sync. A good package system can be a very good help to avoid that the 
package parts get out of sync.

So please, do not add a package system that can only handle single files 
and not their interdependencies.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: package.el
  2007-05-21 23:48                               ` package.el Davis Herring
  2007-05-21 23:56                                 ` package.el Lennart Borgman (gmail)
@ 2007-05-25 21:39                                 ` Tom Tromey
  2007-05-27  1:00                                   ` package.el Richard Stallman
  1 sibling, 1 reply; 146+ messages in thread
From: Tom Tromey @ 2007-05-25 21:39 UTC (permalink / raw)
  To: herring; +Cc: David Reitter, emacs-devel

>>>>> "Davis" == Davis Herring <herring@lanl.gov> writes:

Davis> This (the customizable setting) has been discussed before[1],
Davis> and I even offered to go find all the hardcoded ~/.emacs.d/
Davis> usages, but there wasn't much evident interest.  Is there now,
Davis> especially given the issue of differing standards among OSes?

Ah, cool.  I wasn't aware of this.

Today I made a quick pass over Emacs to fix this.  I haven't tested my
patch yet, since I ran into a few difficulties:

* xterm.c uses ~/.emacs.d:

          char *file = "~/.emacs.d/gtkrc";

  I'm not familiar with Emacs internals but I would guess this is run
  before .emacs -- so I don't see how the user could customize this...?
  But for the Aquamacs case I suppose this doesn't matter.

* emacsclient.c:

          sprintf (path, "%s/.emacs.d/server/%s", home, server_file);

  We'd need an environment variable or command line argument here.
  Also some -- but not all -- of the Emacs lisp code uses _emacs_d on
  'ms-dos.  Is this different from Windows?  Does emacsclient work on
  ms-dos?  (If so then the code looks incorrect...)

* Lots of places hard-code .emacs.d, some use _emacs_d, and one uses
  convert-standard-filename.  My patch uses option #2 but maybe
  convert-standard-filename is better?

* I wasn't sure what to do about the doc strings and the Texinfo.
  Should they all mention `user-emacs-directory'?  Or just leave them
  as-is, mentioning ~.emacs.d/, and let the reader figure it out?

* More trivially, what :group should the new user-emacs-directory
  defcustom be in?

Anyway I am happy to send the patch to anybody interested.  And I'm
going to do a bit of testing of it "soon" :)

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-25 21:13                               ` Ken Manheimer
  2007-05-25 21:24                                 ` Lennart Borgman (gmail)
@ 2007-05-26  7:01                                 ` David Kastrup
  2007-05-28  3:10                                   ` dhruva
  2007-06-03  3:23                                 ` Tom Tromey
  2 siblings, 1 reply; 146+ messages in thread
From: David Kastrup @ 2007-05-26  7:01 UTC (permalink / raw)
  To: Ken Manheimer; +Cc: emacs-devel, JD Smith

"Ken Manheimer" <ken.manheimer@gmail.com> writes:

> (3) copyright assignment incentives could be maintained by requiring
> copyright assignment for inclusion of a package in the system.  this
> may be severe, however - perhaps it would be enough to require
> assignment for inclusion in the default collection, but enable
> inclusion of alternate collections?  i think this is the gist of one
> of the discussions that tom tromey and richard are having in this
> thread.  whatever the choice, it seems like this can be kept as
> close to the status quo as desired, and relaxed as much as willing,
> by choice.

I don't know how often I will have to repeat that point: a central
repository requirement is something which is not going to work out
well.  Packages should be able to know where they originate by
themselves.

Anyway, to get a view of what XEmacs uses, here are the defaults for
the user <URL:http://www.xemacs.org/Documentation/packageGuide.html>,
and here for the package contributor:
<URL:http://calypso.tux.org/pipermail/xemacs-beta/2005-June/006129.html>.
The latter link illustrates (and defends) some of the problems
stemming from a central repository approach.

What is not mentioned in there is that the administrative hurdle
(become XEmacs developer with CVS access) for package maintainers is
exacerbated by non-trivial packages in CVS having a completely
different file layout and control files that are not present in the
finished package.

A copyright assignment requirement would probably be a similar hurdle
as the CVS access is, however, since there is no way that a third
party can do the copyright assignment (and third part CVS
maintainenance of a package is quite common for XEmacs packages), it
would at least not intrpduce a division of forces for those package
that make it into a central repository.

And we also want to avoid a _technical_ hurdle, namely the CVS
(=source, except in XEmacs terminology) form of a package having a
different structure from the final package, a structure that can't be
mapped onto the other without the help of scripts and files specific
to the package in question.

That's another place where we don't want to go if we can avoid it.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: package.el
  2007-05-25 21:39                                 ` package.el Tom Tromey
@ 2007-05-27  1:00                                   ` Richard Stallman
  0 siblings, 0 replies; 146+ messages in thread
From: Richard Stallman @ 2007-05-27  1:00 UTC (permalink / raw)
  To: tromey; +Cc: david.reitter, emacs-devel

    * Lots of places hard-code .emacs.d, some use _emacs_d, and one uses
      convert-standard-filename.  My patch uses option #2 but maybe
      convert-standard-filename is better?

What is crucial is that all uses of this directory operate compatibly.
They should all do what `convert-standard-filename' would do.

It is not crucial that they do this by calling
`convert-standard-filename', and emacsclient can't do that.  But it
would be nice if they do call `convert-standard-filename' whenever
that is feasible.

    * I wasn't sure what to do about the doc strings and the Texinfo.
      Should they all mention `user-emacs-directory'?  Or just leave them
      as-is, mentioning ~.emacs.d/, and let the reader figure it out?

emacsclient.c won't be able to use `user-emacs-directory'
just as it won't be able to call `convert-standard-filename'.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-26  7:01                                 ` David Kastrup
@ 2007-05-28  3:10                                   ` dhruva
  2007-05-29  0:02                                     ` Richard Stallman
  0 siblings, 1 reply; 146+ messages in thread
From: dhruva @ 2007-05-28  3:10 UTC (permalink / raw)
  To: David Kastrup; +Cc: Emacs Devel

Hi,

On 5/26/07, David Kastrup <dak@gnu.org> wrote:
> I don't know how often I will have to repeat that point: a central
> repository requirement is something which is not going to work out
> well.  Packages should be able to know where they originate by
> themselves.

A quick thought:
Is it feasible/practical to have a keyword in the comment area of the
file "providing" the package with list of depedencies and their
locations? If the locations are not given, we could assume that it in
the same location where the main package is hosted OR is part of emacs
distro.

-dky

-- 
Dhruva Krishnamurthy
Contents reflect my personal views only!

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-28  3:10                                   ` dhruva
@ 2007-05-29  0:02                                     ` Richard Stallman
  2007-05-29  6:21                                       ` dhruva
  0 siblings, 1 reply; 146+ messages in thread
From: Richard Stallman @ 2007-05-29  0:02 UTC (permalink / raw)
  To: dhruva; +Cc: emacs-devel

    Is it feasible/practical to have a keyword in the comment area of the
    file "providing" the package with list of depedencies and their
    locations? If the locations are not given, we could assume that it in
    the same location where the main package is hosted OR is part of emacs
    distro.

It should be just names, not locations.  I agree this should be easy.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-29  0:02                                     ` Richard Stallman
@ 2007-05-29  6:21                                       ` dhruva
  2007-05-29  9:30                                         ` Stephen J. Turnbull
  2007-05-30  4:27                                         ` Richard Stallman
  0 siblings, 2 replies; 146+ messages in thread
From: dhruva @ 2007-05-29  6:21 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

Hi,

On 5/29/07, Richard Stallman <rms@gnu.org> wrote:
>     Is it feasible/practical to have a keyword in the comment area of the
>     file "providing" the package with list of depedencies and their
>     locations? If the locations are not given, we could assume that it in
>     the same location where the main package is hosted OR is part of emacs
>     distro.
>
> It should be just names, not locations.  I agree this should be easy.

I think names are almost there. If a package follows a rule/standard
of making all 'require' in the top level file (file that provides the
package), we just can search for them to get that list. The real
problem remains, where do I find them...

with best regards,
dhruva

-- 
Dhruva Krishnamurthy
Contents reflect my personal views only!

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-29  6:21                                       ` dhruva
@ 2007-05-29  9:30                                         ` Stephen J. Turnbull
  2007-05-29 10:30                                           ` Frank Schmitt
  2007-05-30  4:27                                         ` Richard Stallman
  1 sibling, 1 reply; 146+ messages in thread
From: Stephen J. Turnbull @ 2007-05-29  9:30 UTC (permalink / raw)
  To: dhruva; +Cc: emacs-devel

dhruva writes:

 > I think names are almost there. If a package follows a rule/standard
 > of making all 'require' in the top level file (file that provides the
 > package), we just can search for them to get that list.

It's not that easy.  You also need to account for auto-autoloads (if
the package developer already has a particular package, he may not
notice the requirement), and macros and defsubsts (if the developer
always has these in his environment, then for a user, the package may
compile, but error at runtime (missing macro) or be very inefficient
(missing defsubst).

Of course these are generally not difficult to correct, but presumably
the goal is to catch them in advance!

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-29  9:30                                         ` Stephen J. Turnbull
@ 2007-05-29 10:30                                           ` Frank Schmitt
  2007-05-29 14:36                                             ` Stephen J. Turnbull
  0 siblings, 1 reply; 146+ messages in thread
From: Frank Schmitt @ 2007-05-29 10:30 UTC (permalink / raw)
  To: emacs-devel

"Stephen J. Turnbull" <stephen@xemacs.org> writes:

>  > I think names are almost there. If a package follows a rule/standard
>  > of making all 'require' in the top level file (file that provides the
>  > package), we just can search for them to get that list.
>
> It's not that easy.  You also need to account for auto-autoloads (if
> the package developer already has a particular package, he may not
> notice the requirement), and macros and defsubsts (if the developer
> always has these in his environment, then for a user, the package may
> compile, but error at runtime (missing macro) or be very inefficient
> (missing defsubst).
>
> Of course these are generally not difficult to correct, but presumably
> the goal is to catch them in advance!

Perhaps one could build a system like fedoras mock (A system for
building rpms in a special build environment. The build environment
includes only those packages which are available on all installations. It
then downloads and install all packages which are explicitly required by
the package to be build, tries to build it and bails if this fails due
to missing requires.)

-- 
Did you ever realize how much text fits in eighty columns? If you now consider
that a signature usually consists of up to four lines, this gives you enough
space to spread a tremendous amount of information with your messages. So seize
this opportunity and don't waste your signature with bullshit nobody will read.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-29 10:30                                           ` Frank Schmitt
@ 2007-05-29 14:36                                             ` Stephen J. Turnbull
  2007-05-29 14:45                                               ` Frank Schmitt
  0 siblings, 1 reply; 146+ messages in thread
From: Stephen J. Turnbull @ 2007-05-29 14:36 UTC (permalink / raw)
  To: Frank Schmitt; +Cc: emacs-devel

Frank Schmitt writes:

 > Perhaps one could build a system like fedoras mock

You're missing my point.  One can, but not until you know about all of
the requirements.  A couple of people tried for XEmacs, and got bogged
down in the details, so we don't have them.  That's one reason why
instead of computing dependencies we simply say "build in the tree".

I'm not saying it's impossible, just that it's probably more work than
it looks at first glance.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-29 14:36                                             ` Stephen J. Turnbull
@ 2007-05-29 14:45                                               ` Frank Schmitt
  2007-05-29 17:49                                                 ` Stephen J. Turnbull
  0 siblings, 1 reply; 146+ messages in thread
From: Frank Schmitt @ 2007-05-29 14:45 UTC (permalink / raw)
  To: emacs-devel

"Stephen J. Turnbull" <stephen@xemacs.org> writes:

> Frank Schmitt writes:
>
>  > Perhaps one could build a system like fedoras mock
>
> You're missing my point.  One can, but not until you know about all of
> the requirements.  A couple of people tried for XEmacs, and got bogged
> down in the details, so we don't have them.  That's one reason why
> instead of computing dependencies we simply say "build in the tree".
>
> I'm not saying it's impossible, just that it's probably more work than
> it looks at first glance.

Hmm. You argued that the developer might not notice that his package
requires things which he, locally, has installed but which aren't
available by default. I presented the way Fedora handles the same
problem for rpm-Packages.

The developer says "dear build system, I think I in my package humba, I
only use package foo, bar and baz". The build system installs foo, bar
and baz in *a clean environment outside of the developers workspace*
(e.g. a fresh CVS checkout of Emacs), tries to build humba there and
reports success or failure.

Maybe I'm stilling missing your point, I just wanted to make sure you
don't miss mine ;-)

-- 
Did you ever realize how much text fits in eighty columns? If you now consider
that a signature usually consists of up to four lines, this gives you enough
space to spread a tremendous amount of information with your messages. So seize
this opportunity and don't waste your signature with bullshit nobody will read.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-29 14:45                                               ` Frank Schmitt
@ 2007-05-29 17:49                                                 ` Stephen J. Turnbull
  2007-05-29 22:00                                                   ` David Kastrup
  2007-05-30 15:44                                                   ` Richard Stallman
  0 siblings, 2 replies; 146+ messages in thread
From: Stephen J. Turnbull @ 2007-05-29 17:49 UTC (permalink / raw)
  To: Frank Schmitt; +Cc: emacs-devel

Frank Schmitt writes:

 > The developer says "dear build system, I think I in my package humba, I
 > only use package foo, bar and baz". The build system installs foo, bar
 > and baz in *a clean environment outside of the developers workspace*
 > (e.g. a fresh CVS checkout of Emacs), tries to build humba there and
 > reports success or failure.

Oh, OK, that will work.  But that's equivalent to what XEmacs does.
It tends toward centralization because it's most efficient if done in
the context of a comprehensive list of packages, all available in a
single repository.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-29 17:49                                                 ` Stephen J. Turnbull
@ 2007-05-29 22:00                                                   ` David Kastrup
  2007-05-30 15:43                                                     ` Richard Stallman
  2007-05-30 15:44                                                   ` Richard Stallman
  1 sibling, 1 reply; 146+ messages in thread
From: David Kastrup @ 2007-05-29 22:00 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: Frank Schmitt, emacs-devel

"Stephen J. Turnbull" <stephen@xemacs.org> writes:

> Frank Schmitt writes:
>
>  > The developer says "dear build system, I think I in my package humba, I
>  > only use package foo, bar and baz". The build system installs foo, bar
>  > and baz in *a clean environment outside of the developers workspace*
>  > (e.g. a fresh CVS checkout of Emacs), tries to build humba there and
>  > reports success or failure.
>
> Oh, OK, that will work.  But that's equivalent to what XEmacs does.
> It tends toward centralization because it's most efficient if done in
> the context of a comprehensive list of packages, all available in a
> single repository.

In practice it might well be that several, probably most packages will
tend to be provided from few canonical repositories.  But making this
obligatory is not a good idea, I think.  On the other hand, if a
central repository would also keep a list of "for this package, look
there" rather than keeping possibly outdated packages, the dependency
resolution would get quite easier already without either requiring
lots of manual hunting, and with better chances of getting updates
from upstream even when they don't bother pushing them to repositories
all the time.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-29  6:21                                       ` dhruva
  2007-05-29  9:30                                         ` Stephen J. Turnbull
@ 2007-05-30  4:27                                         ` Richard Stallman
  1 sibling, 0 replies; 146+ messages in thread
From: Richard Stallman @ 2007-05-30  4:27 UTC (permalink / raw)
  To: dhruva; +Cc: emacs-devel

    I think names are almost there. If a package follows a rule/standard
    of making all 'require' in the top level file (file that provides the
    package), we just can search for them to get that list. The real
    problem remains, where do I find them...

That isn't a problem at all.  This issue is part of the discussion
about a detail in a program whose main feature is that it finds
packages.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-29 22:00                                                   ` David Kastrup
@ 2007-05-30 15:43                                                     ` Richard Stallman
  2007-05-30 16:15                                                       ` joakim
  0 siblings, 1 reply; 146+ messages in thread
From: Richard Stallman @ 2007-05-30 15:43 UTC (permalink / raw)
  To: David Kastrup; +Cc: stephen, ich, emacs-devel

I will not agree to a package system that I believe undermines our
chances of getting copyright assignments for Lisp code that we would
like to add to Emacs.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-29 17:49                                                 ` Stephen J. Turnbull
  2007-05-29 22:00                                                   ` David Kastrup
@ 2007-05-30 15:44                                                   ` Richard Stallman
  2007-05-30 21:55                                                     ` Frank Schmitt
  1 sibling, 1 reply; 146+ messages in thread
From: Richard Stallman @ 2007-05-30 15:44 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: ich, emacs-devel

     > The developer says "dear build system, I think I in my package humba, I
     > only use package foo, bar and baz". The build system installs foo, bar
     > and baz in *a clean environment outside of the developers workspace*
     > (e.g. a fresh CVS checkout of Emacs), tries to build humba there and
     > reports success or failure.

    Oh, OK, that will work.  But that's equivalent to what XEmacs does.
    It tends toward centralization because it's most efficient if done in
    the context of a comprehensive list of packages, all available in a
    single repository.

We don't need to think about anything so complex.
If the list of dependencies are wrong, it is a bug and
the package maintainer fixes it.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-30 15:43                                                     ` Richard Stallman
@ 2007-05-30 16:15                                                       ` joakim
  2007-06-02 17:29                                                         ` Richard Stallman
  0 siblings, 1 reply; 146+ messages in thread
From: joakim @ 2007-05-30 16:15 UTC (permalink / raw)
  To: emacs-devel

Richard Stallman <rms@gnu.org> writes:

> I will not agree to a package system that I believe undermines our
> chances of getting copyright assignments for Lisp code that we would
> like to add to Emacs.

That is reasonable. IMHO the proposed packaging systems do not have
this negative property.

Heres why I believe this:

- If a package author doesnt want to sign papers, why would he ever do
it?

- For a package to be included in Emacs is an honor, and there is
really no other reason, that I can see, to try to get ones package
included.



-- 
Joakim Verona

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-30 15:44                                                   ` Richard Stallman
@ 2007-05-30 21:55                                                     ` Frank Schmitt
  2007-05-31 22:32                                                       ` Richard Stallman
  0 siblings, 1 reply; 146+ messages in thread
From: Frank Schmitt @ 2007-05-30 21:55 UTC (permalink / raw)
  To: emacs-devel

Richard Stallman <rms@gnu.org> writes:

>      > The developer says "dear build system, I think I in my package humba, I
>      > only use package foo, bar and baz". The build system installs foo, bar
>      > and baz in *a clean environment outside of the developers workspace*
>      > (e.g. a fresh CVS checkout of Emacs), tries to build humba there and
>      > reports success or failure.
>
>     Oh, OK, that will work.  But that's equivalent to what XEmacs does.
>     It tends toward centralization because it's most efficient if done in
>     the context of a comprehensive list of packages, all available in a
>     single repository.
>
> We don't need to think about anything so complex.
> If the list of dependencies are wrong, it is a bug and
> the package maintainer fixes it.

The issue is: When packages are made available on some kind of package
repository (here repository doesn't mean CVS repository but some kind of
source from which users can obtain software), there is normally no
beta cycle: The developer pushes it to the repository and the users get
it from there. What I was talking about is a kind of automatic quality
control which tries to prevent that broken packages reach the
repository.

-- 
Did you ever realize how much text fits in eighty columns? If you now consider
that a signature usually consists of up to four lines, this gives you enough
space to spread a tremendous amount of information with your messages. So seize
this opportunity and don't waste your signature with bullshit nobody will read.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-30 21:55                                                     ` Frank Schmitt
@ 2007-05-31 22:32                                                       ` Richard Stallman
  0 siblings, 0 replies; 146+ messages in thread
From: Richard Stallman @ 2007-05-31 22:32 UTC (permalink / raw)
  To: Frank Schmitt; +Cc: emacs-devel

    What I was talking about is a kind of automatic quality
    control which tries to prevent that broken packages reach the
    repository.

That might be a good idea, but if you want to work on it, please try
to make it a separate and modular facility--not a necessary part of
a package system itself.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-30 16:15                                                       ` joakim
@ 2007-06-02 17:29                                                         ` Richard Stallman
  2007-06-03  9:56                                                           ` Frank Schmitt
  0 siblings, 1 reply; 146+ messages in thread
From: Richard Stallman @ 2007-06-02 17:29 UTC (permalink / raw)
  To: joakim; +Cc: emacs-devel

    - If a package author doesnt want to sign papers, why would he ever do
    it?

To get the program included in Emacs.

    - For a package to be included in Emacs is an honor, and there is
    really no other reason, that I can see, to try to get ones package
    included.

I think the main reason is the desire for all the Emacs users
to get the code easily.

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-05-25 21:13                               ` Ken Manheimer
  2007-05-25 21:24                                 ` Lennart Borgman (gmail)
  2007-05-26  7:01                                 ` David Kastrup
@ 2007-06-03  3:23                                 ` Tom Tromey
  2 siblings, 0 replies; 146+ messages in thread
From: Tom Tromey @ 2007-06-03  3:23 UTC (permalink / raw)
  To: Ken Manheimer; +Cc: emacs-devel, JD Smith

A few belated responses to this thread, all in one message.
I'll try to lay out some of my thinking behind package.el.

Ken> (1) we are talking about enabling package developers and users to update
Ken>     the packages they use incrementally within a major emacs release,
Ken> (2) without burdening emacs maintainers with change management chaos,
Ken>     and

package.el came from a few ideas.  The obvious one was to replace the
ELL/Wiki/Ohio State Archive with something more machine-friendly (and
thus simpler to make user-friendly).  However I also wanted to be able
to install a package (e.g., ERC) that was later pulled into Emacs;
upgrade Emacs; and have my old, personal ERC install not be used any
more.  I've run into this situation any number of times in the past,
and with the long Emacs release cycle and the many packages that exist
now, it seemed a bit more important.

This second idea basically works.  It would work better with a bit of
assistance from Emacs -- say a way to auto-compute the default value
for `package-alist' at build time.

Ken> (3) without reducing the incentive for package developers to assign
Ken>     copyright to the fsf.

I don't know how to accomplish this to RMS' satisfaction.  But perhaps
some of the infrastructure from package.el can still end up in Emacs.

Ken> (2) is the tricky bit.  the situation would be simplest if the
Ken> update system is contrived to only allow the entire collection of
Ken> packages to be updated at as a whole.

There are some theoretical problems here but I was planning to address
them from the "active maintenance" point of view -- i.e., the ELPA
maintainers would simply ensure, somehow, that the archive is
internally consistent.  This is related to...

Lennart> I think this touches the most important point of a package
Lennart> system. There must be something that can assure that the
Lennart> package to download fits on the users system.

I didn't want to try to deal with this in its full hairiness, but
package.el at least solves part of the problem, namely by letting
packages require minimum versions of other packages (including the
special package "emacs").

Lennart> So please, do not add a package system that can only handle
Lennart> single files and not their interdependencies.

package.el handles both `single' and `tar' packages, and either type
can have dependencies.  Which is related to...

Dhruva> Is it feasible/practical to have a keyword in the comment area
Dhruva> of the file "providing" the package with list of depedencies
Dhruva> and their locations?

package.el doesn't deal with locations -- it assumes a single
location.  I am not a fan of the location-per-package approach,
because I think a lesson from ELL is that locations often die.
However, package.el does handle requirements, even for `single'
packages, by defining a new "Package-Requires" header comment.  E.g.,
a .el file that requires Emacs 22 could have:

    ;; Package-Requires: ((emacs "22.0"))

Offhand I don't think anything currently in ELPA does this.  But then,
I haven't put much effort into trying to upload the bigger things out
there.

Tom

^ permalink raw reply	[flat|nested] 146+ messages in thread

* Re: CVS is the `released version'
  2007-06-02 17:29                                                         ` Richard Stallman
@ 2007-06-03  9:56                                                           ` Frank Schmitt
  0 siblings, 0 replies; 146+ messages in thread
From: Frank Schmitt @ 2007-06-03  9:56 UTC (permalink / raw)
  To: emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     - For a package to be included in Emacs is an honor, and there is
>     really no other reason, that I can see, to try to get ones package
>     included.
>
> I think the main reason is the desire for all the Emacs users
> to get the code easily.

This would be true if there were yearly releases...

-- 
Did you ever realize how much text fits in eighty columns? If you now consider
that a signature usually consists of up to four lines, this gives you enough
space to spread a tremendous amount of information with your messages. So seize
this opportunity and don't waste your signature with bullshit nobody will read.

^ permalink raw reply	[flat|nested] 146+ messages in thread

end of thread, other threads:[~2007-06-03  9:56 UTC | newest]

Thread overview: 146+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-09 19:56 CVS is the `released version' Robert J. Chassell
2007-05-09 19:59 ` Thomas Hühn
2007-05-10  2:00   ` Robert J. Chassell
2007-05-10  6:03     ` Thomas Hühn
2007-05-10 11:43       ` Robert J. Chassell
2007-05-10 11:47         ` David Kastrup
2007-05-10  6:58     ` David Kastrup
2007-05-10 11:58       ` Andrea Russo
2007-05-10 12:34         ` Thomas Hühn
2007-05-09 20:12 ` David Kastrup
2007-05-10  2:18 ` Chong Yidong
2007-05-10 18:24 ` Ken Manheimer
2007-05-10 19:05   ` Stefan Monnier
2007-05-11 18:48     ` Richard Stallman
2007-05-11 20:19       ` joakim
2007-05-12 16:47         ` Richard Stallman
2007-05-12 20:26           ` joakim
2007-05-13  8:49           ` Ryan Yeske
2007-05-13  9:38             ` David Kastrup
2007-05-13 11:28               ` Ralf Angeli
2007-05-13 12:53                 ` David Kastrup
2007-05-14  1:43               ` Tom Tromey
2007-05-14  8:09             ` Richard Stallman
2007-05-14 15:19               ` Tom Tromey
2007-05-14 18:29               ` Ryan Yeske
2007-05-16  2:23               ` Mike Mattie
2007-05-14  1:17           ` Tom Tromey
2007-05-14  5:06             ` Thien-Thi Nguyen
2007-05-14  6:47               ` David Kastrup
2007-05-14 15:07               ` Tom Tromey
2007-05-14 17:20                 ` Stefan Monnier
2007-05-14  6:41             ` David Kastrup
2007-05-14  8:02               ` joakim
2007-05-14 15:10               ` Tom Tromey
2007-05-14 18:41                 ` Ryan Yeske
2007-05-14 19:03                 ` Eli Zaretskii
2007-05-14 19:16                   ` Tom Tromey
2007-05-14 22:36                   ` Ryan Yeske
2007-05-16 15:46                   ` Stefan Monnier
2007-05-17 12:43                     ` David Kastrup
2007-05-17 14:17                       ` Stefan Monnier
2007-05-15 23:52                 ` thorne
2007-05-18 23:10             ` Richard Stallman
2007-05-18 23:31               ` Tom Tromey
2007-05-19 22:31                 ` Richard Stallman
2007-05-19 22:33                   ` Tom Tromey
2007-05-20 17:05                     ` Richard Stallman
2007-05-20 21:45                       ` Tom Tromey
2007-05-21  5:19                         ` David Kastrup
2007-05-21 10:33                         ` Richard Stallman
2007-05-21 10:46                           ` David Kastrup
2007-05-21 18:36                             ` JD Smith
2007-05-21 18:47                               ` David Kastrup
2007-05-21 18:51                               ` Chong Yidong
2007-05-21 19:02                                 ` David Kastrup
2007-05-22 14:52                                 ` Richard Stallman
2007-05-25 21:13                               ` Ken Manheimer
2007-05-25 21:24                                 ` Lennart Borgman (gmail)
2007-05-26  7:01                                 ` David Kastrup
2007-05-28  3:10                                   ` dhruva
2007-05-29  0:02                                     ` Richard Stallman
2007-05-29  6:21                                       ` dhruva
2007-05-29  9:30                                         ` Stephen J. Turnbull
2007-05-29 10:30                                           ` Frank Schmitt
2007-05-29 14:36                                             ` Stephen J. Turnbull
2007-05-29 14:45                                               ` Frank Schmitt
2007-05-29 17:49                                                 ` Stephen J. Turnbull
2007-05-29 22:00                                                   ` David Kastrup
2007-05-30 15:43                                                     ` Richard Stallman
2007-05-30 16:15                                                       ` joakim
2007-06-02 17:29                                                         ` Richard Stallman
2007-06-03  9:56                                                           ` Frank Schmitt
2007-05-30 15:44                                                   ` Richard Stallman
2007-05-30 21:55                                                     ` Frank Schmitt
2007-05-31 22:32                                                       ` Richard Stallman
2007-05-30  4:27                                         ` Richard Stallman
2007-06-03  3:23                                 ` Tom Tromey
2007-05-22  8:30                             ` Richard Stallman
2007-05-21 16:33                           ` Tom Tromey
2007-05-21 18:32                             ` CVS is the `released version' (ELL and the ohio lisp archive) Stephen Eglen
2007-05-24 21:22                             ` CVS is the `released version' Richard Stallman
2007-05-24 21:58                               ` New Extensions (was: Re: CVS is the `released version') Henrik Enberg
2007-05-24 21:22                             ` CVS is the `released version' Richard Stallman
2007-05-21 12:03                         ` Robert J. Chassell
2007-05-21 12:13                           ` David Kastrup
2007-05-21 12:45                           ` Stefan Monnier
2007-05-21 13:18                           ` jasonr
2007-05-21 15:39                             ` Robert J. Chassell
2007-05-22 10:10                               ` Stefan Monnier
2007-05-22 11:18                                 ` Robert J. Chassell
2007-05-22 13:36                                   ` David Kastrup
2007-05-22 15:19                                     ` Robert J. Chassell
2007-05-22 15:37                                       ` Jason Rumney
2007-05-22 15:12                                   ` Stefan Monnier
2007-05-22 17:24                                     ` Robert J. Chassell
2007-05-23 14:54                                       ` Stefan Monnier
2007-05-23 15:02                                       ` Jason Rumney
2007-05-23 19:08                                         ` Robert J. Chassell
2007-05-21  2:57                       ` Bob Rogers
2007-05-21 13:24                         ` Richard Stallman
2007-05-21 16:22                           ` Tom Tromey
2007-05-21 12:53                     ` Stefan Monnier
2007-05-21 16:41                       ` Tom Tromey
2007-05-21 19:40                         ` Stefan Monnier
2007-05-22  4:38                     ` Xavier Maillard
2007-05-20  7:54                   ` David Kastrup
2007-05-20 21:53                     ` Tom Tromey
2007-05-21  5:24                       ` David Kastrup
2007-05-21  5:53                         ` dhruva
2007-05-21  6:51                           ` David Kastrup
2007-05-21  8:47                         ` Stephen J. Turnbull
2007-05-21  9:22                           ` David Kastrup
2007-05-21 13:24                         ` Richard Stallman
2007-05-21 13:51                           ` David Kastrup
2007-05-24 21:22                             ` Richard Stallman
2007-05-21 10:17                       ` package.el (was: Re: CVS is the `released version') David Reitter
2007-05-21 17:40                         ` package.el Tom Tromey
2007-05-21 18:13                           ` package.el David Kastrup
2007-05-21 22:43                           ` package.el David Reitter
2007-05-21 22:51                             ` package.el Tom Tromey
2007-05-21 23:48                               ` package.el Davis Herring
2007-05-21 23:56                                 ` package.el Lennart Borgman (gmail)
2007-05-25 21:39                                 ` package.el Tom Tromey
2007-05-27  1:00                                   ` package.el Richard Stallman
2007-05-21 23:50                               ` package.el David Reitter
2007-05-21 23:44                                 ` package.el Tom Tromey
2007-05-22  2:21                                   ` package.el Stephen J. Turnbull
2007-05-22 10:18                                   ` package.el Stefan Monnier
2007-05-21 22:57                             ` package.el David Kastrup
2007-05-20 22:05                     ` CVS is the `released version' Richard Stallman
2007-05-19 22:31                 ` Richard Stallman
2007-05-19 22:31                   ` Tom Tromey
2007-05-20 17:05                     ` Richard Stallman
2007-05-20 21:23                       ` Tom Tromey
2007-05-21 12:59                       ` Stefan Monnier
2007-05-21 13:03                         ` David Kastrup
2007-05-21 14:14                           ` Stefan Monnier
2007-05-21 16:50                         ` Tom Tromey
2007-05-22 14:51                           ` Richard Stallman
2007-05-22  6:10               ` Trent Buck
2007-05-22  7:56                 ` David Kastrup
2007-05-24 21:22                 ` Richard Stallman
2007-05-10 20:42   ` David Kastrup
2007-05-10 23:05 ` Lukasz Stafiniak
2007-05-10 23:23   ` Davis Herring
2007-05-11 12:31     ` Thien-Thi Nguyen

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).