root:
             product   file:plan.py
             product   step:./plan.py

file:plan.py
               state = CONFIRMED
             creator   root:
                sink   step:./plan.py

step:./plan.py
               state = SUCCEEDED
                need = PLAN
           using_env = STEPUP_PATH_FILTER [dynamic]
             creator   root:
              source   file:plan.py
             product   file:work/generate.py
             product   step:./generate.py plan --step-info=../current_step_info.json  # wd=work
             product   step:cp -p work/test.csv work/copy.csv

file:work/generate.py
               state = CONFIRMED
             creator   step:./plan.py
                sink   step:./generate.py plan --step-info=../current_step_info.json  # wd=work
                sink   step:./generate.py run  # wd=work

step:./generate.py plan --step-info=../current_step_info.json  # wd=work
               state = SUCCEEDED
                need = PLAN
           using_env = STEPUP_PATH_FILTER [dynamic]
             creator   step:./plan.py
              source   file:work/generate.py
             product   file:current_step_info.json
             product   file:work/config.json
             product   step:./generate.py run  # wd=work
                sink   file:current_step_info.json

file:current_step_info.json
               state = BUILT
             creator   step:./generate.py plan --step-info=../current_step_info.json  # wd=work
              source   step:./generate.py plan --step-info=../current_step_info.json  # wd=work

step:cp -p work/test.csv work/copy.csv
               state = SUCCEEDED
                need = DEFAULT
             creator   step:./plan.py
              source   file:work/test.csv
             product   file:work/copy.csv
                sink   file:work/copy.csv

file:work/test.csv
               state = BUILT
             creator   step:./generate.py run  # wd=work
              source   step:./generate.py run  # wd=work
                sink   step:cp -p work/test.csv work/copy.csv

file:work/copy.csv
               state = BUILT
             creator   step:cp -p work/test.csv work/copy.csv
              source   step:cp -p work/test.csv work/copy.csv

file:work/config.json
               state = CONFIRMED
             creator   step:./generate.py plan --step-info=../current_step_info.json  # wd=work
                sink   step:./generate.py run  # wd=work

step:./generate.py run  # wd=work
               state = SUCCEEDED
                need = DEFAULT
           using_env = STEPUP_PATH_FILTER [dynamic]
             creator   step:./generate.py plan --step-info=../current_step_info.json  # wd=work
              source   file:work/config.json
              source   file:work/generate.py
             product   file:work/test.csv
                sink   file:work/test.csv
