emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* org-caldav can't find org-prepare-agenda-buffers
@ 2013-02-27 10:34 Julien Cubizolles
  2013-02-27 14:12 ` Bastien
  0 siblings, 1 reply; 44+ messages in thread
From: Julien Cubizolles @ 2013-02-27 10:34 UTC (permalink / raw)
  To: emacs-orgmode

As of today, org-cadav-syn fails with

--8<---------------cut here---------------start------------->8---
org-export-icalendar: Symbol's function definition is void: org-prepare-agenda-buffers
--8<---------------cut here---------------end--------------->8---

Actually, I can't find this function but org-agenda-prepare-buffers
exist. Are there two different functions or is there a confusion
somewhere ?

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  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
  0 siblings, 1 reply; 44+ messages in thread
From: Bastien @ 2013-02-27 14:12 UTC (permalink / raw)
  To: Julien Cubizolles; +Cc: emacs-orgmode

Hi Julien,

Julien Cubizolles <j.cubizolles@free.fr> writes:

> As of today, org-cadav-syn fails with
>
> org-export-icalendar: Symbol's function definition is void: org-prepare-agenda-buffers
>
> Actually, I can't find this function but org-agenda-prepare-buffers
> exist. Are there two different functions or is there a confusion
> somewhere ?

The function has been renamed a while ago.

`org-agenda-prepare-buffers' is the correct name.

-- 
 Bastien

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-02-27 14:12 ` Bastien
@ 2013-02-27 19:18   ` David Engster
  2013-02-27 22:30     ` Bastien
  0 siblings, 1 reply; 44+ messages in thread
From: David Engster @ 2013-02-27 19:18 UTC (permalink / raw)
  To: Bastien; +Cc: emacs-orgmode, Julien Cubizolles

Bastien writes:
> Hi Julien,
>
> Julien Cubizolles <j.cubizolles@free.fr> writes:
>
>> As of today, org-cadav-syn fails with
>>
>> org-export-icalendar: Symbol's function definition is void:
>> org-prepare-agenda-buffers
>>
>> Actually, I can't find this function but org-agenda-prepare-buffers
>> exist. Are there two different functions or is there a confusion
>> somewhere ?
>
> The function has been renamed a while ago.
>
> `org-agenda-prepare-buffers' is the correct name.

org-caldav does not call this function. It however requires
org-icalendar, and that was renamed to ox-icalendar in org git. So I
guess it pulls org-icalendar from the Org that is included with Emacs,
which calls the obsoleted function.

I don't follow org-development very closely. I realize there's a new
exporter, but renaming the exporters in this way is asking for
trouble. In this case, we've actually been lucky that an error like the
above is thrown; much more subtle things can happen when new and old Org
functions interact.

-David

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-02-27 19:18   ` David Engster
@ 2013-02-27 22:30     ` Bastien
  2013-02-28  6:57       ` David Engster
  0 siblings, 1 reply; 44+ messages in thread
From: Bastien @ 2013-02-27 22:30 UTC (permalink / raw)
  To: David Engster; +Cc: emacs-orgmode, Julien Cubizolles

Hi David,

David Engster <deng@randomsample.de> writes:

> org-caldav does not call this function. It however requires
> org-icalendar, and that was renamed to ox-icalendar in org git. So I
> guess it pulls org-icalendar from the Org that is included with Emacs,
> which calls the obsoleted function.

Can you fix this by requiring ox-icalendar.el when it's available,
org-icalendar.el otherwise?

Thanks!

-- 
 Bastien

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-02-27 22:30     ` Bastien
@ 2013-02-28  6:57       ` David Engster
  2013-02-28  7:38         ` Bastien
  0 siblings, 1 reply; 44+ messages in thread
From: David Engster @ 2013-02-28  6:57 UTC (permalink / raw)
  To: Bastien; +Cc: emacs-orgmode, Julien Cubizolles

Bastien writes:
> Hi David,
>
> David Engster <deng@randomsample.de> writes:
>
>> org-caldav does not call this function. It however requires
>> org-icalendar, and that was renamed to ox-icalendar in org git. So I
>> guess it pulls org-icalendar from the Org that is included with Emacs,
>> which calls the obsoleted function.
>
> Can you fix this by requiring ox-icalendar.el when it's available,
> org-icalendar.el otherwise?

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

-David

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-02-28  6:57       ` David Engster
@ 2013-02-28  7:38         ` Bastien
  2013-02-28 16:17           ` David Engster
  0 siblings, 1 reply; 44+ messages in thread
From: Bastien @ 2013-02-28  7:38 UTC (permalink / raw)
  To: David Engster; +Cc: emacs-orgmode, Julien Cubizolles

Hi David,

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.

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

Best,

-- 
 Bastien

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-02-28  7:38         ` Bastien
@ 2013-02-28 16:17           ` David Engster
  2013-02-28 18:25             ` Achim Gratz
                               ` (2 more replies)
  0 siblings, 3 replies; 44+ messages in thread
From: David Engster @ 2013-02-28 16:17 UTC (permalink / raw)
  To: Bastien; +Cc: emacs-orgmode, Julien Cubizolles

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

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-02-28 16:17           ` David Engster
@ 2013-02-28 18:25             ` Achim Gratz
  2013-02-28 19:13               ` David Engster
  2013-03-02 11:17             ` Bastien
  2013-03-02 11:19             ` Bastien
  2 siblings, 1 reply; 44+ messages in thread
From: Achim Gratz @ 2013-02-28 18:25 UTC (permalink / raw)
  To: emacs-orgmode

David Engster writes:
> 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.

That part is actually relatively easy, I have posted code to do that
here.  The part that gives me headaches is the defcustom definitions,
which are nowhere near as easy to defeat and provide yet another way of
"autoloading" stuff in Emacs.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Wavetables for the Terratec KOMPLEXER:
http://Synth.Stromeko.net/Downloads.html#KomplexerWaves

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-02-28 18:25             ` Achim Gratz
@ 2013-02-28 19:13               ` David Engster
  2013-02-28 19:32                 ` Achim Gratz
  0 siblings, 1 reply; 44+ messages in thread
From: David Engster @ 2013-02-28 19:13 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode

Achim Gratz writes:
> David Engster writes:
>> 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.
>
> That part is actually relatively easy, I have posted code to do that
> here.  The part that gives me headaches is the defcustom definitions,
> which are nowhere near as easy to defeat and provide yet another way of
> "autoloading" stuff in Emacs.

You mean this cus-load thingie? CEDET is actually excluded from that, so
we don't have to deal with it. But wouldn't it be enough to remove all
properties beginning with 'org-' from custom-loads?

-David

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-02-28 19:13               ` David Engster
@ 2013-02-28 19:32                 ` Achim Gratz
  0 siblings, 0 replies; 44+ messages in thread
From: Achim Gratz @ 2013-02-28 19:32 UTC (permalink / raw)
  To: emacs-orgmode

David Engster writes:
> You mean this cus-load thingie? CEDET is actually excluded from that, so
> we don't have to deal with it. But wouldn't it be enough to remove all
> properties beginning with 'org-' from custom-loads?

First you have to find all symbols, then remove the property and then
there are one or two undocumented internal variables that I don't really
know yet what they're used for.  I don't know if they're any functions
for doing this.  I'll get around to it eventually.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Factory and User Sound Singles for Waldorf rackAttack:
http://Synth.Stromeko.net/Downloads.html#WaldorfSounds

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-02-28 16:17           ` David Engster
  2013-02-28 18:25             ` Achim Gratz
@ 2013-03-02 11:17             ` Bastien
  2013-03-02 13:26               ` David Engster
  2013-03-02 11:19             ` Bastien
  2 siblings, 1 reply; 44+ messages in thread
