emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Christian Egli <christian.egli@sbszh.ch>
To: Dan Davison <davison@stats.ox.ac.uk>
Cc: emacs-orgmode@gnu.org
Subject: Re: [ANN] Exporter for taskjuggler
Date: Mon, 19 Apr 2010 12:05:11 +0200	[thread overview]
Message-ID: <87wrw3dag8.fsf@saadawi.sbszh.ch> (raw)
In-Reply-To: <874ojbgmi8.fsf@stats.ox.ac.uk> (Dan Davison's message of "Fri, 16 Apr 2010 16:39:43 -0400")

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

  reply	other threads:[~2010-04-19 10:09 UTC|newest]

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

Reply instructions:

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

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

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

  List information: https://www.orgmode.org/

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

  git send-email \
    --in-reply-to=87wrw3dag8.fsf@saadawi.sbszh.ch \
    --to=christian.egli@sbszh.ch \
    --cc=davison@stats.ox.ac.uk \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

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

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

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

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