emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [ANN] Exporter for taskjuggler
@ 2010-03-30  8:59 Christian Egli
  2010-04-06 10:09 ` Carsten Dominik
  2010-04-16 20:39 ` Dan Davison
  0 siblings, 2 replies; 21+ messages in thread
From: Christian Egli @ 2010-03-30  8:59 UTC (permalink / raw)
  To: emacs-orgmode

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


Hi all

In theory we're developing according to agile methods here, but in
practice people still want to see the classic waterfall project plan.

So in order to create a professional looking gant and resource usage
charts I implemented an exporter from org-mode to TaskJuggler
(http://www.taskjuggler.org/). The code is attached and I'm looking for
feedback and would love to get this integrated in the org-mode
distribution.

TaskJuggler uses a text format to define projects, tasks and resources,
so it is a natural fit for org-mode. It can produce all sorts of reports
for tasks or resources in either HTML, CSV or PDF. The current version
of TaskJuggler requires KDE but the next version is implemented in Ruby
and should therefore run on any platform.

The exporter is a bit different from other exporters, such as the HTML
and LaTeX exporters for example, in that it does not export all the
nodes of a document or strictly follow the order of the nodes in the
document.

Instead the TaskJuggler exporter looks for a tree that defines the
tasks and a optionally tree that defines the resources for this
project. It then creates a TaskJuggler file based on these trees
and the attributes defined in all the nodes.

* Installation

Put the attached file into your load-path and the following line into
your ~/.emacs:

  (require 'org-taskjuggler)

The interactive functions are similar to those of the HTML and LaTeX
exporters:

M-x `org-export-as-taskjuggler'
M-x `org-export-as-taskjuggler-and-open'

* Tasks

Let's illustrate the usage with a small example. Create your tasks as
you usually do with org-mode. Assign efforts to each task using
properties (it's easiest to do this in the column view). You should end
up with something similar to the example by Peter Jones in
http://www.contextualdevelopment.com/static/artifacts/articles/2008/project-planning/project-planning.org.
Now mark the top node of your tasks with a tag named
"taskjuggler_project" (or whatever you customized
`org-export-taskjuggler-project-tag' to). You are now ready to export
the project plan with `org-export-as-taskjuggler-and-open' which will
export the project plan and open a gant chart in TaskJugglerUI.

* Resources

Next you can define resources and assign those to work on specific
tasks. You can group your resources hierarchically. Tag the top node of
the resources with "taskjuggler_resource" (or whatever you customized
`org-export-taskjuggler-resource-tag' to). You can optionally assign an
ID to the resources (using the standard org properties commands) or you
can let the exporter generate IDs automatically (the exporter picks the
first word of the headline as the ID as long as it is unique). Using
that ID you can then allocate resources to tasks. This is again done
with the "allocate" property on the tasks. Do this in column view or
when on the task type

 C-c C-x p allocate RET <ID> RET

Once the allocations are done you can again export to TaskJuggler and
check in the Resource Allocation Graph which person is working on what
task at what time.

* Export of properties

The exporter also takes TODO state information into consideration, i.e.
if a task is marked as done it will have the corresponding attribute in
TaskJuggler ("complete 100"). Also it will export any property on a task
resource or resource node which is known to TaskJuggler, such as limits,
vacation, shift, booking, efficiency, journalentry, rate for resources
or account, start, note, duration, end, journalentry, milestone,
reference, responsible, scheduling, etc for tasks.

* Dependencies

The exporter will handle dependencies that are defined in the tasks
either with the ORDERED attribute (see TODO dependencies in the Org mode
manual) or with the BLOCKER attribute (see org-depend.el) or
alternatively with a depends attribute. Both the BLOCKER and the depends
attribute can be either "previous-sibling" or a reference to an ID which
is defined for another task in the project.

Thanks
Christian


[-- Attachment #2: TaskJuggler exporter --]
[-- Type: application/emacs-lisp, Size: 23468 bytes --]

[-- Attachment #3: Type: text/plain, Size: 133 bytes --]


-- 
Christian Egli
Swiss Library for the Blind, Visually Impaired and Print Disabled
Grubenstrasse 12, CH-8045 Zürich, Switzerland

[-- Attachment #4: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

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

* Re: [ANN] Exporter for taskjuggler
  2010-03-30  8:59 [ANN] Exporter for taskjuggler Christian Egli
@ 2010-04-06 10:09 ` Carsten Dominik
  2010-04-06 11:15   ` Christian Egli
  2010-04-16 20:39 ` Dan Davison
  1 sibling, 1 reply; 21+ messages in thread
From: Carsten Dominik @ 2010-04-06 10:09 UTC (permalink / raw)
  To: Christian Egli; +Cc: emacs-orgmode

Hi Christian, this look interesting.  Should we put this
into the contrib directory for now, or are you aiming
for the Org-mode core?

- Carsten

On Mar 30, 2010, at 10:59 AM, Christian Egli wrote:

>
> Hi all
>
> In theory we're developing according to agile methods here, but in
> practice people still want to see the classic waterfall project plan.
>
> So in order to create a professional looking gant and resource usage
> charts I implemented an exporter from org-mode to TaskJuggler
> (http://www.taskjuggler.org/). The code is attached and I'm looking  
> for
> feedback and would love to get this integrated in the org-mode
> distribution.
>
> TaskJuggler uses a text format to define projects, tasks and  
> resources,
> so it is a natural fit for org-mode. It can produce all sorts of  
> reports
> for tasks or resources in either HTML, CSV or PDF. The current version
> of TaskJuggler requires KDE but the next version is implemented in  
> Ruby
> and should therefore run on any platform.
>
> The exporter is a bit different from other exporters, such as the HTML
> and LaTeX exporters for example, in that it does not export all the
> nodes of a document or strictly follow the order of the nodes in the
> document.
>
> Instead the TaskJuggler exporter looks for a tree that defines the
> tasks and a optionally tree that defines the resources for this
> project. It then creates a TaskJuggler file based on these trees
> and the attributes defined in all the nodes.
>
> * Installation
>
> Put the attached file into your load-path and the following line into
> your ~/.emacs:
>
>  (require 'org-taskjuggler)
>
> The interactive functions are similar to those of the HTML and LaTeX
> exporters:
>
> M-x `org-export-as-taskjuggler'
> M-x `org-export-as-taskjuggler-and-open'
>
> * Tasks
>
> Let's illustrate the usage with a small example. Create your tasks as
> you usually do with org-mode. Assign efforts to each task using
> properties (it's easiest to do this in the column view). You should  
> end
> up with something similar to the example by Peter Jones in
> http://www.contextualdevelopment.com/static/artifacts/articles/2008/project-planning/project-planning.org 
> .
> Now mark the top node of your tasks with a tag named
> "taskjuggler_project" (or whatever you customized
> `org-export-taskjuggler-project-tag' to). You are now ready to export
> the project plan with `org-export-as-taskjuggler-and-open' which will
> export the project plan and open a gant chart in TaskJugglerUI.
>
> * Resources
>
> Next you can define resources and assign those to work on specific
> tasks. You can group your resources hierarchically. Tag the top node  
> of
> the resources with "taskjuggler_resource" (or whatever you customized
> `org-export-taskjuggler-resource-tag' to). You can optionally assign  
> an
> ID to the resources (using the standard org properties commands) or  
> you
> can let the exporter generate IDs automatically (the exporter picks  
> the
> first word of the headline as the ID as long as it is unique). Using
> that ID you can then allocate resources to tasks. This is again done
> with the "allocate" property on the tasks. Do this in column view or
> when on the task type
>
> C-c C-x p allocate RET <ID> RET
>
> Once the allocations are done you can again export to TaskJuggler and
> check in the Resource Allocation Graph which person is working on what
> task at what time.
>
> * Export of properties
>
> The exporter also takes TODO state information into consideration,  
> i.e.
> if a task is marked as done it will have the corresponding attribute  
> in
> TaskJuggler ("complete 100"). Also it will export any property on a  
> task
> resource or resource node which is known to TaskJuggler, such as  
> limits,
> vacation, shift, booking, efficiency, journalentry, rate for resources
> or account, start, note, duration, end, journalentry, milestone,
> reference, responsible, scheduling, etc for tasks.
>
> * Dependencies
>
> The exporter will handle dependencies that are defined in the tasks
> either with the ORDERED attribute (see TODO dependencies in the Org  
> mode
> manual) or with the BLOCKER attribute (see org-depend.el) or
> alternatively with a depends attribute. Both the BLOCKER and the  
> depends
> attribute can be either "previous-sibling" or a reference to an ID  
> which
> is defined for another task in the project.
>
> Thanks
> Christian
>
> <org-taskjuggler.el>
> -- 
> Christian Egli
> Swiss Library for the Blind, Visually Impaired and Print Disabled
> Grubenstrasse 12, CH-8045 Zürich, Switzerland
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

- Carsten

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

* Re: [ANN] Exporter for taskjuggler
  2010-04-06 10:09 ` Carsten Dominik
@ 2010-04-06 11:15   ` Christian Egli
  2010-04-06 15:05     ` T Helms
                       ` (2 more replies)
  0 siblings, 3 replies; 21+ messages in thread
From: Christian Egli @ 2010-04-06 11:15 UTC (permalink / raw)
  To: Carsten Dominik; +Cc: emacs-orgmode

Hi Carsten

Thanks for your reply. I've been a bit stumped by the zero feedback on
the mailing list. Maybe I should have added a few screenshots of fancy
gant and resource usage charts :-).

Carsten Dominik <carsten.dominik@gmail.com> writes:

> Hi Christian, this look interesting.  Should we put this
> into the contrib directory for now, or are you aiming
> for the Org-mode core?

I'm getting all the paper work for the assignments done, so I guess we
could put it into the core. I suppose this would give it more
credibility.

What more do you need for integration in the core? 

  - Patches for the Makefile and modules customization?
  - A section in the manual?

Thanks
Christian
-- 
Christian Egli
Swiss Library for the Blind, Visually Impaired and Print Disabled
Grubenstrasse 12, CH-8045 Zürich, Switzerland

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

* Re: [ANN] Exporter for taskjuggler
  2010-04-06 11:15   ` Christian Egli
@ 2010-04-06 15:05     ` T Helms
  2010-04-06 15:49       ` Christian Egli
  2010-06-08 15:24       ` Christian Egli
  2010-04-06 16:25     ` Carsten Dominik
  2010-04-12 19:24     ` Eric S Fraga
  2 siblings, 2 replies; 21+ messages in thread
From: T Helms @ 2010-04-06 15:05 UTC (permalink / raw)
  To: Christian Egli; +Cc: emacs-orgmode, Carsten Dominik

Christian

I think this is interesting as well.

I've been trying to get back up to speed with tj, it never fit my work 
flow before.

If you had a few more example sub-trees, it would help.

How difficult would it be to add gap duration to the export?

thanks - Tracy

On 04/06/2010 07:15 AM, Christian Egli wrote:
> Hi Carsten
>
> Thanks for your reply. I've been a bit stumped by the zero feedback on
> the mailing list. Maybe I should have added a few screenshots of fancy
> gant and resource usage charts :-).
>
> Carsten Dominik<carsten.dominik@gmail.com>  writes:
>
>    
>> Hi Christian, this look interesting.  Should we put this
>> into the contrib directory for now, or are you aiming
>> for the Org-mode core?
>>      
> I'm getting all the paper work for the assignments done, so I guess we
> could put it into the core. I suppose this would give it more
> credibility.
>
> What more do you need for integration in the core?
>
>    - Patches for the Makefile and modules customization?
>    - A section in the manual?
>
> Thanks
> Christian
>    

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

* Re: [ANN] Exporter for taskjuggler
  2010-04-06 15:05     ` T Helms
@ 2010-04-06 15:49       ` Christian Egli
  2010-06-08 15:24       ` Christian Egli
  1 sibling, 0 replies; 21+ messages in thread
From: Christian Egli @ 2010-04-06 15:49 UTC (permalink / raw)
  To: emacs-orgmode

Hi

T Helms <maxco.tr@gmail.com> writes:

> If you had a few more example sub-trees, it would help.

If you have some org-mode files which describe a project including
effort estimates (as properties) and maybe some textual dependency
description I would gladly turn them into an example.

Otherwise I can see if I can anonymize the project I'm working on.

> How difficult would it be to add gap duration to the export?

Ah, didn't think of that. Good question. Right now dependencies are
generated on export based on either ORDERED, BLOCKER or depends
properties. I guess if you had a property section as follows

    :PROPERTIES:
    :Effort:   03:00
    :BLOCKER:  posting_controller { gapduration 5d }
    :END:

the part enclosed inside {} should not be interpreted as an additional
dependency but instead as a gap duration specification. Should be
doable. I'll add it to the list.

Thanks
Christian
-- 
Christian Egli
Swiss Library for the Blind, Visually Impaired and Print Disabled
Grubenstrasse 12, CH-8045 Zürich, Switzerland

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

* Re: [ANN] Exporter for taskjuggler
  2010-04-06 11:15   ` Christian Egli
  2010-04-06 15:05     ` T Helms
@ 2010-04-06 16:25     ` Carsten Dominik
  2010-04-12 19:24     ` Eric S Fraga
  2 siblings, 0 replies; 21+ messages in thread
From: Carsten Dominik @ 2010-04-06 16:25 UTC (permalink / raw)
  To: Christian Egli; +Cc: emacs-orgmode


On Apr 6, 2010, at 1:15 PM, Christian Egli wrote:

> Hi Carsten
>
> Thanks for your reply. I've been a bit stumped by the zero feedback on
> the mailing list. Maybe I should have added a few screenshots of fancy
> gant and resource usage charts :-).

That would have helped big time, I guarantee it :-)

>
> Carsten Dominik <carsten.dominik@gmail.com> writes:
>
>> Hi Christian, this look interesting.  Should we put this
>> into the contrib directory for now, or are you aiming
>> for the Org-mode core?
>
> I'm getting all the paper work for the assignments done, so I guess we
> could put it into the core. I suppose this would give it more
> credibility.
>
> What more do you need for integration in the core?
>
>  - Patches for the Makefile and modules customization?
>  - A section in the manual?

Yes, for the manual a compact section, more details can go up on Worg  
if necessary.

Thanks!

- Carsten

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

* Re: [ANN] Exporter for taskjuggler
  2010-04-06 11:15   ` Christian Egli
  2010-04-06 15:05     ` T Helms
  2010-04-06 16:25     ` Carsten Dominik
@ 2010-04-12 19:24     ` Eric S Fraga
  2 siblings, 0 replies; 21+ messages in thread
From: Eric S Fraga @ 2010-04-12 19:24 UTC (permalink / raw)
  To: Christian Egli; +Cc: emacs-orgmode

On Tue, 06 Apr 2010 13:15:46 +0200, Christian Egli <christian.egli@sbszh.ch> wrote:
> 
> Hi Carsten
> 
> Thanks for your reply. I've been a bit stumped by the zero feedback on
> the mailing list. Maybe I should have added a few screenshots of fancy
> gant and resource usage charts :-).

Christian,

I am very interested in what you have done; it's just that I have had
no time yet to play with your code and doing so properly requires a
bit of time!  I have used TJ in the past and have liked it so the
integration with org is very appealing indeed.

thanks,
eric

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

* Re: [ANN] Exporter for taskjuggler
  2010-03-30  8:59 [ANN] Exporter for taskjuggler Christian Egli
  2010-04-06 10:09 ` Carsten Dominik
@ 2010-04-16 20:39 ` Dan Davison
  2010-04-19 10:05   ` Christian Egli
  1 sibling, 1 reply; 21+ messages in thread
From: Dan Davison @ 2010-04-16 20:39 UTC (permalink / raw)
  To: Christian Egli; +Cc: emacs-orgmode

Christian Egli <christian.egli@sbszh.ch> writes:

[...]
> So in order to create a professional looking gant and resource usage
> charts I implemented an exporter from org-mode to TaskJuggler
> (http://www.taskjuggler.org/). The code is attached and I'm looking for
> feedback and would love to get this integrated in the org-mode
> distribution.

Hi Christian,

I'm interested in this too! I had a few teething problems but I think
I'm doing OK now. A simple org file demonstrating some of the features
is the most important thing lacking at the moment.

I encountered problems with the fact that

- I was using `org-odd-levels-only'
- the "allocate" property name is required to be lower case (unlike
  Effort)
- A Resource named with Uppercase letters will be expected to be all
  lowercase by TJ (e.g. my Alf resource below).

I've put patches corresponding to the hacks I made to solve these below.

It would also be nice if repeated invocation of
org-export-as-taskjuggler-and-open on the same project didn't spawn
multiple TJ instances (TJ v2.4.3 ubuntu).

I had a quick look at the TJ page -- it sounded as if the cross-platform
ruby version is advancing rapidly?

Here's my test file and patches.

--8<---------------cut here---------------start------------->8---
* Project						:taskjuggler_project:
*** DONE First milestone
      :PROPERTIES:
      :Effort:   01:00
      :Allocate: Alf
      :END:
*** TODO Second milestone
      :PROPERTIES:
      :Effort:   01:00
      :Allocate: Alf
      :END:

* Resources				       :taskjuggler_resource:
*** Alf 		
    alf contents
--8<---------------cut here---------------end--------------->8---


Make it work if `org-odd-levels-only' is in use:

--8<---------------cut here---------------start------------->8---
diff --git a/org-taskjuggler.el b/org-taskjuggler.el
index e887d33..e843dcd 100644
--- a/org-taskjuggler.el
+++ b/org-taskjuggler.el
@@ -309,7 +309,7 @@ the current node such as the headline, the level, todo state
 information, all the properties, etc."
   (let* ((props (org-entry-properties))
 	 (components (org-heading-components))
-	 (level (car components))
+	 (level (nth 1 components))
 	 (headline (nth 4 components))
 	 (parent-ordered (org-taskjuggler-parent-is-ordered-p)))
     (push (cons "level" level) props)
--8<---------------cut here---------------end--------------->8---


Allow variations in capitalisation of allocate property name (or maybe
the documentation should just point out that it must be lowercase)

--8<---------------cut here---------------start------------->8---
diff --git a/org-taskjuggler.el b/org-taskjuggler.el
index 718ae9d..ab92eca 100644
--- a/org-taskjuggler.el
+++ b/org-taskjuggler.el
@@ -525,7 +525,7 @@ org-mode priority string."
 	(headline (cdr (assoc "headline" task)))
 	(effort (org-taskjuggler-clean-effort (cdr (assoc org-effort-property task))))
 	(depends (cdr (assoc "depends" task)))
-	(allocate (cdr (assoc "allocate" task)))
+	(allocate (or (cdr (assoc "allocate" task)) (cdr (assoc "Allocate" task)) (cdr (assoc "ALLOCATE" task))))
 	(priority-raw (cdr (assoc "PRIORITY" task)))
 	(priority (and priority-raw (org-taskjuggler-get-priority priority-raw)))
 	(state (cdr (assoc "TODO" task)))
--8<---------------cut here---------------end--------------->8---


Always output resource names lower case
    
--8<---------------cut here---------------start------------->8---
diff --git a/org-taskjuggler.el b/org-taskjuggler.el
index ab92eca..1cc5222 100644
--- a/org-taskjuggler.el
+++ b/org-taskjuggler.el
@@ -544,7 +544,7 @@ org-mode priority string."
       (if (and parent-ordered previous-sibling)
 	  (format " depends %s\n" previous-sibling)
 	(and depends (format " depends %s\n" depends)))
-      (and allocate (format " purge allocations\n allocate %s\n" allocate))
+      (and allocate (format " purge allocations\n allocate %s\n" (downcase allocate)))
       (and complete (format " complete %s\n" complete))
       (and effort (format " effort %s\n" effort))
       (and priority (format " priority %s\n" priority))
--8<---------------cut here---------------end--------------->8---


More comprehensible error message if you forget to define a project...

--8<---------------cut here---------------start------------->8---
diff --git a/org-taskjuggler.el b/org-taskjuggler.el
index e843dcd..718ae9d 100644
--- a/org-taskjuggler.el
+++ b/org-taskjuggler.el
@@ -244,6 +244,8 @@ defined in `org-export-taskjuggler-default-reports'."
 	 (buffer (find-file-noselect filename))
 	 (old-level 0)
 	 task resource)
+    (unless tasks
+      (error "No taskjuggler project found"))
     ;; add a default resource
     (unless resources
       (setq resources 
--8<---------------cut here---------------end--------------->8---

Dan


>
> TaskJuggler uses a text format to define projects, tasks and resources,
> so it is a natural fit for org-mode. It can produce all sorts of reports
> for tasks or resources in either HTML, CSV or PDF. The current version
> of TaskJuggler requires KDE but the next version is implemented in Ruby
> and should therefore run on any platform.
>
> The exporter is a bit different from other exporters, such as the HTML
> and LaTeX exporters for example, in that it does not export all the
> nodes of a document or strictly follow the order of the nodes in the
> document.
>
> Instead the TaskJuggler exporter looks for a tree that defines the
> tasks and a optionally tree that defines the resources for this
> project. It then creates a TaskJuggler file based on these trees
> and the attributes defined in all the nodes.
>
> * Installation
>
> Put the attached file into your load-path and the following line into
> your ~/.emacs:
>
>   (require 'org-taskjuggler)
>
> The interactive functions are similar to those of the HTML and LaTeX
> exporters:
>
> M-x `org-export-as-taskjuggler'
> M-x `org-export-as-taskjuggler-and-open'
>
> * Tasks
>
> Let's illustrate the usage with a small example. Create your tasks as
> you usually do with org-mode. Assign efforts to each task using
> properties (it's easiest to do this in the column view). You should end
> up with something similar to the example by Peter Jones in
> http://www.contextualdevelopment.com/static/artifacts/articles/2008/project-planning/project-planning.org.
> Now mark the top node of your tasks with a tag named
> "taskjuggler_project" (or whatever you customized
> `org-export-taskjuggler-project-tag' to). You are now ready to export
> the project plan with `org-export-as-taskjuggler-and-open' which will
> export the project plan and open a gant chart in TaskJugglerUI.
>
> * Resources
>
> Next you can define resources and assign those to work on specific
> tasks. You can group your resources hierarchically. Tag the top node of
> the resources with "taskjuggler_resource" (or whatever you customized
> `org-export-taskjuggler-resource-tag' to). You can optionally assign an
> ID to the resources (using the standard org properties commands) or you
> can let the exporter generate IDs automatically (the exporter picks the
> first word of the headline as the ID as long as it is unique). Using
> that ID you can then allocate resources to tasks. This is again done
> with the "allocate" property on the tasks. Do this in column view or
> when on the task type
>
>  C-c C-x p allocate RET <ID> RET
>
> Once the allocations are done you can again export to TaskJuggler and
> check in the Resource Allocation Graph which person is working on what
> task at what time.
>
> * Export of properties
>
> The exporter also takes TODO state information into consideration, i.e.
> if a task is marked as done it will have the corresponding attribute in
> TaskJuggler ("complete 100"). Also it will export any property on a task
> resource or resource node which is known to TaskJuggler, such as limits,
> vacation, shift, booking, efficiency, journalentry, rate for resources
> or account, start, note, duration, end, journalentry, milestone,
> reference, responsible, scheduling, etc for tasks.
>
> * Dependencies
>
> The exporter will handle dependencies that are defined in the tasks
> either with the ORDERED attribute (see TODO dependencies in the Org mode
> manual) or with the BLOCKER attribute (see org-depend.el) or
> alternatively with a depends attribute. Both the BLOCKER and the depends
> attribute can be either "previous-sibling" or a reference to an ID which
> is defined for another task in the project.
>
> Thanks
> Christian

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

* Re: [ANN] Exporter for taskjuggler
  2010-04-16 20:39 ` Dan Davison
@ 2010-04-19 10:05   ` Christian Egli
  2010-04-19 13:34     ` Dan Davison
  2010-04-19 14:01     ` John Hendy
  0 siblings, 2 replies; 21+ messages in thread
From: Christian Egli @ 2010-04-19 10:05 UTC (permalink / raw)
  To: Dan Davison; +Cc: emacs-orgmode

Hi Dan

Thanks for your feedback.

Dan Davison <davison@stats.ox.ac.uk> writes:

> A simple org file demonstrating some of the features is the most
> important thing lacking at the moment.

I'm working on an introduction on worg. Hopefully I'll have something by
the end of this week including an example org file.
 
> I encountered problems with the fact that
>
> - I was using `org-odd-levels-only'

Oh, OK, I'm not using this, so there might be issues there.

> - the "allocate" property name is required to be lower case (unlike
>   Effort)

That's a general problem. The exporter needs to map between org and tj
terminology. In most cases this is not a problem as the terminology
comes from tj, e.g. 'limits', 'vacation' or also 'allocate'. Here I
assume that the property in org mode is named the same and capitalized
the same as in tj. I guess this should be stated in the documentation.

In other cases where the exporter needs to map between org and tj, e.g.
for effort, but also for completeness or dependency information, the
exporter is more forgiving. Specifically in the case of Effort it does
the downcase as "Effort" is an established property on org. For
completeness information it maps the TODO state (whether it is done or
not). And dependencies are taken from the BLOCKER attribute (which is
also semi-established).

I don't know if this is a good solution. I just tried to stick to the tj
property names as close as possible and only allow different names if
those concepts and names are established in org mode under a different
terminology. Hope that clears things up a bit.

> - A Resource named with Uppercase letters will be expected to be all
>   lowercase by TJ (e.g. my Alf resource below).

Well resource names in tj have to conform to [A–Za–z0–9_], so what I did
in the exporter is look for an ID attribute in the resource or silently
generate an id from the resource headline. So if do not specify an ID
your resource Alf will be converted (and made unique) in
`org-taskjuggler-get-unique-id'. I guess this is a bit behind the users
back and also needs better documentation. In your case the resource will
be downcased to 'alf'. I have resources like "Domain Expert", which will
be converted to "domain_expert". That's why I usually add an ID property
to resources so I can easily allocate them.

> I've put patches corresponding to the hacks I made to solve these below.

Thanks for the patches. More comments below. I have an updated version
locally which also supports optional depends attributes like gapduration
and gaplength (which were requested by T Helms on the list). I hope to
publish this on a branch in the repo.

> It would also be nice if repeated invocation of
> org-export-as-taskjuggler-and-open on the same project didn't spawn
> multiple TJ instances (TJ v2.4.3 ubuntu).

Hm, yes. Good idea. Do you have an idea how this could be done easily in
elisp?

> I had a quick look at the TJ page -- it sounded as if the cross-platform
> ruby version is advancing rapidly?

Yes, I didn't even realize that a new version has come out as I'm still
using the old C++ Unix-only version.

> Make it work if `org-odd-levels-only' is in use:
>
> diff --git a/org-taskjuggler.el b/org-taskjuggler.el
> index e887d33..e843dcd 100644
> --- a/org-taskjuggler.el
> +++ b/org-taskjuggler.el
> @@ -309,7 +309,7 @@ the current node such as the headline, the level, todo state
>  information, all the properties, etc."
>    (let* ((props (org-entry-properties))
>  	 (components (org-heading-components))
> -	 (level (car components))
> +	 (level (nth 1 components))
>  	 (headline (nth 4 components))
>  	 (parent-ordered (org-taskjuggler-parent-is-ordered-p)))
>      (push (cons "level" level) props)

Oh, OK, good catch. Does this also work if `org-odd-levels-only' is not
in use?

> Allow variations in capitalisation of allocate property name (or maybe
> the documentation should just point out that it must be lowercase)

I'd rather have the capitalisation as closely to the tj terminology as
explained above. I'd prefer to update the documentation here.

> Always output resource names lower case

I guess this is also a documentation issue. If you know how resources
will be named (either with an ID or with
`org-taskjuggler-get-unique-id') then it should be more clear how to do
the allocations.

> More comprehensible error message if you forget to define a project...

Yes, of course. I had fixed that one already locally.

So, thanks again for the feedback. I hope to have the worg page and the
code in the branch soon so things should become clearer.

Thanks
Christian
-- 
Christian Egli
Swiss Library for the Blind, Visually Impaired and Print Disabled
Grubenstrasse 12, CH-8045 Zürich, Switzerland

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

* Re: [ANN] Exporter for taskjuggler
  2010-04-19 10:05   ` Christian Egli
@ 2010-04-19 13:34     ` Dan Davison
  2010-04-19 14:01     ` John Hendy
  1 sibling, 0 replies; 21+ messages in thread
From: Dan Davison @ 2010-04-19 13:34 UTC (permalink / raw)
  To: Christian Egli; +Cc: emacs-orgmode

Christian Egli <christian.egli@sbszh.ch> writes:
[...]
>> It would also be nice if repeated invocation of
>> org-export-as-taskjuggler-and-open on the same project didn't spawn
>> multiple TJ instances (TJ v2.4.3 ubuntu).
>
> Hm, yes. Good idea. Do you have an idea how this could be done easily in
> elisp?

Is this more the reponsibility of the application?  E.g. I just did
'firefox some.png' from the shell and it opened a new tab in a running
process. So maybe it's a question of checking whether / requesting that
the new ruby implementation has a way of telling it from the shell to
open (update?) a project in an already-running TJ process.

[...]
>> Make it work if `org-odd-levels-only' is in use:
>>
>> diff --git a/org-taskjuggler.el b/org-taskjuggler.el
>> index e887d33..e843dcd 100644
>> --- a/org-taskjuggler.el
>> +++ b/org-taskjuggler.el
>> @@ -309,7 +309,7 @@ the current node such as the headline, the level, todo state
>>  information, all the properties, etc."
>>    (let* ((props (org-entry-properties))
>>  	 (components (org-heading-components))
>> -	 (level (car components))
>> +	 (level (nth 1 components))
>>  	 (headline (nth 4 components))
>>  	 (parent-ordered (org-taskjuggler-parent-is-ordered-p)))
>>      (push (cons "level" level) props)
>
> Oh, OK, good catch. Does this also work if `org-odd-levels-only' is not
> in use?

Yes. C-h f org-heading-components says the second element differs from
the first only if org-odd-levels-only is set.

Dan

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

* Re: [ANN] Exporter for taskjuggler
  2010-04-19 10:05   ` Christian Egli
  2010-04-19 13:34     ` Dan Davison
@ 2010-04-19 14:01     ` John Hendy
  2010-04-20  8:09       ` Christian Egli
  1 sibling, 1 reply; 21+ messages in thread
From: John Hendy @ 2010-04-19 14:01 UTC (permalink / raw)
  To: Christian Egli; +Cc: Dan Davison, emacs-orgmode


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

On Mon, Apr 19, 2010 at 5:05 AM, Christian Egli <christian.egli@sbszh.ch>wrote:

> Hi Dan
>
> Thanks for your feedback.
>
> Dan Davison <davison@stats.ox.ac.uk> writes:
>
>
> Yes, I didn't even realize that a new version has come out as I'm still
> using the old C++ Unix-only version.
>
>
>
One note on this... I think only the new Ruby version (TJ3) supports an
actual gantt chart export... 2.4.3 (or whatever the other version is at
right now) only shows a gantt chart in the program itself if I recall
correction. It's not until TJ3 that you can get nice html output without
needing the QT-based interface.

Perhaps not a huge deal for some, but I really wanted this (gantt charts)
and did not want to be stuck with the QT interface for exporting them (or
even showing them to others). If this is the type of output being sought,
I'd stick with looking into TJ3 org-mode integration over 2.4. Or perhaps
take a look at the first of the references on how to use both: TJ 2.4 for
viewing and TJ3 for exporting?


Best regards,
John

References:
- http://www.taskjuggler.org/tj3/manual/TaskJuggler_2x_Migration.html
-
http://www.taskjuggler.org/manual-2.4.3/generating_reports_of_the_scheduled_projects.html#generating_html_reports

[-- Attachment #1.2: Type: text/html, Size: 1859 bytes --]

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

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

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

* Re: [ANN] Exporter for taskjuggler
  2010-04-19 14:01     ` John Hendy
@ 2010-04-20  8:09       ` Christian Egli
  2010-05-11  3:37         ` Manish
  0 siblings, 1 reply; 21+ messages in thread
From: Christian Egli @ 2010-04-20  8:09 UTC (permalink / raw)
  To: John Hendy; +Cc: Dan Davison, emacs-orgmode

John Hendy <jw.hendy@gmail.com> writes:

> I'd stick with looking into TJ3 org-mode integration over 2.4. Or
> perhaps take a look at the first of the references on how to use both:
>
> - http://www.taskjuggler.org/tj3/manual/TaskJuggler_2x_Migration.html

The exporter is pretty agnostic towards either tj3 or tj2.4. It pretty
much just exports the properties you define in your nodes. It also does
some magic with regards to dependecy and resource export, but these have
not changed in tj3. While I haven't tested it with tj3 the export from
an org file should also work for tj3. You might have to tweak the
reports some, but this can be done with the customize interface.

HTH
Christian
-- 
Christian Egli
Swiss Library for the Blind, Visually Impaired and Print Disabled
Grubenstrasse 12, CH-8045 Zürich, Switzerland

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

* Re: [ANN] Exporter for taskjuggler
  2010-04-20  8:09       ` Christian Egli
@ 2010-05-11  3:37         ` Manish
  2010-06-08  9:21           ` Christian Egli
  0 siblings, 1 reply; 21+ messages in thread
From: Manish @ 2010-05-11  3:37 UTC (permalink / raw)
  To: Christian Egli; +Cc: Dan Davison, emacs-orgmode

From where can I get the latest version of org-taskjuggler?

Thanks
-- 
Manish

On Tue, Apr 20, 2010 at 1:39 PM, Christian Egli <christian.egli@sbszh.ch> wrote:
> John Hendy <jw.hendy@gmail.com> writes:
>
>> I'd stick with looking into TJ3 org-mode integration over 2.4. Or
>> perhaps take a look at the first of the references on how to use both:
>>
>> - http://www.taskjuggler.org/tj3/manual/TaskJuggler_2x_Migration.html
>
> The exporter is pretty agnostic towards either tj3 or tj2.4. It pretty
> much just exports the properties you define in your nodes. It also does
> some magic with regards to dependecy and resource export, but these have
> not changed in tj3. While I haven't tested it with tj3 the export from
> an org file should also work for tj3. You might have to tweak the
> reports some, but this can be done with the customize interface.
>
> HTH
> Christian
> --
> Christian Egli
> Swiss Library for the Blind, Visually Impaired and Print Disabled
> Grubenstrasse 12, CH-8045 Zürich, Switzerland
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>

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

* Re: [ANN] Exporter for taskjuggler
  2010-05-11  3:37         ` Manish
@ 2010-06-08  9:21           ` Christian Egli
  2010-06-08 10:07             ` Carsten Dominik
  2010-06-09 19:55             ` Manish
  0 siblings, 2 replies; 21+ messages in thread
From: Christian Egli @ 2010-06-08  9:21 UTC (permalink / raw)
  To: emacs-orgmode

Manish <mailtomanish.sharma@gmail.com> writes:

> From where can I get the latest version of org-taskjuggler?

I finally managed to push the taskjuggler exporter to the public repo.
It's located in the branch taskjuggler-export and should be ready to be
merged into the mainline.

- All the FSF paper work has been completed
- AFAIK all the feedback has been incorporated
  - e.g. frivolous handling of ID property
  - better error handling
- added documentation to export section of org.texi
- included taskjuggler export in the export dispatcher
- added it to the Makefile

I'm using this exporter almost on a daily bases, but I'm sure there are
quite a few issues left. For example there is a warning when byte
compiling about a reference to free variable `old-level'. I don't know
if it is kosher to just quiet the compiler with a defvar. There are some
other known issues mentioned in the TODO section in the code. However I
think it is ready for wider consumption.

Also there is an up-to-date tutorial on the usage of the taskjuggler
exporter at http://orgmode.org/worg/org-tutorials/org-taskjuggler.php

Thanks
Christian

-- 
Christian Egli
Swiss Library for the Blind, Visually Impaired and Print Disabled
Grubenstrasse 12, CH-8045 Zürich, Switzerland

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

* Re: Re: [ANN] Exporter for taskjuggler
  2010-06-08  9:21           ` Christian Egli
@ 2010-06-08 10:07             ` Carsten Dominik
  2010-06-08 13:30               ` Christian Egli
  2010-06-09 19:55             ` Manish
  1 sibling, 1 reply; 21+ messages in thread
From: Carsten Dominik @ 2010-06-08 10:07 UTC (permalink / raw)
  To: Christian Egli; +Cc: emacs-orgmode

Hi Christian,

looks great, but I get a few compiler warnings:

emacs -batch -q -no-site-file -eval "(setq load-path (cons (expand- 
file-name \"./lisp/\") (cons \"/usr/local/share/emacs/site-lisp\" load- 
path)))" -f batch-byte-compile lisp/org-taskjuggler.el

In org-export-as-taskjuggler-and-open:
org-taskjuggler.el:330:6:Warning: start-process-shell-command called  
with 4
     arguments, but accepts only 3

In org-taskjuggler-close-maybe:
org-taskjuggler.el:633:13:Warning: reference to free variable `old- 
level'
org-taskjuggler.el:635:25:Warning: assignment to free variable `old- 
level'

I have already merged and pushed your branch into the master, but please
make a patch that fixes these minor issues.

Thank you very much for this great contribution!

- Carsten


On Jun 8, 2010, at 11:21 AM, Christian Egli wrote:

> Manish <mailtomanish.sharma@gmail.com> writes:
>
>> From where can I get the latest version of org-taskjuggler?
>
> I finally managed to push the taskjuggler exporter to the public repo.
> It's located in the branch taskjuggler-export and should be ready to  
> be
> merged into the mainline.
>
> - All the FSF paper work has been completed
> - AFAIK all the feedback has been incorporated
>  - e.g. frivolous handling of ID property
>  - better error handling
> - added documentation to export section of org.texi
> - included taskjuggler export in the export dispatcher
> - added it to the Makefile
>
> I'm using this exporter almost on a daily bases, but I'm sure there  
> are
> quite a few issues left. For example there is a warning when byte
> compiling about a reference to free variable `old-level'. I don't know
> if it is kosher to just quiet the compiler with a defvar. There are  
> some
> other known issues mentioned in the TODO section in the code.  
> However I
> think it is ready for wider consumption.
>
> Also there is an up-to-date tutorial on the usage of the taskjuggler
> exporter at http://orgmode.org/worg/org-tutorials/org-taskjuggler.php
>
> Thanks
> Christian
>
> -- 
> Christian Egli
> Swiss Library for the Blind, Visually Impaired and Print Disabled
> Grubenstrasse 12, CH-8045 Zürich, Switzerland
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

- Carsten

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

* Re: [ANN] Exporter for taskjuggler
  2010-06-08 10:07             ` Carsten Dominik
@ 2010-06-08 13:30               ` Christian Egli
  2010-06-08 14:03                 ` Christian Egli
  2010-06-08 16:59                 ` Leo
  0 siblings, 2 replies; 21+ messages in thread
From: Christian Egli @ 2010-06-08 13:30 UTC (permalink / raw)
  To: emacs-orgmode

Carsten Dominik <carsten.dominik@gmail.com> writes:

> I have already merged and pushed your branch into the master, but please
> make a patch that fixes these minor issues.

Hey, that was fast. Thanks.

> In org-taskjuggler-close-maybe:
> org-taskjuggler.el:633:13:Warning: reference to free variable `old-
> level'
> org-taskjuggler.el:635:25:Warning: assignment to free variable `old-
> level'

I just pushed a patch to the taskjuggler-export branch that should fix
this.

> In org-export-as-taskjuggler-and-open:
> org-taskjuggler.el:330:6:Warning: start-process-shell-command called
> with 4
>     arguments, but accepts only 3

This I cannot reproduce using the command command you gave. Is this
maybe only a problem in newer Emacs versions? I'm using Emacs 23.1.1

Thanks
Christian

-- 
Christian Egli
Swiss Library for the Blind, Visually Impaired and Print Disabled
Grubenstrasse 12, CH-8045 Zürich, Switzerland

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

* Re: [ANN] Exporter for taskjuggler
  2010-06-08 13:30               ` Christian Egli
@ 2010-06-08 14:03                 ` Christian Egli
  2010-06-08 16:05                   ` Carsten Dominik
  2010-06-08 16:59                 ` Leo
  1 sibling, 1 reply; 21+ messages in thread
From: Christian Egli @ 2010-06-08 14:03 UTC (permalink / raw)
  To: emacs-orgmode

Christian Egli <christian.egli@sbszh.ch> writes:

>> In org-export-as-taskjuggler-and-open:
>> org-taskjuggler.el:330:6:Warning: start-process-shell-command called
>> with 4
>>     arguments, but accepts only 3
>
> This I cannot reproduce using the command command you gave. Is this
> maybe only a problem in newer Emacs versions? I'm using Emacs 23.1.1

Digging some more I found the following in
http://www.gnu.org/software/emacs/NEWS.23.2:

> *** start-process-shell-command and start-file-process-shell-command
> now only take a single `command' argument.

i.e. Emacs 23.2 has a different api for start-process-shell-command.

I'm not quite sure how to deal with this. Should I add a wrapper
function in org-compat (say "org-start-process-shell-command") that
checks for emacs version > 23.2 and calls start-process-shell-command
accordingly?

Christian
-- 
Christian Egli
Swiss Library for the Blind, Visually Impaired and Print Disabled
Grubenstrasse 12, CH-8045 Zürich, Switzerland

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

* Re: [ANN] Exporter for taskjuggler
  2010-04-06 15:05     ` T Helms
  2010-04-06 15:49       ` Christian Egli
@ 2010-06-08 15:24       ` Christian Egli
  1 sibling, 0 replies; 21+ messages in thread
From: Christian Egli @ 2010-06-08 15:24 UTC (permalink / raw)
  To: maxco.tr; +Cc: emacs-orgmode

T Helms <maxco.tr@gmail.com> writes:

> How difficult would it be to add gap duration to the export?

There is now support for gap duration in the newest version from git.

Thanks

-- 
Christian Egli
Swiss Library for the Blind, Visually Impaired and Print Disabled
Grubenstrasse 12, CH-8045 Zürich, Switzerland

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

* Re: Re: [ANN] Exporter for taskjuggler
  2010-06-08 14:03                 ` Christian Egli
@ 2010-06-08 16:05                   ` Carsten Dominik
  0 siblings, 0 replies; 21+ messages in thread
From: Carsten Dominik @ 2010-06-08 16:05 UTC (permalink / raw)
  To: Christian Egli; +Cc: emacs-orgmode


On Jun 8, 2010, at 4:03 PM, Christian Egli wrote:

> Christian Egli <christian.egli@sbszh.ch> writes:
>
>>> In org-export-as-taskjuggler-and-open:
>>> org-taskjuggler.el:330:6:Warning: start-process-shell-command called
>>> with 4
>>>    arguments, but accepts only 3
>>
>> This I cannot reproduce using the command command you gave. Is this
>> maybe only a problem in newer Emacs versions? I'm using Emacs 23.1.1
>
> Digging some more I found the following in
> http://www.gnu.org/software/emacs/NEWS.23.2:
>
>> *** start-process-shell-command and start-file-process-shell-command
>> now only take a single `command' argument.
>
> i.e. Emacs 23.2 has a different api for start-process-shell-command.
>
> I'm not quite sure how to deal with this. Should I add a wrapper
> function in org-compat (say "org-start-process-shell-command") that
> checks for emacs version > 23.2 and calls start-process-shell-command
> accordingly?

One possibility is to check for versions.  Better is maybe to do it  
like this

(condition-case nil
    (org-no-warnings
      (start-process-shell-command with four different args))
   (error
    (start-process-shell-command with three args))

Thill try one version, and if that given an error, try the other one.
To get rid of the compiler warning, wrap the call into org-no-warnings.

- Carsten


>
> Christian
> -- 
> Christian Egli
> Swiss Library for the Blind, Visually Impaired and Print Disabled
> Grubenstrasse 12, CH-8045 Zürich, Switzerland
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

- Carsten

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

* Re: [ANN] Exporter for taskjuggler
  2010-06-08 13:30               ` Christian Egli
  2010-06-08 14:03                 ` Christian Egli
@ 2010-06-08 16:59                 ` Leo
  1 sibling, 0 replies; 21+ messages in thread
From: Leo @ 2010-06-08 16:59 UTC (permalink / raw)
  To: emacs-orgmode

On 2010-06-08 14:30 +0100, Christian Egli wrote:
>> In org-taskjuggler-close-maybe:
>> org-taskjuggler.el:633:13:Warning: reference to free variable `old-
>> level'
>> org-taskjuggler.el:635:25:Warning: assignment to free variable `old-
>> level'
>
> I just pushed a patch to the taskjuggler-export branch that should fix
> this.

I suppose old-level is a let-bound dynamic variable. I have found code
giving a seemingly global variable name to such variables confusing at
times. Would be better just make it global or insert a form at the
beginning of the body of those functions like this:

(declare (special dynvar1 dynvar2 ...))

I usually use the latter approach.

Cheers.

Leo

-- 
CCL-USER> (if you fail to plan (plan to fail))

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

* Re: Re: [ANN] Exporter for taskjuggler
  2010-06-08  9:21           ` Christian Egli
  2010-06-08 10:07             ` Carsten Dominik
@ 2010-06-09 19:55             ` Manish
  1 sibling, 0 replies; 21+ messages in thread
From: Manish @ 2010-06-09 19:55 UTC (permalink / raw)
  To: Christian Egli; +Cc: emacs-orgmode

On Tue, Jun 8, 2010 at 2:51 PM, Christian Egli wrote:
> Manish writes:
>
>> From where can I get the latest version of org-taskjuggler?
>
> I finally managed to push the taskjuggler exporter to the public repo.
> It's located in the branch taskjuggler-export and should be ready to
> be merged into the mainline.

Thank you.  I hope to try it soon with TJ3 on Windows.

Regards
-- 
Manish

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

end of thread, other threads:[~2010-06-09 19:56 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-03-30  8:59 [ANN] Exporter for taskjuggler Christian Egli
2010-04-06 10:09 ` Carsten Dominik
2010-04-06 11:15   ` Christian Egli
2010-04-06 15:05     ` T Helms
2010-04-06 15:49       ` Christian Egli
2010-06-08 15:24       ` Christian Egli
2010-04-06 16:25     ` Carsten Dominik
2010-04-12 19:24     ` Eric S Fraga
2010-04-16 20:39 ` Dan Davison
2010-04-19 10:05   ` Christian Egli
2010-04-19 13:34     ` Dan Davison
2010-04-19 14:01     ` John Hendy
2010-04-20  8:09       ` Christian Egli
2010-05-11  3:37         ` Manish
2010-06-08  9:21           ` Christian Egli
2010-06-08 10:07             ` Carsten Dominik
2010-06-08 13:30               ` Christian Egli
2010-06-08 14:03                 ` Christian Egli
2010-06-08 16:05                   ` Carsten Dominik
2010-06-08 16:59                 ` Leo
2010-06-09 19:55             ` Manish

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