|
1 | 1 | # Release Notes # |
2 | 2 |
|
| 3 | +## 2.0.0 ## |
| 4 | + |
| 5 | + * This is a major release designed to open Tcases up to a much broader community of applications. The features included will be |
| 6 | + especially helpful for applications that use the Tcases API to embed Tcases capabilities into larger programs. |
| 7 | + Some changes are not compatible with previous releases -- details are listed in the **Compatibility** notes below. |
| 8 | + |
| 9 | + * :trophy: Major props go to [Thibault Kruse](https://github.com/tkruse), who proposed and contributed to all of the key features of this release. |
| 10 | + |
| 11 | + * **Reduced dependencies for `tcases-lib`** |
| 12 | + * Relocated Ant support to a new `tcases-ant` module |
| 13 | + * Relocated command line support from the `Tcases` class to a new `TcasesCommand` class |
| 14 | + * Removed direct dependency on `logback-classic` to allow different bindings for the `slf4j` API |
| 15 | + |
| 16 | + * **Expanded characters allowed in names and values** |
| 17 | + * Names for input model elements like `System`, `Function`, and `Var` can now contain any Unicode alphabetic character. |
| 18 | + (See [DefUtils.isIdentifier()](tcases-lib/src/main/java/org/cornutum/tcases/DefUtils.java#L22).) |
| 19 | + * Names for variable `Value` elements can now contain nearly any character -- only XML markup characters disallowed. |
| 20 | + Even empty strings are allowed. |
| 21 | + (See [DefUtils.isVarValue()](tcases-lib/src/main/java/org/cornutum/tcases/DefUtils.java#L56).) |
| 22 | + |
| 23 | + * **Property annotations**: The `Value` properties that characterize a test case can be useful metadata for further transformations of test case definitions. |
| 24 | + So Tcases now automatially attaches an output annotation named `properties` to each `TestCase`. |
| 25 | + |
| 26 | + * **"Not applicable" variables**: Tcases may designate a variable as ["not applicable"](http://www.cornutum.org/tcases/docs/Tcases-Guide.htm#varConditions) |
| 27 | + to a test case. But the way this was done was a bit of a hack. Previously, such variables would just be assigned a special value of `"NA"`. But |
| 28 | + what if `"NA"` actually means something different in your input domain ("North America", maybe)? You could have used it as a `Value` in your system input |
| 29 | + definition, and Tcases wouldn't complain. But when you looked at the resulting test cases generated by Tcases, you couldn't tell which `"NA"` |
| 30 | + meant "not applicable" and which meant "North America". Not cool! But this release fixes that problem. Now, you can use `"NA"` as a value however |
| 31 | + you like, and Tcases will use a different XML markup to show when a variable is "not applicable". This change will affect existing XML test case documents -- |
| 32 | + see the **Compatability** notes for details. This also changes how "not applicable" bindings are represented in the API. |
| 33 | + |
| 34 | + * **Compatibility**: The following changes are not backward compatible with previous releases. |
| 35 | + * Tcases API |
| 36 | + * The Tcases command line interface is now implemented by the `TcasesCommand` class. But programs using the Tcases API directly can continue |
| 37 | + to use the basic `Tcases` class. |
| 38 | + * Programs using `TcaseTask` API for Ant support must add a dependency on the `tcases-ant` module. |
| 39 | + * Programs that use the Tcases API must add a runtime dependency for some binding of the `slf4j` API. For equivalence with previous releases, |
| 40 | + add a dependency for `logback-classic`. |
| 41 | + * System test documents |
| 42 | + * To designate "not applicable" variables, replace all instances of `<Var name="..." value="NA"/>` with `<Var name="..." NA="true"/>`. |
| 43 | + Otherwise, for system test documents used to define base test case inputs, test cases containing `"NA"` values may not be |
| 44 | + preserved. |
| 45 | + |
3 | 46 | ## 1.5.4 ## |
4 | 47 |
|
5 | 48 | * Fixes the ```tcases``` and ```tcases-reducer``` commands to correctly support the ```-R``` option. |
|
0 commit comments