docs-v2/content/flux/v0/release-notes.md

3611 lines
98 KiB
Markdown

---
title: Flux release notes
description: Important changes and and what's new in each version of Flux.
weight: 1
menu:
flux_v0_ref:
name: Release notes
aliases:
- /influxdb/v2/reference/release-notes/flux/
- /influxdb/cloud/reference/release-notes/flux/
---
## v0.195.1 {date="2024-06-11"}
- _Internal code cleanup._
---
## v0.195.0 {date="2024-06-11"}
### Features
- Return to internal string references.
- Allocate memory for string content.
### Bug fixes
- Join paths correctly in the `influxdb` source.
- Optimize string arrays.
### Dependency updates
- Update `github.com/benbjohnson/immutable`.
- Update `github.com/SAP/go-hdb`.
- Build on Rust 1.78.
---
## v0.194.5 {date="2023-11-22"}
### Bug fixes
- Resolve build error on Rust 1.72.0+.
---
## v0.194.4 {date="2023-10-25"}
- _Internal code cleanup._
---
## v0.194.3 {date="2023-05-26"}
- _Internal code cleanup._
---
## v0.194.3 {date="2023-05-26"}
### Bug fixes
- Make [`histogramQuantile()`](/flux/v0/stdlib/universe/histogramquantile/)
correctly handle cases of zero samples.
---
## v0.194.1 {date="2023-04-17"}
### Bug fixes
- Make C foreign function interface (FFI) more robust when checking for valid input.
---
## v0.194.0 {date="2023-04-06"}
### Features
- Add microsecond and nanosecond support to
[`iox.sqlInterval()`](/flux/v0/stdlib/experimental/iox/sqlinterval/).
### Bug fixes
- Fix panic caused by chunking outer joins.
- Remove 64bit reference counter misalignments.
---
## v0.193.0 {date="2023-02-23"}
### Features
- Add `onNonmonotonic` parameter to [`histogramQuantile()`](/flux/v0/stdlib/universe/histogramquantile/)
to define behavior when bin counts are not monotonically increasing.
- Add the following functions to the `contrib/qxip/hash` package:
- [`hash.sha1()`](/flux/v0/stdlib/contrib/qxip/hash/sha1/)
- [`hash.md5()`](/flux/v0/stdlib/contrib/qxip/hash/md5/)
- [`hash.b64()`](/flux/v0/stdlib/contrib/qxip/hash/b64/)
- [`hash.hmac()`](/flux/v0/stdlib/contrib/qxip/hash/hmac/)
### Bug fixes
- Convert platform-dependent path separators to slashes.
- `use-after-free` in optimized String array.
---
## v0.192.0 {date="2023-01-09"}
### Breaking changes
- Update iox.sql to detect midstream errors.
### Features
- Add [`geo.totalDistance()`](/flux/v0/stdlib/experimental/geo/totaldistance/)
to aggregate total distance of consecutive points.
- Add [`iox.sqlInterval()`](/flux/v0/stdlib/experimental/iox/sqlinterval/) to
convert Flux durations to SQL interval strings.
- Add the [`contrib/qxip/hash`](/flux/v0/stdlib/contrib/qxip/hash/) package
which includes hashing functions.
- Add the [`contrib/qxip/logql`](/flux/v0/stdlib/contrib/qxip/logql/) package
which provides functions for working with
[Grafana Loki](https://grafana.com/oss/loki/) and [LogQL](https://grafana.com/docs/loki/latest/logql/).
- Add [`contrib/qxip/clickhouse`](/flux/v0/stdlib/contrib/qxip/clickhouse/)
package which provides functions for querying data from
[Clickhouse](https://clickhouse.com/).
---
## v0.191.0 {date="2022-11-14"}
### Features
- Associate registry attributes to import statements.
---
## v0.190.0 {date="2022-11-09"}
### Features
- Add download headers within the CSV dialect.
---
## v0.189.0 {date="2022-11-02"}
### Features
- Add `PartialOrd` and `Ord` to `ast::Position`.
- Detect undesirable patterns so we can remove them later.
### Bug fixes
- Update attribute syntax to require following element.
- Add `salsaDatabase` to list of feature passed to Rust.
- `testing.ShouldError` should error when no error occurs.
- Restore termination defaults for `holtWinters` to improve performance.
- Use salsa db when generating documentation.
---
## v0.188.1 {date="2022-10-31"}
### Bug fixes
- Correctly handle join operations with large input that exceed the buffer size.
---
## v0.188.0 {date="2022-10-25"}
### Features
- Compile the standard library incrementally.
- Add attribute parsing to the parser.
### Bug fixes
- Allow functions receiving dynamic arguments to do member expressions.
---
## v0.187.0 {date="2022-10-17"}
### Features
- Add [`types.isNumeric()`](/flux/v0/stdlib/types/isnumeric/) to test for numeric values.
- Recommend valid arguments in extra argument errors.
- Add dynamic type support to standard type conversion functions.
### Bug fixes
- When using `experimental.unpivot()`, don't add the `_field` column to the
group key by default.
- Fix compilation error when using Rust 1.64.
---
## v0.186.0 {date="2022-10-11"}
### Features
- Add [`dynamic.isType()` function](/flux/v0/stdlib/experimental/dynamic/istype/).
- Add [`dynamic.asArray()` function](/flux/v0/stdlib/experimental/dynamic/asarray/).
- Add JSON functions that work with dynamic values:
- [`dynamic.jsonParse()`](/flux/v0/stdlib/experimental/dynamic/jsonparse/)
- [`dynamic.jsonEncode()`](/flux/v0/stdlib/experimental/dynamic/jsonencode/)
- Add runtime support for member expressions and remove index support for dynamic values.
- Add [`iox.sql()` function](/flux/v0/stdlib/experimental/iox/sql/).
### Bug fixes
- Update the `toUInt()` test to use the correct conversion behavior.
- Prevent the Flux formatter from losing precision on float values.
---
## v0.185.0 {date="2022-10-03"}
### Features
- Add dynamic type.
- Add dynamic wrapper function.
- Enable codespan formatting for errors via feature flags.
### Bug fixes
- Pass context in the `Run` source helper.
- Handle null vector inputs for `_vecFloat`.
- Remove broken `contrib` packages:
- contrib/jsternberg/aggregate
- contrib/jsternberg/math
---
## v0.184.2 {date="2022-09-26"}
### Bug fixes
- Remove the `stacker` dependency.
- Skip strict _null_ logical evaluator.
---
## v0.184.1 {date="2022-09-21"}
- _Internal code cleanup._
---
## v0.184.0 {date="2022-09-21"}
### Breaking changes
- Update logical _null_ handling and align all logical operator implementations
(vectorized, row-based, as well as "in the interpreter") to be consistent and
representative of the Flux SPEC.
### Features
- Add array type conversion functions to the
[experimental `array` package](/flux/v0/stdlib/experimental/array/).
### Bug fixes
- Update SPEC and fix some inconsistencies.
- Update `sort limit` to skips chunks with no rows.
- Don't report an error about testcases in the LSP.
- Prevent the metadata map from being concurrently mutated.
- Don't stackoverflow on deeply nested expressions.
---
## v0.183.0 {date="2022-09-12"}
### Features
- Add support for piped-forward arrays to [`array.from()`](/flux/v0/stdlib/array/from/).
- Add parameter to [`experimental.unpivot()`](/flux/v0/stdlib/experimental/unpivot/)
for non-field and non-group-key columns.
- Add a syntax for describing label literals.
- Don't display nulls as 0 in the output of `experimental.diff()`.
### Bug fixes
- Fix duplicate definitions and update issue links in the Flux SPEC.
- Don't include opening parentheses in invalid call expressions.
- Improve error message when joining with an empty table.
---
## v0.182.0 {date="2022-09-06"}
### Features
- Display yields in `fluxtest`.
- Allow [`experimental.unpivot()`](/flux/v0/stdlib/experimental/unpivot/) to
work when the `_time` column is missing.
- Add utility to the `function` package to register a source or transformation.
- Add Rust binary to sit on top of "headless" REPL backend.
### Bug fixes
- Correct type for `fillValueTime`.
- Correct panic in vectorized division by zero.
- Correct inconsistent runtime typing for `logicalVectorEvaluator`.
- Don't treat errors in SQL syntax as internal.
- Improve error handling when missing a property on member expressions.
- Preserve values of non-string group keys in `experimental.diff()`.
---
## v0.181.0 {date="2022-08-29"}
### Features
- Add "headless" JSON-RPC based REPL.
- Support vectorized unary operators.
- Add [`experimental/polyline` package](/flux/v0/stdlib/experimental/polyline)
for downsampling data.
- Update function library to have its own arguments struct.
### Bug fixes
- Update import path for the `Spec` package in the "headless" REPL.
- Update conditional vectorization to handle bad values for `test`,
`consequent`, or `alternate`.
---
## v0.180.1 {date="2022-08-22"}
- _Internal code cleanup._
---
## v0.180.0 {date="2022-08-22"}
### Features
- Rewrite calls to `float()` as `_vectorizedFloat()`.
- Reduce the Flux formatter default line length to 100 characters.
### Bug fixes
- Fix logic bug in planner helper method.
- Don't include null columns when unpivoting.
- Don't error when formatting boolean literals.
- Sort columns when printing group keys.
---
## v0.179.0 {date="2022-08-15"}
### Features
- Add a `Stringify` utility function for `table.Chunk`.
- Add support for vectorized binary equality operations.
- Update `testing.diff()` to use `experimental.diff()` permanently.
- Add vectorized `float()` builtin function.
- Enhance `fluxtest` to use package name with `test` and `skip` flags.
- Allow any kind of AST fragment to be formatted.
- Accept Flux feature flags to the test command.
### Bug fixes
- Update `testing.shouldError()` to use regular expression matching instead of string matching.
- Temporarily remove duplicates test to avoid conflicts downstream.
- Update `buildinfo` documnentation comments to match latest `go fmt`.
- Fix aggregate window rules that left query plans in a bad state.
- Include filename when printing the AST location.
---
## v0.178.0 {date="2022-08-09"}
### Features
- Support `apiKey` parameter in [`zenoss.event()`](/flux/v0/stdlib/contrib/bonitoo-io/zenoss/event/)
and [`zenoss.endpoint()`](/flux/v0/stdlib/contrib/bonitoo-io/zenoss/endpoint/).
- Remove `vectorizedConst` feature flag.
### Bug fixes
- Deprecate `date/boundaries` package in favor of [`experimental/date/boundaries`](/flux/v0/stdlib/experimental/date/boundaries/).
- Update pattern matching to specify successor counts.
- Restore integer return value for [`pagerduty.sendEvent()`](/flux/v0/stdlib/pagerduty/sendevent/).
---
## v0.177.1 {date="2022-08-08"}
### Bug fixes
- Update `strings.substring()` to check bounds using rune array instead of string length.
---
## v0.177.0 {date="2022-08-01"}
### Features
- Support conditional expressions in vectorized `map()`.
- Compute minimum required dispatcher concurrency from the plan graph.
- Add a query planner rule to remove redundant sort nodes.
### Bug fixes
- Guard message processing with mutexes.
- Update Flux REPL to use unique planner node IDs.
---
## v0.176.0 {date="2022-07-25"}
### Features
- Promote various feature-flagged features and optimizations to be used by default.
### Bug fixes
- Support the [`location` option](/flux/v0/stdlib/internal/location/#options)
in the [`boundaries` package](/flux/v0/stdlib/date/boundaries/).
- Pass epsilon value from Go tests to the Flux test framework.
- Ignore unknown messages rather than erroring.
---
## v0.175.0 {date="2022-07-19"}
### Features
- Update [`testing.diff()`](/flux/v0/stdlib/testing/diff/) to use
[`experimental.diff()`](/flux/v0/stdlib/experimental/diff/) as its base.
- Add a new diff implementation to the [experimental package](/flux/v0/stdlib/experimental/).
- Generalize attributes in the query planner.
- Add support for constants and literals in vectorized `map()`.
- Optimize the Holt Winters implementation by using the
[gonum Nelder-Mead optimization](https://github.com/gonum/gonum/blob/master/optimize/neldermead.go).
### Bug fixes
- When joining data, provide a default schema for unmatched group keys.
- Update the join package to be resilient to schema changes.
---
## v0.174.1 {date="2022-07-12"}
### Bug fixes
- Update [`aggregateWindow()`](/flux/v0/stdlib/universe/aggregatewindow/)
to correctly handle null values when using `sum` or `mean`.
- Update [`to()`](/flux/v0/stdlib/influxdata/influxdb/to/) and
[`wideTo()`](/flux/v0/stdlib/influxdata/influxdb/wideto/) to skip empty tag
values.
---
## v0.174.0 {date="2022-07-05"}
### Features
- Add coloring highlights to test outputs.
- Promote [`experimental.to()`](/flux/v0/stdlib/experimental/to/) to
[`influxdata.influxdb.wideTo()`](/flux/v0/stdlib/influxdata/influxdb/wideto/).
- Allow physical plan
[`attributes`](https://github.com/influxdata/flux/blob/master/plan/attributes.go)
to contribute to
[`formatter`](https://github.com/influxdata/flux/blob/master/plan/format.go)
details.
- Add tagging support to Flux tests.
- Add new function [`experimental.catch()`](/flux/v0/stdlib/experimental/catch/).
- Add new function [`testing.shouldError()`](/flux/v0.x/stdlib/testing/shoulderror/).
### Bug fixes
- Update `httpWriter` struct to skip invalid floats.
- Update [`join()`](/flux/v0/stdlib/join/) to validate group keys.
- Fix unit tests for [`covariance()`](/flux/v0/stdlib/universe/covariance/).
- Update all Flux packages to additionally live as Go packages.
---
## v0.173.0 {date="2022-06-29"}
### Breaking changes
- Format scripts with a trailing newline by default when running the formatter.
### Features
- Deprecate [`experimental.http.get`](/flux/v0/stdlib/experimental/http/get/).
- Deprecate [`experimental.csv.from()`](/flux/v0/stdlib/experimental/csv/from/).
- Promote the following functions from `experimental.array` into the
[`array`](/flux/v0/stdlib/array) package:
- [`array.concat()`](/flux/v0/stdlib/array/concat/)
- [`array.filter()`](/flux/v0/stdlib/array/filter/)
- [`array.map()`](/flux/v0/stdlib/array/map/)
- Promote the following functions from `experimental.http.requests` into the
[`http.requests`](/flux/v0/stdlib/http/requests/) package:
- [`http.requests.do()`](/flux/v0/stdlib/http/requests/do/)
- [`http.requests.get()`](/flux/v0/stdlib/http/requests/get/)
- [`http.requests.peek()`](/flux/v0/stdlib/http/requests/peek/)
- [`http.requests.post()`](/flux/v0/stdlib/http/requests/post/)
- Promote `experimental.bitwise` into the [`bitwise`](/flux/v0/stdlib/bitwise/)
package.
- Remove all `Test` statements. New statements are written with `TestCase`.
- Format scripts with a trailing newline by default when running the formatter.
### Bug fixes
- Return an error if the user modifies group key while using
[`join`](/flux/v0/stdlib/join/)
---
## v0.172.0 {date="2022-06-24"}
### Features
- Add multiple new join functions to the [`join`](/flux/v0/stdlib/join/)
package such as [`join.full()`](/flux/v0/stdlib/join/full/).
- Add [`initialZero`](/flux/v0/stdlib/universe/derivative/#initialzero)
parameter to the derivative function.
- Allow features to enable builtin statements.
- Provide the comments for each `Symbol` from `PackageExports`.
- Suggestions now start off by default and added a new flag.
- Add builtin function [`time`](/flux/v0/stdlib/date/time/) to the `date`
package to convert any timeable into datetime.
- Allow vector types to be specified in Flux source.
### Bug fixes
- Replace extra boolean parameter for suggestions with Flux REPL options.
- Remove [`testing.load()`](/flux/v0/stdlib/testing/load/)
from [`testutil.yield()`](/flux/v0/stdlib/internal/testutil/yield/).
- Fix a bug in how sort nodes are created for a new join.
- Removed extra indentation for test cases.
- Retain the package for identifier referencing the prelude.
- Only return an error in tests if an assertion fails.
- Fix [`findColumn()`](/flux/v0/stdlib/universe/findcolumn/)
to handle multi-buffer tables.
- Point to the function being piped to on argument mismatches.
- Visit successors before continuing DFS on node.
---
## v0.171.0 {date="2022-06-14"}
### Breaking changes
- Remove `testing.loadStorage()`.
### Features
- Add `FromStr` to allow the Flux LSP (language server protocol) CLI to run with
optional Flux features.
- Add method to parallelize aggregate transformations.
- Report unused symbols.
- Add `From` implementations for `Node/NodeMut`.
### Bug fixes
- Pass a seed to the tables generator.
- Ensure buffers are retained when copying a buffered table.
- Return an error when using a label variable without the Label constraint.
---
## v0.170.1 {date="2022-06-06"}
### Bug fixes
- Require an earlier minimum version of `lsp-types`.
---
## v0.170.0 {date="2022-06-02"}
### Features
- Add a `pretty.rs`-based MonoType formatter.
### Bug fixes
- Update vectorized `map()` to properly handle shadowed columns.
---
## v0.169.0 {date="2022-05-31"}
### Features
- Add a `_status` tag to PagerDuty records.
- Refactor the operator profile to be in the query statistics.
### Bug fixes
- Ensure that constraints are checked and propagated fully.
- Fix math for integral with a single value.
- Add `json` tags for the transport profiles in statistics.
- Initialize `Metadata` in Flux statistics.
- Return a more helpful error message when an HTTP response body exceeds 100MB.
- Correct several issues found during the implementation of polymorphic labels.
---
## v0.168.0 {date="2022-05-23"}
### Features
- Enable [`movingAverage()`](/flux/v0/stdlib/universe/movingaverage/) and
[`cumulativeSum()`](/flux/v0/stdlib/universe/cumulativesum/) optimizations
by default.
- Vectorize logical operations in [`map()`](/flux/v0/stdlib/universe/map/).
- Add a planner rule that expands logical join nodes.
- Added timezone support to [`hourSelection()`](/flux/v0/stdlib/universe/hourselection/).
### Bug fixes
- Attach type when constructing logical expressions.
- Fix panic with half-diamond logical plan.
---
## v0.167.0 {date="2022-05-16"}
### Features
- Allow default types to be specified for default arguments.
- Add [`date.scale()`](/flux/v0/stdlib/date/scale/) to allow for dynamic duration changes.
- Expose aggregate window spec fields for use by the query planner.
- Add [`experimental.preview()`](/flux/v0/stdlib/experimental/preview/).
### Bug fixes
- Update `date.add()` and `date.sub()` to work correctly with timezones enabled.
- Fix failing continuous integration tests.
- Update `hourSelection()` to support overnight time ranges.
- Fix logic error in aggregate window planner rule preserve the rule if
`table.fill` is present.
- Use `MultiplicativeOperator` in `MultiplicativeExpression`.
---
## v0.166.0 {date="2022-05-09"}
### Features
- Add InfluxData semantic commit and pull request title validator.
- Add an `Expr` node to the visitor API.
- Add label polymorphism.
- Vectorize remaining arithmetic operators.
### Bug fixes
- Remove `JoinOpSpec.TableNames` in favor of `JoinOpSpec.params` to stay
consistent inside `tableFind()`.
- Fix `SortLimit` for empty input group.
---
## v0.165.0 {date="2022-04-25"}
### Features
- Add support for options in the `testcase` extension.
- Vectorize addition operations in `map()`.
- Add location support to `date.truncate()`.
- Accept string literals in properties of a record type.
- Add trace option to the `flux` CLI.
- Add `EquiJoinPredicateRule`.
### Bug fixes
- Update `map()` test case to include a range.
- Don't set `BaseLocation.file` to `Some("")`.
- Fix `strings.joinStr` panic when it receives a null value.
- Remove 64bit misalignment.
- Fix memory releases and add checked allocator to the end of tests.
---
## v0.164.1 {date="2022-04-18"}
### Bug fixes
- Remove an extraneous `go generate` statement.
---
## v0.164.0 {date="2022-04-13"}
### Features
- Allow Go to pass compilation options to Rust.
### Bug fixes
- Do not assume integers are 64bit integers.
- Update `prometheus.scrape` type signature to correctly return a stream.
---
## v0.163.0 {date="2022-04-07"}
### Features
- Report skipped tests.
### Bug fixes
- Update transformation transport adapter to always invoke `finish`.
- Add support for "soft paragraphs" (paragraphs that contain single newline
characters) in inline Flux documentation.
---
## v0.162.0 {date="2022-04-05"}
### Features
- Add [OpenTracing spans](https://opentracing.io/docs/overview/spans/) to the Flux runtime.
- Add the `cffi` feature to reduce WASM binary size.
- Replace the main `flux` CLI with a new `flux` CLI that starts a Flux REPL by
default or executes a Flux script via stdin.
- Track freed memory with `SetFinalizer`.
- Move [`addDuration()`](/flux/v0/stdlib/date/add/) and
[`subDuration()`](/flux/v0/stdlib/date/sub/) from the `experimental`
package to the `date` package.
### Bug fixes
- Improve error messages for column conflicts in pivot operations.
- Create OpenTracing spans for transformations using the proper context.
- Add errors to OpenTracing spans created for transformations.
- Restore required features hidden behind the `cffi` feature.
---
## v0.161.0 {date="2022-03-24"}
### Features
- Re-enable the dialer pool and update dependency injection.
### Bug fixes
- Check length boundary for lower bound of [`strings.substring()`](/flux/v0/stdlib/strings/substring/).
---
## v0.160.0 {date="2022-03-22"}
### Features
- Remove the `concurrencyLimit` feature flag and keep it in the dependencies.
- Add MQTT Docker integration test.
- Enable dialer pool.
- Add an IOx-specific unpivot function to the `internal` package.
### Bug fixes
- Update [`join()`](/flux/v0/stdlib/universe/join/) to properly handle divergent schemas.
- Fix line endings in the `testcase` format to prevent unnecessarily nesting the
body of a test case.
- Make [`strings.substring()`](/flux/v0/stdlib/strings/substring/) check bounds correctly.
- Fix duration and integer literal scanning.
- Make `testcase` a semantic check instead of an error.
- Skip parallel merge when selecting the result name based on side effects.
- Add metadata headers to inline documentation.
---
## v0.159.0 {date="2022-03-14"}
### Features
- Added a `finish` state to parallel-merge and always protect with a mutex lock.
### Bug fixes
- Use a fork of the `gosnowflake` library to prevent file transfers.
- When encoding Flux types as JSON, encode dictionary types as JSON objects.
- Upgrade Apache Arrow to v7.
---
## v0.158.0 {date="2022-03-09"}
### Features
- Add inline documentation to the `universe` package.
- Factor parallel execution into the concurrency quota calculation.
### Bug fixes
- Add parallel merges with no successors to the results set.
- Correctly use range in an updated `map()` test.
---
## v0.157.0 {date="2022-03-03"}
### Features
- Update `fill()` to use narrow transformation.
- Add an attribute-based instantiation of parallel execution nodes.
- Expose the `Record::fields` iterator.
- Allow the `estimate_tdigest` method in `quantile()` to process any numeric value.
- Optimize `aggregateWindow()` for specific aggregate transformations.
### Bug fixes
- Update vectorized `map()` to handle missing columns.
- Remove duplicate line in `Makefile`.
- Fix `cargo doc` build errors.
- Reclassify CSV-decoding errors as user errors.
- Update `iox.from()` and `generate.from()` to use proper stream annotation.
---
## v0.156.0 {date="2022-02-22"}
### Features
- Add second pass to physical planner for parallelization rules.
- Separate streams from arrays in the type system.
- Add function to internal/debug to check feature flag values.
- Allow feature flags to record metrics if configured.
- Add extra verbose level to dump AST of test.
- Explain what `[A], [A:B]` etc means in errors.
### Bug fixes
- Make `buckets()` function return a stream.
- Remove unnecessary `TableObject` guards.
- Copy `TagColumns` in `to()` that may get modified into the transformation.
- Update tests to use explicit yields.
---
## v0.155.1 {date="2022-02-15"}
### Bug fixes
- Update tests to use an explicit yield.
---
## v0.155.0 {date="2022-02-14"}
### Features
- Add new [experimental array functions](/flux/v0/stdlib/experimental/array/)
for operating on arrays.
### Bug fixes
- Add `stop` parameter to [InfluxDB schema functions](/flux/v0/stdlib/influxdata/influxdb/schema/).
- Remove `os.Exit` calls and allow `defer executor.Close` to run.
- Properly handle time zone transitions when there is no daylight savings time
in the specified time zone.
---
## v0.154.0 {date="2022-02-09"}
### Features
- Add [`requests.peek()`](/flux/v0/stdlib/experimental/http/requests/peek/) to
return HTTP response data in a table.
- Add [`display()`](/flux/v0/stdlib/universe/display/) to represent any value as a string.
- Create a version of `map()` that is columnar and supports vectorization.
- Support vectorized functions.
### Bug fixes
- Add time vector to the `values` package.
- Set the correct type for vectorized functions.
---
## v0.153.0 {date="2022-02-07"}
### Features
- Connect language server protocol (LSP) features through the Flux crate.
- Add conversion from `flux.Bounds` to `plan/execute.Bounds`.
- Re-index all bound variables to start from 0.
### Bug fixes
- Int feature flags work properly when returned as floats.
---
## v0.152.0 {date="2022-01-31"}
### Features
- Add the [`experimental/http/requests` package](/flux/v0/stdlib/experimental/http/requests/)
to support generic HTTP requests.
- Add [`experimental/iox` package](/flux/v0/stdlib/experimental/iox/) and a
placeholder for the `iox.from()` function.
- Add dependency hooks to the dependency subsystem.
- Remove unneeded feature flags.
### Bug fixes
- Revert update to the dependencies package.
- Return false if contains gets invalid value.
---
## v0.151.1 {date="2022-01-24"}
### Features
- Update to Rust 1.58.1.
---
## v0.151.0 {date="2022-01-20"}
### Features
- Expose `MonoType::parameter` and `MonoType::field`.
### Bug fixes
- Support writing unsigned integers with the `http` provider.
---
## v0.150.1 {date="2022-01-19"}
### Bug fixes
- Remove duplicate `die` builtin in the `universe` package.
---
## v0.150.0 {date="2022-01-19"}
### Features
- Update inline documentation in the following packages:
- date
- experimental
- testing
- timezone
- types
### Bug fixes
- Make iterating the hashmap deterministic.
- Quote SQL identifiers to mitigate the risk of SQL injection.
---
## v0.149.0 {date="2022-01-12"}
### Features
- Add `Get` methods to `metadata`.
- Optimized `sort |> limit` operations.
- Add [`location` option](/flux/v0/stdlib/universe/#location) support to the `date` package.
- Use reference equality for `Symbol`.
- Add inline documentation to the following packages:
- socket
- sql
- strings
### Bug fixes
- Do not attempt IP validation for BigQuery data source names (DSNs).
---
## v0.148.0 {date="2022-01-10"}
### Features
- Report multiple errors from a single `unify` call.
- Update [`to`](/flux/v0/stdlib/influxdata/influxdb/to/) transformation to use
narrow transformation.
- Provide specific error information on function calls.
- Allow errors to be formatted via `codespan`.
- Add an `internal/debug.opaque` function.
- Provide which package exported a symbol.
- Add timeable support to [`experimental.addDuration()`](/flux/v0/stdlib/experimental/addduration/)
and [`experimental.subDuration()`](/flux/v0/stdlib/experimental/subduration/).
- Add inline documentation to the following packages:
- interpolate
- json
- kafka
- math
- regexp
- runtime
- sampledata
- slack
- system
- pagerduty
- profiler
- pushbullet
### Bug fixes
- Classify IP validation failures as `Invalid`.
- Relocate the mutex in the optimized union to avoid a data race.
- Split the entire pipe chain into multiple lines (if necessary).
---
## v0.147.0 {date="2021-12-14"}
### Features
- Optimize [`union()` transformation](/flux/v0/stdlib/universe/union/).
- Optimize [`timeShift()` transformation](/flux/v0/stdlib/universe/timeshift/).
- Add inline documentation to the following packages:
- experimental/prometheus
- experimental/query
- experimental/record
- experimental/table
- experimental/usage
### Bug fixes
- Add mutex to the optimized `union` transformation.
- Ensure arrays are not table streams before calling `Len()`.
- Disable flakey `geo.filterRows` tests.
---
## v0.146.0 {date="2021-12-13"}
### Features
- Update `pkg-config` to support `aarch64-apple-darwin`.
- Add inline documentation to the following packages:
- experimental/geo
- experimental/http
- experimental/influxdb
- experimental/json
- experimental/mqtt
- experimental/oee
### Bug fixes
- Update the default `epsilon` parameter for `testing.diff` to `0.000001`.
- Fix unsigned integer conversion tests to correctly use an defined conversion.
---
## v0.145.0 {date="2021-12-08"}
### Features
- Add inline documentation to the following packages:
- experimental/aggregate
- experimental/array
- experimental/bigtable
- experimental/bitwise
- experimental/csv
### Bug fixes
- Return an error from join operations if a column is not found in the schema.
---
## v0.144.0 {date="2021-12-06"}
### Features
- Add location and message methods to `semantic::Error`.
- Return multiple errors from conversions.
- Add a vectorized field to semantic graph, `FunctionExpr`.
### Bug fixes
- Set `GOPATH` in `Dockerfile_build`.
---
## v0.143.1 {date="2021-11-22"}
### Bug fixes
- Add targets to `rust-toolchain`.
---
## v0.143.0 {date="2021-11-22"}
### Breaking changes
- Add new parameters to [`difference()`](/flux/v0/stdlib/universe/difference/)
to ensure [`increase()`](/flux/v0/stdlib/universe/increase/) returns more accurate results on counter reset.
### Features
- Don't introduce constraints for default arguments.
- Make error messages more consistent.
- Use new versions of `sort()` and `derivative()` by default.
- Add inline documentation to the following packages:
- contrib/anaisdg/anomalydetection
- contrib/anaisdg/statsmodels
- contrib/bonitoo-io/victorops
- contrib/bonitoo-io/zenoss
- contrib/jsternberg/influxdb
- contrib/rhajek/bigpanda
- contrib/sranka/telegram
- experimental
### Bug fixes
- Validate examples in inline documentation as part of CI linting process.
- Correctly handle trailing dollar signs in string expression.
- Improve `fluxdoc` error messages.
- Fix panic when `length()` is given a stream of tables.
- Fix panic when `json.encode()` is given a stream of tables.
---
## v0.142.0 {date="2021-11-22"}
### Features
- Default to erroring dependencies
### Bug fixes
- Fix Queryd panic when using the `experimental/geo` package.
---
## v0.141.0 {date="2021-11-22"}
### Features
- Add `is_type` to query the runtime type.
- Add ability to read options from the `Context`.
- Ignore documentation for values prefixed with an underscore (`_`).
- Add inline documentation to the following packages:
- contrib/RohanSreerama5/naiveBayesClassifier
- contrib/bonitoo-io/alerta
- contrib/bonitoo-io/hex
- contrib/bonitoo-io/servicenow
- contrib/bonitoo-io/tickscript
- contrib/chobbs/discord
- contrib/jsternberg/rows/
- contrib/sranka/opsgenie
- contrib/sranka/sensu/
- contrib/sranka/teams
- contrib/sranka/webexteams
- contrib/tomhollingworth/events
- generate
- http
- influxdata/influxdb
- influxdata/influxdb/monitor
- influxdata/influxdb/sample
- influxdata/influxdb/schema
- influxdata/influxdb/secrets
- influxdata/influxdb/tasks
- influxdata/influxdb/v1
### Bug fixes
- Propagate the element type through array constructors.
- Catch unsupported input types in aggregate transformations.
- Support pipe parameters (`<-`) in `fluxdoc`.
- Fix documentation errors when running `cargo doc`.
- Reduce the amount of extra parse errors.
---
## v0.140.0 {date="2021-11-22"}
### Features
- Support reporting unlimited diagnostics.
- Support type inference running on invalid ASTs.
- Add erroring versions for each dependency.
- Report multiple errors from type inference.
- Add `fluxdoc` formatting documentation.
- Add inline documentation to the following packages:
- array
- csv
- dict
### Bug fixes
- Handle errors when executing inline examples.
- Convert fixed array to slice.
- Compare sorted join keys.
- Make multiline-formatting consistent.
- Fix invalid syntax formatting.
- Improve error checking for null and invalid types.
---
## v0.139.0 {date="2021-11-01"}
### Features
- Continue type inference through errors at runtime.
### Bug fixes
- Revert `runtime.now()` and related updates.
---
## v0.138.0 {date="2021-11-01"}
### Features
- Create a BigTable dependency to let Flux mimic or control BigTable API usage.
- Report multiple type inference errors.
- Add [bitwise operations](/flux/v0/stdlib/experimental/bitwise/).
### Bug fixes
- Update [`fill()`](/flux/v0/stdlib/universe/fill/) to return tables unchanged
when using `usePrevious` to fill a non-existent column.
- Add `runtime.now()` to return the same time throughout a script execution.
---
## v0.137.0 {date="2021-10-28"}
### Features
- Add support for [Vertica](https://www.vertica.com/) to the [`sql` package](/flux/v0/stdlib/sql/).
### Bug fixes
- Correctly handle HTTP errors from the InfluxDB writer.
---
## v0.136.0 {date="2021-10-25"}
### Features
- Enable executable examples to documentation generated by `fluxdoc`.
- Enforces IP validation and timeouts when using `mqtt`.
- Add an alternate `flux` CLI that starts the REPL if no argument is given.
- Update lint formatting.
- Add [`contrib/bonitoo-io/servicenow` package](/flux/v0/stdlib/contrib/bonitoo-io/servicenow/)
and support for [ServiceNow](https://servicenow.com/) events.
- Add `component` and `customDetails` parameters to [`pagerduty.sendEvent()`](/flux/v0/stdlib/pagerduty/sendevent/).
- Update the `fluxdoc` parser to capture more data.
- Create a formatter for semantic graph.
### Bug fixes
- Add `contrib/bonitoo-io/servicenow` to the list of `fluxdoc` exceptions.
- Disable write retries for the InfluxDB `http` provider.
---
## v0.135.1 {date="2021-10-18"}
### Features
- Add a disposable interface for transformations.
### Bug fixes
- Improve error message when regrouping is required in `map()`.
---
## v0.134.0 {date="2021-10-15"}
### Features
- Add short mode to `fluxdoc dump` command.
- Add Analyzer API to `libflux`.
- Add [`timezone` package](/flux/v0/stdlib/timezone/) with fixed offset location.
- Add [`record.get()` function](/flux/v0/stdlib/experimental/record/get/) to
dynamically retrieve record properties.
- Embed the compiled standard library instead of compiling at runtime.
### Bug fixes
- Create new annotations when group key columns change.
- Update [`prometheus.histogramQuantile()`](/flux/v0/stdlib/experimental/prometheus/histogramquantile/)
to support multiple histograms and metric format versions.
---
## v0.133.0 {date="2021-10-04"}
### Features
- Expose location functionality to [`window()`](/flux/v0/stdlib/universe/window/),
[`aggregateWindow()`](/flux/v0/stdlib/universe/aggregatewindow/), and
[`experimental.window()`](/flux/v0/stdlib/experimental/window/).
- Add location functionality to the `interval` package.
- Add methods to convert time values to and from local clock time.
- Add [`mqtt.publish()` function](/flux/v0/stdlib/experimental/mqtt/publish/).
- Add [`retain` parameter](/flux/v0/stdlib/experimental/mqtt/to/#retain) to
[`mqtt.to`](/flux/v0/stdlib/experimental/mqtt/to/).
### Bug fixes
- Add `range()` before `window()` to set query time bounds in tests.
- Use a new `Fresher` instance for each package.
---
## v0.132.0 {date="2021-09-28"}
### Features
- Copy location-related code from the Go `time` package.
- Create a `Vector` monotype.
- Refactor and optimize [`derivative()` transformation](/flux/v0/stdlib/universe/derivative/).
- Add new [InfluxDB sample datasets](/flux/v0/stdlib/influxdata/influxdb/sample/data/#available-influxdb-sample-datasets)
and [`sample.alignToNow()`](/flux/v0/stdlib/influxdata/influxdb/sample/aligntonow/).
- Allow query concurrency to be set to the number of nodes in the graph.
### Bug fixes
- Update null check with clear error message.
- Report errors from function parameters.
- Propagate all inferred properties to a function argument.
- Fix `Staticcheck` linter in `executetest`.
- Reformat non-formatted Flux files.
- Make builds reproducible by ordering package members in the `doc` package.
- Prevent the optimized `derivative()` from attempt to replicate a non-existent bug.
- Update [`events.duration()`](/flux/v0/stdlib/contrib/tomhollingworth/events/duration/)
to properly handle multiple buffers.
---
## v0.131.0 {date="2021-09-20"}
### Features
- Update `group` to use new `GroupTransformation` interface.
- Add [`experimental/record` package](/flux/v0/stdlib/experimental/record/).
- Embed compiled Flux standard library instead of compiling at runtime.
- Add [`contrib/bonitoo-io/hex` package](/flux/v0/stdlib/contrib/bonitoo-io/hex/)
to work with hexadecimal string values.
### Bug fixes
- Disallow setting [`allowAllFiles` parameter](https://github.com/go-sql-driver/mysql#allowallfiles)
in [MySQL DSNs](/flux/v0/query-data/sql/mysql/#mysql-data-source-name).
- Downgrade [Snowflake](/flux/v0/query-data/sql/snowflake/) version.
- Add _null_ support to optimized `repeat` function.
---
## v0.130.0 {date="2021-09-15"}
### Features
- Add narrow state transformation transport.
---
## v0.129.0 {date="2021-09-14"}
### Features
- Make `flux-dump-docs` use a nested documentation structure.
### Bug fixes
- Add `boolean` package to prelude.
- Delete obsolete Go formatter code.
- Fix `unknown type` panic when using `difference()`.
---
## v0.128.0 {date="2021-09-07"}
### Features
- Add [`sampledata` package](/flux/v0/stdlib/sampledata/) with basic sample datasets.
- Add `GroupTransformation` transport.
---
## v0.127.3 {date="2021-09-01"}
### Bug fixes
- Add `FormatDuration` method that can be exported in other repositories.
---
## v0.127.2 {date="2021-09-01"}
### Bug fixes
- Remove `flux wasm` crate and moved it to `lsp`.
- Delete obsolete packages.
- Add `_time` to status sorting.
- Fix panic with `unknown type invalid` in `reduce()` function.
---
## v0.127.1 {date="2021-08-30"}
### Bug fixes
- `limit()` correctly resets the offset after processing a partial buffer.
---
## v0.127.0 {date="2021-08-26"}
### Features
- Create an executable to retrieve all `stdlib` documentation and updated WASM functions.
- Implement `transport` in aggregate transformations.
- Add documentation site links and fix `flux_types` issue.
### Bug fixes
- `fill()` function fails when the specified fill column doesn't exist.
- Add `link` parameter to function structs.
---
## v0.126.0 {date="2021-08-19"}
### Features
- Update `filter()` to use narrow transformation.
### Bug fixes
- Return JSON for WASM.
- Check both dynamic types and static values in `strings` package.
- Check both dynamic types and static values in `regexp` package.
- Change `die` error code to invalid.
---
## v0.125.0 {date="2021-08-11"}
### Features
- Add feature flag library as an internal package.
- Add narrow transformation transport.
- Add transport-aware dataset.
- Simplify the transport interface and add a transformation adapter.
- Add [`contrib/sranka/webexteams` package](/flux/v0/stdlib/contrib/sranka/webexteams/).
- Add optimized repeat function for arrow arrays.
- Add two additional internal message types.
### Bug fixes
- Update transformation adapter to return an error when receiving a flush key
for a table that is not present.
- Fix pivot operations when no data is left to operate on.
- Update `join()` to produce columns of equivalent length when combining mismatched schemas.
## v0.124.0 {date="2021-08-03"}
### Features
- Update the string array builder to support constant data.
- Expand message interface with message lifetime controls.
- Create internal Flux array package.
### Bug fixes
- Register `sortedPivot` and update `sortedPivot` kind.
- Derive `Copy` on `ast::Position`.
- Update `to()` function to properly close the writer on error.
- Update `libflux` include paths to use `pkg-config`.
- Properly copy record types with no `extends` parameter.
---
## v0.123.0 {date="2021-07-19"}
### Breaking changes
- Remove the `sleep()` function.
### Features
- Optimize [`pivot()` transformation](/flux/v0/stdlib/universe/pivot/).
- Add [InfluxDB sample data package](/flux/v0/stdlib/influxdata/influxdb/sample/).
- Use `table.fill()` when `aggregateWindow(createEmpty: true)` is used.
---
## v0.122.0 {date="2021-07-13"}
### Features
- Add `--skip` flag to the `flux test` command to skip specific tests.
---
## v0.121.0 {date="2021-07-12"}
### Features
- Update [`experimental.to()`](/flux/v0/stdlib/experimental/to/)
to use the Flux `influxdb` provider.
---
## v0.120.1 {date="2021-07-06"}
- _Add inline Flux function documentation._
---
## v0.120.0 {date="2021-07-06"}
### Features
- Bootstrap documentation methods.
### Bug fixes
- Reverse [`math.atan2()`](/flux/v0/stdlib/math/atan2/) parameters.
- Fix documentation headers in `stdlib`.
- Distinct `testcase` should not use `testing.load()`.
- `movingAverage()` creates columns with the same length when `n` is the size of the input.
- Allow work queue to be resized when work exceeds queue length.
- `distinct()` appends null values without creating invalid tables.
---
## v0.119.1 {date="2021-06-29"}
- _Add inline Flux function documentation._
---
## v0.118.1 {date="2021-06-15"}
- _Internal code cleanup._
---
## v0.118.0 {date="2021-06-15"}
### Features
- Add `exclude` parameter to `pagerduty.dedupKey()`.
### Bug fixes
- Ensure PagerDuty tests include a `_value` column.
- Add length check to CSV annotation parsing.
- Change `FunctionLiteral` precedence to preserve parentheses.
---
## v0.117.3 {date="2021-06-07"}
- _Internal code cleanup._
---
## v0.117.2 {date="2021-06-07"}
### Bug fixes
- Remove `tabstop` processing from formatter.
- Support dividing IEEE float values by zero.
- Fix multiline collapse when formatting function parameters.
- Reclassify `map type` error as `user` error.
- Fix acceptance tests to catch different timestamps.
---
## v0.117.1 {date="2021-06-01"}
### Bug fixes
- Update `group_no_agg_table` acceptance test to run in a consistent order.
- Remove `xcc.sh` release dependency.
- Fix `staticcheck` linter failures.
- Replace erroneous line deletions.
---
## v0.117.0 {date="2021-05-24"}
### Features
- [`to()`](/flux/v0/stdlib/influxdata/influxdb/to/) function
writes to a remote InfluxDB instance.
### Bug fixes
- Fix unexpected behavior caused by going over the Go/Rust boundary multiple times using JSON serialization.
- Update `Assert_eq!` output.
- Update `comrak` dependency.
- Set `CARGO_HOME` after removing privileges.
- Log uneven columns found when processing tables.
- Audit and clean up the Docker build image.
- Switch default InfluxDB port from `9999` to `8086`.
- Add tests for window offset behavior.
- Update formatting for conditional expressions.
- Fix string interpolation for basic types.
---
## v0.116.0 {date="2021-05-17"}
### Features
- Add Jaeger tracing information to profile metadata.
- Add `flux fmt` step to the continuous integration pipeline.
- Update the `window` implementation to use `interval.Window`.
- Add [`today()` function](/flux/v0/stdlib/universe/today/).
### Bug fixes
- Remove deadlock when an error occurs while the dispatcher is stopping.
- Prevent errors caused by the the auto-formatter removing brackets around `if` expressions.
- Auto-format remaining Flux files.
---
## v0.115.0 {date="2021-05-11"}
### Features
- Add [Alerta notifications support](/flux/v0/stdlib/contrib/bonitoo-io/alerta/).
- Add [`table.fill()` function](/flux/v0/stdlib/experimental/table/fill/)
to fill empty tables with a single row.
- Add string formatting to `dict` type.
### Bug fixes
- Refactor semantic printing of types.
- Do not remove escape characters when auto-formatting.
- Add `0.0.0.0` to URL validator.
- Add new display API for values.
- Auto-format Flux files in `stdlib/testing`.
---
## v0.114.1 {date="2021-05-04"}
### Bug fixes
- Upgrade `mssqldb` dependency for Go 1.16.
- Format Flux files in `stdlib`.
---
## v0.114.0 {date="2021-05-03"}
### Features
- Add `debug.slurp()` and `debug.sink()`.
- Add [`experimental/influxdb`](/flux/v0/stdlib/experimental/influxdb/)
and [`experimental/usage`](/flux/v0/stdlib/experimental/usage/) packages.
- Add `fmt` subcommand to the `flux` CLI to apply formatting to Flux files.
### Bug fixes
- Format Flux files in `stdlib` and `stdlib/testing`.
- Update the macOS SDK for Go 1.16.
- Revert check for uneven columns.
- Wait for the dispatcher to finish before finishing query.
- Remove `codecov` job.
## v0.113.0 {date="2021-04-21"}
### Features
- Add ported table test.
- Create `astutil` package for AST utilities such as formatting.
### Bug fixes
- Update expected output for acceptance test `group_no_agg_table`.
---
## v0.112.1 {date="2021-04-12"}
### Bug fixes
- Add `Comment` fields to Go AST structs to preserve comments in the AST.
----
## v0.112.0 {date="2021-04-06"}
### Features
- Add [`testing.load`](/flux/v0/stdlib/testing/load/) for using raw tables in tests.
- Add remaining experimental built-in types without column parameters.
- Add [OEE (overall equipment effectiveness) package](/flux/v0/stdlib/experimental/oee/).
### Bug fixes
- Use new crate name in `buildinfo`.
- Add bounded time ranges to fix test cases.
- Move `derive` helper attribute after `derive` macro.
---
## v0.111.0 {date="2021-03-30"}
### Features
- Use `FnvHasher` for hash maps.
- Add [`tickscript` package](/flux/v0/stdlib/contrib/bonitoo-io/tickscript/).
### Bug fixes
- When finding the parent directory's root, skip the current directory.
- Fix `if else` statement in `aggregate.window()`.
---
## v0.109.1 {date="2021-03-24"}
### Bug fixes
- Perform testing checks as part of query `done`.
- Delimited multi-result encoder properly releases results before checking for errors.
---
## v0.109.0 {date="2021-03-23"}
### Features
- Add support for null values in string interpolation.
- Add support for all basic datatypes in string interpolation.
- Add support for parsing CSV files without annotations.
- Support formatting the AST from `libflux`.
### Bug fixes
- Add error handling for wrong number of fields for raw CSV.
- Change Rust version to be updated manually.
---
## v0.108.1 {date="2021-03-15"}
- _Internal code cleanup._
---
## v0.108.0 {date="2021-03-15"}
### Features
- Add [BigPanda notification support](/flux/v0/stdlib/contrib/rhajek/bigpanda/).
- Add [Zenoss notifications support](/flux/v0/stdlib/contrib/bonitoo-io/zenoss/).
- Add [VictorOps notifications support](/flux/v0/stdlib/contrib/bonitoo-io/victorops/).
### Bug fixes
- Classify "Option not found error" as internal.
- Remove `as_user` parameter from `slack.message` payload.
## v0.107.0 {date="2021-03-09"}
### Features
- Add new [`experimental.kaufmansAMA()` function](/flux/v0/stdlib/experimental/kaufmansama/) signature.
- Add new [experimental aggregate function](/flux/v0/stdlib/experimental/#experimental-functions) signatures.
- Add `extends` capability to `testcase` block to extend tests using a relative path to another file.
### Bug fixes
- Update CSV package to handle large files.
- Add tests and fix the `NoHeader` configuration for the `csv` decoder.
- Remove `interval` package and documentation.
- Disable line wrap linter.
- Fix typo in comment.
---
## v0.106.0 {date="2021-02-22"}
### Features
- Add new [experimental `integral()` function](/flux/v0/stdlib/experimental/integral/) signature.
- Add new [experimental `window()` function](/flux/v0/stdlib/experimental/window/) signature.
# Bug fixes
- Switch from `HashMap` to `BTreeMap` in the conversion functions from AST to semantic.
- Track and reduce memory used by `tdigest`.
- Detect and break infinite loops while parsing arrays.
---
## v0.105.0 {date="2021-02-03"}
### Features
- Add `interval` package to `window` transformation.
---
## v0.104.0 {date="2021-02-02"}
### Features
- Reintroduce `IsZero` method on time windows.
### Bug fixes
- Break parse loop when invalid array item is found.
---
## v0.103.0 {date="2021-02-01"}
### Features
- Add `testing/expect` package for test expectations.
### Bug fixes
- Change the default test discovery path from `./stdlib` to `.`.
---
## v0.102.0 {date="2021-01-25"}
### Features
- Add `fluxdoc` command to generate JSON and HTML from Flux source code.
- Improve performance of random access group lookup by utilizing `xxhash`.
- Improve performance for accessing data within a `Value`.
### Bug fixes
- Clean up `interval` package.
---
## v0.101.0 {date="2021-01-19"}
### Features
- Validate IP addresses from the dialer `Control` function.
- Expose `test` command to be used by external libraries.
---
## v0.100.0 {date="2021-01-07"}
### Features
- Add ability to execute tests from `.tar` and `.zip` archives.
### Bug fixes
- Fix endpoint examples in source code.
---
## v0.99.0 {date="2020-12-14"}
### Features
- Evaluate [dictionary literals](/flux/v0/spec/expressions/#dictionary-literals).
- Infer the type of dictionary literals.
- Parse and format dictionary literals.
- Add a pure Flux test runner.
### Bug fixes
- Ensure `csv.from()` only returns one result.
- Change `extern` parsing code to return a more descriptive error message.
- Do not allow containers within a record to be null.
- Retrieve `now` option before running a Flux script.
- Fix misspellings in the [Flux README](https://github.com/influxdata/flux/blob/master/README.md).
---
## v0.98.0 {date="2020-12-07"}
### Features
- Transform `testcase` AST into pure flux.
- Added Rust scanner.
### Bug fixes
- Substring method now works on more indices.
- Fix typos in `Dockerfile_build`.
---
## v0.97.0 {date="2020-12-01"}
### Features
- Add dict package for interacting with dictionaries.
- Added Ragel 7 to the Dockerfiles.
- Add support for `testcase` statement.
- Add Dictionary type syntax.
- Add Dictionary type unification rule.
---
## v0.96.0 {date="2020-11-23"}
### Features
- Create a Dictionary type interface and implementation.
- Add Dictionary type (dict) to the semantic flatbuffers.
---
## v0.95.0 {date="2020-11-16"}
### Features
- Use `tabwriter` to vertically align tab stops.
### Bug fixes
- Format types in error messages according to Flux grammar.
---
## v0.94.0 {date="2020-11-09"}
### Features
- Add "everything" Rust benchmark.
### Bug fixes
- Add multiline support to the Flux formatter.
- Format types using letters instead of numbers.
---
## v0.93.0 {date="2020-11-02"}
### Features
- Ensure query plan nodes have unique IDs.
---
## v0.92.0 {date="2020-10-30"}
### Features
- Add `fluxinit` package as an alternative to importing `builtin`.
- Add [series `cardinality()` function](/flux/v0/stdlib/influxdata/influxdb/cardinality/) to InfluxDB package.
### Bug fixes
- Do not panic when the value column for `pivot()` does not exist.
- Properly truncate timestamps to beginning of window bounds.
- Updates operator precedence in formatter.
- Do not panic when a string expression evaluates to _null_.
- Add support for multiline conditional logic.
---
## v0.91.0 {date="2020-10-26"}
### Features
- Aggregate results for `operator` profiler.
- Add contributed [`events` package](/flux/v0/stdlib/contrib/tomhollingworth/events/).
- Use `tableFind` and related functions with profiler results.
- Add duration support to [`orTime` parameter](/flux/v0/stdlib/influxdata/influxdb/tasks/lastsuccess/#ortime)
of `lastSuccess()`.
### Bug fixes
- Configure the profiler even if `operator` profiler is not enabled.
- Update formatter to handle newline characters in `write_string`.
- Make formatter use spaces instead of tabs.
- Update formatter double spacing rules.
- Add support for multiline type expressions.
- Update `influxdata/influxdb/tasks` package with new location of `execute` dependencies.
- Improve multiline and parentheses support in formatter.
---
## v0.90.0 {date="2020-10-19"}
### Features
- Add [Sensu package](/flux/v0/stdlib/contrib/sranka/sensu).
### Bug fixes
- Verify dependencies in `Dockerfile_build`.
- Fix panic in `experimental.join`.
---
## v0.89.0 {date="2020-10-12"}
### Features
- Add support for SAP HANA databases.
- Add support for comments preceding `builtin` statements in code formatting.
---
## v0.88.0 {date="2020-10-05"}
### Features
- Move functions from `v1` package to `schema` package.
### Bug fixes
- Fix field type error in test.
- Update buildinfo script to handle new and deleted files.
- Sets default quantile method when not specified.
- Improve security of Dockerfile for build scripts.
---
## v0.87.1 {date="2020-10-01"}
### Bug fixes
- Fetch ragel dependency over HTTPS.
- Ensure `ast.TextPart` is properly escaped when formatting.
- Elapsed with multiple buffers per table.
---
## v0.87.0 {date="2020-09-28"}
### Features
- Linear interpolation.
- Type signature for linear interpolate function.
### Bug fixes
- Fix compiler type inference with extended records.
- Colm Flux grammar updates: keywords, string interpolation, and UTF-8 IDs.
- Exponent operator have higher precedence.
---
## v0.86.0 {date="2020-09-21"}
### Features
- Add operator profiler.
- Add duration conversion.
- Add naive bayes classification.
### Bug fixes
- Reset pointer after scanning invalid Unicode.
- Catch references to non-existent columns.
- Propagate span context to `source.Run`.
---
## v0.85.0 {date="2020-09-14"}
### Features
- Add `Aggregate.window` for an alternative windowing aggregate.
### Bug fixes
- Remove months parameter.
---
## v0.84.0 {date="2020-09-09"}
### Breaking changes
- Remove time-column parameters from `range()` function and update type signature.
### Features
- Add [Opsgenie package](/flux/v0/stdlib/contrib/sranka/opsgenie/).
- Implement [`lastSuccess()`](/flux/v0/stdlib/influxdata/influxdb/tasks/lastsuccess/) in the `tasks` package.
- Support duration values in `aggregateWindow`.
- Update Apache Arrow to 1.0.1.
### Bug fixes
- Ensure meta columns are never part of group key.
---
## v0.83.1 {date="2020-09-02"}
### Bug fixes
- Single value integral interpolation.
---
## v0.83.0 {date="2020-09-01"}
### Features
- Improve window errors.
- Add [BigQuery](https://cloud.google.com/bigquery) support to
[`sql` package](/flux/v0/stdlib/sql/).
- Add `TypeExpression` to `BuiltinStmt` and fix tests.
- Add time-weighted average ([`timeWeightedAvg()` function](/flux/v0/stdlib/universe/timeweightedavg/)).
- Update [`integral()`](/flux/v0/stdlib/universe/integral/)
with linear interpolation.
- Make experimental tracing an attribute of the context.
### Bug fixes
- Update builtin statement for `integral()`.
- Add Rust JSON tests.
- CSV no longer deadlocks when next transformation does not consume table.
---
## v0.82.2 {date="2020-08-25"}
### Features
- Add [`tasks.lastSuccess` function](/flux/v0/stdlib/influxdata/influxdb/tasks/lastsuccess/)
to retrieve the time of the last successful run of an InfluxDB task.
---
## v0.82.1 {date="2020-08-25"}
- _Internal code cleanup._
---
## v0.82.0 {date="2020-08-24"}
### Features
- Add the [`profiler` package](/flux/v0/stdlib/profiler/).
- Add a documentation URL field to Flux errors.
- Check InfluxDB schema compatibility.
### Bug fixes
- Panic when a map object property contains an invalid type.
---
## v0.81.0 {date="2020-08-17"}
### Features
- Delete old parser.
- Add function to indicate duplicate option assignments.
### Bug fixes
- Calculate distinct key values.
- Handle pipe arguments inside of compiler.
---
## v0.80.0 {date="2020-08-12"}
### Features
- Add `nulls` parameter to `gen.tables()`.
### Bug fixes
- Revert the timeable constraint for integer.
- Make socket/sql URL test robust.
---
## v0.79.0 {date="2020-08-11"}
### Features
- Add `array.from()` function to convert Flux values into a table.
### Bug fixes
- Add bounds to Geo package end-to-end tests.
---
## v0.78.0 {date="2020-08-10"}
### Breaking changes
- Removed `correlationKey` parameter from `geo.toRows` and `geo.shapeData`.
### Features
- Add functions to convert semantic monotype to AST type.
- Add BigQuery support.
- Rust flatbuffer serialization for `MonoType` and `TypeExpression`.
- Extend with Geo package with GIS functions and
[unit support](/flux/v0/stdlib/experimental/geo/#distance-units).
### Bug fixes
- String interpolation in arrays.
---
## v0.77.1 {date="2020-08-03"}
### Bug fixes
- Write tests and fix issues with `rows.map`.
---
## v0.77.0 {date="2020-08-03"}
### Features
- Add a faster `map()` function _(user-contributed `/contrib/jsternberg/rows` package)_.
- Add an [`influxdb.select()` function](/flux/v0/stdlib/contrib/jsternberg/influxdb/select/) _(user-contributed)_.
- Flatbuffer deserialization for type expression AST nodes.
- Flatbuffer types for monotype and type expression AST nodes.
- Go AST nodes for type expression syntax.
- Get all options and properties.
- Add `parse_function` in `parser/mod.rs`.
- Add an alternative aggregate package to user-contributed packages.
### Bug fixes
- Fix string interpolation in arrays.
---
## v0.76.1 {date="2020-07-27"}
### Bug fixes
- Fix data race in metadata.
---
## v0.76.0 {date="2020-07-27"}
### Features
- Add query plan to query metadata.
---
## v0.75.0 {date="2020-07-27"}
### Features
- Update `parse_record` to return `MonoType` for consistent results from functions
used by `parse_monotype`.
- Internal command utility for comparing CSV tables.
- Update `mod.rs` with `parse_record`.
- Add planner tests for window min and max.
- CRUD options and properties.
- Update `mod.rs` with `parse_constraints`.
- Update `mod.rs` with `ArrayType` and add `Array` to the `Monotype` enumeration.
### Bug fixes
- Statuses are always sorted by source timestamp.
- Multiple `do` calls will fail with an empty table.
---
## v0.74.0 {date="2020-07-21"}
### Features
- Add `discord.endpoint()` function.
- Enhance the static table API.
- Update `mod.rs` with `parse_type_expression` and other supporting functions.
- Expose static table package and table diff functions.
- `Find_var_type()` API.
- Add `stringify` method for a table and a diff utility.
- Added range to end-to-end tests.
- Add types grammar to SPEC.
### Bug fixes
- Normalize Monotype.
---
## v0.73.0 {date="2020-07-13"}
### Features
- Add parameter for applying substitution to top-level environment.
- Add MergeFilterRule to `universe.filter`
### Bug fixes
- Use query strings instead of AST for remote InfluxDB queries.
This lets you query remote InfluxDB instances in the Flux REPL.
---
## v0.72.1 {date="2020-07-09"}
### Bug fixes
- Correctly classify "duplicate yield" error.
---
## v0.72.0 {date="2020-07-09"}
### Features
- Update `from()` to use `Timeable`.
### Bug fixes
- Fix appending an array of booleans with null values.
- Pass the context to the planner when using the table object compiler.
- Add `diff` output to release script on error.
- Appending empty tables to a buffered builder normalizes the schema.
- Remove `bad_sqlite_path1` test.
- Classify spec build errors as user errors.
- Verify index expression bounds in evaluation.
- Substitute array element types correctly.
---
## v0.71.1 {date="2020-07-03"}
### Bug fixes
- Add a check to ensure `every` is non-negative.
---
## v0.71.0 {date="2020-06-30"}
### Features
- Apply `Timeable` constraint to integer type to support integer values in
time-related function parameters.
- Implement schema mutation functions without performing any copies.
- Add [`http.pathEscape()` function](/flux/v0/stdlib/http/pathescape/).
---
## v0.70.0 {date="2020-06-29"}
### Features
- Update all `date` functions to accept time and duration types.
- Add [Microsoft Teams package](/flux/v0/stdlib/contrib/sranka/teams/).
- Evaluate and store `now` in execution dependencies for `tableFind()`.
- Add `Timeable` constraint for time and duration types.
- Add [SQL Server support](/flux/v0/stdlib/sql/from/#query-a-sql-server-database) to `sql` package.
- Add [Telegram package](/flux/v0/stdlib/contrib/sranka/telegram/).
- Add [Amazon Athena support](/flux/v0/stdlib/sql/from/#query-an-amazon-athena-database) to `sql` package.
- Add support for macOS builds.
### Bug fixes
- Move semantic analysis to the finalize step.
- Fix check for stream equality.
- Fix the compiler's return type when `with` operator is used.
- Include `stdlib` Flux dependencies from the Flux `build.rs`.
- Include a hash of the sources for `libflux`.
- Flux test for [experimental `json.parse()`](/flux/v0/stdlib/experimental/json/parse/).
- Reorder `go generate` call to `libflux` in `stdlib`.
---
## v0.69.2 {date="2020-06-10"}
### Bug fixes
- Include a hash of sources for `libflux`.
---
## v0.69.1 {date="2020-06-09"}
### Bug fixes
- Fix experimental `json.parse()` test.
---
## v0.69.0 {date="2020-06-08"}
### Features
- Add [Discord package](/flux/v0/stdlib/contrib/chobbs/discord/)
_(contributed by [@chobbs](https://github.com/chobbs))_.
- Add [`json.parse()` function](/flux/v0/stdlib/experimental/json/parse/).
### Bug fixes
- Adjust error handling in Flux `date` package.
---
## v0.68.0 {date="2020-05-28"}
This version of Flux introduces an updated type inference system that improves
performance, error messaging, and usability of the
[Flux Language Server Protocol (LSP)](https://github.com/influxdata/flux-lsp).
### Breaking Changes
- Change signature of `group()` function.
### Features
- Add [`fieldKeys()`](/flux/v0/stdlib/influxdata/influxdb/v1/fieldkeys/) and
[`measurementFieldKeys()`](/flux/v0/stdlib/influxdata/influxdb/v1/measurementfieldkeys/)
to v1 package.
- Add a context to `plantest.RuleTestCase`.
- Add Snowflake support to SQL package.
- Add [`experimental.chain()`](/flux/v0/stdlib/experimental/chain/) function.
- Add semantic nodes for bad statement and bad expression.
- Add [`findColumn()`](/flux/v0/stdlib/universe/findcolumn/)
and [`findRecord()`](/flux/v0/stdlib/universe/findrecord/) functions.
- Return `false` if `contains()` is called with an empty set.
- Various performance optimizations.
- Add a dynamically linked Valgrind test.
- Add location information to type error messages.
- Add all Linux cross-compilation tools to release Docker image.
- Support remote `buckets()` and `v1.databases()` calls.
- Add support for static linking.
- Add `influxdb` source.
- Add support for `pkg-config`.
- Transform semantic nodes back to AST nodes.
- Handle multi-file packages.
- Make `Eval()` and `EvalAST()` use libflux for parsing and analysis.
- Add `lookuptype` function for stdlib builtins.
### Bug Fixes
- Re-enable Clippy linter rule match single binding.
- Fix bug in object equal method.
- Add builtin formatting.
- Implement `TimeBounds` for `influxdb.fromRemote`.
- Inject the URL validator into `NewDefaultClient`.
- Fix race condition in the `filter()` function.
- Validate HTTP redirects against private IPs.
- Hide DNS information in HTTP.
- Fix concurrent map write in `filter()` transformation.
- Copy all fields of `WindowProcedureSpec` in `Copy()`.
- Run `go generate` on libflux when `go generate` is run on stdlib.
- Fix panic when `map()` overwrites group column.
- Support execution contexts in the REPL.
- Apply substitution fully when compiling lambda.
- Planner rewrite rules take a context.
- Fix panics when functions operate on null values.
- Fix logic for merging packages with no package clause.
- Compute function's return type after substitution.
- Resolve member expressions.
- Improve error message descriptions.
- Check types of parts when evaluating `StringExpression`.
- Bind appropriate interpreter when evaluating functions.
- Tweak Rust JSON serialization and add tests.
- Pivot sends update watermark and processing time exactly once.
- Calculate diff's watermark using both predecessors.
- Add length check to avoid allocs checking for JSON `null`.
- Make compilers robust to `null` keyword in `extern` field.
- Address issues in `RemoveTrivialFilterRule`.
- Bind appropriate interpreter when evaluating functions.
- Convert `HashMap` in semantic package to `BTreeMap`.
- Use static linking when creating the Valgrind test.
- Update `flatbuffers` dependency.
- Fix JSON serialization of Rust AST.
- Remove unused environment variables.
- Make `merge_packages` allow no package clauses.
- Do not call `CheckKind` when evaluating logical expressions.
- Force the Go libflux wrapper to rebuild using `go generate`.
- Adjust `test-bench` config for Circle CI.
- Fix Valgrind test code.
- Let Rust parser parse with file name.
- Remove Algorithm-W to-do list.
- `JoinStr` returns a string, not an empty record.
- Only add visible properties to output of `map()`.
- Serialize the correct sign duration literal.
- Remove code in semantic package that depends on Rust/Cgo code.
- Remove `component` field from API.
- Remove unused notification rule fields from Slack and PagerDuty APIs.
- Array builders accept array types as input.
- Enable `map()` tests with null values.
- Remove tests for marshalling semantic graph.
- Run `make generate` to generate stdlib.
- Fix type error in benchmark test.
- Update `TableObject` test.
- Do not call `LocalRange` on nil scope.
- Type assertion error in `length()` tests.
- Update type inference test case with test for `union()`.
- Make non-test CI steps pass.
- Fix semantic check for option reassignment.
- Type inference tests for binary comparison operators.
- Fix typo in builtins.
- Update `holtWinters()` to make `seasonality` optional.
- Fix type errors in tests.
- Remove default value from notify data.
- Allow options to be set in scope.
- Replace `ScopeComparer` with `ScopeTransformer`.
- Use `LocalRange` in compile tests.
- Add missing parameter to type of `to()`.
- Get `TableObject` test case to compile.
- Fix typo in test case.
- Update `TableObjects` to type `Array`.
- Use array type method correctly.
- Update schema mutators.
- Return proper types for type conversion functions.
- Enable complete package to compile and pass tests.
- Make stdlib compile.
- Expect monotypes for function values.
- Require successful lookup of stdlib builtins or panic.
- Optimize lookup function using hashmap.
- Include function type when deserializing function expressions.
---
## v0.67.0 {date="2020-04-28"}
### Features
- Planner Pattern interface supplies a set of ProcedureKind as root.
- Initial prototype of a table-based Flux.
- Evaluate and store "now" in execution dependencies for `tableFind()` to use.
- Static analysis tool for listing entry points to Flux.
- Pass context to rewrite rules in the planner.
### Bug fixes
- Pivot sends update watermark and processing time exactly once.
- `system.time()` checks context for override.
- Add bounds to alignTime tests.
---
## v0.66.1 {date="2020-04-14"}
### Bug fixes
- Add bounds to `alignTime()` tests.
---
## v0.66.0 {date="2020-04-13"}
### Features
- Add [`epsilon` parameter](/flux/v0/stdlib/testing/diff/#epsilon) to `testing.diff()`.
- Add [`experimental.alignTime()` function](/flux/v0/stdlib/experimental/aligntime/).
- Add random access group lookup.
- Add [Pushbullet package](/flux/v0/stdlib/pushbullet/).
- Add a helper for testing `execute.Source`.
### Bug fixes
- Use RandomAccessGroupLookup in `testing.diff()`.
- Address deleted state `GroupLookup`.
- Add test case for errors when AST is bad.
- Reduce memory usage during CI testing.
---
## v0.65.0 {date="2020-03-27"}
### Features
- Add [`experimental.join()`](/flux/v0/stdlib/experimental/join/) function.
- Store comments in the AST and preserve on format.
- Add [`shapeData()`](/flux/v0/stdlib/experimental/geo/shapedata/) function to Geo package.
- Expose format to Wasm users.
### Bug fixes
- Reimplement `stateChanges()` function.
- Remove the `set -x` in the xcc script.
- Publishes Flux as a public npm package.
- Pivot message passing.
---
## v0.64.0 {date="2020-03-11"}
### Features
- Hand-transpile `elapsed()` aggregate.
- Hand-transpile `cumulative_sum()`.
- Experimental `csv` package.
### Bug fixes
- Add response reader as dependency to tune response size.
- Handle unfinished option statement without panic.
- Simplify libflux C API and resolve memory leaks.
- Don't construct a `compiler.compilerScope` with a nil `value.Scope` as base.
- Influxql-decode to handle the case without tag set.
---
## v0.63.0 {date="2020-03-03"}
### Features
- Experimental `geo` package.
- Initial grammar for Flux and a partial grammar for InfluxQL.
---
## v0.62.0 {date="2020-02-28"}
### Features
- InfluxQL decode and series aggregation tests.
### Bug fixes
- Properly categorize parse errors as "invalid".
- Fail gracefully when `tableFind` does not have an execution context.
---
## v0.61.0 {date="2020-02-21"}
### Features
- Add experimental aggregate package with `rate()` function.
### Bug fixes
- Deserialize the default vector if array elements are null.
- Allow array and row types to be equatable.
---
## v0.60.0 {date="2020-02-19"}
### Features
- Add experimental `query` package.
- Create a Docker environment for Flux releases.
- Validate there are no free type variables in prelude/stdlib build.
- Add formatter library.
### Bug fixes
- `derivative()` works properly across multiple buffers.
- Fix free type variable found in `tripleExponentialDerivative()`.
- Update type of `window()` function.
- Freshen row types using deterministic property order.
- Libflux JSON deserialization uses type properly.
- Expose the builtin polytypes when analyzing a `stdlib` package.
- Deserialize call expressions when arguments are missing.
- Handled malformed data as well as EOF.
- Allow unsigned integers to be subtractable.
- Link both `libflux` and `liblibstd` for flux-config.
- Link `libstd` into the `lib` directory instead of `libflux`.
- Flux-config correctly copies `stdlib` when using a module.
- Add 169.254/16 range to URL validator.
- Update `uuid` library to improve security.
- Handle invalid string literals.
- Remove 'tags' line from local tags.
---
## v0.59.6 {date="2020-02-13"}
### Bug fixes
- `derivative()` works properly across multiple buffers.
---
## v0.59.5 {date="2020-01-24"}
### Bug fixes
- Revert window optimizations to fix regression in output row sorting.
---
## v0.59.4 {date="2020-01-21"}
### Bug fixes
- Remove `tags` line from local tags.
- Handle malformed data as well as EOF.
---
## v0.59.3 {date="2020-01-16"}
### Bug fixes
- Link both `libflux` and `libstd` for flux-config.
---
## v0.59.2 {date="2020-01-16"}
### Bug fixes
- Link `libstd` into the lib directory instead of `libflux`.
---
## v0.59.1 {date="2020-01-16"}
### Bug fixes
- Flux-config correctly copies `stdlib` when using a module.
- UUID security.
---
## v0.59.0 {date="2020-01-14"}
### Features
- Add Go/Rust API for getting semantic graph.
- Optimize `limit()` transformation.
- Optimize `group()` transformation.
### Bug fixes
- AST json serialization glitches.
- Better messaging for malformed CSV.
- Skip stdlib symlink was removed erroneously.
- Ensure stdlib directory is created.
- Correctly skip the stdlib symlink in libflux.
- Ensure that stdlib is present when building with flux-config.
---
## v0.58.4 {date="2020-01-07"}
### Bug fixes
- Skip stdlib symlink was removed erroneously.
---
## v0.58.3 {date="2020-01-07"}
### Bug fixes
- Ensure stdlib directory is created.
---
## v0.58.2 {date="2020-01-07"}
### Bug fixes
- Correctly skip the stdlib symlink in libflux.
---
## v0.58.1 {date="2020-01-07"}
### Bug fixes
- Ensure that stdlib is present when building with flux-config.
---
## v0.58.0 {date="2020-01-06"}
### Features
- Serialize semantic graph flatbuffers.
- Implement `onEmpty` parameter for `filter()`.
- Serialize Flux standard library types as part of build process.
- Add type declarations for universe.
- Methods for type checking package dependencies.
- Add type declarations for strings.
### Bug fixes
- Expose tracing flag.
- Update `count` builtin type.
- Update `experimental.set` builtin type.
- Update the type of `influxdb.to` to be a passthrough.
- Update `fill` builtin type.
- Remove redundant clones found by a new version of Clippy.
- Fix durations in Rust semantic graph.
- Removes unnecessary rc clone in semantic serializer.
- Do not stall forever in flux-config when an error happens with verbose.
- Update function block return statements to produce a stmt and not an expression.
- Fix token location for `scan_with_regex`.
- Cache environment variable for performance.
- Fix a couple errors in builtin types.
- Annotate variable assignment with polytype (not monotype).
---
## v0.57.0 {date="2019-12-10"}
### Features
- Categorize more Flux errors with codes.
- Teach flux-config how to download the sources when using vendor.
- Opentracing in query execution runtime.
- Reduce memory allocations for operations in values.
- Translate FlatBuffers semantic graph to Go.
- Add types for some universe builtins.
- Add type declarations for builtins.
- Add Numeric and Row kind constraints.
### Bug fixes
- Enable strict mode by default.
---
## v0.56.0 {date="2019-12-05"}
### Features
- Crate for typing Flux standard library.
- Serialize type environment.
- Improve filter performance when filtering on values.
- Update usage duration test to exclude queue and requeue time.
- Add types for some built-ins.
- Add `timeout` parameter to experimental `http.get()`.
### Bug fixes
- Properly use a fake version with `flux-config` when no version is present.
- Address Clippy lints.
- Add bytes monotype to Rust semantic module.
- Allow underscores (`_`) in type expressions.
---
## v0.55.1 {date="2019-12-02"}
### Bug fixes
- Fix e2e usage test so that their queries are properly pushed down.
---
## v0.55.0 {date="2019-12-02"}
### Breaking changes
- Expand the interface for `BufferedTable`.
### Features
- Expose optimized `pivot()` function.
- Create utility program for building `libflux`.
- Create a tool that measures performance of calling Rust from Go.
- Inject types in the semantic graph.
- MonoType and PolyType flatbuffer encodings.
- MonoType and PolyType flatbuffer schemas.
- Update Rust flatbuffers to more closely match Rust semantic graph.
- Flatbuffers AST to Go AST.
- Port immutable walk and fix mutable walk.
- Define the flatbuffers schema for semantic graph.
- Infer imported package types.
- Unify and infer function types.
- Add support for safely converting bytes to strings.
- Add sqlite3 support.
- Add internal table utility for streaming tables.
### Bug fixes
- Update semantic graph FlatBuffers schema for identifiers.
- Ignore order when comparing record types.
- Operands for `<=` and `>=` are comparable AND equatable.
- Constrain unary expressions to be same type as operand.
---
## v0.54.0 {date="2019-11-11"}
### Features
- Expose function to analyze from string.
- Added semantic expression constraints to libflux.
- Custom `PartialEq` for polytypes.
- Extensible record unification.
- `Semantic.Walk`.
### Bug fixes
- Do not constrain type variables with empty kinds.
- Update usage tests to filter on `_field`.
- Record labels are scoped and fields are ordered.
- Parse row variables.
- Update make release to confirm remote and local are in sync.
- Make `walk_rc` public.
---
## v0.53.0 {date="2019-11-05"}
### Breaking changes
- Interpret months as part of the semantic duration.
### Features
- Macros for type inference tests.
- Let-polymorphism with test example.
- Generalization, instantiation, and constraint solving.
- Type environment.
- Convert Rust AST to FlatBuffers format.
- Allow lexing and parsing of string polytypes according to polytype grammar rules.
- Add month support when adding durations to a time value.
- Interpret months as part of the semantic duration.
### Bug fixes
- Type variable constraints.
- Apply sub to both sides of constraint before unifying.
- Instantiate quantified vars, not free vars.
---
## v0.52.0 {date="2019-10-30"}
### Features
- `Visitor` uses `Rc` for nodes.
- Add `EvalOptions`.
### Bug fixes
- Correctly lex `µs`.
---
## v0.51.0 {date="2019-10-24"}
### Breaking changes
- Update the Flux SPEC to remove duration addition and subtraction.
- Turn duration value into a vector.
### Features
- Implementations for type substitutions and constraints.
- Add semantic analysis.
- Updated the duration value to include months and negative flag.
- Create a flatbuffers schema for AST.
- Add initial C binding for parsing an AST.
- Create a tool for updating `.flux` tests in-place.
- Add walk implementation.
- Turn duration value into a vector.
- Define initial Flux data types.
### Bug fixes
- Update libflux parser to match the Go parser.
- Allow data collected by `prometheus.scrape()` to be used by `histogramQuantile()`.
- Remove mock allocator.
- Validate URL for `sql.from()`, `sql.to()`, and `socket.from()`.
---
## v0.50.2 {date="2019-10-24"}
### Bug fixes
- Make `keep()` and `drop()` throw an error if merging tables with different schemas.
---
## v0.50.1 {date="2019-10-24"}
### Bug fixes
- Add annotated errors to the execute package where it affects normal usage.
- Reorder variables in the allocator for atomic operations.
---
## v0.50.0 {date="2019-10-11"}
### Features
- Add `experimental/prometheus` package.
- Add a memory manager to the memory allocator.
- Add an internal function for generating data.
- Switch to using discarding mode for transformations.
- Group key join on `_time`.
### Bug fixes
- Require `data` parameter in `monitor.check()`.
- Return the EOF error when reading metadata.
- Re-add missing import.
- Fix broken links in SPEC.
- Return error from cache.
- Update the `universe` package to use flux errors throughout.
- Parse escape characters in string interpolation expressions.
- Improve CSV error message for serialized Flux error.
- Have the interpreter return annotated Flux errors.
---
## v0.49.0 {date="2019-09-24"}
### Features
- Optimize `filter()` to pass through tables when possible.
- Additional arrow builder utilities.
- Add a `benchmark()` function to the testing package.
- Add an arrow backed version of the table buffer.
### Bug fixes
- Fix `sql.from()` connection leak.
- Fix some of the memory leaks within the standard library.
- Fix `mqtt.to()` topic parameter.
---
## v0.48.0 {date="2019-09-20"}
### Breaking changes
- Convert the Flux memory allocator into an arrow allocator.
### Features
- New dependency injection framework.
- Add planner options to Flux language.
- Make Flux `internal/promql/quantile` behavior match PromQL `quantile` aggregate.
### Bug fixes
- Passing context to WalkIR.
- Make `join()` reject input tables lacking `on` columns.
---
## v0.47.1 {date="2019-09-18"}
### Bug fixes
- Pass dependencies to WalkIR
---
## v0.47.0 {date="2019-09-13"}
### Bug fixes
- Introduce ParenExpression.
- Make fmt runs cargo fmt on Rust directories.
- Update `Hex.Dump` to `hex.EncodeToString`.
- Integrate the Promql transpiler into Flux.
---
## v0.46.2 {date="2019-09-12"}
### Bug fixes
- Make `to` use URL validator.
- Add filesystem to default test dependencies.
---
## v0.46.1 {date="2019-09-11"}
### Bug fixes
- Add a filesystem service.
- Do a pointer comparison for table objects instead of a deep compare.
---
## v0.46.0 {date="2019-09-10"}
### Features
- Replace EnvironmentSecretService with EmptySecret….
- Source location for rust parser.
### Bug fixes
- Push error for bad string expression.
- Remove `token` parameter from `pagerduty.endpoint`.
---
## v0.45.2 {date="2019-09-10"}
### Bug fixes
- Push the tag before running goreleaser.
- Additional opentracing spans for debugging query flow.
---
## v0.45.1 {date="2019-09-09"}
### Bug fixes
- Ensure `http.post` respects the context.
---
## v0.45.0 {date="2019-09-06"}
### Features
- Added Google Bigtable `from()`.
### Bug fixes
- Add `pagerduty.severityFromLevel()` helper function.
- Sleep function now gets canceled when the context is canceled.
- Categorize the undefined identifier as an invalid status code.
- Panic from `CheckKind` in `memberEvaluator`.
---
## v0.44.0 {date="2019-09-05"}
### Features
- Add `http.basicAuth` function.
- Add measurement filters to `monitor.from` and `monitor.logs`.
### Bug fixes
- changed the default HTTP client to be more robust.
---
## v0.43.0 {date="2019-09-04"}
### Features
- PagerDuty endpoint for alerts and notifications.
---
## v0.42.0 {date="2019-08-30"}
### Features
- Add `stateChanges` function.
### Bug fixes
- Race condition in looking up types in `map`.
- Support bool equality expressions.
- Calculating a type variable's free type variables.
- Do not generate fresh type variables for member expressions.
- Array instantiation.
---
## v0.41.0 {date="2019-08-26"}
### Features
- Add ability to validate URLs before making `http.post` requests.
- Evaluate string interpolation.
- Implement the `secrets.get` function.
- Added secret service interface.
- Add secrets package that will construct a secret object.
- Added a SecretService interface and a new dependencies package and a basic test of functionality.
- Add Slack endpoint.
### Bug fixes
- Make `reset()` check for non-nil data before calling `Release()`.
- Add test case for `notify` function.
- Add missing math import to test case.
- Make packages aware of options.
- Resolved `holtWinters` panic.
- Use non-pointer receiver for `interpreter.function`.
---
## v0.40.2 {date="2019-08-22"}
### Bug fixes
- Resolved `holtWinters()` panic.
---
## v0.40.1 {date="2019-08-21"}
### Bug fixes
- Use non-pointer receiver for `interpreter.function`.
---
## v0.40.0 {date="2019-08-20"}
### Breaking changes
- Update compiler package to use true scope.
- Add `http` and `json` to prelude.
### Features
- Add `alerts.check()` function.
- Add `alerts.notify` function.
- Add `kaufmansER()` and `kaufmansAMA()` functions.
- Add `experimental.to()` function.
- Add `experimental.set()` function to update entire object.
- Add `experimental.objectKeys()` function.
- Add `tripleExponentialDerivative()` function.
- Add `json.encode()` function.
- Add `mqtt.to()` function.
- Add Bytes type.
- Update compiler package to use true scope.
- Add http endpoint.
- Add post method implementation.
- String interpolation.
### Bug fixes
- Avoid wrapping table errors in the CSV encoder.
- Remove irrelevant TODOs.
- `mode()` now properly considers nulls when calculating the mode.
- Add `http` and `json` to prelude.
- Rename all Flux test files to use `_test.flux`.
---
## v0.39.0 {date="2019-08-13"}
{{% warn %}}
In Flux 0.39.0, `holtWinters()` can cause the query engine to panic.
**Flux 0.40.2 resolves this panic.**
{{% /warn %}}
### Breaking changes
- Implement the scanning components for string expressions.
### Features
- Add `tail()` function.
- Add framework for `http.post()` function.
- Implement `deadman()` function.
- Time arithmetic functions.
- Alerts package.
- Add an experimental `group()` function with mode `extend`.
- Implement the scanning components for string expressions.
- Add `chandeMomentumOscillator()` function.
- Add `hourSelection()` function.
- Add `date.year()` function
### Bug fixes
- Update object to use Invalid type instead of nil monotypes.
- Make it so the alerts package can be defined in pure Flux.
- Close connection after `sql.to()`.
---
## v0.38.0 {date="2019-08-06"}
### Features
- Update selectors to operate on time columns.
- Add `relativeStrengthIndex()` transformation.
- Add double and triple exponential average transformations (`doubleEMA()` and `tripleEMA()`).
- Add `holtWinters()` transformation.
- Add `keepFirst` parameter to `difference()`.
- DatePart equivalent functions.
- Add runtime package.
- Add and subtract duration literal arithmetic.
- Allow `keep()` to run regardless of nonexistent columns.
If all columns given are nonexistent, `keep()` returns an empty table.
- Scanner returns positioning.
### Bug fixes
- Function resolver now keeps track of local assignments that may be evaluated at runtime.
- Fixed InfluxDB test errors.
- Add range to tests to pass in InfluxDB.
- Allow converting a duration to a duration.
- Catch integer overflow and underflow for literals.
---
## v0.37.2 {date="2019-07-24"}
- _General cleanup of internal code._
---
## v0.37.1 {date="2019-07-23"}
### Bug fixes
- Fixed InfluxDB test errors.
- Add range to tests to pass in InfluxDB.
---
## v0.37.0 {date="2019-07-22"}
### Features
- Add PromQL to Flux transpiler and Flux helper functions.
- Add mutable arrow array builders.
- Created date package.
- Return query and result errors in the multi result encoder.
- Add `exponentialMovingAverage()`.
- Add full draft of Rust parser.
- Implement more production rules.
- AST marshalling.
- Parse statements.
- Parse integer and float literals.
- Add initial Rust implementation of parser.
---
## v0.36.2 {date="2019-07-12"}
### Bug fixes
- Add helper methods for comparing entire result sets.
- Map will not panic when a record is `null`.
---
## v0.36.1 {date="2019-07-10"}
### Bug fixes
- Add `range` call to some end-to-end tests.
- Fix implementation of `strings.replaceAll`.
---
## v0.36.0 {date="2019-07-09"}
### Features
- Updated `movingAverage()` and added `timedMovingAverage`.
- `elapsed()` function.
- `mode()` function.
- `sleep()` function.
- Modify error usage in places to use the new enriched errors.
- Enriched error interface.
- End-to-end tests that show how to mimic pandas functionality.
- End-to-end tests for string functions.
### Bug fixes
- Fix `difference()` so that it returns an error instead of panicking when given a `_time` column.
- Added end-to-end tests for type conversion functions.
- Make `map()` error if return type is not an object.
- Fixed miscounted allocations in the `ColListTableBuilder`.
- Support formatting `with`.
### Breaking changes
- Updated `movingAverage()` to `timedMovingAverage` and added new
`movingAverage()` implementation.
---
## v0.35.1 {date="2019-07-03"}
### Bug fixes
- Re-add `mergeKey` parameter to `map()` in deprecated state.
---
## v0.35.0 {date="2019-07-02"}
### Breaking changes
- Remove `mergeKey` parameter from the `map()` function.
### Features
- Add `sql.to()` function.
- Add `movingAverage()` function.
- Add `strlen()` and `substring()` functions to the `strings` package.
### Bug fixes
- Remove `mergeKey` parameter from the `map()` function.
- Parse float types with PostgreSQL.
---
## v0.34.2 {date="2019-06-27"}
### Bug fixes
- Parse float types with PostgreSQL.
---
## v0.34.1 {date="2019-06-26"}
### Features
- Add custom PostgreSQL type support.
- Added MySQL type support.
- Nulls work in table and row functions.
### Bug fixes
- Fixed boolean literal type conversion problem and added tests.
- Diff should track memory allocations when it copies the table.
- Copy table will report if it is empty correctly.
---
## v0.33.2 {date="2019-06-25"}
### Bug fixes
- Use `strings.Replace` instead of `strings.ReplaceAll` for compatibility.
---
## v0.33.1 {date="2019-06-20"}
### Bug fixes
- Copy table will report if it is empty correctly.
---
## v0.33.0 {date="2019-06-18"}
### Breaking changes
- Implement nulls in the compiler runtime.
### Features
- Add Go `regexp` functions to Flux.
- Add the exists operator to the compiler runtime.
- Implement nulls in the compiler runtime.
- Add nullable kind.
- Support "with" syntax for objects in row functions.
- Port several string functions from go `strings` library to Flux.
- Add exists unary operator.
### Bug fixes
- Add range to map_extension_with.flux.
- Row function resets records map with each call to prepare.
- Fix `joinStr`, including adding an EndToEnd Test.
- Fix `string_trimLeft` and `string_trimRight` so that they pass in InfluxDB.
- Add length check for empty tables in fill.
---
## v0.32.1 {date="2019-06-10"}
### Bug fixes
- Identify memory limit exceeded errors in dispatcher.
---
## v0.32.0 {date="2019-06-05"}
### Breaking changes
- Remove the control package.
### Bug fixes
- Changelog generator now handles merge commits better.
- Return count of errors when checking AST.
---
## v0.31.1 {date="2019-05-29"}
### Bug fixes
- Do not call done after calling the function.
---
## v0.31.0 {date="2019-05-28"}
### Breaking changes
- Copy the table when a table is used multiple times.
### Features
- Support for dynamic queries.
### Bug fixes
- Copy the table when a table is used multiple times.
---
## v0.30.0 {date="2019-05-16"}
### Features
- Support for dynamic queries.
---
## v0.29.0 {date="2019-05-15"}
### Breaking changes
- Make `on` a required parameter to `join()`.
### Features
- Add stream table index functions (
[`tableFind()`](/flux/v0/stdlib/universe/tablefind/),
[`getRecord()`](/flux/v0/stdlib/universe/getrecord/),
[`getColumn()`](/flux/v0/stdlib/universe/getcolumn/)
).
- Construct invalid binary expressions when given multiple expressions.
### Bug fixes
- Properly use RefCount to reference count tables.
- Remove the race condition within the `(*Query).Done` method.
- Fix table functions test.
- Add `column` parameter to `median()`.
- Modify `median` to work with `aggregateWindow()`.
- `pivot()` now uses the correct column type when filling nulls.
- Add error handling for property list.
- Return the error from the context in the executor.
---
## v0.28.3 {date="2019-05-01"}
### Bug fixes
- Fix request results labels to count runtime errors.
- An error when joining could result in two calls to finish.
---
## v0.28.2 {date="2019-04-26"}
### Bug fixes
- Preallocate data when constructing a new string array.
---
## v0.28.1 {date="2019-04-25"}
### Bug fixes
- Make executor respect memory limit from caller.
---
## v0.28.0 {date="2019-04-24"}
### Features
- Allow choosing sample/population mode in `stddev()`.
### Bug fixes
- Fix `reduce()` so it resets the reduce value to the neutral element value for each new group key
and reports an error when two reducers write to the same destination group key.
---
## v0.27.0 {date="2019-04-22"}
### Features
- Add `trimSuffix` and `trimPrefix` functions to the strings package.
- Add support for conditional expressions to compiler.
- Add conditional expression handling to interpreter.
### Bug fixes
- Enforce memory and concurrency limits in controller.
- Format conditional expression.
- `tagKeys` should include a call to `distinct`.
---
## v0.26.0 {date="2019-04-18"}
### Breaking changes
- Aggregates now accept only a `column` parameter. `columns` not used.
### Features
- Add handling for conditional expressions to type inference.
- Add `if`/`then`/`else` syntax to Flux parser.
- Added a WalkIR function that external programs can use to traverse an opSpec structure.
- Add planner options to compile options.
- Add example on how to use Flux as a library.
- `duplicate()` will now overwrite a column if the as label already exists.
#### Bug fixes
- Format right child with good parentheses.
- Make staticcheck pass.
- Rename `json` tag so go vet passes.
- The controller pump could reference a nil pointer.
- Create a DependenciesAwareProgram so controller can assign dependencies.
- Make `Program.Start` start execution synchronously.
- Read the metadata channel in a separate goroutine.
- Remove dead code in controller so `staticcheck` passes.
- Allow Flux unit tests to pass.
- Require a Github token to perform a release.
- Change example name to make go vet pass.
- Make `csv.from` return decode error.
---
## v0.25.0 {date="2019-04-08"}
### Breaking changes
- Fix logical operators (`and`, `or`) precedence.
### Bug fixes
- Omit space between unary operator and operand.
- Format AST preserving operator precedence.
---
## v0.24.0 {date="2019-04-01"}
### Breaking changes
- Rename `percentile()` function to `quantile()`.
### Bug fixes
- Handle when a non-call expression is parsed as the pipe destination.
- Add error message to Compile methods for empty Spec.
---
## v0.23.0 {date="2019-03-26"}
### Breaking changes
- Remove unused statistics from the struct.
### Features
- Define comparison operators between time types.
- Parse signed duration.
- Added `reduce()` function and supporting go API for implementation.
- Fix for recognizing locally scoped objects and arrays in a row function.
### Bug fixes
- Columns in percentile signature and more strict param checking.
- Report the error received when parsing a bad regex literal.
- Remove unused statistics from the struct.
---
## v0.22.0 {date="2019-03-18"}
### Features
- Added a math package and ported all 64 bit go math library functions.
### Bug fixes
- Make read-like access patterns for objects thread-safe.
---
## v0.21.4 {date="2019-03-06"}
### Bug fixes
- Test union.flux correctly uses sort.
- Pivot orders rowKey and columnKey by the input parameters, rather than the table column order.
- Deterministic sorting of input tables in join.
- Group key comparison works regardless of column ordering.
---
## v0.21.3 {date="2019-03-05"}
### Bug fixes
- Fix test to pass in InfluxDB.
- Write table and result name in each row of CSV output.
- Make time() function accept any format that parser accepts.
- Return errors when evaluating functions.
- Prevent a deadlock in the array expression parser.
---
## v0.21.2 {date="2019-03-01"}
### Bug fixes
- Add AST compiler to mappings.
---
## v0.21.1 {date="2019-03-01"}
### Bug fixes
- Make ASTCompiler marshalable.
- Fix a controller test to be less flaky.
- `from()` must send deep table copies to its downstream transformations.
---
## v0.21.0 {date="2019-02-25"}
### Breaking changes
- Support attaching arbitrary query metadata from the executor.
### Features
- Support attaching arbitrary query metadata from the executor.
- Socket source.
### Bug fixes
- Add locks to make diff threadsafe.
---
## v0.20.0 {date="2019-02-20"}
### Features
- AST match.
- Generate ASTs from Flux test files for external consumption.
- Add compile subcommand that compiles Flux to spec.
### Bug fixes
- Change loadStorage and loadMem to be options so that they are modifiable.
- Generate skipped tests; skip in test driver.
---
## v0.19.0 {date="2019-02-11"}
### Breaking changes
- Make `window()` parameters match SPEC.
- Split FromProcedureSpec into logical and physical specs.
### Features
- Add `contains()` function to check for membership in lists.
- `test` keyword.
### Bug fixes
- Raw query test case.
---
## v0.18.0 {date="2019-02-07"}
### Features
- Add strings package with functions to trim/change string case.
- Make duration conversion public.
- Add assertEmpty method and use it with testing.test.
- Expose literal parsers used within the parser.
- Add testing.diff function.
- Execute command.
### Bug fixes
- Refactor the controller to remove data races.
- Member expressions using a string literal use the incorrect end bracket.
- Skip lambda evaluation when referencing nulls.
- Options editor should use ast.Expression.
- Fix decoder bug where a default table ID is given when none is required.
- Add close to SourceIterator.
---
## v0.17.0 {date="2019-01-22"}
### Features
- Checks for option dependencies.
- Add query success and error metrics.
- Track nested blocks in the parser.
- Update `aggregateWindow()` to include `createEmpty` as parameter to allow for null results.
- Add query function count metrics.
### Bug fixes
- Multiplicative operators are above additive operators in precedence.
- Fix panic when copying lambda.
- Only print a package's public exports.
- Cannot access imports of imports.
- Check for schema collision when appending columns to a table.
- Process test helper had bad logic to check for errors.
- Handle rune errors correctly when decoding an illegal token.
---
## v0.16.1 {date="2019-01-17"}
### Bug fixes
- Copy packages for importer copy.
---
## v0.16.0 {date="2019-01-17"}
### Features
- Adds various v1 meta queries helper functions
### Bug fixes
- Fixes various UX issues.
- Object polytype.
- Fix edge case panic in `assertEquals`.
- Check for equality in time columns correctly.
- Fix bug where `assertEquals` did not check tables without a match in both streams.
- Clear return for each REPL command.
---
## v0.15.0 {date="2019-01-16"}
### Features
- Add rule to remove filter true nodes.
- Checks for variable reassignment and option declarations below package block.
### Bug fixes
- Move a test file into the testing/testdata folder.
---
## v0.14.0 {date="2019-01-14"}
### Breaking changes
- Implement and require builtin statements.
- Fix keys to output group key.
- Organizes builtin code into Flux packages.
- Change flux command to be a REPL.
### Features
- Implement and require builtin statements.
- Added a new utility library for generating test data.
- `columns()` function.
- Add fill function to set a default value for null values in a column.
- Organizes built-in code into Flux packages.
- Change flux command to be a REPL.
- Refactored the table builder interfaces to support null value creation.
- Aggregates process empty/all-null tables by creating a null row.
- Show nulls in REPL as empty string.
- Add ability to define built-in packages.
- Treat omitted values with no defaults as nil in CSV.
- Build arrow columns with null values.
- Converting limit to use arrow arrays.
- TableBuilder interface and ColListTableBuilder implementation support creation of nil values.
### Bug fixes
- Count nulls in the count aggregate.
- Fix keys to output group key.
- Adding test for type mismatch in group.
- Nest extern blocks for each level in scope.
- Memory leak in limit when slicing.
- Prettier formatting for package.
- Change Package.Path to be json omitempty.
---
## v0.13.0 {date="2019-01-07"}
### Breaking changes
- Add File and Package nodes to the AST.
### Features
- Embed errors into the ast from the parser.
- Add no-points optimization for `from() |> keys()`.
- Add File and Package nodes to the AST.
- Add a function for checking for errors within the AST.
### Bug fixes
- Remove unneeded use of memory allocator.
- Allow the memory allocator to be nil for arrow arrays.
- Fix several bugs in copy methods add tests.
- Fix a flaky test in the controller shutdown.
---
## v0.12.0 {date="2019-01-02"}
### Features
- Slice utils.
- Parse string literal object keys.
- Add tests for multi-line and escaped strings.
- Arrow helper method.
- Converting all aggregates to use arrow arrays.
### Bug fixes
- Embed plan.DefaultCost in input and output functions.
- Side effect statements are now copied between related interpreter scopes.
---
## v0.11.0 {date="2018-12-18"}
### Features
- Add utility methods for converting a slice into an arrow array buffer.
### Bug fixes
- Do not panic with unbalanced parenthesis.
- Respect positive timeout for toHTTP.
---
## v0.10.0 {date="2018-12-17"}
### Breaking changes
- Change "label" to "column" for state tracking functions.
### Features
- Plan validation.
- Testing framework no longer checks output.
- Integrate arrow arrays into the table builder.
- Support packages and imports.
### Bug fixes
- Cancel all queries after timeout elapses.
- `makefile` for generating the scanner after clean was incorrect.
---
## v0.9.0 {date="2018-12-11"}
### Features
- Option Editor.
### Bug fixes
- Return the source attribute in the location correctly.
---
## v0.8.0 {date="2018-12-11"}
### Features
- Rule to chain group operations.
- Add package and import support to the semantic graph.
- Add `assertEquals` function to transformations.
- Parse import and package statements
- Walk pattern for AST.
- AST formatting.
- Switch over to the new parser.
### Bug fixes
- Make controller return planner failures.
- Collision between external and fresh type vars.
- fmt for import and package.
- Add import/package nodes to ast.Walk.
- Improve panic message when the wrong column type is used.
- Check nil results when computing stats.
- Suppress group push down for \_time and \_value.
- Terminal output functions must produce results.
- Fix race in interpreter.doCall.
- Fix ast.Walk for Assignment rename.
- Improve error message for missing object properties.
- Add unary logical expression to the parser.
- Variable declarator node needs to duplicate the location information.
---
## v0.7.4 {date="2018-12-04"}
### Bug Fixes
- Add missing comparison operators.
---
## v0.7.3 {date="2018-12-04"}
### Bug Fixes
- Fix the ident statement to use expression suffix.