From: Bastien @ 2013-03-02 11:17 UTC (permalink / raw)
  To: David Engster; +Cc: emacs-orgmode, Julien Cubizolles

Hi David,

David Engster <deng@randomsample.de> writes:

> The most serious issue is that things will often seem to work because
> old exporters are pulled in from Emacs, possibly *very* old
> exporters.

I've added (provide 'org-icalendar) to ox-icalendar.el so that
a user will load the correct file instead of the old file when
ox-icalendar.el takes precedence over org-icalendar.el in the
load-path.  Not the most elegant solution, I agree.

-- 
 Bastien

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-02-28 16:17           ` David Engster
  2013-02-28 18:25             ` Achim Gratz
  2013-03-02 11:17             ` Bastien
@ 2013-03-02 11:19             ` Bastien
  2013-03-02 13:33               ` David Engster
  2 siblings, 1 reply; 44+ messages in thread
From: Bastien @ 2013-03-02 11:19 UTC (permalink / raw)
  To: David Engster; +Cc: emacs-orgmode, Julien Cubizolles

Hi David,

David Engster <deng@randomsample.de> writes:

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

I'm not sure about this one: where are you suggesting to add this?
In org.el?  Will the users get the warning if org-icalendar.el has
been loaded from a previous install?

Thanks,

-- 
 Bastien

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-02 11:17             ` Bastien
@ 2013-03-02 13:26               ` David Engster
  2013-03-02 17:18                 ` Bastien
  0 siblings, 1 reply; 44+ messages in thread
From: David Engster @ 2013-03-02 13:26 UTC (permalink / raw)
  To: Bastien; +Cc: emacs-orgmode, Julien Cubizolles

Bastien writes:
> Hi David,
>
> David Engster <deng@randomsample.de> writes:
>
>> The most serious issue is that things will often seem to work because
>> old exporters are pulled in from Emacs, possibly *very* old
>> exporters.
>
> I've added (provide 'org-icalendar) to ox-icalendar.el so that
> a user will load the correct file instead of the old file when
> ox-icalendar.el takes precedence over org-icalendar.el in the
> load-path.  Not the most elegant solution, I agree.

Did you actually try that? How should Emacs possibly know that the file
ox-icalendar provides the feature org-icalendar? This will only work if
ox-icalendar is already loaded.

-David

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-02 11:19             ` Bastien
@ 2013-03-02 13:33               ` David Engster
  0 siblings, 0 replies; 44+ messages in thread
From: David Engster @ 2013-03-02 13:33 UTC (permalink / raw)
  To: Bastien; +Cc: emacs-orgmode, Julien Cubizolles

