* Item task_id not being used in taskjuggler export @ 2013-04-01 0:04 John Hendy 2013-04-01 0:16 ` John Hendy 2013-04-01 14:21 ` Nicolas Goaziou 0 siblings, 2 replies; 20+ messages in thread From: John Hendy @ 2013-04-01 0:04 UTC (permalink / raw) To: emacs-orgmode I seem to be having trouble getting custom task_id values used for my taskjuggler file. From ox-taskjuggler.el: #+begin_quote (defun org-taskjuggler--build-task (task info) "Return a task declaration. TASK is a headline. INFO is a plist used as a communication channel. All valid attributes from TASK are inserted. If TASK defines a property \"task_id\" it will be used as the id for this task. Otherwise it will use the ID property. If neither is defined a unique id will be associated to it." [snip] #+end_quote However, my headlines are still using the Org-assigned values for this... #+begin_org * Project :taskjuggler_project: SCHEDULED: <2013-03-01 Fri> ** Technical :T: :PROPERTIES: :task_id: T :END: *** Sub task :PROPERTIES: :task_id: T1 :END: #+end_org This gets exported as: #+begin_tjp task technical "Technical" { purge allocate allocate jwhendy task sub "Sub task" { milestone } } #+end_tjp Variations: - I also tried using =:task_id: "T"= to see if it needed to be in quotes - Tried changing my drawer name to TASK_ID to check for case-sensitivity The results of both were the same. Is this something on my end or a but in ox-taskjuggler.el? Thanks, John ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export 2013-04-01 0:04 Item task_id not being used in taskjuggler export John Hendy @ 2013-04-01 0:16 ` John Hendy 2013-04-01 0:44 ` John Hendy 2013-04-01 14:21 ` Nicolas Goaziou 1 sibling, 1 reply; 20+ messages in thread From: John Hendy @ 2013-04-01 0:16 UTC (permalink / raw) To: emacs-orgmode On Sun, Mar 31, 2013 at 7:04 PM, John Hendy <jw.hendy@gmail.com> wrote: > I seem to be having trouble getting custom task_id values used for my > taskjuggler file. From ox-taskjuggler.el: > > #+begin_quote > (defun org-taskjuggler--build-task (task info) > "Return a task declaration. > > TASK is a headline. INFO is a plist used as a communication > channel. > > All valid attributes from TASK are inserted. If TASK defines > a property \"task_id\" it will be used as the id for this task. > Otherwise it will use the ID property. If neither is defined > a unique id will be associated to it." > > [snip] > > #+end_quote > > However, my headlines are still using the Org-assigned values for this... > > #+begin_org > > * Project :taskjuggler_project: > SCHEDULED: <2013-03-01 Fri> > ** Technical :T: > :PROPERTIES: > :task_id: T > :END: > *** Sub task > :PROPERTIES: > :task_id: T1 > :END: > > #+end_org > > This gets exported as: > > #+begin_tjp > > task technical "Technical" { > purge allocate > allocate jwhendy > task sub "Sub task" { > milestone > } > } > > #+end_tjp > > Variations: > - I also tried using =:task_id: "T"= to see if it needed to be in quotes > - Tried changing my drawer name to TASK_ID to check for case-sensitivity > > The results of both were the same. Is this something on my end or a > but in ox-taskjuggler.el? > > > Thanks, > John As a followup, within a section, the :depends: attribute is being correctly resolved, even though naming is incorrect. I've taken to giving each area a single letter task_id, such as: #+begin_org * Project ** Technical :PROPERTIES: :TASK_ID: T :END: *** Sub task :PROPERTIES: :task_id: T1 :END: *** Sub task2 *** Sub task :PROPERTIES: :task_id: T2 :depends: T1 :END: #+end_org That's resolving deps correctly, but not naming correctly: #+begin_tjp task sub "Sub task" { milestone } task sub_task2 "Sub task2" { depends !sub milestone #+end_tjp The problem with this is when depending on something outside of that particular subtask; the TJ syntax is to use =!= as the equivalent to a period with respect to directories. So to refer to a task in another bucket, you need to do something like =:depends: !!M.M1= to refer to the Milestone bucket (task_id = M), subtask M1 task. This isn't working with Org taskjuggler export. Not being able to name task is a huge inconvenience, as one has to use Org's unique-id naming function, which I'd prefer not to do. It's easier (at least for me) to just unfold all the property drawers and refer to things by their two character id. I also tagged each top headline with it's letter bucket ":T:" so that I can just count the item order in the list for it's resulting subtask id (e.g. "T2"). Best regards, John ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export 2013-04-01 0:16 ` John Hendy @ 2013-04-01 0:44 ` John Hendy 0 siblings, 0 replies; 20+ messages in thread From: John Hendy @ 2013-04-01 0:44 UTC (permalink / raw) To: emacs-orgmode On Sun, Mar 31, 2013 at 7:16 PM, John Hendy <jw.hendy@gmail.com> wrote: > On Sun, Mar 31, 2013 at 7:04 PM, John Hendy <jw.hendy@gmail.com> wrote: >> I seem to be having trouble getting custom task_id values used for my >> taskjuggler file. From ox-taskjuggler.el: >> >> #+begin_quote >> (defun org-taskjuggler--build-task (task info) >> "Return a task declaration. >> >> TASK is a headline. INFO is a plist used as a communication >> channel. >> >> All valid attributes from TASK are inserted. If TASK defines >> a property \"task_id\" it will be used as the id for this task. >> Otherwise it will use the ID property. If neither is defined >> a unique id will be associated to it." >> >> [snip] >> >> #+end_quote >> >> However, my headlines are still using the Org-assigned values for this... >> >> #+begin_org >> >> * Project :taskjuggler_project: >> SCHEDULED: <2013-03-01 Fri> >> ** Technical :T: >> :PROPERTIES: >> :task_id: T >> :END: >> *** Sub task >> :PROPERTIES: >> :task_id: T1 >> :END: >> >> #+end_org >> >> This gets exported as: >> >> #+begin_tjp >> >> task technical "Technical" { >> purge allocate >> allocate jwhendy >> task sub "Sub task" { >> milestone >> } >> } >> >> #+end_tjp >> >> Variations: >> - I also tried using =:task_id: "T"= to see if it needed to be in quotes >> - Tried changing my drawer name to TASK_ID to check for case-sensitivity >> >> The results of both were the same. Is this something on my end or a >> but in ox-taskjuggler.el? >> >> >> Thanks, >> John > > > As a followup, within a section, the :depends: attribute is being > correctly resolved, even though naming is incorrect. I've taken to > giving each area a single letter task_id, such as: > > #+begin_org > * Project > ** Technical > :PROPERTIES: > :TASK_ID: T > :END: > *** Sub task > :PROPERTIES: > :task_id: T1 > :END: > *** Sub task2 > *** Sub task > :PROPERTIES: > :task_id: T2 > :depends: T1 > :END: > > #+end_org > > That's resolving deps correctly, but not naming correctly: > > #+begin_tjp > > task sub "Sub task" { > milestone > } > task sub_task2 "Sub task2" { > depends !sub > milestone > > #+end_tjp > > The problem with this is when depending on something outside of that > particular subtask; the TJ syntax is to use =!= as the equivalent to a > period with respect to directories. So to refer to a task in another > bucket, you need to do something like =:depends: !!M.M1= to refer to > the Milestone bucket (task_id = M), subtask M1 task. > > This isn't working with Org taskjuggler export. Not being able to name > task is a huge inconvenience, as one has to use Org's unique-id naming > function, which I'd prefer not to do. It's easier (at least for me) to > just unfold all the property drawers and refer to things by their two > character id. I also tagged each top headline with it's letter bucket > ":T:" so that I can just count the item order in the list for it's > resulting subtask id (e.g. "T2"). > > > Best regards, > John Last addendum. I think this is what's going on: - ox-taskjuggler will use task_id var for dependencies, but not the actual task_id - thus, it's resolving my dependencies (within a sub-task bucket), but not using the actual names Here's how unique-ids are assigned: #+begin_src ox-taskjuggler.el (defun org-taskjuggler-assign-task-ids (tasks info) "Assign a unique ID to each task in TASKS. TASKS is a list of headlines. Return value is an alist between headlines and their associated ID. IDs are hierarchical, which means they only need to be unique among the task siblings." (let* (alist (build-id (lambda (tasks local-ids) (org-element-map tasks 'headline (lambda (task) (let ((id (org-taskjuggler--build-unique-id task local-ids))) (push id local-ids) (push (cons task id) alist) (funcall build-id (org-element-contents task) nil))) info nil 'headline)))) (funcall build-id tasks nil) alist)) #+end_src Nothing related to task_id. That's calling this, which just makes sure the initially parsed list is actually unique, and does some syntax tweaking to make sure things work for what taskjuggler expects for task_id syntax: #+begin_src ox-taskjuggler.el (defun org-taskjuggler--build-unique-id (item unique-ids) "Return a unique id for a given task or a resource. ITEM is an `headline' type element representing the task or resource. Its id is derived from its name and made unique against UNIQUE-IDS. If the (downcased) first token of the headline is not unique try to add more (downcased) tokens of the headline or finally add more underscore characters (\"_\")." (let* ((parts (org-split-string (org-element-property :raw-value item))) (id (org-taskjuggler--clean-id (downcase (pop parts))))) ;; Try to add more parts of the headline to make it unique. (while (and (car parts) (member id unique-ids)) (setq id (concat id "_" (org-taskjuggler--clean-id (downcase (pop parts)))))) ;; If it's still not unique, add "_". (while (member id unique-ids) (setq id (concat id "_"))) id)) #+end_src But later on, the function =(defun org-taskjuggler-resolve-dependencies (task info)= will use task_id property values to resolve deps!? My suggestion (similar to the :start: property definition for a top project headline before) would be to use task_id as the actual ID /unless/ one isn't provided. Then assign the unique variable definition for Orgmode. Better behavior would involve just passing the depends value straight through to the .tjp file and letting TaskJuggler resolve it. So far, I find most errors on TJ compilation anyway, not via Org... so that seems fine for now. Down the road, I'd love to see compilation of the .tjp included in this, and errors could be made known the same way LaTeX compilation errors appear. John ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export 2013-04-01 0:04 Item task_id not being used in taskjuggler export John Hendy 2013-04-01 0:16 ` John Hendy @ 2013-04-01 14:21 ` Nicolas Goaziou 2013-04-01 14:53 ` John Hendy 1 sibling, 1 reply; 20+ messages in thread From: Nicolas Goaziou @ 2013-04-01 14:21 UTC (permalink / raw) To: John Hendy; +Cc: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 251 bytes --] Hello, John Hendy <jw.hendy@gmail.com> writes: > I seem to be having trouble getting custom task_id values used for my > taskjuggler file. Thank you for the detailed report. Would the attached patch fix the problem? Regards, -- Nicolas Goaziou [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-ox-taskjuggler-Use-task_id-property-when-specified.patch --] [-- Type: text/x-patch, Size: 2142 bytes --] From 30b8328292fc09b3f1ae84b469d1c574c19bfa58 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou <n.goaziou@gmail.com> Date: Mon, 1 Apr 2013 16:08:37 +0200 Subject: [PATCH] ox-taskjuggler: Use task_id property when specified * contrib/lisp/ox-taskjuggler.el (org-taskjuggler--build-unique-id): Use specified id (TASK_ID property) when possible. --- contrib/lisp/ox-taskjuggler.el | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/contrib/lisp/ox-taskjuggler.el b/contrib/lisp/ox-taskjuggler.el index cdc9195..5b2e5cc 100644 --- a/contrib/lisp/ox-taskjuggler.el +++ b/contrib/lisp/ox-taskjuggler.el @@ -411,16 +411,19 @@ resource. Its id is derived from its name and made unique against UNIQUE-IDS. If the (downcased) first token of the headline is not unique try to add more (downcased) tokens of the headline or finally add more underscore characters (\"_\")." - (let* ((parts (org-split-string (org-element-property :raw-value item))) - (id (org-taskjuggler--clean-id (downcase (pop parts))))) - ;; Try to add more parts of the headline to make it unique. - (while (and (car parts) (member id unique-ids)) - (setq id (concat id "_" - (org-taskjuggler--clean-id (downcase (pop parts)))))) - ;; If it's still not unique, add "_". - (while (member id unique-ids) - (setq id (concat id "_"))) - id)) + (let ((id (org-string-nw-p (org-element-property :TASK_ID item)))) + ;; If an id is specified, use it, as long as it's unique. + (if (not (member id unique-ids)) id + (let* ((parts (org-split-string (org-element-property :raw-value item))) + (id (org-taskjuggler--clean-id (downcase (pop parts))))) + ;; Try to add more parts of the headline to make it unique. + (while (and (car parts) (member id unique-ids)) + (setq id (concat id "_" + (org-taskjuggler--clean-id (downcase (pop parts)))))) + ;; If it's still not unique, add "_". + (while (member id unique-ids) + (setq id (concat id "_"))) + id)))) (defun org-taskjuggler--clean-id (id) "Clean and return ID to make it acceptable for TaskJuggler. -- 1.8.2 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export 2013-04-01 14:21 ` Nicolas Goaziou @ 2013-04-01 14:53 ` John Hendy 2013-04-01 15:20 ` Nicolas Goaziou 0 siblings, 1 reply; 20+ messages in thread From: John Hendy @ 2013-04-01 14:53 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-orgmode On Mon, Apr 1, 2013 at 9:21 AM, Nicolas Goaziou <n.goaziou@gmail.com> wrote: > Hello, > > John Hendy <jw.hendy@gmail.com> writes: > >> I seem to be having trouble getting custom task_id values used for my >> taskjuggler file. > > Thank you for the detailed report. Would the attached patch fix the > problem? > Thanks for the quick response! It fixes the naming issue. My tasks now indeed keep the task_id that I assign. 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: #+begin_src org * Project :taskjuggler_project: ** Milestones :M: *** Task :PROPERTIES: :task_id: M2 :depends: ??? what goes here to depend on T.T8 ??? :END: ** Technical :T: :PROPERTIES: :task_id: T :END: *** Task :PROPERTIES: :task_id: T8 :depends: T6 T7 :duration: 1d :END: #+end_src The TJ syntax would be !!T.T8 to depend on T8 from "outside" of the Technical bucket. At present, the exporter isn't picking this up and there's no depends attribute with the exported headline (tried T8, T.T8, and !!T.T8). Thanks, John > > Regards, > > -- > Nicolas Goaziou ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export 2013-04-01 14:53 ` John Hendy @ 2013-04-01 15:20 ` Nicolas Goaziou 2013-04-01 16:00 ` John Hendy 0 siblings, 1 reply; 20+ messages in thread From: Nicolas Goaziou @ 2013-04-01 15:20 UTC (permalink / raw) To: John Hendy; +Cc: emacs-orgmode John Hendy <jw.hendy@gmail.com> 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. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export 2013-04-01 15:20 ` Nicolas Goaziou @ 2013-04-01 16:00 ` John Hendy 2013-04-01 16:38 ` Nicolas Goaziou 0 siblings, 1 reply; 20+ messages in thread From: John Hendy @ 2013-04-01 16:00 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-orgmode On Mon, Apr 1, 2013 at 10:20 AM, Nicolas Goaziou <n.goaziou@gmail.com> wrote: > John Hendy <jw.hendy@gmail.com> 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 But that gives a compilation error becaust tj3 is looking for task M.T8 when it should be T.T8. #+begin_src terminal $ tj3 test.tjp Reading file test.tjp [ Done ] test.tjp:11: Error in scenario plan: Task M.M2 has unknown depends M.T8%=== ] #+end_src Perhaps this analogy would help. I've just created two directories and two files. Here's the output of =tree= at the command line: |-- M | |-- M1 | `-- M2 |-- T | |-- T1 | `-- T2 I want to link M1 to T1. The current behavior is trying to do so with ./T1, which doesn't work since M/T1 doesn't exist. I have to do ../T/T1. This is how TJ works, which is why it can't resolve T8 by itself, unless you correct for the proper relative path with respect to the current parent. Relative directory path periods are akin to TJ's =!= syntax. - ./file -> !task_id - ../file -> !!task_id - ../dir/file -> !!task_id (dir).task_id (file) Best regards, John > > Regards, > > -- > Nicolas Goaziou ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export 2013-04-01 16:00 ` John Hendy @ 2013-04-01 16:38 ` Nicolas Goaziou 2013-04-01 16:57 ` John Hendy 0 siblings, 1 reply; 20+ messages in thread From: Nicolas Goaziou @ 2013-04-01 16:38 UTC (permalink / raw) To: John Hendy; +Cc: emacs-orgmode John Hendy <jw.hendy@gmail.com> writes: > On Mon, Apr 1, 2013 at 10:20 AM, Nicolas Goaziou <n.goaziou@gmail.com> wrote: >> John Hendy <jw.hendy@gmail.com> 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? Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export 2013-04-01 16:38 ` Nicolas Goaziou @ 2013-04-01 16:57 ` John Hendy 2013-04-01 17:05 ` Nicolas Goaziou 2013-04-01 20:56 ` Item task_id not being used in taskjuggler export & tj prefixing Buddy Butterfly 0 siblings, 2 replies; 20+ messages in thread From: John Hendy @ 2013-04-01 16:57 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-orgmode On Mon, Apr 1, 2013 at 11:38 AM, Nicolas Goaziou <n.goaziou@gmail.com> wrote: > John Hendy <jw.hendy@gmail.com> writes: > >> On Mon, Apr 1, 2013 at 10:20 AM, Nicolas Goaziou <n.goaziou@gmail.com> wrote: >>> John Hendy <jw.hendy@gmail.com> 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 ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export 2013-04-01 16:57 ` John Hendy @ 2013-04-01 17:05 ` Nicolas Goaziou 2013-04-02 3:27 ` John Hendy 2013-04-01 20:56 ` Item task_id not being used in taskjuggler export & tj prefixing Buddy Butterfly 1 sibling, 1 reply; 20+ messages in thread From: Nicolas Goaziou @ 2013-04-01 17:05 UTC (permalink / raw) To: John Hendy; +Cc: emacs-orgmode John Hendy <jw.hendy@gmail.com> writes: > 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 Dismiss the patch. I pushed the changes into master. You should update Org, reload it, and try again. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export 2013-04-01 17:05 ` Nicolas Goaziou @ 2013-04-02 3:27 ` John Hendy 0 siblings, 0 replies; 20+ messages in thread From: John Hendy @ 2013-04-02 3:27 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-orgmode On Mon, Apr 1, 2013 at 12:05 PM, Nicolas Goaziou <n.goaziou@gmail.com> wrote: > John Hendy <jw.hendy@gmail.com> writes: > >> 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 > > Dismiss the patch. I pushed the changes into master. You should update > Org, reload it, and try again. Sorry -- I thought you were still describing the behavior of the patch you sent. Posted in the other thread with the results, which are that: - ID is correctly assigned now - Depends resolve as long as there is only one global instance of that specific task_id - If you depend on a non-globally-unique task_id (e.g. there is an M.T1 and also a T.T1, and you use =:depends: T1=), that task will end up depending on both of them. Best regards, John > > > Regards, > > -- > Nicolas Goaziou ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export & tj prefixing 2013-04-01 16:57 ` John Hendy 2013-04-01 17:05 ` Nicolas Goaziou @ 2013-04-01 20:56 ` Buddy Butterfly 2013-04-01 20:59 ` Buddy Butterfly ` (2 more replies) 1 sibling, 3 replies; 20+ messages in thread From: Buddy Butterfly @ 2013-04-01 20:56 UTC (permalink / raw) To: emacs-orgmode 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: :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 <n.goaziou@gmail.com> wrote: >> John Hendy <jw.hendy@gmail.com> writes: >> >>> On Mon, Apr 1, 2013 at 10:20 AM, Nicolas Goaziou <n.goaziou@gmail.com> wrote: >>>> John Hendy <jw.hendy@gmail.com> 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 ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export & tj prefixing 2013-04-01 20:56 ` Item task_id not being used in taskjuggler export & tj prefixing Buddy Butterfly @ 2013-04-01 20:59 ` Buddy Butterfly 2013-04-01 21:53 ` John Hendy 2013-04-24 19:51 ` Christian Egli 2 siblings, 0 replies; 20+ messages in thread From: Buddy Butterfly @ 2013-04-01 20:59 UTC (permalink / raw) To: emacs-orgmode 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 <n.goaziou@gmail.com> wrote: >>> John Hendy <jw.hendy@gmail.com> writes: >>> >>>> On Mon, Apr 1, 2013 at 10:20 AM, Nicolas Goaziou <n.goaziou@gmail.com> wrote: >>>>> John Hendy <jw.hendy@gmail.com> 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 > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export & tj prefixing 2013-04-01 20:56 ` Item task_id not being used in taskjuggler export & tj prefixing Buddy Butterfly 2013-04-01 20:59 ` Buddy Butterfly @ 2013-04-01 21:53 ` John Hendy 2013-04-01 22:01 ` Nicolas Goaziou ` (2 more replies) 2013-04-24 19:51 ` Christian Egli 2 siblings, 3 replies; 20+ messages in thread From: John Hendy @ 2013-04-01 21:53 UTC (permalink / raw) To: buddy.butterfly; +Cc: emacs-orgmode On Mon, Apr 1, 2013 at 3:56 PM, Buddy Butterfly <buddy.butterfly@web.de> wrote: > > 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. > I agree and would prefer this. Especially since folks wanting to export and being allowed to access tj functionality through drawers are probably going to anticipate using actual tj syntax in those drawers. Since tj only forces unique global ids (one can have M.T8, T.T8, etc.), this would solve the issue of ambiguity should one decide to use non-globally unique task ids. In fact, many projects may very well use a lot of repetitive tasks with the same properties. In mine, I have some tasks regarding shipping products to various countries. This way I could just have a bunch of country-specific headlines like: * Country ** Ship product * Country 2 ** Ship product And could give all the ** Ship... tasks the same id since their Country parent would make it globally unique. For now, I'm just happy to have functionality restored so I can use Org and not hand-edit the files after exporting :) I have a potential IRC date with Christian Egli sometime this week... perhaps you should join and add your feedback? One of my other points of input would be that something like C-c l (Org store link at point) would be great. Unique ids could be inserted as depends with some simple key strokes and I would't have to use numbered IDs at all. They'd stay with the tasks no matter where I moved them. For that... I'd actually prefer *not* to have to explicitly name the parent since they could move wherever I put them with no consequence. John ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export & tj prefixing 2013-04-01 21:53 ` John Hendy @ 2013-04-01 22:01 ` Nicolas Goaziou 2013-04-02 3:24 ` John Hendy 2013-04-04 13:59 ` Buddy Butterfly 2013-04-24 20:09 ` Christian Egli 2 siblings, 1 reply; 20+ messages in thread From: Nicolas Goaziou @ 2013-04-01 22:01 UTC (permalink / raw) To: John Hendy; +Cc: emacs-orgmode, buddy.butterfly John Hendy <jw.hendy@gmail.com> writes: > I agree and would prefer this. Especially since folks wanting to > export and being allowed to access tj functionality through drawers > are probably going to anticipate using actual tj syntax in those > drawers. Since tj only forces unique global ids (one can have M.T8, > T.T8, etc.), this would solve the issue of ambiguity should one decide > to use non-globally unique task ids. In fact, many projects may very > well use a lot of repetitive tasks with the same properties. > > In mine, I have some tasks regarding shipping products to various > countries. This way I could just have a bunch of country-specific > headlines like: > > * Country > ** Ship product > > * Country 2 > ** Ship product > > And could give all the ** Ship... tasks the same id since their > Country parent would make it globally unique. You can already do so. IDs only have to be unique within the task siblings. > For now, I'm just happy to have functionality restored so I can use > Org and not hand-edit the files after exporting :) I have a potential > IRC date with Christian Egli sometime this week... perhaps you should > join and add your feedback? One of my other points of input would be > that something like C-c l (Org store link at point) would be great. > Unique ids could be inserted as depends with some simple key strokes > and I would't have to use numbered IDs at all. They'd stay with the > tasks no matter where I moved them. > > For that... I'd actually prefer *not* to have to explicitly name the > parent since they could move wherever I put them with no consequence. You don't have to name parents either. You only need to name tasks that will be used as a dependency. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export & tj prefixing 2013-04-01 22:01 ` Nicolas Goaziou @ 2013-04-02 3:24 ` John Hendy 2013-04-25 7:52 ` Christian Egli 0 siblings, 1 reply; 20+ messages in thread From: John Hendy @ 2013-04-02 3:24 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-orgmode, buddy.butterfly On Mon, Apr 1, 2013 at 5:01 PM, Nicolas Goaziou <n.goaziou@gmail.com> wrote: > John Hendy <jw.hendy@gmail.com> writes: > >> I agree and would prefer this. Especially since folks wanting to >> export and being allowed to access tj functionality through drawers >> are probably going to anticipate using actual tj syntax in those >> drawers. Since tj only forces unique global ids (one can have M.T8, >> T.T8, etc.), this would solve the issue of ambiguity should one decide >> to use non-globally unique task ids. In fact, many projects may very >> well use a lot of repetitive tasks with the same properties. >> >> In mine, I have some tasks regarding shipping products to various >> countries. This way I could just have a bunch of country-specific >> headlines like: >> >> * Country >> ** Ship product >> >> * Country 2 >> ** Ship product >> >> And could give all the ** Ship... tasks the same id since their >> Country parent would make it globally unique. > > You can already do so. IDs only have to be unique within the task > siblings. True, one can name tasks identically as long as they have no identical siblings... but the point was the since one can only specify the lowest level of id (e.g. "T1" instead of "T.T1"), Org doesn't know how to resolve them properly. Consider this modified test file: #+begin_src org * Project :taskjuggler_project: ** Milestones :M: *** M.M1 :PROPERTIES: :task_id: M1 :depends: T1 :END: *** M.T1 :PROPERTIES: :task_id: T1 :END: ** Technical :T: :PROPERTIES: :task_id: T :END: *** T.T1 :PROPERTIES: :task_id: T1 :END: #+end_src The resultant TJ export: #+begin_src tj task milestones "Milestones" { purge allocate allocate jwhendy task M1 "M.M1" { depends !T1, !!T.T1 milestone } task T1 "M.T1" { milestone } } task T "Technical" { task T1 "T.T1" { milestone } } #+end_src Task M1 ends up depending on both M.T1 (represented as !T1) /and/ T.T1. It won't fail since both T.T1 and M.T1 exist, but the user has no way to set a depends option to target the specific T1 they wanted. Setting =:depends: !!T.T1= ignores the :depends: property entirely. Best regards, John > >> For now, I'm just happy to have functionality restored so I can use >> Org and not hand-edit the files after exporting :) I have a potential >> IRC date with Christian Egli sometime this week... perhaps you should >> join and add your feedback? One of my other points of input would be >> that something like C-c l (Org store link at point) would be great. >> Unique ids could be inserted as depends with some simple key strokes >> and I would't have to use numbered IDs at all. They'd stay with the >> tasks no matter where I moved them. >> >> For that... I'd actually prefer *not* to have to explicitly name the >> parent since they could move wherever I put them with no consequence. > > You don't have to name parents either. You only need to name tasks that > will be used as a dependency. > True, which is nice. But we're torn between: - Letting Org name the parent whatever it wants, but then having to figure out the org-generated parent id so we can do =:depends: parent.subtask=, or - Specifically naming the parent to have control over the task_id, but having to change it because we move it later (and then updating all =:depends: parent.task_id= properties accordingly) And in either case, there's still no way to depend on a specific =parent.task_id= combination. Best regards, John > > Regards, > > -- > Nicolas Goaziou ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export & tj prefixing 2013-04-02 3:24 ` John Hendy @ 2013-04-25 7:52 ` Christian Egli 0 siblings, 0 replies; 20+ messages in thread From: Christian Egli @ 2013-04-25 7:52 UTC (permalink / raw) To: emacs-orgmode John Hendy <jw.hendy@gmail.com> writes: > On Mon, Apr 1, 2013 at 5:01 PM, Nicolas Goaziou <n.goaziou@gmail.com> wrote: >> You can already do so. IDs only have to be unique within the task >> siblings. > > True, one can name tasks identically as long as they have no identical > siblings... but the point was the since one can only specify the > lowest level of id (e.g. "T1" instead of "T.T1"), Org doesn't know how > to resolve them properly. AFAIK task_ids have to be globally unique if you want to use them for dependencies. > Task M1 ends up depending on both M.T1 (represented as !T1) /and/ > T.T1. It won't fail since both T.T1 and M.T1 exist, but the user has > no way to set a depends option to target the specific T1 they wanted. > Setting =:depends: !!T.T1= ignores the :depends: property entirely. The TaskJuggler exporter gives you 3 ways to express a dependency: 1. using ORDERED on the parent task 2. using "previous-sibling" 3. using a task_id of another task. This has to be a unique id, otherwise you end up depending all the other tasks that have this task_id. >> You don't have to name parents either. You only need to name tasks that >> will be used as a dependency. > > True, which is nice. But we're torn between: > - Letting Org name the parent whatever it wants, but then having to > figure out the org-generated parent id so we can do =:depends: > parent.subtask=, or > > - Specifically naming the parent to have control over the task_id, but > having to change it because we move it later (and then updating all > =:depends: parent.task_id= properties accordingly) > > And in either case, there's still no way to depend on a specific > =parent.task_id= combination. I don't understand this. Why do you need to name parents (or assign them a task_id)? As Nicolas says: all you have to do is to give the task you want to depend on a task_id. As an aside I thought you could also use plain ID to express dependencies. But from looking at the code this doesn't seem supported. I think the reason why yet another id (namely task_id) is used, is that this allows for short human readable ids where as the standard ID is generally generated by org mode and is cryptic and much longer. 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] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export & tj prefixing 2013-04-01 21:53 ` John Hendy 2013-04-01 22:01 ` Nicolas Goaziou @ 2013-04-04 13:59 ` Buddy Butterfly 2013-04-24 20:09 ` Christian Egli 2 siblings, 0 replies; 20+ messages in thread From: Buddy Butterfly @ 2013-04-04 13:59 UTC (permalink / raw) To: John Hendy; +Cc: emacs-orgmode Hi John, regarding your "potential" IRC date with Christian Egli, I would like to join, if I*ll find the time. For when is it scheduled? I have also posted a base for discussion here on the list. Thanks and best regards, Matt Am 01.04.2013 23:53, schrieb John Hendy: > On Mon, Apr 1, 2013 at 3:56 PM, Buddy Butterfly <buddy.butterfly@web.de> wrote: >> 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. >> > I agree and would prefer this. Especially since folks wanting to > export and being allowed to access tj functionality through drawers > are probably going to anticipate using actual tj syntax in those > drawers. Since tj only forces unique global ids (one can have M.T8, > T.T8, etc.), this would solve the issue of ambiguity should one decide > to use non-globally unique task ids. In fact, many projects may very > well use a lot of repetitive tasks with the same properties. > > In mine, I have some tasks regarding shipping products to various > countries. This way I could just have a bunch of country-specific > headlines like: > > * Country > ** Ship product > > * Country 2 > ** Ship product > > And could give all the ** Ship... tasks the same id since their > Country parent would make it globally unique. > > For now, I'm just happy to have functionality restored so I can use > Org and not hand-edit the files after exporting :) I have a potential > IRC date with Christian Egli sometime this week... perhaps you should > join and add your feedback? One of my other points of input would be > that something like C-c l (Org store link at point) would be great. > Unique ids could be inserted as depends with some simple key strokes > and I would't have to use numbered IDs at all. They'd stay with the > tasks no matter where I moved them. > > For that... I'd actually prefer *not* to have to explicitly name the > parent since they could move wherever I put them with no consequence. > > > John ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export & tj prefixing 2013-04-01 21:53 ` John Hendy 2013-04-01 22:01 ` Nicolas Goaziou 2013-04-04 13:59 ` Buddy Butterfly @ 2013-04-24 20:09 ` Christian Egli 2 siblings, 0 replies; 20+ messages in thread From: Christian Egli @ 2013-04-24 20:09 UTC (permalink / raw) To: emacs-orgmode John Hendy <jw.hendy@gmail.com> writes: > Unique ids could be inserted as depends with some simple key strokes > and I would't have to use numbered IDs at all. They'd stay with the > tasks no matter where I moved them. > > For that... I'd actually prefer *not* to have to explicitly name the > parent since they could move wherever I put them with no consequence. `org-id-copy' will insert a unique ID into your entry (ie your task) and at the same time store it in your kill ring, so you can then yank it where you have the dependency. Can you try this with a custom key binding? As far as I know the dependency resolution should also work with unique id (aka ID) not just with task_ids. 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] 20+ messages in thread
* Re: Item task_id not being used in taskjuggler export & tj prefixing 2013-04-01 20:56 ` Item task_id not being used in taskjuggler export & tj prefixing Buddy Butterfly 2013-04-01 20:59 ` Buddy Butterfly 2013-04-01 21:53 ` John Hendy @ 2013-04-24 19:51 ` Christian Egli 2 siblings, 0 replies; 20+ messages in thread From: Christian Egli @ 2013-04-24 19:51 UTC (permalink / raw) To: emacs-orgmode Buddy Butterfly <buddy.butterfly@web.de> writes: > 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. True, task_ids have to be unique across tasks. For me this was never a problem as I usually do not have that many dependencies (and hence need only a few task_ids) and org-mode has built in infrastructure to create unique ids. > You will always run after > tj implementing what they have implemented. Why not > write: > > :depends: !!T.T8 > > directly? Because IMHO org-mode has more to offer in terms of dependencies. I think that the ORDERED and the BLOCKER stuff gives you a good way to model dependencies that is expressive and covers a lot of use cases nicely. TaskJuggler dependencies is fairly low level I think. I'd like to express my dependencies at a higher level. Hope that helps 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] 20+ messages in thread
end of thread, other threads:[~2013-04-25 7:52 UTC | newest] Thread overview: 20+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-04-01 0:04 Item task_id not being used in taskjuggler export John Hendy 2013-04-01 0:16 ` John Hendy 2013-04-01 0:44 ` John Hendy 2013-04-01 14:21 ` Nicolas Goaziou 2013-04-01 14:53 ` John Hendy 2013-04-01 15:20 ` Nicolas Goaziou 2013-04-01 16:00 ` John Hendy 2013-04-01 16:38 ` Nicolas Goaziou 2013-04-01 16:57 ` John Hendy 2013-04-01 17:05 ` Nicolas Goaziou 2013-04-02 3:27 ` John Hendy 2013-04-01 20:56 ` Item task_id not being used in taskjuggler export & tj prefixing Buddy Butterfly 2013-04-01 20:59 ` Buddy Butterfly 2013-04-01 21:53 ` John Hendy 2013-04-01 22:01 ` Nicolas Goaziou 2013-04-02 3:24 ` John Hendy 2013-04-25 7:52 ` Christian Egli 2013-04-04 13:59 ` Buddy Butterfly 2013-04-24 20:09 ` Christian Egli 2013-04-24 19:51 ` Christian Egli
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).