unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Stephen J. Turnbull" <stephen@xemacs.org>
To: David Kastrup <dak@gnu.org>
Cc: tromey@redhat.com, rms@gnu.org, joakim@verona.se, emacs-devel@gnu.org
Subject: Re: CVS is the `released version'
Date: Mon, 21 May 2007 17:47:12 +0900	[thread overview]
Message-ID: <87veem7ecv.fsf@uwakimon.sk.tsukuba.ac.jp> (raw)
In-Reply-To: <853b1qg358.fsf@lola.goethe.zz>

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).

  parent reply	other threads:[~2007-05-21  8:47 UTC|newest]

Thread overview: 146+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

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

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

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

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

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

  git send-email \
    --in-reply-to=87veem7ecv.fsf@uwakimon.sk.tsukuba.ac.jp \
    --to=stephen@xemacs.org \
    --cc=dak@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=joakim@verona.se \
    --cc=rms@gnu.org \
    --cc=tromey@redhat.com \
    /path/to/YOUR_REPLY

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

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

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

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