#25 ✓resolved
bahuvrihi

Run should allow specification of basic workflow joins

Reported by bahuvrihi | 2008-04-29 11:01:39 UTC | in Tap-1.0.0

The run command syntax might be extended to include workflow joins like:

sequence

  # app.sequcence(a,b,c)

  % tap run -- a --= b --= c
  % tap run -- r1task --+ r2task --= r2sequenced -- r1task --= r1sequenced

fork

  # app.fork(src, *targets)

  % tap run -- src --[ target -- target -- target --]

merge

  # app.merge(target, *sources)

  % tap run -- --{ source -- source -- source --} target 

Comments and changes to this ticket

  • bahuvrihi

    bahuvrihi 2008-05-29 12:36:12 UTC

    See Basic Control Flow Patterns

    These five patterns are what should be included.

  • bahuvrihi

    bahuvrihi 2008-07-30 08:33:51 UTC

    • Tag set to “feature, tap”
    • Milestone changed from “Tap 0.10.0” to “Tap-1.0.0”
  • bahuvrihi

    bahuvrihi 2008-08-04 16:13:13 UTC

    Syntax brainstorm. The exclusive choice may be easy to implement in code but really cannot be done without a block in the command line.

    ===========
    
    ===========
    0. a --
    
    =========== 
    0. a --:1
    1. b --
    
    ===========
    0. a --[1,2]
    1. b --
    2. c --
    
    ===========
    0. a --[1,2]
    1. b --{3}
    2. c --{3}
    3. d
    
    ===========
    0. a --[1,2,3]
    1. b --{4}
    2. c --{4}
    3. d
    4. e
    
    ===========
    0. a --:1
    1. b --[2,3]
    2. c --{5}
    3. d --{5}
    4. e --{5}
    5. f --
    
    
    Numbers indicate which tasks to use.  For sequence, no number implies the next task.
    --: sequence 
    --[] parallell split/fork 
    --() synchronization/sync
    --x exclusive choice/... (omit)
    --{} simple merge/merge
    
  • bahuvrihi

    bahuvrihi 2008-08-04 16:54:21 UTC

    These can get put anywhere, say at the end, or in the middle if desired. First number is assumed to be the last task declared (ex, tasks.length-1). For sequence, the second number is assumbed to be the next task to be declared (ex, tasks.length). In the other cases, numbers must be specified explicitly.

    
    --1:2 sequence 1, 2
    --1[2,3] parallel split/fork 1 into 2, 3
    --1(2) synchronization/sync 1 into 2 (listed once for each merge)
    --x exclusive choice/... (omit)
    --1{2} simple merge/merge 1 into 2 (listed once for each merge)
    
    

    Variations:

    
      % tap run -- a --:1 b --[2,3] c --{5} d --{5} e --{5} f --
    
      % tap run -- a -- b -- c -- d -- e -- f --0:1 --1[2,3] --2{5} --3{5} --4{5}
    
  • bahuvrihi

    bahuvrihi 2008-08-04 17:22:39 UTC

    Keep in mind workflow tasks should not take inputs. Do something like:

    • parse for tasks, add to array
    • collect workflow breaks
    • construct workflow from breaks, pulling tasks out of the array as you go. raise error if any of the pulled tasks have inputs
    • enque remaining with inputs

    Any task can have configurations.

  • bahuvrihi

    bahuvrihi 2008-08-25 22:47:56 UTC

    • State changed from “new” to “resolved”
    • Assigned user set to “bahuvrihi”

    (from [41521cecf33c34a8b7f82fc04e90b7435ba8c1ee]) Added workflow syntax to run [#25 state:resolved responsible:bahuvrihi] http://github.com/bahuvrihi/tap/...

  • bahuvrihi

    bahuvrihi 2008-09-02 23:54:57 UTC

    (from [15f36dc701297bc033b7b79857bd210619ab7a3d]) Updated documentation for App. Added sync_merge and switch workflow patterns. [#25 state:resolved responsible:bahuvrihi] http://github.com/bahuvrihi/tap/...

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

A framework for making configurable, file-based tasks and workflows.

People watching this ticket

Tags

Referenced by

Pages