I've now ported a second workflow to ducttape—an amazing improvement!
However, I think I found a bug due to a decimal-valued parameter/branch point:
$ ducttape sst-lp.tape invalidate threshold WhichNu.0.1
ducttape 0.2.1
By Jonathan Clark
WARNING: Potential use of undefined variable: NUM_TYPES at task symmetrize
/share/mal2/nschneid/AQMAR/sstGraphs/sst-lp.tape:46
^
1 warnings
Have 25 previous workflow versions
No plans specified in workflow -- Using default one-off realization
plan: Each realization will have no more than 1 non-baseline branch
Finding tasks to be invalidated: threshold for realizations: Set(WhichNu.0.1)
Exception in thread "main" java.lang.RuntimeException: Realization
glob element must have exactly one dot to separate branch point and
branch: WhichNu.0.1
at ducttape.cli.RealizationGlob$$anonfun$2.apply(RealizationGlob.scala:25)
at ducttape.cli.RealizationGlob$$anonfun$2.apply(RealizationGlob.scala:22)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:34)
at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:33)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
at scala.collection.mutable.WrappedArray.map(WrappedArray.scala:33)
at ducttape.cli.RealizationGlob.<init>(RealizationGlob.scala:22)
at Ducttape$$anonfun$7.apply(ducttape.scala:357)
at Ducttape$$anonfun$7.apply(ducttape.scala:357)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:60)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
at scala.collection.mutable.ArrayBuffer.map(ArrayBuffer.scala:47)
at Ducttape$.getVictims$1(ducttape.scala:357)
at Ducttape$.invalidate$1(ducttape.scala:415)
at Ducttape$$anonfun$main$6.apply(ducttape.scala:494)
at ducttape.cli.ErrorUtils$.ex2err(ErrorUtils.scala:59)
at Ducttape$.main(ducttape.scala:478)
at Ducttape.main(ducttape.scala)
It would be nice to be able to invalidate all realizations of a given
task in one go. I can't tell if this is supported due to the above.
-Nathan
--------
Yep, that's a bug. Either: 1) You shouldn't have been able to declare
a branch containing a period or 2) the realization glob parser is
broken. I'll check and get back to you.
However, it *is* possible to do many realizations or even tasks in one
go: These are in fact globs -- just make sure to single quote any glob
characters. Example: ducttape workflow.tape invalidate
'my_fine_task_*' '*'
You can use both ? and * as in standard globs. For now, you could even
replace "." with "?" and probably achieve the same result even with
this bug in play.
-Jon
----
Have an issue ticket:
https://github.com/jhclark/ducttape/issues/135.
This will be fixed next time I push.
-Jon