Bastien writes:
> Hi David,
>
> David Engster <deng@randomsample.de> writes:
>
>> (eval-after-load "org-icalendar"
>>   '(error "The old org-icalendar exporter is deprecated; use
>> ox-icalendar instead."))
>
> I'm not sure about this one: where are you suggesting to add this?
> In org.el?

Your call. Anywhere where it's guaranteed to be loaded upon Org startup.

>  Will the users get the warning if org-icalendar.el has been loaded
> from a previous install?

The user will get the error as soon as org-icalendar is loaded (from
wherever). org-icalendar *will* be loaded then, and the user can ignore
the error and continue to use it if he likes, but at least he got a
clear error that this is not a supported.

-David

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-02 13:26               ` David Engster
@ 2013-03-02 17:18                 ` Bastien
  2013-03-02 20:17                   ` Torsten Wagner
  2013-03-02 22:19                   ` Achim Gratz
  0 siblings, 2 replies; 44+ messages in thread
From: Bastien @ 2013-03-02 17:18 UTC (permalink / raw)
  To: David Engster; +Cc: emacs-orgmode, Julien Cubizolles

Hi David,

David Engster <deng@randomsample.de> writes:

> Did you actually try that? How should Emacs possibly know that the file
> ox-icalendar provides the feature org-icalendar? This will only work if
> ox-icalendar is already loaded.

Of course, you're right.  I reverted the commit.

So the problems stay.  For third-party libraries developers,
we cannot do anything else now than to ask them to update their
code.  For the problem of Emacs autoloaded functions, org.el
provides (load "org-loaddefs.el t t t) which should load
the correct autoloads from the correct files...  but that's
unstable.

It seems the ox- prefix is a bad idea, you're right.
I'll think about it again.

Thanks,

-- 
 Bastien

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-02 17:18                 ` Bastien
@ 2013-03-02 20:17                   ` Torsten Wagner
  2013-03-03 12:26                     ` David Engster
  2013-03-02 22:19                   ` Achim Gratz
  1 sibling, 1 reply; 44+ messages in thread
From: Torsten Wagner @ 2013-03-02 20:17 UTC (permalink / raw)
  To: Bastien, David Engster; +Cc: emacs-orgmode, Julien Cubizolles

[-- Attachment #1: Type: text/plain, Size: 1439 bytes --]

Hi Bastien, 
I didn't follow this thread in detail.  But shouldn't it be enough to symlink e.g.  org-icalendar against ox-icalendar. As far as I understood emacs would prioritize those local symlinks over the system wide installation.  This would be a temporary solution until a new emacs release.  
Actually,  under Linux, this is a pretty common way to bend dependencies towards the newest version of a lib. 
Not sure for windows users.  

Instead of a simple symlink, the current dev head could have wrappers for those "old" files which bend the calls to the new files and issue a warning.  
That would help to identify 3 party code which needs some rework. 

Torsten 

Bastien <bzg@altern.org> wrote:

>Hi David,
>
>David Engster <deng@randomsample.de> writes:
>
>> Did you actually try that? How should Emacs possibly know that the
>file
>> ox-icalendar provides the feature org-icalendar? This will only work
>if
>> ox-icalendar is already loaded.
>
>Of course, you're right.  I reverted the commit.
>
>So the problems stay.  For third-party libraries developers,
>we cannot do anything else now than to ask them to update their
>code.  For the problem of Emacs autoloaded functions, org.el
>provides (load "org-loaddefs.el t t t) which should load
>the correct autoloads from the correct files...  but that's
>unstable.
>
>It seems the ox- prefix is a bad idea, you're right.
>I'll think about it again.
>
>Thanks,
>
>-- 
> Bastien

[-- Attachment #2: Type: text/html, Size: 2042 bytes --]

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-02 17:18                 ` Bastien
  2013-03-02 20:17                   ` Torsten Wagner
@ 2013-03-02 22:19                   ` Achim Gratz
  2013-03-03  6:25                     ` Bastien
  1 sibling, 1 reply; 44+ messages in thread
From: Achim Gratz @ 2013-03-02 22:19 UTC (permalink / raw)
  To: emacs-orgmode

Bastien writes:
> It seems the ox- prefix is a bad idea, you're right.
> I'll think about it again.

Please, no.  The prefix is good, you would just need to obsolete all
previously exported interfaces (autoloads and defcustoms) to this code
to either give a warning or silently "do the right thing" where
possible.  Of course this code should not be in Emacs proper.  I have
code that kills the defcustoms from old Emacs. I need to figure out how
to replace it with something sensible and also how to kill the autoloads
that belong to older versions of Org (I think I know how to do it, I've
just not tested it).  I hope to put this together in the next week or
so, then it will be possible to nuke all traces fr4om an old Org and
then start from a clean slate with a new Org installation.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptation for Waldorf microQ V2.22R2:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-02 22:19                   ` Achim Gratz
@ 2013-03-03  6:25                     ` Bastien
  2013-03-06 14:57                       ` Julien Cubizolles
  0 siblings, 1 reply; 44+ messages in thread
From: Bastien @ 2013-03-03  6:25 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode

Achim Gratz <Stromeko@nexgo.de> writes:

> I hope to put this together in the next week or
> so, then it will be possible to nuke all traces fr4om an old Org and
> then start from a clean slate with a new Org installation.

Okay, thanks.  Let us know how it goes,

-- 
 Bastien

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-02 20:17                   ` Torsten Wagner
@ 2013-03-03 12:26                     ` David Engster
  2013-03-04 10:46                       ` Torsten Wagner
  0 siblings, 1 reply; 44+ messages in thread
From: David Engster @ 2013-03-03 12:26 UTC (permalink / raw)
  To: Torsten Wagner; +Cc: Bastien, emacs-orgmode, Julien Cubizolles

Torsten Wagner writes:
> I didn't follow this thread in detail. But shouldn't it be enough to symlink
> e.g. org-icalendar against ox-icalendar. As far as I understood emacs would
> prioritize those local symlinks over the system wide installation. This would
> be a temporary solution until a new emacs release.

Why temporary? What about people installing Org 8.x on older Emacsen?

> Actually, under Linux, this is a pretty common way to bend
> dependencies towards the newest version of a lib.  Not sure for
> windows users.

Won't work on MS-DOS, and on Windows it is highly problematic for
various reasons (they're called "junctions" there; you need
administrator privileges to create them, and the upcoming Emacs 24.3
will be the first version to even support them).

-David

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-03 12:26                     ` David Engster
@ 2013-03-04 10:46                       ` Torsten Wagner
  0 siblings, 0 replies; 44+ messages in thread
From: Torsten Wagner @ 2013-03-04 10:46 UTC (permalink / raw)
  To: Torsten Wagner, Bastien, Org Mode Mailing List, Julien Cubizolles

[-- Attachment #1: Type: text/plain, Size: 1528 bytes --]

Hi David,

Well it would be a temporary solution for two reasons.
1. New emacs releases would come with the new org-files.
2. All third-party code might by time move to the new files.
Thus, I thought this is a (maybe on a long perspective) temporary solution.

Other non-unix like OSes:
In that case, a small wrapper file, which replaces the old files might be
the best solution, since it would work under all OSes. This wrapper could
call the right functions within the new file and issues a warning/error/log
that the call is deprecated. Hence it gives third-party maintainers (or
anyone who jumps in) enough time to change the code.


On 3 March 2013 13:26, David Engster <deng@randomsample.de> wrote:

> Torsten Wagner writes:
> > I didn't follow this thread in detail. But shouldn't it be enough to
> symlink
> > e.g. org-icalendar against ox-icalendar. As far as I understood emacs
> would
> > prioritize those local symlinks over the system wide installation. This
> would
> > be a temporary solution until a new emacs release.
>
> Why temporary? What about people installing Org 8.x on older Emacsen?
>
> > Actually, under Linux, this is a pretty common way to bend
> > dependencies towards the newest version of a lib.  Not sure for
> > windows users.
>
> Won't work on MS-DOS, and on Windows it is highly problematic for
> various reasons (they're called "junctions" there; you need
> administrator privileges to create them, and the upcoming Emacs 24.3
> will be the first version to even support them).
>
> -David
>

[-- Attachment #2: Type: text/html, Size: 2119 bytes --]

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-03  6:25                     ` Bastien
@ 2013-03-06 14:57                       ` Julien Cubizolles
  2013-03-06 16:15                         ` David Engster
  0 siblings, 1 reply; 44+ messages in thread
From: Julien Cubizolles @ 2013-03-06 14:57 UTC (permalink / raw)
  To: emacs-orgmode

Bastien <bzg@altern.org> writes:

> Achim Gratz <Stromeko@nexgo.de> writes:
>
>> I hope to put this together in the next week or
>> so, then it will be possible to nuke all traces fr4om an old Org and
>> then start from a clean slate with a new Org installation.
>
> Okay, thanks.  Let us know how it goes,

What temporary (as in every user fixing it locally) solution would you
recommend to get org-caldav running in the mean time ?

Julien.

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  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:51                           ` Julien Cubizolles
  0 siblings, 2 replies; 44+ messages in thread
From: David Engster @ 2013-03-06 16:15 UTC (permalink / raw)
  To: Julien Cubizolles; +Cc: emacs-orgmode

Julien Cubizolles writes:
> Bastien <bzg@altern.org> writes:
>
>> Achim Gratz <Stromeko@nexgo.de> writes:
>>
>>> I hope to put this together in the next week or
>>> so, then it will be possible to nuke all traces fr4om an old Org and
>>> then start from a clean slate with a new Org installation.
>>
>> Okay, thanks.  Let us know how it goes,
>
> What temporary (as in every user fixing it locally) solution would you
> recommend to get org-caldav running in the mean time ?

I just pushed a change which should fix this (if the new exporter is
compatible; I don't use Org from git).

-David

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-06 16:15                         ` David Engster
@ 2013-03-06 16:24                           ` Nicolas Goaziou
  2013-03-06 16:43                             ` David Engster
  2013-03-06 16:51                           ` Julien Cubizolles
  1 sibling, 1 reply; 44+ messages in thread
From: Nicolas Goaziou @ 2013-03-06 16:24 UTC (permalink / raw)
  To: Julien Cubizolles; +Cc: emacs-orgmode

Hello,

David Engster <deng@randomsample.de> writes:

> Julien Cubizolles writes:
>> Bastien <bzg@altern.org> writes:
>>
>>> Achim Gratz <Stromeko@nexgo.de> writes:
>>>
>>>> I hope to put this together in the next week or
>>>> so, then it will be possible to nuke all traces fr4om an old Org and
>>>> then start from a clean slate with a new Org installation.
>>>
>>> Okay, thanks.  Let us know how it goes,
>>
>> What temporary (as in every user fixing it locally) solution would you
>> recommend to get org-caldav running in the mean time ?
>
> I just pushed a change which should fix this (if the new exporter is
> compatible; I don't use Org from git).

Interactive functions are usually not compatible between old export
back-ends and new ones.

What do you need from org-icalendar.el?


Regards,

-- 
Nicolas Goaziou

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-06 16:24                           ` Nicolas Goaziou
@ 2013-03-06 16:43                             ` David Engster
  2013-03-06 17:08                               ` Nicolas Goaziou
  0 siblings, 1 reply; 44+ messages in thread
From: David Engster @ 2013-03-06 16:43 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: emacs-orgmode, Julien Cubizolles

Nicolas Goaziou writes:
> Hello,
>
> David Engster <deng@randomsample.de> writes:
>
>> Julien Cubizolles writes:
>>> Bastien <bzg@altern.org> writes:
>>>
>>>> Achim Gratz <Stromeko@nexgo.de> writes:
>>>>
>>>>> I hope to put this together in the next week or
>>>>> so, then it will be possible to nuke all traces fr4om an old Org and
>>>>> then start from a clean slate with a new Org installation.
>>>>
>>>> Okay, thanks.  Let us know how it goes,
>>>
>>> What temporary (as in every user fixing it locally) solution would you
>>> recommend to get org-caldav running in the mean time ?
>>
>> I just pushed a change which should fix this (if the new exporter is
>> compatible; I don't use Org from git).
>
> Interactive functions are usually not compatible between old export
> back-ends and new ones.
>
> What do you need from org-icalendar.el?

Only org-export-icalendar. As long as that one is producing the same
output, everything should be fine.

-David

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-06 16:15                         ` David Engster
  2013-03-06 16:24                           ` Nicolas Goaziou
@ 2013-03-06 16:51                           ` Julien Cubizolles
  2013-03-06 17:08                             ` David Engster
  1 sibling, 1 reply; 44+ messages in thread
From: Julien Cubizolles @ 2013-03-06 16:51 UTC (permalink / raw)
  To: emacs-orgmode

David Engster <deng@randomsample.de> writes:


> I just pushed a change which should fix this (if the new exporter is
> compatible; 

It doesn't seem to be, I get 

--8<---------------cut here---------------start------------->8---
apply: Symbol's function definition is void: org-export-icalendar
--8<---------------cut here---------------end--------------->8---

when running org-caldav-sync, which is weird since org-export-icalendar
is present in both org-icalendar and ox-icalendar.

> I don't use Org from git).

I'm thinking about reverting to an older Org since org-caldav is more
important to me than the new exporter. Does it work with the latest
stable release (7.9.3f) ?

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-06 16:51                           ` Julien Cubizolles
@ 2013-03-06 17:08                             ` David Engster
  2013-03-06 17:18                               ` Julien Cubizolles
  0 siblings, 1 reply; 44+ messages in thread
From: David Engster @ 2013-03-06 17:08 UTC (permalink / raw)
  To: Julien Cubizolles; +Cc: emacs-orgmode

Julien Cubizolles writes:
> David Engster <deng@randomsample.de> writes:
>> I just pushed a change which should fix this (if the new exporter is
>> compatible; 
>
> It doesn't seem to be, I get 
>
> apply: Symbol's function definition is void: org-export-icalendar
>
> when running org-caldav-sync, which is weird since org-export-icalendar
> is present in both org-icalendar and ox-icalendar.

No, it's not defined in ox-icalendar. I guess it must be generated by
the new exporter first, probably through some additional require.

>> I don't use Org from git).
>
> I'm thinking about reverting to an older Org since org-caldav is more
> important to me than the new exporter. Does it work with the latest
> stable release (7.9.3f) ?

I'm still on 7.9.2, but I wouldn't know why it shouldn't work with that.

-David

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-06 16:43                             ` David Engster
@ 2013-03-06 17:08                               ` Nicolas Goaziou
  2013-03-06 17:22                                 ` David Engster
  0 siblings, 1 reply; 44+ messages in thread
From: Nicolas Goaziou @ 2013-03-06 17:08 UTC (permalink / raw)
  To: Julien Cubizolles; +Cc: emacs-orgmode

David Engster <deng@randomsample.de> writes:

>> What do you need from org-icalendar.el?
>
> Only org-export-icalendar. As long as that one is producing the same
> output, everything should be fine.

Unfortunately, there is no `org-export-icalendar' anymore.

There is:

  (org-icalendar--combine-files nil FILES)

which is equivalent to:

  (org-export-icalendar t FILES)

Also

  (org-export-icalendar nil FILES)

should be equivalent to something like:

  (dolist (file files)
    (find-file file)
    (org-mode)
    (org-icalendar-export-to-ics))


Regards,

-- 
Nicolas Goaziou

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-06 17:08                             ` David Engster
@ 2013-03-06 17:18                               ` Julien Cubizolles
  2013-03-06 18:35                                 ` David Engster
  0 siblings, 1 reply; 44+ messages in thread
From: Julien Cubizolles @ 2013-03-06 17:18 UTC (permalink / raw)
  To: emacs-orgmode

David Engster <deng@randomsample.de> writes:

> Julien Cubizolles writes:
>> David Engster <deng@randomsample.de> writes:
>>> I just pushed a change which should fix this (if the new exporter is
>>> compatible; 
>>
>> It doesn't seem to be, I get 
>>
>> apply: Symbol's function definition is void: org-export-icalendar
>>
>> when running org-caldav-sync, which is weird since org-export-icalendar
>> is present in both org-icalendar and ox-icalendar.
>
> No, it's not defined in ox-icalendar. I guess it must be generated by
> the new exporter first, probably through some additional require.

I have the following definition in ox-icalendar.el. 

--8<---------------cut here---------------start------------->8---
(defgroup org-export-icalendar nil
  "Options specific for iCalendar export back-end."
  :tag "Org Export iCalendar"
  :group 'org-export)
--8<---------------cut here---------------end--------------->8---

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-06 17:08                               ` Nicolas Goaziou
@ 2013-03-06 17:22                                 ` David Engster
  2013-03-06 17:32                                   ` Nicolas Goaziou
  0 siblings, 1 reply; 44+ messages in thread
From: David Engster @ 2013-03-06 17:22 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: emacs-orgmode, Julien Cubizolles

Nicolas Goaziou writes:
> David Engster <deng@randomsample.de> writes:
>
>>> What do you need from org-icalendar.el?
>>
>> Only org-export-icalendar. As long as that one is producing the same
>> output, everything should be fine.
>
> Unfortunately, there is no `org-export-icalendar' anymore.
>
> There is:
>
>   (org-icalendar--combine-files nil FILES)
>
> which is equivalent to:
>
>   (org-export-icalendar t FILES)

Thanks, that's what I need.

After skimming through the new exporter, it also seems that
org-combined-agenda-icalendar-file was replaced with
org-icalendar-combined-agenda-file. Is that correct?

I'm also using org-icalendar-timezone, org-icalendar-store-UID, and
org-icalendar-date-time-format, but it seems those are still there.

-David

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-06 17:22                                 ` David Engster
@ 2013-03-06 17:32                                   ` Nicolas Goaziou
  2013-03-06 21:24                                     ` David Engster
  0 siblings, 1 reply; 44+ messages in thread
From: Nicolas Goaziou @ 2013-03-06 17:32 UTC (permalink / raw)
  To: Julien Cubizolles; +Cc: emacs-orgmode

David Engster <deng@randomsample.de> writes:

> After skimming through the new exporter, it also seems that
> org-combined-agenda-icalendar-file was replaced with
> org-icalendar-combined-agenda-file. Is that correct?
>
> I'm also using org-icalendar-timezone, org-icalendar-store-UID, and
> org-icalendar-date-time-format, but it seems those are still there.

Correct.


Regards,

-- 
Nicolas Goaziou

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-06 17:18                               ` Julien Cubizolles
@ 2013-03-06 18:35                                 ` David Engster
  0 siblings, 0 replies; 44+ messages in thread
From: David Engster @ 2013-03-06 18:35 UTC (permalink / raw)
  To: Julien Cubizolles; +Cc: emacs-orgmode

Julien Cubizolles writes:
> David Engster <deng@randomsample.de> writes:
>> No, it's not defined in ox-icalendar. I guess it must be generated by
>> the new exporter first, probably through some additional require.
>
> I have the following definition in ox-icalendar.el. 
>
> (defgroup org-export-icalendar nil
>   "Options specific for iCalendar export back-end."
>   :tag "Org Export iCalendar"
>   :group 'org-export)

That's just defining a group for the customization system. It's not a
function.

-David

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-06 17:32                                   ` Nicolas Goaziou
@ 2013-03-06 21:24                                     ` David Engster
  2013-03-07  9:13                                       ` Julien Cubizolles
  0 siblings, 1 reply; 44+ messages in thread
From: David Engster @ 2013-03-06 21:24 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: emacs-orgmode, Julien Cubizolles

Nicolas Goaziou writes:
> David Engster <deng@randomsample.de> writes:
>
>> After skimming through the new exporter, it also seems that
>> org-combined-agenda-icalendar-file was replaced with
>> org-icalendar-combined-agenda-file. Is that correct?
>>
>> I'm also using org-icalendar-timezone, org-icalendar-store-UID, and
>> org-icalendar-date-time-format, but it seems those are still there.
>
> Correct.

Thanks. I've now pushed a further fix which should hopefully make things
work with the new exporter. Julien, please let me know if it works.

-David

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-06 21:24                                     ` David Engster
@ 2013-03-07  9:13                                       ` Julien Cubizolles
  2013-03-07 10:06                                         ` Vincent Beffara
  0 siblings, 1 reply; 44+ messages in thread
From: Julien Cubizolles @ 2013-03-07  9:13 UTC (permalink / raw)
  To: emacs-orgmode

David Engster <deng@randomsample.de> writes:

> Thanks. I've now pushed a further fix which should hopefully make things
> work with the new exporter. Julien, please let me know if it works.

Sorry, it doesn't. 

I get the following when running org-caldav with the latest org-mode and
org-caldav from git.

--8<---------------cut here---------------start------------->8---
byte-code: Wrong type argument: number-or-marker-p, nil
--8<---------------cut here---------------end--------------->8---

Let me know what additional information you need to debug it, a
backtrace...

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-07  9:13                                       ` Julien Cubizolles
@ 2013-03-07 10:06                                         ` Vincent Beffara
  2013-03-07 10:54                                           ` Nicolas Goaziou
  0 siblings, 1 reply; 44+ messages in thread
From: Vincent Beffara @ 2013-03-07 10:06 UTC (permalink / raw)
  To: Julien Cubizolles; +Cc: emacs-orgmode

Hi, 

Same here. But the error is not in org-caldav, because it is triggered like this:

(org-icalendar--combine-files nil "~/Desktop/ECM.org")

where ~/Desktop/ECM.org is a file with nothing but one headline.

/v 

-- 
Vincent Beffara


On Thursday, March 7, 2013 at 10:13 , Julien Cubizolles wrote:

> David Engster <deng@randomsample.de (mailto:deng@randomsample.de)> writes:
> 
> > Thanks. I've now pushed a further fix which should hopefully make things
> > work with the new exporter. Julien, please let me know if it works.
> 
> 
> 
> Sorry, it doesn't. 
> 
> I get the following when running org-caldav with the latest org-mode and
> org-caldav from git.
> 
> --8<---------------cut here---------------start------------->8---
> byte-code: Wrong type argument: number-or-marker-p, nil
> --8<---------------cut here---------------end--------------->8---
> 
> Let me know what additional information you need to debug it, a
> backtrace...

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-07 10:06                                         ` Vincent Beffara
@ 2013-03-07 10:54                                           ` Nicolas Goaziou
  2013-03-07 11:17                                             ` Vincent Beffara
  0 siblings, 1 reply; 44+ messages in thread
From: Nicolas Goaziou @ 2013-03-07 10:54 UTC (permalink / raw)
  To: Vincent Beffara; +Cc: emacs-orgmode, Julien Cubizolles

Hello,

Vincent Beffara <vbeffara@ens-lyon.fr> writes:

> Same here. But the error is not in org-caldav, because it is triggered like this:
>
> (org-icalendar--combine-files nil "~/Desktop/ECM.org")
>
> where ~/Desktop/ECM.org is a file with nothing but one headline.

I cannot reproduce it. Maybe a larger backtrace would help.


Regards,

-- 
Nicolas Goaziou

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-07 10:54                                           ` Nicolas Goaziou
@ 2013-03-07 11:17                                             ` Vincent Beffara
  2013-03-07 12:56                                               ` Nicolas Goaziou
  0 siblings, 1 reply; 44+ messages in thread
From: Vincent Beffara @ 2013-03-07 11:17 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: emacs-orgmode, Julien Cubizolles

Here is an ECM.el file, run with emacs -Q triggers the crash: 

(custom-set-variables
'(org-icalendar-store-UID t)
)
(setq-default debug-on-error t)
(add-to-list 'load-path "~/.emacs.d/el-get/org-mode/lisp")
(require 'ox-icalendar)
(org-icalendar--combine-files nil "~/Desktop/ECM.org")


without org-icalendar-store-UID it works fine. Not sure the option is needed anymore, but at least the crash can be reproduced. BTW my org-mode is at commit 516f0df.

HTH,

/v

-- 
Vincent Beffara


On Thursday, March 7, 2013 at 11:54 , Nicolas Goaziou wrote:

> Hello,
> 
> Vincent Beffara <vbeffara@ens-lyon.fr (mailto:vbeffara@ens-lyon.fr)> writes:
> 
> > Same here. But the error is not in org-caldav, because it is triggered like this:
> > 
> > (org-icalendar--combine-files nil "~/Desktop/ECM.org (http://ECM.org)")
> > 
> > where ~/Desktop/ECM.org (http://ECM.org) is a file with nothing but one headline.
> 
> I cannot reproduce it. Maybe a larger backtrace would help.
> 
> 
> Regards,
> 
> -- 
> Nicolas Goaziou

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-07 11:17                                             ` Vincent Beffara
@ 2013-03-07 12:56                                               ` Nicolas Goaziou
  2013-03-07 13:21                                                 ` Vincent Beffara
  0 siblings, 1 reply; 44+ messages in thread
From: Nicolas Goaziou @ 2013-03-07 12:56 UTC (permalink / raw)
  To: Vincent Beffara; +Cc: emacs-orgmode, Julien Cubizolles

Vincent Beffara <vbeffara@ens-lyon.fr> writes:

> Here is an ECM.el file, run with emacs -Q triggers the crash: 
>
> (custom-set-variables
> '(org-icalendar-store-UID t)
> )
> (setq-default debug-on-error t)
> (add-to-list 'load-path "~/.emacs.d/el-get/org-mode/lisp")
> (require 'ox-icalendar)
> (org-icalendar--combine-files nil "~/Desktop/ECM.org")
>
>
> without org-icalendar-store-UID it works fine. Not sure the option is
> needed anymore, but at least the crash can be reproduced. BTW my
> org-mode is at commit 516f0df.

The problem should be fixed in master.  Could anyone confirm it?

Thank you for reporting this problem.


Regards,

-- 
Nicolas Goaziou

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-07 12:56                                               ` Nicolas Goaziou
@ 2013-03-07 13:21                                                 ` Vincent Beffara
  2013-03-07 13:31                                                   ` Vincent Beffara
  0 siblings, 1 reply; 44+ messages in thread
From: Vincent Beffara @ 2013-03-07 13:21 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: emacs-orgmode, Julien Cubizolles

It doesn't crash anymore, thanks!

OTOH when I ran org-caldav, it removed everything from the online calendar, and it won't put anything back there ... 

-- 
Vincent Beffara


On Thursday, March 7, 2013 at 13:56 , Nicolas Goaziou wrote:

> Vincent Beffara <vbeffara@ens-lyon.fr (mailto:vbeffara@ens-lyon.fr)> writes:
> 
> > Here is an ECM.el file, run with emacs -Q triggers the crash: 
> > 
> > (custom-set-variables
> > '(org-icalendar-store-UID t)
> > )
> > (setq-default debug-on-error t)
> > (add-to-list 'load-path "~/.emacs.d/el-get/org-mode/lisp")
> > (require 'ox-icalendar)
> > (org-icalendar--combine-files nil "~/Desktop/ECM.org (http://ECM.org)")
> > 
> > 
> > without org-icalendar-store-UID it works fine. Not sure the option is
> > needed anymore, but at least the crash can be reproduced. BTW my
> > org-mode is at commit 516f0df.
> 
> 
> 
> The problem should be fixed in master. Could anyone confirm it?
> 
> Thank you for reporting this problem.
> 
> 
> Regards,
> 
> -- 
> Nicolas Goaziou

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-07 13:21                                                 ` Vincent Beffara
@ 2013-03-07 13:31                                                   ` Vincent Beffara
  2013-03-07 13:41                                                     ` Vincent Beffara
  0 siblings, 1 reply; 44+ messages in thread
From: Vincent Beffara @ 2013-03-07 13:31 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: emacs-orgmode, Julien Cubizolles

> OTOH when I ran org-caldav, it removed everything from the online calendar, and it won't put anything back there ...

Mmmkay, something weird is happening. I create a headline with a date, and call org-caldav. An UID is created, and the file looks like this:

*** Gayet, Damien : Une majoration de l'espérance des nombres de Betti
:PROPERTIES:
:ID: BD783419-0D10-4B88-8540-730ACF03B42E
:END:

<2013-03-06 Wed 14:00>  

So far so good. But on trying to sync, I get the error that "Could not find UID TS1-BD783419-0D10-4B88-8540-730ACF03B42E." (Which is the UID in the generated ICS file.) So now, iCalendar export works, all that remains is fixing the sync code in org-caldav ...

/v
>  
>  
> --  
> Vincent Beffara
>  
>  
> On Thursday, March 7, 2013 at 13:56 , Nicolas Goaziou wrote:
>  
> > Vincent Beffara <vbeffara@ens-lyon.fr (mailto:vbeffara@ens-lyon.fr)> writes:
> >  
> > > Here is an ECM.el file, run with emacs -Q triggers the crash:  
> > >  
> > > (custom-set-variables
> > > '(org-icalendar-store-UID t)
> > > )
> > > (setq-default debug-on-error t)
> > > (add-to-list 'load-path "~/.emacs.d/el-get/org-mode/lisp")
> > > (require 'ox-icalendar)
> > > (org-icalendar--combine-files nil "~/Desktop/ECM.org (http://ECM.org)")
> > >  
> > >  
> > > without org-icalendar-store-UID it works fine. Not sure the option is
> > > needed anymore, but at least the crash can be reproduced. BTW my
> > > org-mode is at commit 516f0df.
> >  
> >  
> >  
> >  
> >  
> > The problem should be fixed in master. Could anyone confirm it?
> >  
> > Thank you for reporting this problem.
> >  
> >  
> > Regards,
> >  
> > --  
> > Nicolas Goaziou
>  

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-07 13:31                                                   ` Vincent Beffara
@ 2013-03-07 13:41                                                     ` Vincent Beffara
  2013-03-12  6:21                                                       ` Julien Cubizolles
  0 siblings, 1 reply; 44+ messages in thread
From: Vincent Beffara @ 2013-03-07 13:41 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: emacs-orgmode, Julien Cubizolles

... sorry for replying to myself like this - here is a patch that seems to work:  

diff --git a/org-caldav.el b/org-caldav.el
index 0383366..14cca8f 100644
--- a/org-caldav.el
+++ b/org-caldav.el
@@ -786,7 +786,7 @@ is no UID to rewrite. Returns the UID."
((re-search-forward "^UID:\\(orgsexp-[0-9]+\\)" nil t)
;; This is a sexp entry, so do nothing.
(match-string 1))
- ((re-search-forward "^UID:\\(\\s-*\\)\\([A-Z][A-Z]-\\)?\\(.+\\)\\s-*$"
+ ((re-search-forward "^UID:\\(\\s-*\\)\\([A-Z][A-Z][0-9]?-\\)?\\(.+\\)\\s-*$"
nil t)
(when (match-string 1)
(replace-match "" nil nil nil 1))



I made a pull request to org-caldav, hoping I got it right!

/v  

--  
Vincent Beffara


On Thursday, March 7, 2013 at 14:31 , Vincent Beffara wrote:

> > OTOH when I ran org-caldav, it removed everything from the online calendar, and it won't put anything back there ...
>  
>  
>  
> Mmmkay, something weird is happening. I create a headline with a date, and call org-caldav. An UID is created, and the file looks like this:
>  
> *** Gayet, Damien : Une majoration de l'espérance des nombres de Betti
> :PROPERTIES:
> :ID: BD783419-0D10-4B88-8540-730ACF03B42E
> :END:
>  
> <2013-03-06 Wed 14:00>  
>  
> So far so good. But on trying to sync, I get the error that "Could not find UID TS1-BD783419-0D10-4B88-8540-730ACF03B42E." (Which is the UID in the generated ICS file.) So now, iCalendar export works, all that remains is fixing the sync code in org-caldav ...
>  
> /v
> >  
> >  
> > --  
> > Vincent Beffara
> >  
> >  
> > On Thursday, March 7, 2013 at 13:56 , Nicolas Goaziou wrote:
> >  
> > > Vincent Beffara <vbeffara@ens-lyon.fr (mailto:vbeffara@ens-lyon.fr)> writes:
> > >  
> > > > Here is an ECM.el file, run with emacs -Q triggers the crash:  
> > > >  
> > > > (custom-set-variables
> > > > '(org-icalendar-store-UID t)
> > > > )
> > > > (setq-default debug-on-error t)
> > > > (add-to-list 'load-path "~/.emacs.d/el-get/org-mode/lisp")
> > > > (require 'ox-icalendar)
> > > > (org-icalendar--combine-files nil "~/Desktop/ECM.org (http://ECM.org)")
> > > >  
> > > >  
> > > > without org-icalendar-store-UID it works fine. Not sure the option is
> > > > needed anymore, but at least the crash can be reproduced. BTW my
> > > > org-mode is at commit 516f0df.
> > >  
> > >  
> > >  
> > >  
> > >  
> > >  
> > >  
> > > The problem should be fixed in master. Could anyone confirm it?
> > >  
> > > Thank you for reporting this problem.
> > >  
> > >  
> > > Regards,
> > >  
> > > --  
> > > Nicolas Goaziou
> >  
>  

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-07 13:41                                                     ` Vincent Beffara
@ 2013-03-12  6:21                                                       ` Julien Cubizolles
  2013-03-12 10:18                                                         ` Vincent Beffara
  0 siblings, 1 reply; 44+ messages in thread
From: Julien Cubizolles @ 2013-03-12  6:21 UTC (permalink / raw)
  To: Vincent Beffara; +Cc: emacs-orgmode, Nicolas Goaziou

Vincent Beffara <vbeffara@ens-lyon.fr> writes:

> ... sorry for replying to myself like this - here is a patch that seems to work:  

I'm still running into problems even with this patch, but I'm not very
sure where they lie. Basically I get some messages about duplicate
entries, no org-caldav-results buffer pops up and a subsequent run of
org-caldav-sync informs me that the last sync was aborted. 

For now, I'm back with org-7.9.4: sync works without problem from
org->google and google->org. I'll be willing to test any changes updates
to org or org-caldav though.

Julien.

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-12  6:21                                                       ` Julien Cubizolles
@ 2013-03-12 10:18                                                         ` Vincent Beffara
  2013-03-12 20:31                                                           ` David Engster
  0 siblings, 1 reply; 44+ messages in thread
From: Vincent Beffara @ 2013-03-12 10:18 UTC (permalink / raw)
  To: Julien Cubizolles; +Cc: emacs-orgmode, Nicolas Goaziou, engster

Hi, 

Yes, I had the very same problem, I had to restart org-caldav from scratch a few times (org-caldav-delete-everything, wait a bit for caches to empty, and then eventually it worked).

In the meantime I also tweaked the way org-caldav manages UIDs to exploit the fact that multiply occurring events are now exported multiple times in ox-icalendar, everything works out well if only org->ical is used. One thing remaining, on ical->org sync, there is an issue that makes the next sync erase the event on ical and upload it again, under another id (and with the info not generated by org-caldav missing, of course). I think I know how to fix it, just need to find some time ...

I will send what works to the list. (In the meantime, David, don't pull my second pull request, it is not right.) 

/v

-- 
Vincent Beffara


On Tuesday, March 12, 2013 at 07:21 , Julien Cubizolles wrote:

> Vincent Beffara <vbeffara@ens-lyon.fr (mailto:vbeffara@ens-lyon.fr)> writes:
> 
> > ... sorry for replying to myself like this - here is a patch that seems to work: 
> 
> I'm still running into problems even with this patch, but I'm not very
> sure where they lie. Basically I get some messages about duplicate
> entries, no org-caldav-results buffer pops up and a subsequent run of
> org-caldav-sync informs me that the last sync was aborted. 
> 
> For now, I'm back with org-7.9.4: sync works without problem from
> org->google and google->org. I'll be willing to test any changes updates
> to org or org-caldav though.
> 
> Julien. 

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-12 10:18                                                         ` Vincent Beffara
@ 2013-03-12 20:31                                                           ` David Engster
  2013-03-14  0:05                                                             ` Vincent Beffara
  0 siblings, 1 reply; 44+ messages in thread
From: David Engster @ 2013-03-12 20:31 UTC (permalink / raw)
  To: Vincent Beffara; +Cc: Nicolas Goaziou, emacs-orgmode, Julien Cubizolles

Vincent Beffara writes:
> In the meantime I also tweaked the way org-caldav manages UIDs to
> exploit the fact that multiply occurring events are now exported
> multiple times in ox-icalendar, everything works out well if only
> org->ical is used. One thing remaining, on ical->org sync, there is an
> issue that makes the next sync erase the event on ical and upload it
> again, under another id (and with the info not generated by org-caldav
> missing, of course). I think I know how to fix it, just need to find
> some time ...
>
> I will send what works to the list. (In the meantime, David, don't
> pull my second pull request, it is not right.)

I appreciate your work, of course, but let me add a word of warning. I
think if you give up the one-to-one correspondence that one Org event
has exactly *one* event in the remote calendar, you are entering a world
of pain.

Remember that there are three things: new items, changed items and
deleted items. Since these can happen on both sides, you have to figure
out six different cases which must be handled properly. As you've
already experienced, the changes on the calendar side are more
difficult. What happens if you delete one of the events that stems from
one Org entry?  You would first have to figure out which timestamp
created it, but how? Timestamps don't have UIDs, only the full entry has
one. So you would have to somehow add this information to the event
database which gets stored to disk. You might get this to work, but I
have a gut feeling that you'll loose robustness. For example, the Google
calendar CalDAV interface is pretty slow and not very reliable, so a
robust resume functionality is essential.

Also, I deliberately shoved conflict handling at the side for the
moment, but this is a feature which will have to be added one day, and
will complicate things much more.

-David

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

* Re: org-caldav can't find org-prepare-agenda-buffers
  2013-03-12 20:31                                                           ` David Engster
@ 2013-03-14  0:05                                                             ` Vincent Beffara
  0 siblings, 0 replies; 44+ messages in thread
From: Vincent Beffara @ 2013-03-14  0:05 UTC (permalink / raw)
  To: Vincent Beffara, Julien Cubizolles, emacs-orgmode,
	Nicolas Goaziou

[-- Attachment #1: Type: text/plain, Size: 2249 bytes --]

Hi,

Agreed ... I believe the only problem will occur when one of a multiply occurring event is edited / deleted on the cal side. I have nothing more constructive to propose than just "don't do that" ... My use-case is just as a way to push org changes to cal and nothing more, and for bidirectional people who would create events on cal and sync, not much bad would happen I believe. But you're right, conflict resolution (which is what that would be) will be a problem. Would have to manage reference counts etc, for little benefit. Who is using multiply occurring events anyway?

Attached is what I am proposing: absent multiply occurring events, the org and cal IDs are the same (which is as it was except for the missing 1 in a regexp). For the second occurrence, the TS2- prefix is conserved, and so on - but it is trimmed when fed to org-id etc. As you say, it is not correct and will lead to problems down the road, but I really wanted all occurrences to appear in iCal ;-)

Cheers,

/v 
> I appreciate your work, of course, but let me add a word of warning. I
> think if you give up the one-to-one correspondence that one Org event
> has exactly *one* event in the remote calendar, you are entering a world
> of pain.
> 
> Remember that there are three things: new items, changed items and
> deleted items. Since these can happen on both sides, you have to figure
> out six different cases which must be handled properly. As you've
> already experienced, the changes on the calendar side are more
> difficult. What happens if you delete one of the events that stems from
> one Org entry? You would first have to figure out which timestamp
> created it, but how? Timestamps don't have UIDs, only the full entry has
> one. So you would have to somehow add this information to the event
> database which gets stored to disk. You might get this to work, but I
> have a gut feeling that you'll loose robustness. For example, the Google
> calendar CalDAV interface is pretty slow and not very reliable, so a
> robust resume functionality is essential.
> 
> Also, I deliberately shoved conflict handling at the side for the
> moment, but this is a feature which will have to be added one day, and
> will complicate things much more.
> 
> -David 


[-- Attachment #2: org-caldav-multi.patch --]
[-- Type: application/octet-stream, Size: 3409 bytes --]

commit 24b8a666f9d7b0b12a0d4cb5937d17952a644b0a
Author: Vincent Beffara <vbeffara@ens-lyon.fr>
Date:   Thu Mar 14 00:50:12 2013 +0100

    Allow multiply occurring events

diff --git a/org-caldav.el b/org-caldav.el
index 0383366..73445ee 100644
--- a/org-caldav.el
+++ b/org-caldav.el
@@ -413,7 +413,7 @@ Are you really sure? ")))
 
 (defun org-caldav-generate-md5-for-org-entry (uid)
   "Find Org entry with UID and calculate its MD5."
-  (let ((marker (org-id-find uid t)))
+  (let ((marker (org-id-find (org-caldav-trim-uid uid) t)))
     (when (null marker)
       (error "Could not find UID %s." uid))
     (with-current-buffer (marker-buffer marker)
@@ -606,7 +606,7 @@ which can only be synced to calendar. Ignoring." uid))
 	;; This is a changed event.
 	(org-caldav-debug-print
 	 1 (format "Event UID %s: Changed in Cal --> Org" uid))
-	(let ((marker (org-id-find (car cur) t)))
+	(let ((marker (org-id-find (org-caldav-trim-uid (car cur)) t)))
 	  (when (null marker)
 	    (error "Could not find UID %s." (car cur)))
 	  (with-current-buffer (marker-buffer marker)
@@ -648,7 +648,7 @@ which can only be synced to calendar. Ignoring." uid))
   ;; (Maybe) delete entries which were deleted in calendar.
   (unless (eq org-caldav-delete-org-entries 'never)
     (dolist (cur (org-caldav-filter-events 'deleted-in-cal))
-      (org-id-goto (car cur))
+      (org-id-goto (org-caldav-trim-uid (car cur)))
       (when (or (eq org-caldav-delete-org-entries 'always)
 		(and (eq org-caldav-delete-org-entries 'ask)
 		     (y-or-n-p "Delete this entry? ")))
@@ -775,9 +775,15 @@ Returns nil if there are no more events."
 		      (forward-line 1)
 		      (point))))
 
+(defun org-caldav-trim-uid (uid)
+  "Remove extra export prefixes from a UID.
+This is to take care of multiply occurring events, the UID kept
+by org-caldav contains TS2- and so on but the org ID doesn't."
+  (replace-regexp-in-string "^[A-Z][A-Z][0-9]?-" "" uid))
+
 (defun org-caldav-rewrite-uid-in-event ()
   "Rewrite UID in current buffer.
-This will strip prefixes like 'DL' or 'TS' the Org exporter puts
+This will strip prefixes like 'DL1' or 'TS1' the Org exporter puts
 in the UID and also remove whitespaces. Throws an error if there
 is no UID to rewrite. Returns the UID."
   (save-excursion
@@ -786,7 +792,7 @@ is no UID to rewrite. Returns the UID."
      ((re-search-forward "^UID:\\(orgsexp-[0-9]+\\)" nil t)
       ;; This is a sexp entry, so do nothing.
       (match-string 1))
-     ((re-search-forward "^UID:\\(\\s-*\\)\\([A-Z][A-Z]-\\)?\\(.+\\)\\s-*$"
+     ((re-search-forward "^UID:\\(\\s-*\\)\\([A-Z][A-Z]1?-\\)?\\(.+\\)\\s-*$"
 			 nil t)
       (when (match-string 1)
 	(replace-match "" nil nil nil 1))
@@ -962,7 +968,7 @@ If COMPLEMENT is non-nil, return all item without errors."
 
 (defun org-caldav-get-heading-from-uid (uid)
   "Get org heading from entry with UID."
-  (let ((marker (org-id-find uid t)))
+  (let ((marker (org-id-find (org-caldav-trim-uid uid) t)))
     (if (null marker)
 	"(Could not find UID)"
       (with-current-buffer (marker-buffer marker)
@@ -983,7 +989,7 @@ If COMPLEMENT is non-nil, return all item without errors."
 	       '(face link))
     (beginning-of-line)
     (looking-at "UID: \\(.+\\)$")
-    (org-id-goto (match-string 1))))
+    (org-id-goto (org-caldav-trim-uid (match-string 1)))))
 
 ;; The following is taken from icalendar.el, written by Ulf Jasper.
 

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

end of thread, other threads:[~2013-03-14  0:05 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
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

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