cylc/cylc — pull request #941 by benfitzpatrick (2014-04-16 13:29:50+00:00)
Title: #119: more backwards-compatibility

This adds better backwards-compatibility support so that we can
start using more of the existing test-battery:
* there is now auto-detection of old Cylc suite.rc cycling formats, so that
output should not change
* configurable `cycle point format` to support new cycling syntax with
old output format
* `tests/periodicals/*.t` now work except for `09-monthly-reorder.t`
* `start-up` tasks are now re-implemented as a hacky auto-transform of the
dependencies to use `R1` sequences - this is pretty fragile at the moment.
This works for the new `r1_multi_start_startup` test in `tests/cyclers`.
We will probably need similar functionality for handling async graph start
dependencies...

This also adds support for writing `foo[]` as shorthand for `foo at the initial cycle time`
in graph syntax, so that the following now works:
```
[[dependencies]]
[[[R1]]]
graph = start
[[[ R1/T0 ]]]
graph = start[] => foo
[[[R1/T04]]]
graph = start[] => bar
[[[ T00 ]]]
graph = foo
[[[ T04 ]]]
graph = bar
```

The start-up hacking is intended to take this in:
```
[[special tasks]]
start-up = cold_foo
[[dependencies]]
[[[ 0 ]]]
graph = cold_foo & foo[T-24] => foo
```
and effectively produce:
```
[[dependencies]]
[[[ R1 ]]]
graph = cold_foo
[[[ R1/T00 ]]]
graph = cold_foo[] => foo
[[[ T00 ]]]
graph = foo[T-24] => foo
```

@hjoliver, please review.

Tests that pass:
tests/cyclers/* (including 'yearly' as well as the two new ones)
tests/periodicals/* (except Monthly-reorder)