emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: David Engster <deng@randomsample.de>
To: Bastien <bzg@altern.org>
Cc: emacs-orgmode@gnu.org, Julien Cubizolles <j.cubizolles@free.fr>
Subject: Re: org-caldav can't find org-prepare-agenda-buffers
Date: Thu, 28 Feb 2013 17:17:05 +0100	[thread overview]
Message-ID: <874ngw2z26.fsf@engster.org> (raw)
In-Reply-To: <87621cj3bc.fsf@bzg.ath.cx> (Bastien's message of "Thu, 28 Feb 2013 08:38:31 +0100")

Bastien writes:
> David Engster <deng@randomsample.de> writes:
>
>> Of course I can fix this. But I hope you realize that any third-party
>> code out there that requires an exporter will load the old one from
>> Emacs proper. 
>
> Yes, I'm well aware of this.  The change now lives in the master
> branch, and will happen when we release 8.0, hopefully in a not so
> distant future.
>
> We will document all incompatible changes in the release notes, as we
> usually do.  I expect third-party maintainers to read these notes.

Well, I don't expect it.

>> I'm wondering why you felt the need to rename them. If the
>> new exporters are compatible with the old ones, why not keep the names?
>> This would also avoid that the provided feature differs from the used
>> name prefix (ox-icalendar != org-icalendar).
>
> There are several good reasons for this:
>
> 1) conflicting library names: we now have org-man.el (for links to man
>    pages) and ox-man.el (for exporting);
>
> 2) using the dedicated prefix ox- makes it clear that the library is
>    an export backend, the same way that the ob- prefix makes it clear
>    it is to support a language for Org Babel.
>
> In general, the change is incompatible for third-part libraries by is 
> clearly useful for future maintainance, so the trade-off was in favor
> of making it, and 8.0 is a good time for it.

I'm afraid I remain unconvinced. 1) is just one name clash, so just
rename one of it. Also, like all the other ox-* packages now, ox-man
uses 'org-man' as a prefix for its names; what will 'org-man' use, then?

2) is nice, but IMO not a good enough reason to break compatibility in
such a major way.

Anyway, you've made a decision and did the rename. Let's just agree to
disagree here.

The most serious issue is that things will often seem to work because
old exporters are pulled in from Emacs, possibly *very* old
exporters. They might work, or they might fail for various reasons,
making it difficult for users and developers to see what went wrong.
Just look at the other bug report by Karl Voit from yesterday; I guess
it's the same issue.

So if you change your API in an incompatible way (and packages names are
part of that), you should at least throw a clear error when the old API
is used, and tell the user what happened and how it can be fixed. Hence
I would suggest to use something like

(eval-after-load "org-icalendar"
  '(error "The old org-icalendar exporter is deprecated; use ox-icalendar instead."))

An alternative would be to remove the bundled Org from load-path when a
newer version is loaded. We do that with CEDET, but it is difficult to
do right (because of autoloading, for instance), so I think the
eval-after-load hack is better.

-David

  reply	other threads:[~2013-02-28 16:17 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-27 10:34 org-caldav can't find org-prepare-agenda-buffers Julien Cubizolles
2013-02-27 14:12 ` Bastien
2013-02-27 19:18   ` David Engster
2013-02-27 22:30     ` Bastien
2013-02-28  6:57       ` David Engster
2013-02-28  7:38         ` Bastien
2013-02-28 16:17           ` David Engster [this message]
2013-02-28 18:25             ` Achim Gratz
2013-02-28 19:13               ` David Engster
2013-02-28 19:32                 ` Achim Gratz
2013-03-02 11:17             ` Bastien
2013-03-02 13:26               ` David Engster
2013-03-02 17:18                 ` Bastien
2013-03-02 20:17                   ` Torsten Wagner
2013-03-03 12:26                     ` David Engster
2013-03-04 10:46                       ` Torsten Wagner
2013-03-02 22:19                   ` Achim Gratz
2013-03-03  6:25                     ` Bastien
2013-03-06 14:57                       ` Julien Cubizolles
2013-03-06 16:15                         ` David Engster
2013-03-06 16:24                           ` Nicolas Goaziou
2013-03-06 16:43                             ` David Engster
2013-03-06 17:08                               ` Nicolas Goaziou
2013-03-06 17:22                                 ` David Engster
2013-03-06 17:32                                   ` Nicolas Goaziou
2013-03-06 21:24                                     ` David Engster
2013-03-07  9:13                                       ` Julien Cubizolles
2013-03-07 10:06                                         ` Vincent Beffara
2013-03-07 10:54                                           ` Nicolas Goaziou
2013-03-07 11:17                                             ` Vincent Beffara
2013-03-07 12:56                                               ` Nicolas Goaziou
2013-03-07 13:21                                                 ` Vincent Beffara
2013-03-07 13:31                                                   ` Vincent Beffara
2013-03-07 13:41                                                     ` Vincent Beffara
2013-03-12  6:21                                                       ` Julien Cubizolles
2013-03-12 10:18                                                         ` Vincent Beffara
2013-03-12 20:31                                                           ` David Engster
2013-03-14  0:05                                                             ` Vincent Beffara
2013-03-06 16:51                           ` Julien Cubizolles
2013-03-06 17:08                             ` David Engster
2013-03-06 17:18                               ` Julien Cubizolles
2013-03-06 18:35                                 ` David Engster
2013-03-02 11:19             ` Bastien
2013-03-02 13:33               ` David Engster

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.orgmode.org/

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

  git send-email \
    --in-reply-to=874ngw2z26.fsf@engster.org \
    --to=deng@randomsample.de \
    --cc=bzg@altern.org \
    --cc=emacs-orgmode@gnu.org \
    --cc=j.cubizolles@free.fr \
    /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/org-mode.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).