2.34.2
======
July 29, 2021
- Improved usage (--help) text
- Issue gwen-interpreter/gwen-web#79: resolve attributes in examples tables
- Fix parallel scenario-level execution for Gherkin's spoken languages/dialects

2.34.1
======
July 31, 2021
- Default `gwen.rp.send.annotations` setting to false

2.34.0
======
July 7, 2021
- Add new DSLs to support invoking system processes with quoted strings and other special cases
  - I execute system process "<process>" delimited by "<delimiter>"
  - I execute a unix system process "<process>" delimited by "<delimiter>"
  - <attribute> <is|will be> defined by system process "<process>" delimited by "<delimiter>"
- Support passing DocStrings as parameters to StepDefs (addresses issue gwen-interpreter/gwen#60)
- Update scala from v2.13.3 to v2.13.6
- Update report portal client-java from v5.0.21 to v5.0.22
  - Long name trunctation fix

2.33.0
======
June 22, 2021
- Report portal integration release
- Add `nodePath` and `sourceRef` options to `gwen.rp.testCaseId.keys` setting to support
  generating test case ID's based on node path or source reference only.
June 7, 2021 - 2.33.0-rc-rp.2
- Fix name clash between parameters and attributes in interpolator
- Convert back slashes in sourceRef and nodePath to forward slashes on Windows
- Send sourceRef as item attribute in report portal if it is less than or equal to 128 
  characeters in length, otherwise append it to the item description instead.
- Enforce case sensitivity on all report portal setting names.
- Improved test case ID generation for nodePath+params mode:
  - Remove all keywords from node paths and use node names only
  - Remove table cooridnates and `Examples` keyword from expanded scenario names in outlines
  - Use single dimension occurrence in node path of ForEach, While, and Until iterations
  - Pass cumulative parameters to report portal 
    - Incuding current parameters and all those previously visible in the call chain
- Remove node path logging on node descriptions
- Introduce new setting `gwen.rp.debug=true|false` to control whether or not
  to log debug messages containing the node path and parameters for all nodes
  in report portal. Default is false.
May 31, 2021 - 2.33.0-rc-rp.1
- Fix duplicate launch histories in RP for scenario outlines
- Send table row data associated with expanded scenarios of outlines to report portal as parameters
- Send all parameters passed to stepdefs to report portal as parameters
- Introduce node paths and use those in conjunction with parameters sent to report portal 
  to generate unique test case IDs (SHA 256 hashes) for all nodes in RP instead of relying on 
  the default auto generation based on line numbers in codeRefs. This ensures that history 
  in RP remains in tact for nodes if their line numbers change (as long as nodes are not 
  renamed and identically named sibling nodes are not deleted).
- Add new configuration settings to control how test case IDs are generated in report portal:
  - `gwen.rp.testCaseId.keys = nodePath+params | sourceRef+params | auto`
  - Default is `nodePath+params`
- Append source refs and node paths to descriptions of nodes in report portal
  - Do not send source refs as attributes 
  - This is to avoid 128 char limit on attributes in RP
- Remove support for @TestCaseId annotation which was previously implemented on an invalid assumption
- Drop column number from sourceRef string representation and codeRef sent to report portal
- Ensure attachments are still logged in report portal when step def reporting is disabled
- Drop Repeat prefix from While/Until keywords in reports
- Change `gwen.rp.send.tags` setting to only send marker tags if enabled (default is true: enabled)
- Add `gwen.rp.send.annotations` setting to send annotations if enabled (default is false: disabled)
- Add parameters passed to StepDef's, expanded outlines and for-each records to HTML report

2.32.0-beta-rp.10
=================
Apr 22, 2021 - 2.32.0-beta-rp.10
- Add RP hearteat timeout setting (default is 3 seconds):
  - `gwen.rp.heartbeat.timeoutSecs`
- Truncate RP item names greater than 1024 chars and add `... ` to end and log INFO message
- Log DocStrings and data tables as INFO messages in RP
- Changed RP heartbeat to use /health URL and check payload
- Added new setting `gwen.rp.send.markdownBlocks = true | false` (default is true)
  - When enabled, surrounds all markdown content with triple back ticks to force block style render
    and preserve original text as much as possible in report portal markdown view
  - When disabled, sends all content to report portal as is (unmodified for markdown)
- Removed setting `gwen.rp.escapeForMarkdown` (character level markdown escapes no longer supported)
Apr 20, 2021 - 2.31.1-beta-rp.9
- Replace double space with ` &nbsp;` when escaping for HTML
- Skip RP reporting for skipped features
- Add heartbeat to monitor RP connection during execution through setting:
  - `gwen.rp.hearbeat = true | false` default is `true`
    - If enabled, Gwen will check the report portal connection before the first step in each 
      scenario is executed and fail fast if it's gone offline
Apr 17, 2021 - 2.31.1-beta-rp.8
- Enrich assertion errors to include binding information
- Escape spaces and tildes in RP logs
- Add `gwen.rp.escapeForMarkdown` setting to control whether or not to escape for markdown in report portal
Apr 12, 2021 - 2.31.1-beta-rp.7
- Fix parameter interpolation involving if conditions
Apr 11, 2021 - 2.31.1-beta-rp.6
- Fix composite steps involving if conditions
- Add 1 ms delay to all lifecyce events to ensure millisecond timestamp accuracy for RP
Apr 7, 2021 - 2.31.1-beta-rp.5
- Add locator info to non interactable error
- Fix report portal markdown escaping to encode `<>*` characters only
- Fix sequence of skipped steps in report portal
- Introduce synthetic stepdefs for `if` and `repeat` steps for consistent structure
Mar 26, 2021 - 2.31.1-beta-rp.4
- Fix logging of steps with "if" conditions to report portal
- Update report portal library from v5.0.18 to v5.0.21
Mar 25, 2021 - 2.31.1-beta-rp.3
- Fix interrupted steps in report portal
- Fix screenshot attachemnts in HTML report
- Fix undefined step issue in report portal
Mar 20, 2021 - 2.31.1-beta-rp.2
- Fix report portal data table issues
- Setting for optionally sending tags to report portal
Feb 25, 2021 - 2.31.1-beta-rp.1
- Introduce report portal integration
  
2.32.1
======
May 4, 2021
- Do not allow nested if-conditions in composite steps (only trailing posiion permitted)
- Add screenshot and error details when while/until errors or times out

2.32.0
======
Apr 21, 2021
- Replace double space with ` &nbsp;` when escaping for HTML
- Add heath check hook into lifecycle events
- Enrich assertion errors to include binding information
- Introduce synthetic stepdefs for `if` and `repeat` steps for consistent structure
- Fix screenshot attachemnts in HTML report

2.31.1
======
Dec 4, 2020
- Optimisation: bypass masked settings lookups for non-masked cases

2.31.0
======
Dec 1, 2020
- Introduce masked settings to make all your private and sensitive settings appear 
  as `●●●●●` in all Gwen logs, reports, errors and console outputs
- Internal cleanup and Refactor
  - Improved Gwen Gherkin model
  - Add UUID to each node
  - Add uri and source reference to each node
  - Introduce lifecycle events and listeners

2.30.0
======
Oct 20, 2020
- Introduce @ForEach annotation to simplify looping over records in data tables

2.29.0
======
Oct 17, 2020
- Introduce shorter DSL literals for convenience
  - JavaScript DSLs accept `javascript` or `js` for short

2.28.1
======
Sep 27, 2020
- Update build tooling

2.28.0
======
Sep 26, 2020
- Added `gwen.parallel.maxThreads` to enable users to set the maximum number 
  number of threads used for parallel execution (default = total available CPU processors)
- Optimised parallel execution for both features and scenarios
- Update libarary dependencies
  - Update scala from 2.12.8 to 2.13.3
  - Update gherkin from 8.1.1 to 15.0.2
  - Update slf4j-log4j12 from 1.7.25 to 1.7.30
  - Update commons-codec from 1.12 to 1.15
  - Update commons-text from 1.6 to 1.9
  - Update scala-csv from 1.3.5 to 1.3.6
  - Update joda-time from 2.10.1 to 2.10.6
- Update build tooling
  - Migrate from SBT 0.13.17 to 1.3.4

2.27.3
======
Sep 19, 2020
- Use work-stealing thread pool for parallel execution to ensure that all available processors 
  are effectively utilised.

2.27.2
======
May 8, 2020
- Fix `empty.max` error in HTML report generator

2.27.1
======
May 1, 2020
- Fix loading of custom log4j configuration (issue #55)

2.27.0
======
March 28, 2020
- Treat universal `*` keyword as `And`

2.26.0
======
March 27, 2020
- I18n (issue #53): Add support for writing feature specs with Gherkin's spoken languages
- Add setting `gwen.feature.dialect`
  - Used to set the default dialect for Gherkin keywords in feature files and the REPL console 
    (so you don't have to set the # language header in every feature file). Default is `en`. 
    Dialects do not apply to meta files which must use English keywords only.

2.25.1
======
March 11, 2020
- Dry run fix for nexted foreach steps
- Fix ForEach label in reports

2.25.0
======
March 8, 2020
- Introduce behavior rules setting to enforce good Gherkin style
  - `gwen.behavior.rules=strict|lenient`
    - `strict`: The following rules are enforced in feature files with violations reported as errors:
      - Steps in scenarios and backgrounds must satisfy *Given-When-Then* order
      - *Given* steps must set context
      - *When* steps must perform actions
      - *Then* steps must perform assertions
      - *But* steps must perform assertions (and are permitted after *Then* steps)
    - `lenient`: no rules are enforced
    - Default is `lenient` for backwards compatiblity but plan is to change it 
      to `strict` in upcoming major (v3.0.0) release

2.24.0
======
January 29, 2020
- Add assocative meta setting:
  - `gwen.associative.meta=true|false` (default is false)
  - If enabled, then if a meta file has the same name (excluding file extension) and is 
    in the same location as a feature, then load that meta last for that feature only and skip over 
    all other meta in the path to the feature that is assocaited in same way to any other features. 
    This enables users to define meta that is bound to one feature only by defininig it in a meta 
    file in the same location as the feature and naming it with the same name as the feature but 
    with the .meta extension instead (handy for cases where a meta per feature is desirable).
  - This setting is only honoured if `gwen.auto.discover.meta` is enabled (which it is by default).

2.23.0
======
January 21, 2020
- Introduce "declarative" mode for features to prevent the user of imperative 
  steps in features. Controlled through mew Gwen setting
  - `gwen.feature.mode=declarative|imperative` (imperative is default)

2.22.2
======
November 28, 2019
- Calculate summary overhead to be the sum of all feature overheads

2.22.1
======
November 23, 2019
- Introduce state levels and parallel execution for scenarions in addition to features.
  State levels are configurable with the `gwen.state.level` setting which can be set to:
  - `feature`: to give each feature a state that is shared across scenarios (default)
  - `scenario`: to give each scenario a new state that is not shared across scenarios
- The `--parallel` option now runs:
  - features in parallel when configured state level is `feature`
  - scenarios in parallel when the configured state level is `scenario`
- Added `--parallel-features` command line option to force parallel feature execution
  regardless of state level
- Input CSV data records are now resolved to Backgrounds instead of top level Scenarios
  to support both feature and scenario level states

2.21.0
======
November 12, 2019
- Integated latest Gherkin 8.1.1 parser from Cucumber to support rules and 
  [example mapping](https://cucumber.io/blog/2015/12/08/example-mapping-introduction) 
   - `Rule` and `Example` keywords, synonyms, etc..

2.20.0
======
August 18, 2019
- Add support for interpolating environment variables using ${env.VARNAME} syntax

2.19.4
======
August 16, 2019
- Only log stack traces to console if DEBUG logging is enabled
- Allow up to 18 frames per second in slideshow playback (default is now 4 instead of 1)

2.19.3
======
July 29, 2019
- Ensure error attachments are always added to reports for failing steps

2.19.2
======
July 27, 2019
- Use sbt 0.13.17 for builds

2.19.1
======
March 28, 2019
- Resolve hostname in JUnit reports

2.19.0
======
March 24, 2019
- Introduce Disabled evaluation status to support conditionally disabling steps
- Upgrade library dependencies
  - scopt from 3.7.0 to 3.7.1
  - scala-logging from 3.9.0 to 3.9.2
  - commons-codec from 1.11 to 1.12
  - commons-text from 1.4 to 1.6
  - joda-time from 2.10 to 2.10.1

2.18.3
======
March 12, 2019
- Clear thread local settings before executing each feature
- Log non assertion exceptions as errors in console
- Update Scala from 2.12.7 to 2.12.8

2.18.2
======
February 17, 2019
- Fixed issue with `record.index`

2.18.1
======
February 17, 2019
- Honor hard, soft, and sustained assertion modes when processing data table records
- Add implicit `record.index` attribute to current data table record scope
  - `record.index` starts at 0 (whereas `record.number` starts at 1)

2.18.0
======
January 26, 2019
- Add support for hard, soft, and sustained [assertion modes](https://github.com/gwen-interpreter/gwen/wiki/Assertion-Modes)
  though new setting:
  - `gwen.assertion.mode`
    - Set to one of these values:
      - `hard` to halt execution on first assertion error and report failure (default)
      - `soft` to collect all assertion errors and continue execution whilst reporting them as failures
      - `sustained` to collect all assertion errors and continue execution without reporting them as failures

2.17.0
======
November 24, 2018
- Add global default and working Gwen properties. Properties are loaded in the following order of precedence:
  - System properties passed through `-D` Java command line option
  - `~/gwen.properties` file in root of user directory (user overrides)
  - Properties files passed into Gwen through the -p/--properties command line option
    - These are loaded in the order provided so that later ones override earlier ones
  - `./gwen.properties` file in working directory where Gwen is invoked (working defaults)
  - `~/.gwen/gwen.properties file` in `.gwen` folder of user home directory (global defaults)

2.16.3
======
November 17, 2018
- Add settings exception for raising invalid settings errors

2.16.2
======
October 6, 2018
- Use java futures instead of parallel collections to ensure that all cores are utilised at all times during parallel
  execution.
- Update scala from version 2.12.6 to 2.12.7

2.16.1
======
October 2, 2018
- Use `==` instead of `.equals` for string equality check in assertions (as per scala recommendation)

2.16.0
======
September 1, 2018
- Introduced @Synchronized annotation for StepDefs to support synchronized execution of certain steps.
  StepDefs having this annotation will have their steps executed by a single feature thread at a time in the case
  of parallel execution. This feature was requested through PR gwen-interpreter/gwen-web#63 raised by @rkevin99 and
  implemented in PR #42 in the core interpreter.
- Number all attachment items in reports

2.15.2
======
June 23, 2018
- Update scala from version 2.12.4 to 2.12.6
- Update gherkin from version 5.0.0 to 5.1.0
- Update scalaLogging from version 3.8.0 to 3.9.0
- Update jline from version 2.14.5 to 2.14.6
- Update commonsText from version 1.2 to 1.4
- Update jodaTime from version 2.9.9 to 2.10

2.15.1
======
June 19, 2018
- add tag filtering for Examples clauses

2.15.0
======
June 5, 2018
- Add support for loading settings from one comma separated setting and from many individual
  settings with arbitrarily named suffixes. If both forms are provided, then all values are merged.
  - For example, the following 3 settings..
      ```
      setting.values=value1,value2=2
      setting.values.0=value3
      setting.values.1=valueX=1,valueY=2
      ```
      ..will resolve to the following 4 values:
      - `value1`
      - `value2=2`
      - `value3`
      - `valueX=1,valueY=2`

2.14.0
======
May 13, 2018
- Add support for thread-local Gwen settings

2.13.2
======
May 9, 2018
- fix multi-valued settings

2.13.1
======
Apr 11, 2018
- trim extracted xpath nodes
- add some unit tests

2.13.0
======
Mar 24, 2018
- Contributions by @acuciureanu
  - PR #42 - Unit tests for SQL support
  - PR #43 - Refactoring of sbt build file
- Introduce [template matching](https://github.com/gwen-interpreter/gwen/wiki/Template-Matching)
  - The following DSL's where introduced
    - `<reference> <should|should not> match template "<expression>"`
    - `<reference> <should|should not> match template file "<filepath>"`
    - `<source> at <json path|xpath> "<path>" <should|should not> match template "<expression>"`
    - `<source> at <json path|xpath> "<path>" <should|should not> match template file "<filepath>"`
  - Template expressions may contain:
    - Extract attributes: `@{name}`
      - Extracts and binds the source value at `@{name}` in the template to the `name` attribute in the feature scope
    - Ignore values: `!{}`
      - Ignores the source value at `!{}` in the template
    - Inject values: `${name}`
      - Injects the value bound to the `name` attribute into `${name}` in the template

2.12.6
======
Mar 3, 2018
- Update library dependencies
  - scala-logging 3.7.2 to 3.8.0
  - commons-text 1.1 to 1.2
  - scalatest 3.0.4 to 3.0.5

2.12.5
======
Feb 24, 2018
- Fix issue gwen-interpreter/gwen-web#50 raised by @Rahul9844
  - Only log the visible environment bindings (global or global+scoped) on failure

2.12.4
======
Feb 5, 2008
- Fix StepDef parameter matching
- Fix issue gwen-interpreter/gwen-web#48 raised by @Rahul9844: report count is incorrect in case of scenario outline

2.12.3
======
Feb 2, 2018
- Fix issue with masking underlying errors

2.12.2
======
Jan 23, 2018
- Fix issue gwen-interpreter/gwen-web#46 raised by @Rahul9844: infinite recursion error when calling a step that
  - expects a data table with no data table followed by another call with a data table

2.12.1
======
Jan 22, 2018
- Improved error handling for Gherkin syntax errors
- Suppressed stack trace of errors handled by Gwen

2.12.0
======
Jan 15, 2018
- Add support for loading multi valued settings from single setting contain CSV or name-value pairs or multiple
  individual settings with the same prefixed and different suffixed name. If both forms are provided, then all values
  are merged.
  - Example:
    - CSV
        ```
        setting.values=value1=1,value2=2
        ```
    - Prefix + suffix
        ```
        setting.value3=3
        setting.value4=4
        ```

2.11.4
======
Jan 9, 2018
- Fix issue gwen-interpreter/gwen-web#45 raised by @ketu4u2010: Gwen fails to handle DSL keywords in string literals

2.11.3
======
Dec 23, 2017
- Fix issue #40 reopened by @Rahul9844: support empty StepDef params in any position

2.11.2
======
Dec 21, 2017
- Fix issue #40 raised by @Rahul9844: support empty StepDef params

2.11.1
======
Nov 4, 2017
- Update scala from 2.12.3 to 2.12.4
- Update gherkin from 4.1.3 to 5.0.0
- Update scopt from 3.6.0 to 3.7.0
- Update slf4j-log4j from 1.7.22 to 1.7.25
- Update scala-logging from 3.5.0 to 3.7.2
- Update jline from 2.14.2 to 2.14.5
- Update commons-codec from 1.10 to 1.11
- Update scala-csv from 1.3.4 to 1.3.5
- Update json-path from 2.2.0 to 2.4.0
- Update joda-time from 2.9.7 to 2.9.9

2.11.0
======
Sep 26, 2017
- <step> for each <entry> in <source> delimited by "<delimiter>"
   - Calls <step> for each string entry in <source> text delimited by some value
- Refactored attachments handling

2.10.1
======
Sep 21, 2017
- Improved error handling for @Examples tag

2.10.0
======
Sep 19, 2017
- Allow attributes in scoped data bindings to be overridden with blanks.
- Add new DSLs
  - I capture <attribute> by javascript "<expression>"
    - Eagerly captures the result of a javascript expression
  - <step> if <condition>
    - Calls <step> if a javascript predicate <condition> returns true (skips it otherwise)
  - Feature request #34 - SQL insert, update, and delete support
    - I update the <dbName> database by sql "<updateSmt>"
      - Runs an insert, update, or delete statement on a database
      - Number of rows affected accessible as attribute named '<dbName> rows affected'
- Make current record of data feeds available through 'data record number' attribute
- Make current record of for-each iteration available through '<element name> number' attribute
- Make current record of repeat-until iteration available through '<element name> iteration' attribute
- Fix error reporting for priority steps
- Better error reporting for
  - nested settings properties that fail to resolve at load time
  - javascript errors
- Implement #36 - access feature file name and scenario name
- Allow override when using the following DSL to set a property value:
  - my <name> <property|setting> <is|will be> "<value>"
- Add interpolation for filepath in @Examples tag

2.9.2
=====
Sep 1, 2017
- If no elements are found by for-each step, then set status to Passed instead of Skipped
  and display '-- none found --' in report line.

2.9.1
=====
Aug 31, 2017
- Allow dry run in REPL mode
- Check sql db properties on dry run
- ensure that repeat while/until steps fail correctly if the terminating condition is not satisfied before timeout
- Use filename as hyperlink in HTML report summary line if feature has no name

2.9.0
======
Aug 23, 2017
- Update Scala from 2.12.1 to 2.12.3
- Update Gherkin from 4.0.0 to 4.1.3
- Update Scopt from 3.5.0 to 3.6.0
- send errors to system error
- print REPL banner after meta load
- use warn log level for case where no features were provided
- Added support for binding SQL query using DocString syntax
  - <attribute> <is|will be> defined in the <dbName> database by sql
      """
      <selectStmt>
      """

2.8.0
=====
Jul 17, 2017
- Add support for DocStrings
- Evaluate all javascript expressions in anonymous function block and move to ScriptSupport class
- Add paste mode to REPL to support multiline step evaluation (steps with tables or docStrings)
- Add Gherkin language header to Gwen model

2.7.3
=====
Jul 11, 2017
- Fix fail handling where cause was not being reported correctly

2.7.2
=====
Jul 10, 2017
- Add syntax checking for DataTable tags
- Report error if Data Table tag is specified without StepDef tag
- Give steps that call other steps execution priority over all other steps or StepDefs that may have the same
  structure to ensure that they are evaluated and not raised as conflicts that require renaming.
- All data table cell references must be include data record index unless in foreach step

2.7.1
=====
Jul 8, 2017
- Renamed JS methods for consistency
- Changed dry run values for consistency

2.7.0
=====
Jul 7, 2017
- PR gwen-interpreter/gwen#32 - Add support for Gherkin data tables (horizontal, vertical, and matrix forms)
- Log the results of bound value lookups at debug level
- Refactor of code to make dry run more seamless

2.6.1
=====
Jun 27, 2017
- Correct id in example rows for scenario outlines in JSON reports
- Use StringEscapeUtils from Apache Commons to escape HTML, XML, and JSON in reports where necessary

2.6.0
=====
Jun 25, 2017
- Add cucumber compliant JSON output reports
  - json -f/--format option
  - evaluated scenario outlines are expanded in the report (and not expanded if not evaluated)
- Expand evaluated scenario outlines in JUnit-XML reports (and do not expanded if not evaluated)
- Capture location of all gherkin nodes instead of just steps only
- Add support for binding closure functions to data scopes

2.5.0
=====
Jun 9, 2017
- Make string interpolation work with multi-line strings (use DOTALL mode in regex matcher)
- Introduce Java Scripting API (JSR 223) to support JavaScript evaluation in non web engines
- Merge common steps into default engine support class so other engines can easily inherit them

2.4.1
=====
Jun 1, 2017
- Make env REPL output more compact and readable
- Remove json-play dependency

2.4.0
=====
May 30, 2017
- Enable cntl-d in REPL for exit (issue #31 raised by @asgillet)

2.3.1
=====
May 20, 2017
- Add findEntries function to scoped data stack to enable finding entries by predicate

2.3.0
=====
Apr 11, 2017
- Add cache in feature scope for storing temporary objects (non string values)
- Add support for sourcing examples tables from CSV files in scenario outlines
- Add settings for enabling or disabling auto meta and CSV data file discovery
  - gwen.auto.discover.meta (true to enable auto meta discovery, false to disable, default is true for enabled)
  - gwen.auto.discover.data.csv (true to enable auto CSV data discovery, false to disable, default is true for enabled)

2.2.1
=====
Mar 31, 2017
- Only generate slideshow in report if screen shot capture is enabled

2.2.0
=====
Mar 12, 2017
- Added support for scenario outlines (see PR #29)
  - You can use them inline or as StepDefs
  - Examples records in outlines are expanded into scenarios during the normalisation phase
  - Each example record is a hyperlink in the HTML report that expands the scenario when clicked
- Escape description lines in HTML report

2.1.0
=====
Feb 10, 2017
- Added support for binding SQL query results to attributes
- Introduced GWEN_CLASSPATH environment variable for adding external JARs to Gwen classpath

2.0.0
=====
Jan 20, 2017
- Update to Java 8 (Java 7 no longer supported)
- Update from Scala 2.11.8 to 2.12.1
- Updated following dependencies
  - json-play from 2.3.9 to 2.6.0-M1
  - scopt from 3.3.0 to 3.5.0
  - slf4j-log4j12 from 1.7.7 to 1.7.22
  - jline from 2.13 to 2.14.2
  - scala-csv from 1.2.2 to 1.3.4
  - scala-test from 2.2.4 to 3.0.1
- Added dependencies
  - joda-time 2.9.7
  - scala-logging 3.5.0
- Removed dependencies
  - scala-logging-slf4j 2.1.2
  
1.4.3
=====
Nov 24, 2016, 9:43 AM GMT+10 (AEDT)
- Fixed issue with junit reports that caused an exception to be thrown when
  the feature file being reported on is in the top level working directory.
- Move generic compare logic into core environment context
- Mix XPath, Regex, and JSON support into core environment context
    
1.4.2
=====
Oct 11, 2016, 9:16 PM GMT+10 (AEDT)
- Fixed play function in modal popup slideshow. Solution was to:
  - add `height="100%"` to the slideshow image tag
  - if the 1st frame is displayed then point the reel control to the last frame 
    and immediately back to 1st frame before triggering play

1.4.1
=====
Sep 14, 2016, 12:42 PM GMT+10 (AEST)
- Fix analytics and timings in reports
- Suppress hyperlink for 'Loaded' status in reports

1.4.0
=====
Sep 12, 2016, 10:37 PM GMT+10 (AEST)
- Include total elapsed time at the top of all reports
- Include start and finish times at the top of all reports
- Make failed status in detail report a hyperlink to first failed scenario
- Enhancement #26: meta imports 
  - to allow fine grained and explicit control over how meta is loaded
- Internally store tags in list instead of set
- Display elapsed time on report summary lines
- Do not auto discover CSV files below feature directory
- Do not treat embedded '+' literals in strings as concatenation operator
- Use flash scope to track changes made to global attributes in local scopes
- wrap long text in reports
- store atts as list of nvp tuples instaed of json
- update gherkin parser from v3.1.2 to v4.0.0
- improved stepdef lookup performance (use lazy iterator)

1.3.4
=====
Aug 17, 2016, 8:32 PM GMT+10 (AEST)
- Report ambiguous stepdef lookup errors instead of exiting interpreter
- Raise invalid property error if a property without a key is found in a 
  properties file

1.3.3
=====
Jul 22, 2016, 11:48 AM GMT+10 (AEST)
- Expose duration formatter in Predefs object
- Preserve order of fields when reading CSV data
- Do not evaluate StepDef if calling step fails interpolation

1.3.2
=====
Jul 18, 2016, 8:11 PM GMT+10 (AEST)
- Fix version hyperlink in report 
- Update scala version from 2.11.7 to 2.11.8

1.3.1
=====
Jul 15, 2016, 11:10 PM GMT+10 (AEST)
- Wrap list of meta that is displayed in HTML detail reports with a 
  collapsable container that is hidden by default and can be expanded when 
  user clicks the 'no of meta files' hyperlink.
- Link version number in report to release notes

1.3.0
=====
Jun 21, 2016, 7:09 PM GMT+10 (AEST)
- User request #21
  - Implemented ability to discover multiple meta files in directories
    instead of just one
- Fix issue #23 
  - Raise ambigious error if a step resolves to more than one StepDef at runtime
- Fix issue #24
  - Change stepdef parameter interpolation for dry run mode so that 
    `$<name>` becomes `$[param:name]` (otherwise it forever recurses)
- Implement enhancement #25
  - Add support for passing directories to the `-m/--meta` option instead of 
    just files. All meta files within a specified directory will be recursively 
    loaded.
    
1.2.1
=====
May 24, 2016, 7.23 PM GMT+10 (AEST)
- Issue gwen-interpreter/gwen-web#24 
    Fixed tag filtering to accept tagged features and scenarios that have at 
    least one specified include tag and exclude all specified exclude tags. The 
    specified include and exclude tags are now partitioned and evaluated 
    separately (as per above) instead of being logically ANDed together from 
    left to right.
- Only dump environment on failure when in batch mode

1.2.0
=====
Apr 12, 2016, 10.01 PM GMT+10 (AEST)
- Added JSON path matching support using library: https://github.com/jayway/JsonPath

1.1.2
=====
Mar 30, 2016, 1:23 AM GMT+11 (AEDT)
- Prefix all attachment filenames with the sequence counter number

1.1.1
=====
Mar 6, 2016, 10:08 PM GMT+11 (AEDT)
- Return exit code zero when exiting REPL if no feature or meta files 
  were passed in.

1.1.0
=====
Feb 29, 2016, 8:50 PM GMT+11 (AEDT)
- Added support for configuring a ramp up interval (in seconds) for 
  staggered parallel execution ~ for user request issue #18. The 
  interval can be set through the `gwen.rampup.interval.seconds` setting
  This setting is only applicable for parallel execution mode. If it is 
  not set or is set to zero, then no staggering will occur (as per default 
  behavior). 
- Added new `gwen.report.suppress.meta` setting for controlling whether or 
  not meta reports should be generated with HTML reports (default value is 
  false). If you have a lot of meta, suppressing the meta reports can 
  save a lot of disk space. Enabling this setting does not suppress the 
  hyperlinked stepdefs in feature reports (they will always be rendered).

1.0.3
=====
Feb 11, 2016, 11:33 PM GMT+11 (AEDT)
- Do not allow StepDef names to start with keywords Given, When, Then, And or But
  - throw error and immediately abort execution when not satisfied

1.0.2
=====
Feb 4, 2016, 2:10 AM GMT+11 (AEDT)
- Fixed #17 - Map null values in scoped attributes to None in getOpt calls
 
1.0.1
=====
Jan 26, 2016, 11:00 PM GMT+11 (AEDT)
- Resolved #15 - Use compact report attachment names

1.0.0
=====
Jan 19, 2016, 11:24 PM GMT+11 (AEDT)
First gwen release.
- Uses:
  - io.cucumber gherkin3 v3.1.2
  - com.typesafe.play play-json v2.3.9
  - com.github.scopt scopt v3.3.0
  - com.typesafe.scala-logging scala-logging-slf4j v2.1.2
  - org.slf4j slf4j-log4j12 v1.7.7
  - jline jline v2.13
  - commons-codec commons-codec v1.10
  - com.github.tototoshi scala-csv v1.2.2
- Requires:
  - Java 7+
- Introduces:
  - Abstract evaluation engine
  - REPL console with commands:
    - help
    - env -a|-f "filter"
    - history
    - !# (history bang operator)
    - Given|When|Then|And|But <step> (evaluates a step)
    - exit|quit|bye
    - <tab> (for tab completion)
  - Batch execution
  - Evaluation reports (Rich HTML and JUnit-XML)
  - Slideshows in reports
  - Data scopes (global, local, and user defined scopes)
  - Meta features
  - Composable step definitions (@StepDef) with parameters
  - Serial and parallel execution
  - Feature and scenario level tags (annoations)
  - Static validation (--dry-run)
  - Data driven execution (csv data feeds)
  - System process calls
  - Fail fast options
  - Hybrid engine support   
  - String interpolation
  - User level properties and meta overrides
  - @Ignore tag
  - Base64 encoding and decoding
  - XML matching using XPath expressions
  - Configuration settings:
    - gwen.feature.failfast
    - gwen.feature.failfast.exit
    - gwen.report.slideshow.framespersecond
    - gwen.report.overwrite
    - log4j.configuration
- Usage and options:
```
Usage: install-dir/bin/gwen.sh|gwen.bat [options] [<features>]

  [options]
  --version
        Prints the implementation version
  --help
        Prints this usage text
  -b | --batch
        Batch/server mode
  -| | --parallel
        Parallel batch execution mode)
  -p <properties files> | --properties <properties files>
        Comma separated list of properties file paths
  -r <report directory> | --report <report directory>
        Evaluation report output directory
  -f <formats> | --formats <formats>
        Comma separated list of report formats to produce
         - Supported formats include: html,junit (default is html)
  -t <tags> | --tags <tags>
        Comma separated list of @include or ~@exclude tags
  -n | --dry-run
        Do not evaluate steps on engine (validate for correctness only)
  -i <input data file> | --input-data <input data file>
        Input data (CSV file with column headers)
  -m <meta files> | --meta <meta files>
        Comma separated list of meta file paths

  [<features>]
       Space separated list of feature files and/or directory paths
```
