emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Item task_id not being used in taskjuggler export & tj prefixing


From: Buddy Butterfly
Subject: Re: [O] Item task_id not being used in taskjuggler export & tj prefixing
Date: Mon, 01 Apr 2013 22:59:24 +0200
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:9.0) Gecko/20111222 Thunderbird/9.0.1

Correction, see below...

Am 01.04.2013 22:56, schrieb Buddy Butterfly:
> Hi,
>
> regarding your example
>
>   ** Milestones  :M:
>   *** Task
>       :PROPERTIES:
>       :task_id: M2
>       :depends: T8
>       :END:
>
>   ** Technical  :T:
>      :PROPERTIES:
>      :task_id:  T
>      :END:
>   *** Task
>       :PROPERTIES:
>       :task_id:  T8
>       :duration: 1d
>       :END:
>
>
> I would like to discus what I mean with a prefix.
> At the moment oex tries to mirror some functionality of
> tj to org mode. From an architectural point of view I
> would do this only for few selected functionalities.
> Otherwise you developers have to always adapt code to
> tj. If you would implement generic tj properties that
> will be exported as is, then one could easily write
> the tj stuff itself.
>
> The problem becomes obvious with your example above.
> Herr you expect that T8 would be unique across all
> tasks. If there are some other task paths with a task of
> T8 then this will not work. You will always run after
> tj implementing what they have implemented. Why not
> write:
>
>   :depends: !!T.T8
>
> directly? This is what should be done. Leave the tj
> logic to tj and do not try to map it to org-mode.
> The more you map the more difficult to maintain, etc.
>
> Also, you will likely only implement subsets of tj
> properties.
>
> For example, there are properties missing like
>
>   :workinghours:
>
> Lets look at an example. Suppose
> we would prefix all taskjuggler properties with "tj_"
> and org-mode would export tj_ properties as is.
> People then would directly code the dependency
> themself.
>
> Your example would look like
> (if directly replaced)
>
>   ** Milestones  :M:
>   *** Task
>       :PROPERTIES:
>       :tj_task_id: M2
>       :tj_depends: !!T.T8
>       :END:
>
>   ** Technical  :T:
>      :PROPERTIES:
>      :tj_task_id:  T
>      :END:
>   *** Task
>       :PROPERTIES:
>       :tj_task_id:  T8
>       :tj_duration: 1d
>       :END:
>
> Also, properties to the project tag should go into the
> project task. With the functionality above, it would be easy to:
>
> * Project  :taskjuggler_project:
>   :tj_workinhours: mon - fri 08:00 - 17:00
>
> Or give a flag:
>
>
>   ** Technical  :T:
>      :PROPERTIES:
>      :tj_task_id:  T
>      :END:
>   *** Task
>       :PROPERTIES:
>       :tj_task_id:  T8
>       :tj_duration: 1d
>       :tj_flag: tech8flag
>       :END:
>
>
> I have some other points to discuss. Will create a separate thread for it.
>
> Cheers,
> Matt
>
>
>
> Am 01.04.2013 18:57, schrieb John Hendy:
>> On Mon, Apr 1, 2013 at 11:38 AM, Nicolas Goaziou <address@hidden> wrote:
>>> John Hendy <address@hidden> writes:
>>>
>>>> On Mon, Apr 1, 2013 at 10:20 AM, Nicolas Goaziou <address@hidden> wrote:
>>>>> John Hendy <address@hidden> writes:
>>>>>
>>>>>> I still have the issue of depending on a task not in the current
>>>>>> subtree, but perhaps I'm just not using the exporter correctly:
>>>>> There was indeed a bug in the dependencies formatting. It should now be
>>>>> fixed in master. Could you confirm it?
>>>>>
>>>>>> *** Task
>>>>>>     :PROPERTIES:
>>>>>>     :task_id:       M2
>>>>>>     :depends:  ??? what goes here to depend on T.T8 ???
>>>>> It should be :depends: T8
>>>>>
>>>>> Thank you for the feedback.
>>>>>
>>>> That *would* work, but ox-taskjuggler has to correct for the fact that
>>>> T8 does not live in M2's bucket (M). Using T8 gives me this:
>>>>
>>>>
>>>> #+begin_src TJ
>>>>   task M2 "Task" {
>>>>     depends !T8
>>>>     milestone
>>>>   }
>>>> #+end_src
>>> I cannot reproduce it. With:
>>>
>>> * Project  :taskjuggler_project:
>>>
>>>   ** Milestones  :M:
>>>   *** Task
>>>       :PROPERTIES:
>>>       :task_id: M2
>>>       :depends: T8
>>>       :END:
>>>
>>>   ** Technical  :T:
>>>      :PROPERTIES:
>>>      :task_id:  T
>>>      :END:
>>>   *** Task
>>>       :PROPERTIES:
>>>       :task_id:  T8
>>>       :duration: 1d
>>>       :END:
>>>
>>> I get:
>>>
>>>   task project "Project" {
>>>     purge allocate
>>>     allocate nicolas
>>>     task milestones "Milestones" {
>>>       task M2 "Task" {
>>>         depends !!T.T8
>>>         milestone
>>>       }
>>>     }
>>>     task T "Technical" {
>>>       task T8 "Task" {
>>>         duration 1d
>>>       }
>>>     }
>>>   }
>>>
>>> which looks correct. Did you reload Org properly after update?
>> Process:
>> - Save your patch to ~/Downloads/patch.patch
>> - cd ~/.elisp/org.git
>> - git branch tj-test
>> - git checkout tj-test
>> - patch -p1 < ~/Downloads/patch.patch
>> - make clean && make
>> - start fresh Emacs session
>>
>> What perplexes me is that the id's mostly work (showing that the patch
>> definitely changed from the master branch behavior), but not the same
>> as you. With no task_id for Milestones, I'm getting:
>>
>> task nil "Milestones" {
>>
>> and you're getting
>>
>> task milestones "Milestones" {
>>
>> I'm also not getting the resolving of non-sibling depends attributes
>> (getting just !T8 instead of !!T.T8).
>>
>> Did I not apply the patch or rebuild org properly? I'm pretty bad with
>> git, and it surprises me that `git status` shows that ox-taskjuggler
>> is modified when I switch back to master. I would have expected that
>> my master branch would be oblivious to the changes I made on the
>> tj-test branch (with `git branch tj-test && git checkout tj-test`).
>>
>>
>> Thanks,
>> John
>>
>>> Regards,
>>>
>>> --
>>> Nicolas Goaziou
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]