<commit_before># Change Log

This file documents all notable changes to Juttle. The release numbering uses [semantic versioning](http://semver.org).

## Unreleased Changes

### Major Changes
- Implemented a new API for adapters in which `read` and `write` now have a simpler contract that is more isolated from the internals of the runtime and can more easily support behaviors like periodically reading for pseudo-live streams. [[#248](https://github.com/juttle/juttle/pull/248)]

### Minor Changes

- Added support for the `-last` option to the emit proc and modified the stochastic adapter to require  one of `-from`, `-to`, or `-last`
[[#242](https://github.com/juttle/juttle/pull/242)]
- Create `http_server` adapter. [[#224](https://github.com/juttle/juttle/pull/224)]

### Bug Fixes

- Fixed `emit` to properly output ticks when there are gaps in the points. [[#248](https://github.com/juttle/juttle/pull/248)]

## 0.3.1

Released 2016-01-21

### Bug Fixes

- Use our own `node-grok` fork which uses `collections^2.0` to avoid buggy reimplementation of `Array.prototype.find` in earlier versions. [[#225](https://github.com/juttle/juttle/issues/225)]

## 0.3.0

Released 2016-01-20

### Major Changes

- Added support for points with array/object field values. [[#55](https://github.com/juttle/juttle/issues/55)]
- Added support for Grok parsing to `file` and `stdio` adapters (`-format "grok" -pattern ...`). [[#37](https://github.com/juttle/juttle/issues/37)]
- Adapters are now loaded only when they are used. [[#83](https://github.com/juttle/juttle/issues/83)]

### Minor Changes

- Added a `rootPath` option to `read http` which allows to specify which part of a JSON object should be used when emitting points. [[#146](https://github.com/juttle/juttle/issues/146)]
- Changed string representation of some Juttle values, most notably arrays and objects. [[#200](https://github.com/juttle/juttle/pull/200)]
- Improved error messages for `read` options with invalid values. [[#17](https://github.com/juttle/juttle/pull/17)]<commit_msg>CHANGELOG.md: Add 0.4.0 entries<commit_after># Change Log

This file documents all notable changes to Juttle. The release numbering uses [semantic versioning](http://semver.org).

## 0.4.0

### Major Changes

- Implemented a new API for adapters in which `read` and `write` now have a simpler contract that is more isolated from the internals of the runtime and can more easily support behaviors like periodically reading for pseudo-live streams. [[#248](https://github.com/juttle/juttle/pull/248)]
- Added the `http_server` adapter. [[#224](https://github.com/juttle/juttle/pull/224)]
- Added the `JSON` module. [[#209](https://github.com/juttle/juttle/pull/209)]

### Minor Changes

- Allowed more expressive filter expressions in `filter`. [[#57](https://github.com/juttle/juttle/issues/57)]
- Added support for the `-last` option to the `emit` proc and modified the `stochastic` adapter to require one of `-from`, `-to`, or `-last`.
[[#242](https://github.com/juttle/juttle/pull/242)]
- Added the `-format` option to `read http` and `write file`. [[#287](https://github.com/juttle/juttle/issues/287), [#125](https://github.com/juttle/juttle/issues/125)]
- Optimized `read ... | head ...` with `file`, `stdio`, and `http` adapters. [[#261](https://github.com/juttle/juttle/issues/261), [#267](https://github.com/juttle/juttle/pull/267), [#278](https://github.com/juttle/juttle/pull/278), [#279](https://github.com/juttle/juttle/pull/279)]
- Made `emit -points` not add the `time` field to points that don’t contain it already. [[#77](https://github.com/juttle/juttle/issues/77)]
- Made the `-points` option of `emit` mutually exclusive with `-from`, `-to`, `-last`, `-limit`, and `-every`. [[#274](https://github.com/juttle/juttle/pull/274)]
- Made the `node-grok` dependency optional. [[#290](https://github.com/juttle/juttle/pull/290)]
- Replaced JSHint + JSCS by ESLint and fixed various issues ESLint found. [[#202](https://github.com/juttle/juttle/issues/202)]
- Enforced single quotes for strings in the codebase. [[#238](https://github.com/juttle/juttle/pull/238)]
- Enabled strict mode for the whole codebase. [[#240](https://github.com/juttle/juttle/issues/240)]
- Improved `README.md`. [[#218](https://github.com/juttle/juttle/pull/218)]

### Bug Fixes

- Fixed a memory leak when reading JSON files. [[#258](https://github.com/juttle/juttle/issues/258)]
- Fixed sources to handle numeric time field as a Unix timestamp. [[#166](https://github.com/juttle/juttle/issues/166), [#243](https://github.com/juttle/juttle/issues/243)]
- Fixed `emit` to properly output ticks when there are gaps in the points. [[#248](https://github.com/juttle/juttle/pull/248)]
- Fixed a problem where some warnings were labeled as errors. [[#255](https://github.com/juttle/juttle/pull/255)]
- Fixed error message produced in cases like `read elastic [1, 2, 3]`. [[#217](https://github.com/juttle/juttle/pull/217)]
- Fixed documentation of `read` options. [[#291](https://github.com/juttle/juttle/pull/291)]

## 0.3.1

Released 2016-01-21

### Bug Fixes

- Use our own `node-grok` fork which uses `collections^2.0` to avoid buggy reimplementation of `Array.prototype.find` in earlier versions. [[#225](https://github.com/juttle/juttle/issues/225)]

## 0.3.0

Released 2016-01-20

### Major Changes

- Added support for points with array/object field values. [[#55](https://github.com/juttle/juttle/issues/55)]
- Added support for Grok parsing to `file` and `stdio` adapters (`-format "grok" -pattern ...`). [[#37](https://github.com/juttle/juttle/issues/37)]
- Adapters are now loaded only when they are used. [[#83](https://github.com/juttle/juttle/issues/83)]

### Minor Changes

- Added a `rootPath` option to `read http` which allows to specify which part of a JSON object should be used when emitting points. [[#146](https://github.com/juttle/juttle/issues/146)]
- Changed string representation of some Juttle values, most notably arrays and objects. [[#200](https://github.com/juttle/juttle/pull/200)]
- Improved error messages for `read` options with invalid values. [[#17](https://github.com/juttle/juttle/pull/17)]
{'fraction_non_alphanumeric': 0.16303994803507632, 'fraction_numerical': 0.047905164014290354, 'mean_word_length': 4.379039301310043, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 43, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2297899', 'n_tokens_mistral': 2261, 'n_tokens_neox': 1933, 'n_words': 594}